- 1、本文档共105页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程第5章:总体设计讲述
第5章 总体设计
分析模型
软件
信息域需求
功能与性能需求
开发阶段的信息流
设计
编码
测试
软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。
软件设计任务
从工程管理的角度看,软件设计分两步完成。
总体设计(概要设计)
——将需求转化为数据结构和系统结构
详细设计(过程设计)
——通过结构的细化,得到详细的数据结构和算法
总体设计阶段两个任务
1、划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等,但每个物理元素仍然处于黑盒级(具体内容在详细设计时展开)
2、设计软件的结构——确定系统中每个程序的组成模块,及模块间的关系。
5.1 设计过程
5.2 设计原理
5.3 启发规则
5.4 软件结构图形
5.5 面向数据流的设计方法
1
5.1 设计过程
两个主要阶段
系统设计阶段:确定系统的具体实现方案;
结构设计阶段:确定软件结构。
在各种可能的实现方案中选出最佳方案
最好的出发点:需求分析得出的数据流图
通常至少提供或选取低、中和高三种成本方案。
典型的总体设计过程的11个步骤
1. 设想供选择的方案
提出低、中、高三种备选方案
依据:工程规模和目标,征求用户意见
每个方案应准备4份资料:
(1)系统流程图;
(2)系统物理元素清单;
(3)成本/效益分析;
(4)系统的进度计划。
2. 选取合理的方案
分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。
3. 推荐最佳方案
制定设计时应共同遵守的标准
例:各部门文档统一编号,各部门机器接口等统一编号,等等。
4.制定规范
5. 软件结构设计
(1)模块化(按功能划分,简单化)
(2)确定模块的功能
(3)确定模块间调用关系
(4)确定模块间的接口(信息传递)
(5)评价模块结构质量
功能与性能的算法
模块的控制方式
信号的接收发送形式
6. 处理方式设计
(1)数据结构的设计
数据设计是把分析模型中的信息描述转换为实体软件所需要的数据结构。
(2)数据库设计
选用哪一种数据库?
7. 数据结构及数据库设计
确定软件可靠性和质量指标,考虑质量措施。
易维护性
8、可靠性设计(也称质量设计)
能促使设计人员在设计时注意提高软件的可测试性。
9. 制定测试计划
总体设计说明书
系统流程图、物理元素清单、成本/效益分析
最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等。
10. 书写文档
(2) 用户手册(需求分析阶段的初步的用户手册)
(3) 制定测试计划(测试策略,测试方案,预期的测试结果,测试进度计划)
(4) 详细的实现计划
(5) 数据库设计说明
11. 审查和复审
5.2 设计原理
一、 模块化
1、什么是模块?
具有输入输出、逻辑功能、运行程序和内部数据这四种属性的一个程序。
特点:单独命名且可以通过名字来访问
(过程、函数、子程序、宏)
模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成制定的功能。
思维模式:问题分解
2、什么是模块化?
选择一个适当的模块数目是软件成功的关键
18
模块数目
成本
模块化与软件成本
特点:先分解,然后再集成
接口
功能
逻辑
状态
3.模块的基本属性
面向对象方法学中的对象是模块
4. 模块的特点
15
一般先确定外部特性,再确定内部特性
输入输出
功能
内部数据
程序代码
外部特性
内部特性
设:C(x)为问题x的复杂程度
E(x)为解决问题x的工作量(时间)
对于两个问题P1和P2
如果 C(P1)C(P2)
那么 E(P1)E(P2)
根据解决问题的经验,有一个规律是:
C(P1+P2)C(P1)+C(P2)
则:E(P1+P2)E(P1)+E(P2)
5. 模块化理论
1、什么是抽象?
抽象是认识复杂现象过程中使用的思维工具
抽象的作用:只考虑事物本质的共性,而暂不考虑的细节及其它因素。
二、抽象
①可行性研究阶段:是计算机系统的一个元素
②需求分析阶段:使用问题环境中的术语来描述
③概要设计、详细设计阶段:将面向问题的术语和面向实现的术语结合起来描述解决方法。
④编码阶段:最低层抽象层次,直接叙述问题的解决方法。
2、软件工程中的抽象
三、逐步求精
1、什么是逐步求精?
为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
一个人在任何时候都只能把注意力集中在(7±2)个知识块上
2、逐步求精的理论依据
Miller法则
设
文档评论(0)