软件工程课件第07章教学内容.ppt
《软件工程课件第07章教学内容.ppt》由会员分享,可在线阅读,更多相关《软件工程课件第07章教学内容.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程课件第07章软软 件件 工工 程程第第第第 7 7 7 7 章章章章 软软软软 件件件件 设设设设 计计计计 基基基基 础础础础概概 念念基本概念基本概念基本概念基本概念设计设计设计设计过程过程过程过程设计设计设计设计工具工具工具工具说明说明说明说明与评审与评审与评审与评审BeiHuaZLL ZhangLingling7.1.1 7.1.1 软件设计过程软件设计过程TextText技技术术角角度度与与管管理理角角度度详细设计详细设计概要设计概要设计过程设计过程设计数据设计数据设计结构设计结构设计概要设计概要设计概要设计概要设计根据需求确定软件和数据的总体根据需求确定软件和数据的总体框架
2、框架详细设计详细设计详细设计详细设计将将“概设概设”结果进一步精化结果进一步精化成算法表示和数据结构成算法表示和数据结构结构设计结构设计结构设计结构设计确定程序各主要部件之间的关系确定程序各主要部件之间的关系数据设计数据设计数据设计数据设计把信息描述转换为实现软件所把信息描述转换为实现软件所要求的数据结构要求的数据结构过程设计过程设计过程设计过程设计完成每一部件的过程化描述完成每一部件的过程化描述BeiHuaZLL ZhangLingling7.1.2 7.1.2 抽象与逐步求精抽象与逐步求精抽抽抽抽 象象象象抽出事务的本质特性而暂时不考虑它们抽出事务的本质特性而暂时不考虑它们的细节。的细节。
3、是控制复杂性的基本策略是控制复杂性的基本策略。定义定义需求需求设计设计实现实现软件系统软件系统被描述为被描述为基于计算基于计算机的大系机的大系统的一个统的一个组成部分组成部分软件用问软件用问题域约定题域约定的习惯用的习惯用语表达语表达概要设计概要设计过渡到详过渡到详细设计时,细设计时,抽象级再抽象级再一次降低一次降低编码完成编码完成后达到了后达到了抽象的最抽象的最低级低级过程抽象过程抽象过程抽象过程抽象把完成一个特定功能的动作序列抽象为把完成一个特定功能的动作序列抽象为一个过程名和参数表一个过程名和参数表数据抽象数据抽象数据抽象数据抽象把一个数据对象的定义(或描述)抽象把一个数据对象的定义(或
4、描述)抽象为一个数据类型名为一个数据类型名BeiHuaZLL ZhangLingling抽象1:该CAD软件系统配有与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具画各种直线和曲线;能完成所有几何计算以及所有截面视图和辅助视图的设计。图形设计的结果保存在图形文件中,图形文件可以包含几何的、正文的和其他各种补充设计信息。例例7.1 7.1 考虑适用于低级考虑适用于低级CADCAD的图形软件包的图形软件包CAD软软件任务件任务创建二创建二维图形维图形管理图管理图形文件形文件用户用户界面界面显示图形显示图形任务任务抽象抽象2:CAD软件任务;软件任务;用户界面子任务;用户界面子任务;创建二维图
5、形子任务;创建二维图形子任务;显示图形子任务;显示图形子任务;管理图形文件子任务;管理图形文件子任务;end CAD.抽象抽象3(仅以(仅以“创建二维图形任务创建二维图形任务”为例)为例)PROCEDURE创建二维图形 REPEAT UNTIL END REPETITION;END PROCEDURE.;DO WHILE 数字仪接口任务;数字仪接口任务;判断作图请求;判断作图请求;线:画线任务;线:画线任务;圆:画圆任务;圆:画圆任务;END;DO WHILE 键盘接口任务;键盘接口任务;选择分析或计算;选择分析或计算;辅助视图:辅助视图任务;辅助视图:辅助视图任务;截面视图:截面视图任务;截
6、面视图:截面视图任务;END;BeiHuaZLL ZhangLingling数据对象:TYPE drawing IS STRUCTURE DEFINED number IS STRING LENTH(12);geometry DEFINED notes IS STRING LENTH(256);bom DEFINED END drawing TYPE;数据抽象数据抽象 blueprint IS INSTANCE OF drawing;或或 schematic IS INSTANCE OF drawing;BeiHuaZLL ZhangLingling 逐步求精逐步求精逐步求精逐步求精逐步求精逐
7、步求精为了能集中精力解决主要问题主要问题而尽量推迟对问题细节问题细节的考虑抽象求精BeiHuaZLL ZhangLingling7.1.3 7.1.3 模块化与信息隐藏模块化与信息隐藏模块模块理论理论依据依据理想的理想的属性属性大小大小I/O、功能,程序、数据、功能,程序、数据程序、程序段、子程序程序、程序段、子程序程序、程序段、子程序程序、程序段、子程序一个功能、易理解、独立一个功能、易理解、独立一个功能、易理解、独立一个功能、易理解、独立例:库存管理系统的模块划分例:库存管理系统的模块划分例:库存管理系统的模块划分例:库存管理系统的模块划分事务接收模块事务接收模块事务接收模块事务接收模块更
8、新库存清单更新库存清单更新库存清单更新库存清单订货处理订货处理订货处理订货处理生成报表生成报表生成报表生成报表例:人事管理系统例:人事管理系统例:人事管理系统例:人事管理系统输入职工档案职工档案管理系统生成职工档案报表系统最小成本最小成本区域区域MO软件总成本软件总成本用于接口的成本用于接口的成本每个模块成本之和每个模块成本之和模块总数模块总数成本或成本或工作量工作量信息隐藏信息隐藏内聚度内聚度耦合度耦合度分分分分 治治治治 法法法法:C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2E(P1+P2)E(P1)+E(P2BeiHua
9、ZLL ZhangLingling信息隐藏信息隐藏模块内所含信息对那些不需要这些信息的模块模块内所含信息对那些不需要这些信息的模块不可不可访问访问,每个模块只完成,每个模块只完成一个一个相对相对独立独立的特定的特定功能功能。模块独立性模块独立性(Module independence)好设计的关键:每个模块完成一个相对独立的子功能,一个相对独立的子功能,并且与其它模块间的接口简单模块间的接口简单。独立性的度量:独立性的度量:耦合耦合(Coupling)&(Coupling)&内聚内聚(Cohesion)(Cohesion)BeiHuaZLL ZhangLingling低级内聚度(低级内聚度(3
10、个)个)一个模块内各成分为完成一组功能而组合在一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散一起,它们相互之间即使有关系,也很松散。1逻辑逻辑一个模块完成的诸任务逻辑上相关一个模块完成的诸任务逻辑上相关 2偶然偶然如果一个模块包含的诸任务必须在同一时间段如果一个模块包含的诸任务必须在同一时间段内执行。内执行。例如一个初始化模块3时间时间A:Read inputsfrom diskfrom tapefrom BeiHuaZLL ZhangLingling中级内聚度(中级内聚度(2个)个)模块内成分彼此相关,并且必须模块内成分彼此相关,并且必须按特定的次序执行按特定的
11、次序执行4过程过程模块中各成分都将对数据结构的模块中各成分都将对数据结构的同一区域进行操作同一区域进行操作5通信通信模块模块A从文件从文件FILE读出数据读出数据1.由数据产生报表一由数据产生报表一2.由数据产生报表二由数据产生报表二循环体计算累积事务记录累积销售额累积订货量enter datacheck datamanipulate dataBeiHuaZLL ZhangLingling高级级内聚度(高级级内聚度(2个)个)模块内的各处理成分均与同一功能相关,模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行且这些处理必须顺序执行6顺序顺序模块内所有成分形成一个整体,模块内所有成分形
12、成一个整体,完成单个功能完成单个功能7功能功能1.输入系数输入系数2.求方程的根求方程的根3.打印方程的根打印方程的根求一元二次方程求一元二次方程根的模块根的模块BeiHuaZLL ZhangLingling七种七种“内聚内聚模块模块”的性能比的性能比较较形式形式评价评价可修可修改性改性可读性可读性黑箱程度黑箱程度通用性通用性偶然偶然最坏最坏最坏最坏最坏最坏黑箱黑箱好好逻辑逻辑最坏最坏最坏最坏不好不好不完全黑不完全黑好好时间时间不好不好不好不好中中不完全黑不完全黑中中过程过程中中中中中中半透明半透明不好不好通信通信中中中中中中半透明半透明不好不好顺序顺序好好好好好好透明透明最坏最坏功能功能好好
13、好好好好透明透明最坏最坏BeiHuaZLL ZhangLingling模块间的耦合模块间的耦合 耦合:耦合:表示一个软件结构内各个模块之间的互连程度,尽量选用松散耦合的系统1.非直接耦合:非直接耦合:两个模块中任一个,都不依赖于对方能独立工作两个模块中任一个,都不依赖于对方能独立工作1.1.非直接耦合非直接耦合 -2.-2.数据耦合数据耦合2.数据数据耦合耦合两个模块间通过参数交换信两个模块间通过参数交换信息,息,而信息仅限于数据而信息仅限于数据开发货单开发货单开发货单开发货单计算金额计算金额计算金额计算金额单价单价单价单价数量数量数量数量金额金额金额金额Great deal of depen
14、denceIndependentHighly coupled Loosely coupledUncoupled BeiHuaZLL ZhangLingling3.3.特征特征耦合耦合计算水费和电费计算水费和电费计算水费计算水费计算电费计算电费住户详情住户详情水费水费住户详情住户详情电费电费计算水量和电费计算水量和电费计算水费计算水费计算电费计算电费水费水费电费电费电费电费本月用水量本月用水量本月用电量本月用电量 住户详情数据结构中包括:住户详情数据结构中包括:“本月用水量本月用水量”、“本月用电量本月用电量”。“特征特征耦合耦合”图可改进图可改进“数据数据耦合耦合”图图如果两个模块都与同一个数
15、据结构有关,则为特征耦合。BeiHuaZLL ZhangLingling4.当模块当模块A向模块向模块B所传递的信息控制了所传递的信息控制了B的内部的内部逻辑。逻辑。获得库存记录获得库存记录获得库存记录获得库存记录检索库存记录检索库存记录检索库存记录检索库存记录库存编号库存编号库存编号库存编号库存量库存量库存量库存量打印打印打印打印“无此库存记录无此库存记录无此库存记录无此库存记录”错误信息错误信息错误信息错误信息4 4.控制控制耦合耦合-5.-5.外部耦合外部耦合5.若干模块均与同一个外部环境关联。若干模块均与同一个外部环境关联。如:I/O、格式、通信协议BeiHuaZLL ZhangLin
16、gling 6.6.公共公共耦合耦合-7.-7.内容内容耦合耦合(病态病态耦耦合合)6.如果两个模块都和同一个公共数据域有关如果两个模块都和同一个公共数据域有关ABC公用数据7.7.一个模块和另一个模块的内部属性有关一个模块和另一个模块的内部属性有关 (运行程序和内部数据运行程序和内部数据)。如:一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块。模块模块A中中TRC:模块模块B中中GO TO TRCBeiHuaZLL ZhangLingling设计模块时,应以数据设计模块时,应以数据设计模块时,应以数据设计模块时,应以数据耦合耦合为主,辅以特征为主,辅以特征为主,辅以特
17、征为主,辅以特征耦合耦合与控制与控制与控制与控制耦合耦合,消除公共消除公共消除公共消除公共耦合耦合和内容和内容和内容和内容耦合耦合。七种七种“耦合模块耦合模块”的性能比的性能比较较耦合方式耦合方式对连锁反对连锁反应的影响应的影响可修改性可修改性可读性可读性通用性通用性非直接非直接弱弱好好好好好好数据数据弱弱好好好好好好特征特征弱弱中中中中中中控制控制中中不好不好不好不好不好不好外部外部中中不好不好不好不好不好不好公共公共强强不好不好最坏最坏最坏最坏内容内容最强最强最坏最坏最坏最坏最坏最坏BeiHuaZLL ZhangLingling耦合、内聚与模块独立性的关系耦合、内聚与模块独立性的关系Bei
18、HuaZLL ZhangLingling7.1.4 软件总体结构设计(software architecture)目标:模块化的程序结构、明确各模块之间的控制目标:模块化的程序结构、明确各模块之间的控制关系、说明程序的输入输出数据流、进一步协调程关系、说明程序的输入输出数据流、进一步协调程序结构和数据结构。序结构和数据结构。软件软件结构组成结构组成系统中所有系统中所有过程性部件过程性部件(即模块即模块)构成的构成的层次结构层次结构(即程序结构即程序结构)对应于对应于程序结构的程序结构的输入输出输入输出数据结构数据结构BeiHuaZLL ZhangLingling结构设计原则BeiHuaZLL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课件 07 教学内容
限制150内