swchapter5PPT文档格式.ppt
《swchapter5PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《swchapter5PPT文档格式.ppt(56页珍藏版)》请在冰豆网上搜索。
5.2结构化概要设计概要设计的目的概要设计的任务概要设计的过程概要设计的工具与方法概要设计的结果5.2.1概要设计的目的将软件系统需求转换为未来系统的设计;
逐步开发强壮的系统构架;
使设计适合于实施环境,为提高性能而进行设计;
结构应该被分解为模块和库。
5.2.2概要设计的任务概要设计完成两大任务,选取软件系统体系结构和制定接口规约、命名规则等规范。
具体来讲有:
a.整个软件系统的层次结构;
b.每一层次的模块结构;
c.相关模块间的接口,即模块间传递信息的内容、方式和协议;
d.确定各模块在计算机网络环境下的物理分布;
e.确定系统的数据库结构;
f.确定本软件系统与其他外围系统接口;
5.2.2概要设计的任务g.确定模块与系统功能间的关系;
h.确定模块与数据库表间的关系;
i.考虑可靠性、安全性、灵活性等方面的设计;
j.要确定用户界面的设计风格;
k.主要算法设计;
l.异常处理设计。
5.2.3概要设计的过程概要设计的过程1.1.选取体系结构选取体系结构2.2.进行模块划分进行模块划分3.3.确定本系统与其它外围系统接口确定本系统与其它外围系统接口4.4.制定设计规范制定设计规范5.5.确定用户界面确定用户界面6.6.主要算法设计主要算法设计7.7.异常处理设计异常处理设计8.8.书写概要设计说明书书写概要设计说明书5.2.3概要设计的过程概要设计的过程
(1)仔细阅读需求规格说明书,理解系统建设目标、业务现状、现有系统、客户需求的各功能说明。
选定体系结构。
(2)分析数据流图,弄清数据流加工的过程。
(3)数据流图决定数据处理问题的类型(见5.2.4);
(4)通过以上分析,推导出系统的初始结构图。
完成初步的模块划分。
(5)对初始结构图进行改进完善:
所有的加工都要能对应到相应模块(模块的完整性在于他们完成了需求中的所有加工),消除完全相似或局部相似的重复功能,理清模块间的层次、控制关系,减少模块间信息交换量,平衡模块大小。
对模块划分进行合理调整。
更具体的步骤:
5.2.3概要设计的过程概要设计的过程(6)由对数据字典的修改补充完善,导出逻辑数据结构,导出每种数据结构上的操作,这些操作应当属于某个模块。
将接口数据分配给具体的模块。
(7)确定系统包含哪些应用服务系统、客户端、数据库管理系统;
确定每个模块放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或是在数据库内部建立的对象,落实体系结构。
(8)对每个筛选后的模块进行列表说明。
(9)对逻辑数据结构进行列表说明。
(10)进行主要的算法设计,进行异常处理设计。
(11)根据结构化软件设计说明书结构对其他需要说明的问题进行补充说明,形成概要设计说明书。
5.2.3概要设计的过程概要设计的过程一、选取体系结构与模块划分1、模块是什么?
模块(module):
是一组完成指定功能的语句,包括:
输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。
2、为什么要进行模块划分?
一个大的软件系统不可能所有的功能都用一个模块来实现,人的处理能力也限制了模块不能太大太复杂。
将系统划分成模块就是把大的复杂的问题分解成许多容易解决的小问题,这就是大事化小,分而治之的思想,是人类对待复杂问题时采用的高明策略。
5.2.3概要设计的过程概要设计的过程3、如何进行模块划分?
、如何进行模块划分?
模块的好坏没有绝对的标准,一般来说模块设计追求高内聚,低耦合。
也就是选定一种体系结构,能从宏观上将系统划分成多个高内聚,低耦合的模块。
下面介绍几个模块内聚与耦合的度量原则。
内聚内聚,是一个模块内部各成分之间相关联程度的度量。
耦合耦合,是模块之间依赖程度的度量。
内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。
5.2.3概要设计的过程概要设计的过程44、模块的内聚强度、模块的内聚强度(强度从低到高强度从低到高)偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚5.2.3概要设计的过程概要设计的过程5、模块的耦合强度模块的耦合强度耦合的强度依赖于以下几个因素:
耦合的强度依赖于以下几个因素:
(11)一个模块对另一个模块的调用;
)一个模块对另一个模块的调用;
(22)一个模块向另一个模块传递的数据量;
)一个模块向另一个模块传递的数据量;
(33)一个模块施加到另一个模块的控制的多少;
)一个模块施加到另一个模块的控制的多少;
(44)模块之间接口的复杂程度。
)模块之间接口的复杂程度。
耦合按从强到弱的顺序可分为以下几种类型:
内容耦合内容耦合公共耦合公共耦合控制耦合控制耦合标记耦合标记耦合数据耦合数据耦合非直接耦合非直接耦合5.2.3概要设计的过程概要设计的过程二、确定本系统与其它外围系统接口确定本系统与其它外围系统接口接口设计从总体说明外部用户、软、硬件环境与本系统的接口,这是外部接口;
已划分出的模块间接口,这是内部接口。
需求分析中已经确定了本系统与其它外围系统的接口,这里应该对这些接口与划分出的具体的模块相联系,对接口的命名,顺序,数据类型,传递形式做出更具体的规定。
就是将这些接口分配到具体的模块中。
5.2.3概要设计的过程概要设计的过程三、制定设计规范命名约定界面约定程序编写规范文档书写规范5.2.3概要设计的过程概要设计的过程四、确定用户界面确定用户界面界面设计一般性的指导原则一般的交互指南,这是全局性的信息显示,数据输入应遵守的规则信息提示指南数据输入指南5.2.3概要设计的过程概要设计的过程五、主要算法设计五、主要算法设计设计高效率的程序是基于良好的数据结构与算法,而不是基于编程技巧。
如果一个算法能在所要求的资源限制内,将问题解决好,则称这个算法是有效的。
六、异常处理设计六、异常处理设计异常处理是任何设计都不可忽略的问题。
它关系到系统能否安全运行,5.2.4概要设计的工具与方法工具概要设计常用层次图、HIPO图、结构图描绘软件的结构。
1.层次图5.2.4概要设计的工具与方法2.HIPO图图5.2.4概要设计的工具与方法3、结构图、结构图5.2.4概要设计的工具与方法方法:
结构化概要设计常用面向数据流的设计方法。
变换流变换流的映射对输入模块进行第二次分解5.2.4概要设计的工具与方法事务流事务流事务流映射的软件结构事务流映射的软件结构5.2.5概要设计的结果概要设计会产生许多的设计文档,其中最重要,必不可少的结果是:
软件系统概要设计说明书,国家标准对概要设计说明书的内容和格式有很详细的规定。
5.3结构化详细设计详细设计的任务详细设计完成下面的任务:
l设计每个模块的算法l确定每一模块使用的数据结构l确定模块接口的细节l为每一个模块设计一个测试用例l编写详细设计说明书5.3结构化详细设计详细设计的方法与工具详细设计的表示工具有图形工具,语言工具,表格工具。
详细设计常用的工具有:
流程图,盒图,PAD图,PDL语言(ProgramDesignLanguage和ProcessDesignLanguage)。
5.4RUP的分析与设计RUP的分析与设计过程:
建立系统构架建立系统构架完善系统构完善系统构架架利用各种利用各种视图描述系统架构视图描述系统架构进行性能优化设计进行性能优化设计编编写文档。
写文档。
5.4.1RUP系统分析一、理解系统的用法二、充实用例三、细化类图四、分析对象状态变化,定义对象之间的交互五、分析与协作系统的集成5.4.2RUP系统设计一、开发和细化对象图二、开发构件图三、制定部署计划四、设计和开发用户界面原型五、测试设计六、开始编制文档5.4.3RUP系统分析与设计例利用RUP的方法,对前面已经获得初步需求的例子“抽奖程序”进行分析与设计,并采用UML对系统建模。
根据前面的需求分析,开发初步的类图。
抽奖程序初步的类图5.4.3RUP系统分析与设计例分析类的层次,填充类的信息。
分析类的层次,填充类的信息。
抽奖程序细化的类图5.4.3RUP系统分析与设计例分析系统用例,得到系统的构件分析系统用例,得到系统的构件1、对用例图的深入分析,得到如左用例图5.4.3RUP系统分析与设计例抽出一个中奖号码用例的顺序图5.4.3RUP系统分析与设计例查询中奖情况用例的顺序图5.4.3RUP系统分析与设计例打印中奖记录用例的顺序图5.4.3RUP系统分析与设计例2、系统的数据构件需求分析阶段已到得系统中有一个存放中奖信息的数据文件,取名为LuckyRecord.txt,之所以选择文本文件来存放中奖信息,是因为这个程序本身很简单,没必要使用数据库。
LuckyRecord.txt=Records.Number+Records.Lever,Records.Number:
110000的整数Records.Lever:
115的整数5.4.3RUP系统分析与设计例33、系统的软件构件、系统的软件构件具体设计每个类的方法具体设计每个类的方法:
ChooseChoose():
():
利用随机函数,产生一个介于最大奖票利用随机函数,产生一个介于最大奖票号码和最小奖票号码范围内的一个随机数据,作为预备号码和最小奖票号码范围内的一个随机数据,作为预备中奖号码,查询中奖情况,如果该号码重复中奖,显示中奖号码,查询中奖情况,如果该号码重复中奖,显示重复号处理对话框由主持人现场决定该号有效或无效,重复号处理对话框由主持人现场决定该号有效或无效,如选择有效,则增加一条记录,如选择无效,则返回等如选择有效,则增加一条记录,如选择无效,则返回等待中奖号码产生界面。
待中奖号码产生界面。
Add():
打开打开LuckyRecordLuckyRecord.txt.txt文件,在文件最未尾增加文件,在文件最未尾增加一条中奖记录(中奖号码,中奖等级),关闭一条中奖记录(中奖号码,中奖等级),关闭LuckyRecordLuckyRecord.txt.txt。
5.4.3RUP系统分析与设计例PrintingPrinting():
打开打开LuckyRecordLuckyRecord.txt.txt文件,文件,在屏幕上逐条显示中奖记录,等待用户点击在屏幕上逐条显示中奖记录,等待用户点击“打印中奖信息打印中奖信息”按钮后逐条打印中奖信息,关按钮后逐条打印中奖信息,关闭闭LuckyRecordLuckyRecord.txt.txt。
Search