软件工程-第8章第1节图文模板
软件工程 第八章 面向对象的设计方法

第八章面向对象的设计方法本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。
如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
为完成这一转换过程,设计人员必须处理以下任务:(1)针对分析模型中的用例,设计实现方案。
实现方案用UML交互图表示。
(2)设计技术支撑设施。
在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。
这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。
例如,数据的持久存储服务、安全控制服务和远程访问服务等。
在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。
(3)设计用户界面。
(4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。
此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序设计的基础和依据的详尽类图。
面向对象的软件设计过程如图8-1-1所示。
图8-1-1 面向对象的软件设计过程第一节设计用例实现方案UML 的交互图(顺序图、协作图)适于用例实现方案的表示。
因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。
该设计方法包含如下3个步骤:(1)提取边界类、实体类和控制类;(2)构造交互图;(3)根据交互图精华类图。
一、顺序图顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。
在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。
顺序图中的对象一般以“对象名:类名”的方式标识,但也可以仅采用缩写形式“对象名”或者“:类名”。
软件工程全ppt课件

程方法开发出成本低、可靠性好并在机器上能高
韩
效运行的软件,为今后从事软件开发和维护打下
静
坚实的基础。
萍
2019/10/20
哈
尔
滨
工
课程主要内容
业 大 学
本课程比较全面、系统地介绍软件工程的概念、技术 与方法。
主要内容包括:软件工程概述、软件生存周期及软件
需求分析、软件设计方法、软件测试技术等。
通过本课程的学习,使学生能真正的从中了解软件开
韩
静 萍
检索教材 帐本是 否有该 教材
开购书发 票和购 书单
购书单 购书发票
2019/10/20
哈
计算机售书系统流程图
尔
滨
工
学生
1---学生各学期用书数据库
业
2---教材存量数据库
大
购书单
学
终端
结束
购书发票
韩
审查并
静 萍
开发票
购书单
到书库 领书
1
2
2019/10/20
练
哈
习
请画出由下列文字描述的系统流程图
研制期限 产品规模(源代码行数)
微型
1
1-4周
约500行
小型
1
1-6周
约2000行
韩
中型
2-5
1-2年
5000-50000行
静
大型
5-20
2-3年
5万-10万行
萍
甚大型
100-1000
4-5年
100万行
极大型
2000-5000 5-10年
1000万行
2019/10/20
哈
尔
软件工程第8章详细设计

WHILE Q
F
G N
例2:以下是两个程序流程图,试用PAD图表示。
开始 在工资档案中读一条记录
是文件结束位置吗?Y
N 计 算 工 资 档 案 各 项 基 本 数 据 之 和 并 存 入 pay
num = 当 前 职 工 号
在 奖 金 发 放 表 中 查 找 职 工 号 与 num 相 同 的 记 录
五种基本控制结构:
示例
程序流程图的规定符号
1)顺序型结构 顺序结构由带箭头的控制线依次连接几个处理方框构成。
处理1 处理2 处理n
…
例题
2) 选择型结构 选择型结构是流程图中最为常用的结构,其结构构造有两种,一种是条件选择结构又称为IF-
THEN-ELSE结构,使用菱形表现逻辑判定条件,条件结果决定选择两个处理方框中的一个。
种条件组合相对应的动作。
所有条件
条件组合矩阵
所有可能的 动作列表
与每种条件组合 所对应的动作表
国内乘客 头等舱 残疾乘客 行李≤30kg
免费 (W-30)*2 (W-30)*3 (W-30)*4 (W-30)*6 (W-30)*8 (W-30)*12
TTTTFFFF
TFTFTFTF
FFTTFFTT
TF F F F F F F F
找到了吗?
N
显示错误
Y 计 算 各 项 奖 金 总 和 并 存 入 bonus
应 发 工 资 = pay+ bonus
读下一条记录
结束
在工资档案中读一条记录
是文件结束位置吗?
计 算 工 资 各 项 基 本 数 据 之 和 并 存 入 pay
num = 当 前 职 工 号
在 奖 金 表 中 查 职 工 号 与 num 相 同 的 记 录
《软件工程》PPT课件

问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主
软件工程8PPT

§4. 可维护性
⑴ 可理解性(Understandability) 是指由文档代码理解功能运行的容易程度。 好程序的特征: 模块化、结构化、代码与设计风格一致, 高级语言实现。 度量方法: 90 - 10 Test ——读源程序10分钟,能否默写 出90%? ⑵ 可测试性(Testability) 是指论证程序正确性的容易程度。 好程序的特征:可理解、可靠、简单。 度量方法: 程序复杂度(第五章中已讨论)
10
§3. 维护过程
Q:维护工作一般从哪几方面定量度量? A:七个方面。 (1)每次程序运行平均失效的次数; (2)用于每一类维护活动的总人时数; (3)平均每个程序、每种语言、每种维护类型 所做的程序变动数 (4)维护过程中增加或删除一个源语句平均花 费的人时数; (5)维护每种语言平均花费的人时数; (6)一张维护要求表的平均周转时间; (7)不同维护类型所占的百分比。
13
⑶ 可修改性(Reparability) 是指程序容易修改的程度。 好程序的特征:可理解、简单、通用。 A D 度量方法: C
§4. 可维护性
其中:D = 修改难度; A = 要修改的模块的复杂度; C = 所有模块的平均复杂度。 D 1表示修改很困难。 ⑷ 可靠性(第七章中已讨论) ⑸ 可移植性(Portability) 是指程序被移到一个新环境的容易程度。 好程序的特征:结构好,不特别依赖于某一具 体的计算机或操作系统。
11
§4.可维护性(Maintainability )的度量 —— 软件度量学(Software Measurement)
软件可维护性可定性地定义为:维护人员理 解、改正、改动和改进这个软件的难易程度。 1、用于衡量可维护性的软件特性:
软件工程辅导课程八事务分析幻灯片资料

结构化程序设计
• 概念
– 自顶向下逐步求精的设计方法 – 单入口单出口的控制结构 – 三种基本结构
• 优点
– 符合问题分解,抽象到具体的思路 – 具有清晰的层次结构,便于阅读和理解 – 程序的静态结构与动态执行具有较高的一致性 – 程序的控制结构简单(顺序,循环和分支) – 清晰化与模块化便于代码重用 – 程序的清晰结构便于程序的正确性证明
检查定货单
过期
1000<金额<2000 发通知单、定货单、批准单
金额>2000
不发
不过期
金额>1000
发订货单、批准单
2020/8/19
过程设计语言PDL
• PDL也称为伪码,是用正文形式表示数据和 处理过程的设计工具。
• PDL具有严格的关键字外部语法,用于定义 控制结构和数据结构;另一方面,PDL表示 实际操作和条件的内部语法通常又是灵活 自由的,以便可以适应各种工程项目的需 要。
• 判定表的每一列实质上是一条规则,规定 了与特定的条件组合相对应的动作。
2020/8/19
判定表
判定表由4部
分组成:
所有条件
条件组合
①所有条件
②所有动作
③条件组合
④对应动作
所有动作
对应动作
2020/8/19
例子-判定表
用判定表描述“检查定 货单”的处理逻辑: “如果金额超过1000元 而又未过期,则发出批 准单和提货单。如果金 额超过2000元,但已过 期,则不发出批准单和 提货单。如果金额低于 2000元,则不论是否过 期,都发出批准单和提 货单,而且对低于2000 元已过期的还需发出通 知单”。
2020/8/ቤተ መጻሕፍቲ ባይዱ9
软 件 工 程(8-n)

结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分?
数据流映射的步骤是什么?
什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?
重构
重构是一种重新组织的技术,可以简化构件或模块的
设计或编码而无需改变其功能或行为。
重构是一种改进程序内部结构但不改变代码或设计的
外部行为。 “先使它转起来,再使它快起来”。
小结
设计的基本原理和概念包括模块化、抽象、体系结构、
信息隐蔽、模块独立、逐步求精和重构等。
软件体系结构提供了待建系统的整体视图,它描述软
本质,才能准确分析和处理问题,找到合理的解决方 案。
逐步求精
逐步求精,或称逐步细化,是一种自顶向下的设计策
略。
逐步求精是人类采用抽象到具体的过程把一个复杂问
题趋于简单化控制和管理的有效策略。 抽象和精化是互补的概念。
信息隐藏
信息隐蔽原则建议模块应该具有的特征是:每个模块
对其他所有模块都隐蔽自己的设计决策。
口的数据类型和数目。 分类:
非直接耦合 数据耦合 控制耦合 外部耦合
公共耦合
内容耦合
耦合性分类
弱 强
非直接耦 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合 合 弱耦合 中耦合 较强耦合 强耦合
模块化设计的优化
改进软件结构提高模块独立性 在满足模块化要求的前提下尽量减少模块数量,在满
模块独立性由两个定性标准度量: 模块自身的内聚(Cohesion)),也称为块内联系或 模块强度, 模块之间的耦合(Coupling),也称为块间联系。 模块独立性愈高,则块内联系越强,块间联系越弱。
软件工程class8

第八章共用机制(Common Mechanism)1、引言●共用机制是UML里适用于各种建模元素的公共建模方法●UML的共用机制包括四类:●规格说明●修饰●公用划分●扩充机制●UML的共用机制适用于UML的所有的建模元素●这使得UML模型●易于理解●易于使用●本章介绍其中的两种●修饰和扩充机制。
●UML是用来交流的●它提供了一系列的建模元素,描述软件系统的各方面的特性,通过用UML为软件系统建模,可以达到为软件系统进行说明、视化、建造、建档的目的●UML用图形化、标准化的方式,为软件生产相关人员提供了一种交流的媒介,从这个意义上说●UML是一种语言●作为语言,●其内容是不断的发展的●可能不断产生新的●词汇●概念、●语法规则●UML在这方面也是类似的。
●UML提供了一系列的图形化的标准建模元素●可用于描述软件系统的大多数侧面的特性●但也有可能在某些情形下,由于应用领域特殊性●标准的UML建模元素●无法完整而准确地描述软件系统的分析和设计●这时,需要对UML的标准建模元素进行扩充●以提高模型的表达能力●UML的修饰和扩充机制就是为这个目的而设置的。
●标注●标注是UML修饰机制的一个重要组成部分●当用UML的各种建模元素为软件系统建模时●将遇到关于这些建模元素的复杂的语法、语义、原理、约束、注释等●这些内容对表达问题的某一方面很重要●但又无法通过标准建模元素被完整地表达●这时●可以使用标注●对这些建模元素进行附加说明●例如●在使用序列图来描述一组对象间的交互时●其中的消息的语义、语法无法在消息的名字字串内完整地表达●可以用标注的方法进行直观的说明。
●对于类、模型包、部件等,也可能遇到类似的情形●因此也可以用标注的方法进行补充说明●标注的手段不是软件建模独有的,在其它工业建模领域,标注也是大量存在的●例如,在电子线路图上,可以通过标注对电路的电气特性进行说明。
●除了标注之外,●变体●标记值(tagged value)●约束(constraint)●也是UML扩充机制的组成部分●变体●它用来扩充UML的词汇●有时,UML 的标准建模元素●不足以对现有的问题领域进行描述●例如:在描述交互中的各对象时●如果只用类来对它们进行抽象●将不足以表示某一组不同的类的特殊性质●这时●需要对类进行细分●于是产生了系统作用者的概念。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1 概 述
5. 优点 结构化方法一经问世,就显示出了它的以下几大优点: (1) 简单、实用。 (2) 适合于瀑布模型,易为开发者掌握。 (3) 成功率较高,据美国1000家公司统计,该方法的 成功率高达90.2%,名列第二,仅次于面向对象的方 法。
8.1 概 述
6. 存在问题 结构化方法存在以下一些问题: (1) 对于规模大的项目,特别复杂的应用不太适应。 (2) 难于解决软件重用的问题。 (3) 难于适应需求的变化。 (4) 难于彻底解决维护问题。
3) 结构化分析 20世纪70年代末期,由DeMarco等人提出了SA方法。 该方法旨在减少分析活动中的错误,产生系统的逻 辑模型,其分析的对象是结构化的功能说明;它实 施的原则是面向数据流,基于功能分解,靠人工复 审测试进行验证。
8.1 概 述
3. 基本思想 结构化方法总的指导思想是自顶向下,逐步求精, 它的两个基本原则是抽象与分解。 4. 特点 结构化方法具有以下特点: (1) 它是使用最早的开发方法,使用时间也最长。 (2) 它应用最广,特别适合于数据处理。
西安电子科技大学出版社
第8章 结构化方法
8.1 概 述
结构化方法是软件工程产生以后首先提出来的软 件开发方法,它也是一种实用的软件开发方法, 由结构化分析、结构化设计和结构化程序设计构 成。本章主要介绍结构化分析和结构化设计,结 构化程序设计见3.5.2小节。
8.1 概 述
1. 结构化方法 结构化方法是指根据某种原理,使用一
定的工具,按照特定步骤工作的软件开发方法。 它遵循的原理是自顶向下、逐步求精,使用的工 具有数据流图(DFD)、数据字典、判定表、判定 树和结构化语言等。
结构化方法是从分析、设计到实现都使 用结构化思想的软件开发方法,实际上它由三部
8.1 概 述
2. 发展历程 1) 结构化程序设计
首先出现的是SP,它是20世纪60年代末首先由Dijkstra提出 的,旨在控制程序编制中的复杂性问题。SP被称为软件发展 中的第三个里程碑,Dijkstra提出“GOTO语句可以从高级语 言中取消”,1966年Bohm和Jacopini首次证明了只要三种控 制结构(顺序、选择、重复)就能表达用一个入口和一个出口 的流程图所能表达的任何程序逻辑。他们的工作为结构程序
Hale Waihona Puke 谢谢! 西安电子科技大学出版社
资料搜集
8.1 概 述
2) 结构化设计 20世纪70年代中期L.L.Constantine和
E.Yourdon提出和倡导了结构化设计。在SP取得 重大成功的影响下,Yourdon等人把结构化和逐 步求精的思想由编码阶段应用推广到设计阶段, 后来又扩充到分析阶段,形成了包括SD和SA在内 的基于数据流的系统设计方法。SD的目标在于控 制系统体系结构一级的复杂性,实施原则是基于