1)软件设计的基础
软件设计包括软件结构设计、数据设计、接口设计、过程设计。其中,结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信;过程设计是把系统结构部件转换成软件的过程性描述。
软件设计的一般过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。
2)软件设计的基本原理
(1)抽象
抽象的层次从概要设计到详细设计逐渐降低。在软件概要设计中的模块分层也是由抽象到具体逐步分析和构造出来的。
(2)模块化
模块是指把一个待开发的软件分解成若干小的简单的部分。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
(3)信息隐蔽
在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
(4)模块独立性
独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
衡量软件的模块独立性的标准
内聚性:一个模块内部各个元素间彼此结合的紧密程度的度量
耦和性:模块间相互连接的紧密程序的度量
3)结构化设计方法
即将软件设计成相对独立、单一功能的模块组成结构。
1)概要设计的任务
① 设计软件系统结构
即将系统划分成模块以及模块的层次结构。
② 数据结构及数据库设计
数据设计是实现需求定义和规格说明过程中提出的数据对象的逻辑表示。
具体任务是:
确定输入、输出文件的详细数据结构
结合算法设计,确定算法所必须的逻辑数据结构及其操作
确定对逻辑数据结构所必须的那些操作的程序模块,限制和确定各个数据设计决策的影响范围
需要与操作系统或调度程序接口所必须的控制表进行数据交换时,确定其详细的数据结构和使用规则
数据的保护性设计:防卫性、一致性、冗余性设计
③ 编写概要设计文档
概要设计说明书
数据库设计说明书
集成测试计划
④ 概要设计文档评审
需要评审的内容:设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义的正确性、有效性,各部分之间的一致性等
软件结构设计工具是结构图,描述软件系统的层次和分块结构关系,它反映了整个系统的功能实现以及模块与模块之间的联系与通讯,是未来程序中的控制层次体系。
结构图中常有的模块类型:
传入模块
传出模块
变换模块
协调模块
2)面向数据流的设计方法
① 数据流类型
变换型。事务型。
② 面向数据流设计方法的实施要点与设计过程
3)设计的准则
提高模块的独立性
模块规模适中
深度、宽度、扇出和扇入适当
使模块的作用域在该模块的控制域内
应减少模块的接口和界面的复杂性
设计成单入口、单出口的模块
设计功能可预测的模块