【前言】
经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎么做”的时候了。软件设计包括概要设计和详细设计两部分。
概要设计的基本目的是回答“概括地说,系统应该如何实现”这个问题。这一阶段将会划分出组成系统的物理元素(程序、文件、数据库、人工过程和文档等)和设计软件的结构(确定系统中每个程序是由哪个模块组成的,以及这些模块相互间的关系)。
详细设计根本目标是确定应该怎样具体的实现所要求的系统,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成程序。
(发现了一张师哥师姐的导图非常好,给大家分享一下,也作为一个设计的总的导图。地址:软件设计)
概要设计
过程
典型的概要设计过程包括以下9个步骤:
1、设想供选择的方案
2、选取合理的方案
3、推荐最佳方案
4、功能分解
5、设计软件结构
6、设计数据库
7、制定测试计划
8、书写文档
9、审查和复查
模块独立
模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
为什么模块独立性很重要:
1、有效的模块化。
2、独立的模块比较容易测试和维护。
定性标准度量:内聚和耦合。 要求:高内聚,低耦合。
内聚
耦合
启发规则
1、改进软件结构提高模块独立性
2、模块规模应该适中
3、深度、宽度、扇出和扇入都应适当
4、模块的作用域应该在控制域之内
5、力争降低模块接口的复杂程度
6、设计单入口单出口的模块
7、模块功能应该可以预测
详细设计
详细设计阶段的关键人物是确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的“蓝图”。除了应该保证软件的可靠性之外,是将来编写出的程序可读性好、容易理解、容易测试、容易修改和维护,是详细设计阶段最重要的目标。结构程序设计技术是实现目标的基本保证,是进行详细设计的逻辑基础。
总结:
软件设计的理解还是很模糊的,想总结的时候就不知道如何下手了,最后找了一本软件工程的书拿来参考,发现每本书讲解的都是各有特色,总结的东西不是很满意,但是总结过一次后思路清晰了一些,还是很有收获的,继续加油了!(参考《软件工程导论》第6版)
推荐一个在线画导图的网页:https://www.processon.com/i/57bebf31e4b093bb2b0c68b9