- 5
- 0
- 约1.17万字
- 约 7页
- 2016-10-06 发布于贵州
- 举报
软件工程--概设计
概要设计
4.1概要设计的基本概念
把一个产品分成几部分进行设计:软件模块的划分,数据结构和数据库的设计
4.1.1概要设计的任务
分解系统、细化系统:把产品分解成零件
1 模块划分
2 决定每个模块的功能
3 决定模块之间的调用关系
4 决定要传递的参数
5 设计主要的数据结构,包括数据库设计
6 设计每个模块的测试计划
4.1.2应该提交的文档
1 概要设计说明书
2 数据库、数据结构设计说明书
3 模块测试计划
4.1.3结构化(SD)设计方法
与结构化的分析相对应
自顶向下的设计过程
逐层分解的方法:采用结构图的方法进行描述
4.1.4描述方法
结构图:描述模块之间的关系
结构表:用表描述各模块之间的调用关系、输入、输出数据流
模块名 输入 输出 A1 a11 a12 A2 a21 a22 A3 a31 a32 4.1.5模块划分标准
没有绝对的标准,但是有划分原则:
每个模块相对独立。即:具有自己独特的功能,与上下模块有联系、但与同层的模块之间应该极少联系。
模块之间的联系
通过调用参数和返回值进行,各模块可以独立调试,全局变量尽量不用。
数据文件、数据库文件要职责分明。例如,有的模块只能读文件,有的模块只能修改某些数据等。
模块内的联系
尽可能:块内联系较大、块外联系较少
信息隐蔽信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。模块独立
模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。衡量模块独立程度的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。按耦合度从低到高依次有7种耦合方式。 非直接耦合(独立运行) 数据耦合(用参数表传递简单数据) 标记耦合(传递数据结构或者一部分) 控制耦合(传递的信息包括控制模块的信息) 外部耦合(模块与软件之外的环境有关) 公共耦合(多个模块引用同一全局的数据区) 内容耦合(访问内部数据,代码重叠或者多个入口)内聚是指模块内部各元素之间联系的紧密程度内聚度越低模块的独立性越差。按内聚度从低到高依次有7种内聚种类。
偶然内聚(模块完成的多个任务,任务之间的关系松散) 逻辑内聚(模块完成逻辑相关的一组任务) 瞬时内聚(模块的所有任务必须在同一时间间隔内执行)
过程内聚(模块的处理元素相关而且按照特定的次序执行) 通信内聚(模块的所有元素集中在一个数据结构区域上) 顺序内聚(模块的处理元素相关,必须顺序执行) 功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)
4.2.1 结构化程序设计的原则
????1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
????2.逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。
????3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
????4.限制使用goto语句
??????结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。作为争论的结论,1974年Knuth发表了令人信服的总结,并证实了:
????(1)GOTO语句确实有害,应当尽量避免;
????(2)完全避免使用GOTO语句也并非是个明智的方法,有些地方使用GOTO语句,会使程序流程更清楚、效率更高。
????(3)争论的焦点不应该放在是否取消GOTO语句上,而应该放在用什么样的程序结构上。其中最关键的是,应在以提高程序清晰性为目标的结构化方法中限制使用GOTO语句。
与结构化的分层数据流图一一对应
4.2.2从数据流图导出初始结构图
变换结构和
原创力文档

文档评论(0)