软件设计---软件开发新手应该需要了解的内容

Posted fc520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件设计---软件开发新手应该需要了解的内容相关的知识,希望对你有一定的参考价值。

可以借鉴的设计文档 https://wenku.baidu.com/view/0b7d31c78bd63186bcebbcbf.html?rec_flag=default

要养成职业化能力的意识。

软件开发阶段一般是包括需求分析、总体分析、概要和详细设计、编码、测试、安装及维护。

每一个人对每一个阶段的理解不同以及做法不同。

一、关注三阶段、五视图概念

一定要理解三阶段、五视图,尽管在实际开发中并不会全部使用到,也要有对应的概念。

五视图:需求、逻辑、开发、部署、数据

二、软件设计基础

技术观点上来看软件设计应该包括 结构设计(模块之间的关系)、数据设计(实体关系设计)、接口设计(软件内部、软件与其他的软件如何通信)、过程设计(功能流程图)

1. 结构设计: 可以画系统功能图、模块图、用例图 (概要设计中)

2. 数据设计: 数据库表的创建,表之间的完整性约束、表的索引、视图等创建(详细设计)

3. 接口设计:入参、出参(可以为概要设计也可以为详细设计?但是需要画出什么图呢)

4. 过程设计:业务流程图,针对模块的过程设计,也可以针对功能级的过程设计,主要绘制复杂的重要的模块和功能。

在完成概要设计文档之后,应该需要对其进行评审。

三、 概要设计

我现在理解的概要设计是简单明了地对这个系统进行简单解说,可以从不同的维度来说明。给项目经理或者给客户看的文档,说我们大概做了啥,有什么功能等。

1)系统的部署环境

2)系统所使用到的相关技术

3)系统需要和什么第三方系统进行集成

4)系统的功能结构图(对于功能结构图,需要有深度、广度、扇出、扇入)的概念

这里的功能也就是模块,在模块划分的时候要确保可以做到高内聚低耦合,团队可以对这个模块进行独立开发

以及总体的流程图

如下图所示

技术图片

 

 

5)系统的模块之间的数据交换

 

四、详细设计

我觉得在这一步,应该针对与模块进行设计,也就是xx模块详细设计 然后又xx模块和xx模块交互详细设计等文档的生成。

主要的话应该是类图的设计、我觉得做到类图的设计这一步就很ok了,接口的设计、类图的设计、以及接口的入参和出参,接口的功能的描述。

这些类图可以使用设计模式等设计,应可能地设计更加容易扩展的程序。

1)  数据库设计(包括index设计)

2)  类图接口交互设计

3) 模块之间交互设计 

4)模块时序图 模块之间的类的交互图,也就是行为模型sequence图

5)系统包流程图

有些模式是可以独立,有些模式是需要交互的

可以的话,在类图设计的时候,可以让对应模块编码开发人员给出对应类图的属性,画图类图的属性也是非常好的。

在类图设计中,应该还需要写类图的流程图

技术图片

 

 

 

在开发阶段中,是否应该也需要一些文档的产生,或者说是不是有其他的高效的方式呢?

在设计完成之后,我觉得应该对非功能性要求在做一些设计和思考,思考我们是否可以做好安全性(如数据库冗余操作),如并发安全等。

提高开发效率,提高软件质量是步入职业化的第一步,也是最重要的一步。

 

其中还是有很多具体的细节要求,如数据库设计,应该要设计出数据字典,索引等问题

应该在系统上涉及到的一些词汇,可以生成一个词汇表信息。

以上是关于软件设计---软件开发新手应该需要了解的内容的主要内容,如果未能解决你的问题,请参考以下文章

一句话总结软件设计七大原则

《软件需求与分析》阅读笔记

软件测试计划中应该包括啥内容?

Linux新手需要掌握哪些管理器?

开闭原则——面向对象程序设计原则

软件架构师应该知道的97件事