软件工程 第10章:关系分析
《软件工程》第10章 软件维护
北京大学远程教育课程
Software Engineering_Chapter10-2
问题定义
计划 时期 可行性论证 及软件计划
需求分析
概要设计 开发 时期
详细设计Байду номын сангаас
编码
测试 运行时期 运行/维护
北京大学远程教育课程
Software Engineering_Chapter10-3
本章主要内容
• 10.1 软件维护的定义,目标与任务 • 10.2 软件维护的类型 • 10.3 软件的可维护性
北京大学远程教育课程
Software Engineering_Chapter10-13
10.2.1 改正性维护(续)
• 实践表明,软件测试和排错不可能完全暴露并改正一个大 型软件系统中的所有错误。 • 经过统计分析,在典型的市场销售的软件包中,还有缺陷 的代码行约占代码总行数的3%。正式投入使用的软件中 含有错误是不足为奇的,即使是已运行多年的软件。 • 改正性维护举例:
北京大学远程教育课程
Software Engineering_Chapter10-6
10.1.3 软件维护的任务
• 一个软件开发机构60%的精力用在维护现有的软件上。随 着产品的增加,这个比例还将不断提高。不仅当前的软件 版本要维护,仍在使用的旧版本和即将投入使用的新版本 也将需要维护。 • 在软件整个运行周期中,不仅要解决原有问题,还要解决 修改过程中产生的新问题。因此软件维护是一个无穷尽的 过程。
Software Engineering_Chapter10-18
10.2.4 预防性维护
• 维护人员不要单纯等待用户提出维护的请求,而应该选择 那些还能使用数年、目前虽能运行,但不久就须作重大修 改或加强的软件,进行预先的维护。预防性维护可以改善 软件的可维护性,减少今后对它们维护时所需要的工作量。
计算机科学与技术专业课课件_软件工程SE_Chapter10
拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取 款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将 来可能还要求使用ATM办理转账、存款等事务。
2013-8-31
上海大学计算机学院
7
ATM系统的需求陈述
择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输 入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用 户。
2013-8-31
上海大学计算机学院
8
建立对象模型
◆面向对象分析首要的工作,是建立问题域的对象 模型。 ◆对象模型描述了现实世界中的“类-&-对象”以 及它们之间的关系,表示了目标系统的静态数据 结构。
上海大学计算机学院
12
候选类—&—对象
银行,自动取款机(ATM),系统,中央计算机,分行计算机, 柜员终端,网络,总行,市,街道,分行,营业厅,储蓄所, 软件,成本,柜员,储户,现金,支票, 账户, 事务,现金兑 换卡,余额,磁卡,分行代码,卡号,副本,访问,用户,信息, 密码,类型,取款额,账单。
●找出所有候选的类-&-对象; ●筛选候选的类-&-对象。
2013-8-31
上海大学计算机学院
11
找出候选的类-&-对象
◆ 非正式分析方法
● 以用自然语言书写的需求陈述为依据,把陈述中的
1) 名词作为类-&-对象的候选者, 2) 形容词作为确定属性的线索, 3) 动词作为服务(操作)的候选者。
2013-8-31
去除冗余
银行,ATM,中央计算机,分行计算机,柜员终端,网络,总行, 市,街道,分行,营业厅,储蓄所,软件,成本,柜员,储户,现 金,支票, 账户,事务,现金兑换卡,余额,分行代码,卡号, 访问,信息, 密码,类型,取款额,账单,通信链路,事务 日志。
关系分析ppt课件
某些消息所指出的接收者可能并不关心这种消息 接收者异地接收和处理消息
10.4 消息连接
5. 消息的接收者是否其他
定向消息
消息定向地发送给其他接受者
广播消息
消息发送给某个范围内所有的可能的接受者
10.4 消息连接
OOA方法,应该识别和表示的主要问题
class3
m1
1
class2
n
10.3 实例连接
三元关联
三类对象之间的联系 如,在“人员”、“项目”和“语言”三类对
象之间可能需要表达这样的关系
“某人员使用某种语言从事某个项目”
class1
class2
class3
第10章 关系分析
1 整体-部分结构 2 一般-特殊结构 3 实例连接 4 消息连接
个对象的依赖关系 对象实例间的一种二元关系 两类对象之间不带属性的实例连接
在具有实例连接关系的类之间画一条连接线将它们 连接起来
连接线的旁边给出表明其意义的连接名 在连接线的两端用数字标明其多重性
10.3 实例连接
实例连接与整体-部分分结构的异同
相同点
都是对象实例间的一种静态关系 都是通过对象的属性来体现的
软件工程
第10章 关系分析
1 整体-部分结构 2 一般-特殊结构 3 实例连接 4 消息连接
对象类与10外.1部的整关体系-部分结构
1. 聚合关系对象之间的整体-部分关系 2. 继承关系:对象类之间的一般-特殊关系 3. 对象之间的静态联系:通对象属性反映的
联系 4. 对象之间的动态联系:对象行为之间的依
不同点
实例连接中的对象之间分不出谁是整体、谁是部分 整体-部分分结构中的对象在实现世界中含有明显的
软件工程第10章 面向对象分析
10.1 面向对象分析的基本过程
10.1.1.概述
面向对象分析,就是抽取和整理用户需求并建立问题域 精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始。 接下来,系统分析员应该深入理解用户需求,抽象出目
标系统的本质属性,并用模型准确地表示出来。 在面向对象建模的过程中,系统分析员必须认真向领域
首先,面向对象分析通过控制读者能见到的层次数目 来控制可见性。
其次,面向对象分析增加了一个主题层,它可以从一 个相当高的层次描述总体模型,并对读者的注意力加 以指导。
10.1 面向对象分析的基本过程
在概念上可以认为,面向对象分析大体上按照下列顺 序进行:
寻找类与对象,识别结构,识别主题,定义属性, 建立动态模型,建立功能模型,定义服务。 但是,分析不可能严格地按照预定顺序进行,大型、 复杂系统的模型需要反复构造多遍才能建成。 分析也不是一个机械的过程。系统分析员必须与领域 专家及用户反复交流,以便澄清二义性,改正错误的 概念,补足缺少的信息。
主要内容
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
10.2 需求陈述
10.2.1. 书写要点
需求陈述应该阐明“做什么”而不是“怎样做”!
应该描述用户的需求而不是提出解决问题的方法。 应该指出哪些是系统必要的性质,哪些是任选的性质。 应该避免对设计策略施加过多的约束,也不要描述系
10.3 建立对象模型
10.3.1. 确定类与对象
类与对象是在问题域中客观存在的,系统分析员的主 要任务就是通过分析找出这些类与对象。 首先找出所有候选的类与对象; 然后从候选的类与对象中筛选掉不正确的或不必
《软件工程》课件第10章 面向对象的Coad方法
第10章 面向对象的Coad方法
3. 设计模型 Coad方法中,面向对象设计模型在面向对象的分 析模型的5个层次上由4个组元构成,如图10.1所示。
第10章 面向对象的Coad方法
从根本上统一思维模式的办法是在系统开发各个 环节中,统一采用人类原有的思维组织模式。人类典 型的思维过程是由三部分来进行组织的,即从现实世 界中区分出特定的客体及其属性;对客体的整体和组 成部分加以区分;对不同种类的客体给出表示,在此 基础上加以区分。面向对象的分析方法就建立在这3个 来自人类自己思维组织模式之上,依照客观世界本来 的规律来开发应用系统。
第10章 面向对象的Coad方法
3. 继承 继承是面向对象设计的另一种基本设计原则。 继承用来表示类之间相似性的一种机制,它简化 了与已定义过的相似类的定义,描述了一般和具体化 关系,在类层次结构和类网络结构中明确地说明了共 同的属性和服务。 这个原则构成了显式表达共同性的重要技术和基 础,继承能使设计者一次确定共同的属性和服务,同 时将这些属性和服务扩展到或限制到具体的实例中, 继承也可用于显示表示共同性。
第10章 面向对象的Coad方法 图10.4 分类结构的符号表示
第10章 面向对象的Coad方法
3) 组装结构 组装结构也是3种系统组织方法之一,它是“has a” 结构。例如,台灯有一个电灯泡,则台灯和电灯泡就是 这种结构的例子。台灯是整体,而电灯泡则是台灯的组 成部分之一。组装结构的表示如图10.5所示。整体类放 在图的顶部,部分类放在图的下端,用线把它们连起来, 用三角形表示这是一个组装结构的形式。连线上的数字 和范围表示了整体所包含的部分的数目。
软件工程 第10章 面向对象的方法
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。
2.对象具有状态,描述对象的状态用它的_属性值_____。
3.对象的抽象是_类_____。
4.类之间有两种结构关系,它们是分类关系和__组装____关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。
6.动态模型描述了系统的__动态行为____。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。
第10章软件工程标准化及软件
软件工程标准化
1、软件工程功能标准框架
⑥数据:包括判定表规范、文档编制符号和约定、程序结构 和约定及其表示、计算机系统配置图符号和约定、软件状态转换 的人际通信的表示、基于计算机的应用系统的文档编制指南、软 件生存周期过程信息产品的内容指南、软件工程数据定义和交换 及高级Petri网等。
2、基于软件生存周期过程的软件工程路径框架
(11)开发进度月报
(6)详细设计说明书
(12)项目开发总结报告
(13)维护修改建议
软件文档
4、软件文档的编制要求
高质量的文档应当体现在以下几个方面: 准确、简明、完整、 灵活、有针对性、可追溯性。 为了能够编写出高质量的文档,应注意以下一些问题:
(1)应根据具体的软件开发项目,决定编制的文档种类。 (2)当所开发的软件系统非常大时,一种文档可以分成几卷编写。 (3)应根据任务的规模、复杂性,确定文档的详细程度。 (4)对国标中所建议的所有条款都可以扩展,以适应需要。 (5)程序的设计可采用多种表现形式。 (6) 文档的表现可以使用自然语言、也可以使用形式化的语言。 (7)当可以建立一些特殊的文档种类要求。
④技术:技术标准的框架以及相关国际标准如图10-7。包括 软件产品评价、软件过程评估、软件可信性、科技系统功能安全 的风险分析、功能人员和材料资源:包括TR15504-6:《软件过程评估第6 部分:评估员资格指南》和《计划中的对于知识软件工程体指南 的快速批准》。
(4) 质量保证标准(ISO9001~ISO9003)之间及其 与质量管理标准(ISO9004-1)的关系
①ISO9001、9002、9003质量保证标准之间的关系 从用途上看,它们各自独立,但它们内在有着紧密的关
系。ISO9003是最终检验和试验质量保证模式,含16项体系 要素,是三者中要求提供证据最少的质量保证模式; ISO9002是生产、安装和服务的质量保证模式,含19项体系 要素,ISO9002包容了ISO9003的要素;ISO9001是设计、 开发、生产、安装和服务的质量保证模式,含20项体系要 素,ISO9001包容了ISO9002的要素。
软件工程简答题答案 第五版
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
软件工程 第10章 软件开发环境
软件工程第10章软件开发环境在当今数字化的时代,软件已经成为了推动社会发展和变革的重要力量。
而软件开发环境则是软件工程师们施展才华、创造优秀软件产品的关键舞台。
软件开发环境是什么呢?简单来说,它是一组集成的工具、设施和流程,旨在支持软件开发的整个生命周期,从需求分析、设计、编码、测试到维护。
一个良好的软件开发环境能够极大地提高开发效率和软件质量。
想象一下,如果开发者们在一个混乱、缺乏有效工具和协作机制的环境中工作,就如同在黑暗中摸索,不仅进展缓慢,还容易出错。
而拥有了合适的开发环境,就像是有了明亮的灯塔指引,能够让开发工作更加顺畅、高效。
首先,软件开发环境包含了各种开发工具。
这些工具涵盖了多个方面,比如代码编辑器,它为开发者提供了一个舒适、便捷的编写代码的界面,具备语法高亮、自动补全等功能,帮助开发者更轻松地写出准确无误的代码。
还有版本控制系统,它能够记录代码的变更历史,让团队成员可以方便地协同工作,并且在出现问题时能够快速回滚到之前的稳定版本。
编译器和解释器也是必不可少的工具。
它们将开发者编写的源代码转换为可执行的程序,确保代码能够在目标平台上正确运行。
此外,调试工具能够帮助开发者找出代码中的错误和问题,提高程序的稳定性和可靠性。
除了工具,软件开发环境还包括了开发框架和库。
开发框架为软件开发提供了一种结构化的方式,规定了代码的组织方式、模块之间的交互方式等,使得开发者能够更快速地搭建起软件的架构。
库则是预先编写好的代码模块,提供了各种常见的功能,如数据处理、图形显示、网络通信等,开发者可以直接调用这些库,避免重复造轮子,从而节省开发时间。
软件开发环境中的集成开发环境(IDE)也是一个重要的组成部分。
IDE 通常将多种开发工具集成在一起,提供了一个统一的界面,让开发者能够在一个地方完成代码编写、调试、编译、版本控制等一系列操作。
常见的 IDE 有 Visual Studio、Eclipse、IntelliJ IDEA 等,它们都具有强大的功能和友好的用户界面,深受开发者的喜爱。
《软件工程与项目管理》第10章-软件项目管理
项目收尾过程
要点一
验收项目成果
组织相关干系人对项目成果进行验收,确保项目目标已实 现。
要点二
总结经验教训
对项目执行过程中的经验教训进行总结,为今后的项目提 供借鉴和改进依据。
04
软件项目管理工具与技术
项目管理软件工具
微软Project
Trello
一款功能强大的项目管理软件,提供 项目计划制定、任务分配、进度跟踪 等功能。
进度与Hale Waihona Puke 本的控制进度与成本控制挑战
软件开发过程中,进度延误和成本超 支是常见问题。
解决方案
制定详细的项目计划,合理分配资源 ,加强项目监控和调整,确保项目按 计划进行并控制成本。
质量保证与测试
质量保证与测试挑战
软件质量是软件项目的核心要求之一,但质量保证与测试过程中可能存在疏漏 和不足。
解决方案
Extreme Programming
一种敏捷开发方法,强调编程实践和持续集成,适合需求变化频繁 的项目。
统一过程方法
统一建模语言(UML)
一种用于软件工程的标准化建模语言,支持从需求分析 到系统设计的全过程。
统一过程(UP)
一种结构化的软件开发过程,包括初始阶段、细化阶段 、构建阶段和交付阶段。
保证按时交付
降低风险
通过有效的进度管理和时间安排,可以确 保软件按时交付给客户。
项目管理有助于识别和评估软件开发过程 中可能出现的风险,并采取相应的措施来 降低或消除这些风险。
软件项目管理的历史与发展
20世纪60年代
软件工程的概念开始出现, 人们开始意识到软件开发需 要系统化的管理方法。
20世纪80年代
预测完成项目所需的总成本。
计算机科学导论:第十章-软件工程
十软件工程软件工程是建立在这样一个基础上,即利用合理的工程方法和原则来获得在真实机器上工作的可靠软件10.1 软件的生命周期软件最初由开发者小组开发。
通常,在它需要修改之前会使用一段时间。
由于软件中会发现错误、设计改变规则或公司本身发生变化,这些都导致需要经常修改软件。
为长久使用考虑软件应该被修改。
使用和修改,这两个步骤一直进行下去直到软件过时。
“过时”意味着因效率低下、语言过时、用户需求的重大变化或其他因素而导致软件失去它的有效性。
开发过程模型开发过程包括4个阶段:分析、设计、实现和测试最常见的两种开发过程模型1.瀑布模型: 开发过程只有一个方向的流动,这意味着前一个阶段不结束,后一个阶段不能开始优缺点–优点:在下一个阶段开始前每个阶段已经完成–缺点:如果过程中一部分有问题,必须检查整个过程1.增量模型(迭代模型): 软件的开发要经历一系列步骤。
开发者首先完成整个系统的一个简化版本,这个版本表示了整个系统,但不包括具体的细节10.2 分析阶段整个开发过程始于分析阶段,这个阶段生成规格说明文档,这个文档说了软件要做什么,而没有说明如何去做分析阶段的两种独立方法•面向过程分析:依赖于实现阶段使用过程编程语言•面向对象分析:依赖于实现阶段使用面向对象编程语言面向过程分析如果实现阶段使用过程式语言,那么面向过程分析(也称为结构化分析或经典分析)就是分析阶段使用的方法。
这种情况下的规格说明有使用多种建模工具•数据流图: 数据流图显示了系统中数据的流动。
•实体关系图: 用于数据库设计•状态图: 它通常用于当系统中的实体状态在响应事件时将会改变的情况下面向对象分析如果实现阶段使用面向对象语言,那么面向对象分析就是分析阶段使用的方法。
规格说明文档至少使用下列几个工具,•用例图: 给出了系统的用户视图:它显示了用户与系统间的交互。
4种组件–系统、用例、动作者和关系。
•系统(用矩形表示)执行功能。
•系统中的行动由用例(圆角的矩形)显示•动作者(线条人物)是使用系统的某人或某事。
张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】
第10章面向对象分析一、选择题1._____是系统一个特定执行期间所发生的事件序列。
【答案】脚本2.功能模型描述系统内的计算,它和_____、_____共同构成系统模型结构的三大支柱。
【答案】对象模型;动态模型3.状态是对象的_____、_____的一种抽象。
【答案】属性值;链接4.在对象模型中,访问操作是直接从类的_____和_____中导出的。
【答案】属性;关联5.对象模型为建立_____和_____,提供了实质性框架。
【答案】动态模型;功能模型6.功能模型由多个_____组成,每个_____说明了操作和结束的含义。
【答案】数据流图;数据流图7.功能模型由多张数据流图组成。
数据流图中包含_____、_____、_____对象和_____对象。
【答案】处理;数据流;动作;数据存储8.事件跟踪图用来表示_____、_____对象和_____对象。
_____和_____可用一条垂直线表示,各_____用水平箭头表示,箭头方向是从_____对象指向_____对象。
【答案】事件;事件的接收;发送;接收对象;发送对象;事件;发送;接收9.状态转换图是_____的重要工具。
【答案】启发分析员认识对象服务10.说明一个状态可采用_____、_____、_____、_____、_____等内容描述。
【答案】状态名;状态目的描述;产生该状态的事件序列;表示状态特征的事件;在状态中接收的条件二、填空题1.一个()能用不同的方法表示它的特征。
A.事件B.抽象C.状态D.脚本【答案】C【解析】状态是对象的属性值和链接的一种抽象。
根据影响对象总的行为的性质,一系列组合在一起是一个状态。
它能用不同的方法表示它的特征。
2.在对象模型中,访问操作是直接从类的属性和关联中导出的。
下列不是对象模型的访问操作的是()。
A.查询B.动作C.抽象D.活动【答案】C【解析】对象模型的访问操作主要包括三大类:查询、活动和动作。
3.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
第10章 软件产品线体系结构
图注:
通常/主版本
从整体来看,软件产品线的发展过程有三个阶段,开发阶段、 配置分发阶段和演化阶段。
引起产品线体系体系结构演化的原因:产品线与技术变化的 协调、现有问题的改正、新功能的增加、对现有功能的重组以允 许更多的变化等等。 产品线的演化包括产品线核心资源的演化、产品的演化和产 品的版本升级。这样在整个产品线就出现了:核心资源的新旧版 本、产品的新旧版本和新产品等。它们之间的协调是产品线演化 研究的主要问题。
10.4 软件产品线基本活动
◇ 产品线基本活动
产品线开发
核心资 源开发
产品开发
管理
领域工程
应用工程
第10章 软件产品线体系结构
10.4 软件产品线基本活动
◇ 产品线分析
产品计划 产品线分析
资源开发 产品开发 (资源使用)
确认机遇
决策者
产品线开发
最终用户
产品
产品线开 发人员
第10章 软件产品线体系结构
◎ 产品线就是由在系统的组成元素和功能方面具有共性和个性的相 似的多个系统组成的一个系统族。
◎ 软件产品线就是在一个公共的软件资源集合基础上建立起来的, 共享同一个特性集合的系统集合(Bass,Clements和Kazman)。 ◎ 一个软件产品线由一个产品线体系结构、一个可重用构件集合和 一个源自共享资源的产品集合组成,是组织一组相关软件产品开发 的方式(Jan Bosch)。
◇ 软件产品线的过程模型
2、SEI模型
产品线开发
核心资 源开发
产品开发
管理
领域工程
应用工程
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 软件产品线的过程模型
精品文档-软件技术基础(鲍有文)-第10章
第10章 面向对象软件工程
2) 建立对象之间的联系 各个对象在系统中并非独立存在,只有定义和描述了对象 类之间的关系,各个对象类才能构成一个完整的系统模型。 对象模型图中,对象及类间的关系主要有4种:一般/特殊 关系、整体/部分关系、实例关联和消息连接。
第10章 面向对象软件工程 (1) 一般/特殊关系。识别类之间的一般/特殊关系要考虑
第10章 面向对象软件工程
把众多的事物归纳并划分为不同的类是人类在认识客观世 界时经常采用的思维方法,分类的原则是抽象,从那些与当前 目标有关的本质特征中找出事物的共性,并将具有共同性质的 事物划分成一类,得出一个抽象的概念。例如,学生、教师、 学校等都是一些抽象的概念。类的概念使我们能对属于该类的 全部个体事物进行统一的描述,“学生具有学号、姓名、性别、 年龄,能够入学注册、选课等”,这个描述适合所有学生,而 不必对每一个具体的学生进行描述。
在一般/特殊关系中,可以将共同的属性放在上层,将特 有的属性放在下层,将共同的方法放在上层,而将特有的方法 放到下层,如图10-4所示。
第10章 面向对象软件工程 图 10-4 一般/特殊关系举例
第10章 面向对象软件工程
第10章 面向对象软件工程 2) 类 类(Class)是具有相同属性和服务的一组对象的集合,它
为属于该类的全部对象提供了统一的抽象描述,其内部包括属 性和服务两个主要部分。类好比是一个对象模板,用它可以产 生多个对象。类所代表的是一个抽象的概念或事物,在客观世 界中实际存在的是类的实例,即对象。例如,在学校教学管理 系统中,“学生”是一个类,其属性具有学号、姓名、 性别 等,可以完成的操作有“入学注册”、“ 选课”等。学生 “王平”是一个具体的对象, 也是“学生”类的一个实例。
《软件工程实用教程》第10章_软件工程标准与文档
第10章 軟體工程標準與文檔
10.2.4 軟體文檔的品質要求 (1)針對性 (2)精確性 (3)清晰性 (4)完整性 (5)靈活性 (6)可追溯性
第10章 軟體工程標準與文檔
本章學習內容: 1.掌握軟體工程標準的層次、類型 等概念 2.明確軟體文檔的編寫要求 3.熟悉軟體文檔的主要內容 4.理解軟體文檔的重要作用
第10章 軟體工程標準與文檔
10.1 軟體工程標準
10.1.1 軟體工程標準 專業基礎標準(軟體工程術語,流程圖,系統配置圖 軟體開發與文檔編制(軟體生存期過程,軟體生存期過 程使用指南,配置管理,維護) 軟體品質保證(軟體品質保證計畫,軟體品質特性,內 部度量,外部度量) 軟體產品評價(ISO/IEC 14598系列標準) 軟體過程評估(ISO/IEC 15504系列標準) 軟體品質體系與認證(ISO9000系列標準) 軟體能力評估(軟體能力成熟度模型,關鍵慣例,過程 剪裁和軟體能力成熟度模型,成熟度模型評估框架) CASE工具
第10章 軟體工程標準與文檔
10.1.2 軟體工程標準的層次 1.國際標準 2.國家標準 3.行業標準 4.企業規範 5.專案規範
第10章 軟體工程標準與文檔
10.1.3 軟體工程國家標準 GB/T16260-1996 資訊技術 軟體產品評價 品質特性 及其使用指南 GB/T17544-1998 資訊技術 軟體包 品質要求和測試 GB/T8567-1988 電腦軟體產品開發檔編制指南 GB/T9385-1988 電腦軟體需求說明編制指南 GB/T9386-1988 電腦軟體測試檔編制規範 GB/T11457-1995 軟體工程術語 GB/T12504-1990 電腦軟體品質保證計畫規範 GB/T12505-1990 電腦軟體配置管理計畫規範 GB/T13423-1992 工業控制用軟體評定準則 GB/T13502-1992 資訊處理 程式構造及其表示的約定 GB/T13702-1992 電腦軟體分類與代碼
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/1/20
广东工业大学计算机学院
20
10.1.8 调整对象层和属性层
对于每个整体-部分分关系,整体对象中要增加一 个属性来表明它的部分对象。在该属性的详细说明 中要给出这个属性的数据类型。如果是紧密的结构, 用部分对象的类作为其数据类型;如果是松散的结 构,用对象指针或对象标识作为其数据类型。
广东工业大学计算机学院
29
10.2.5 多继承及多态性问题
按照问题域和系统实际要求,如果类之间的关系是 多继承的,则应该建立多继承的一般-特殊结构。 OOA模型应该如实地映射问题域,所以在OOA中 暂不考虑实现条件,按问题域和系统责任的原貌建 立结构,到OOD时再根据具体的实现条件作必要 的调整。
2019/1/20
广东工业大学计算机学院
30
图10-7是一个多继承结构的例子
人员
名字
学生老师 来自人员类 来自学生类 名字 ...... 学号 ...... 所教课程 ...... ...... 老师学生类中定义 ......
..... ......
学生
老师
学号 专业
Hale Waihona Puke ..... ......所教课程 专业
2019/1/20
广东工业大学计算机学院
15
10.1.6 支持软件复用
在整体-部分分结构中通过组装而支持软件 复用是OO方法颇受重视的优点之一。在以 下两种情况下都可以运用整体-部分分结构 而实现或支持复用。 一种情况是在两个或更多的对象类中都有一 组属性和服务描述这些对象的一个相同的组 成部分。
2019/1/20
广东工业大学计算机学院
21
10.2 一般-特殊结构
10.2.1 一般-特殊结构及其用途 一般-特殊结构是由一组具有一般-特殊关系(继承 关系)的类所组成的结构。以两种方式给出了一般 类和特殊类的定义,从类的特征来看:如果类A具 有类B的全部属性和全部服务,而且具有自己特有 的某些属性或服务,则A叫作B的特殊类,B叫做A 的一般类。从类集合的元素来看:如果类A的全部 对象都是类B的对象,而且类B中存在不属于类A 的对象,则A是B的特殊类,B是A的一般类。这两 种定义本质上说是等价的。
2019/1/20 广东工业大学计算机学院 19
缺陷:对象反复删除/加入;二是不变化的属性, 要把旧对象中的信息复制到新对象中;三是概念一 个对象仅因一些特征变化,就让它全部变化。 2. 表示数量不定的组成部分 一个对象中若含有某种数量不定而内容相同的组成 部分,则会给实现带来困难。例如“书”这种对 象]
24
图10-6 一般-特殊结构连接
一般类
一般类
特殊类 特殊类 特殊类
特殊类
- 特殊结构连接符 ( a) 一 般 -- 特殊结构 (b)完 整 的 一 般 --
2019/1/20
广东工业大学计算机学院
25
10.2.3 如何发现一般-特殊结构
1. 按常识考虑事物的分类 问题域现行的分类方法往往比较正确地反映了事物 的特征、类别以及各种概念的一般性与特殊性。 2. 学习问题域的分类学知识 问题域现行的分类方法往往比较正确地反映了事物 的特征、类别以及各种概念的一般性与特殊性。 3. 按照一般-特殊结构的定义分析 按照一般-特殊结构的两种定义,引导两种思路。 一是把每个类看作一个对象集合,分析集合间的包 含关系。二是看一个类是不是具有另一个类的全部 特征。
一般-特殊结构的表示法,是用一般-特殊结构连接 符来连接该结构中的每个类,如图10-6所示。其 中图10-6(a)是一般-特殊结构连接符,从圆弧 引出的连线连接到一般类,从直线分出的连线连接 到每个特殊类。图10-6(b)是一个完整的一般特殊结构,它包括结构中的每个类。
2019/1/20
广东工业大学计算机学院
2019/1/20
广东工业大学计算机学院
11
问题域中事物之间的组成关系表现为多种方式。从 多种方式考虑事物之间的组成情况是发现整体-部 分分结构的基本策略。考虑以下几个方面: 1. 组织机构和它的下级组织及部分 2. 物理上的整体事物和它的组织部分 3. 组织与成员 4. 抽象事物的整体与部分 5. 一种事物在空间上包容其他事物 6. 具体事物和它的某个抽象方面
广东工业大学计算机学院
4
图10-1 整体-部分分结构的方式
部 分 对 象 整 体 对 象
整 体 对 象
整体对象
部 分 对 象 部 分 对 象 部 分 对 象
(a)对 象 指 针 或 对 象 标 识
嵌套对象 (b)镶 套对象
2019/1/20
广东工业大学计算机学院
5
2019/1/20
广东工业大学计算机学院
9
图10-2 组合关系的图形
整体
1 m 部分1
n m 部分2
2019/1/20
广东工业大学计算机学院
10
10.1.3 如何发现整体-部分分结构
整体-部分分结构可以清晰地表达问题域中 事物之间的组成关系,同时它又是一种用途 更为广泛的系统构造手段。这里讨论如何从 问题域发现整体-部分分结构。
2019/1/20
广东工业大学计算机学院
16
另一种情况是系统中已经定义了某类对象, 在定义其他对象时,发现其中一组属性和服 务与这个已定义的对象是相同的,那就不必 再重复地定义这些属性与服务,只需建立它 与前一类对象之间的整体-部分分结构。
2019/1/20
广东工业大学计算机学院
17
例如,在一个机械加工厂的生产管理系统中,各种 机床、起重机和电动送料车等对象类中都有一组属 性和服务,描述这些对象中所装配的电动机。
2019/1/20
广东工业大学计算机学院
13
2. 是否属于问题域 整体-部分结构中的整体对象和部分对象都应该属 于当前的问题域,否则就不需要这个结构。 3. 是否有明显的整体-部分分关系 如果两个对象之间不能明显地分出谁是部分、谁是 整体,则不应该用整体-部分结构表示。 4. 部分对象是否有一个以上的属性 如果部分对象只有一个属性,应考虑把它取消,合 并到整体对象中去,变为整体对象的一个属性即可。
2019/1/20 广东工业大学计算机学院 12
10.1.4 审查与筛选
按10.1.3节所说的策略可以发现许多候选 的整体-部分分结构,但仍然需要进行审查 与筛选,可以从以下几方面考虑其是否需要: 1. 是不是系统责任的需要仅当结构中的整体
对象和部分对象都是系统责任需要的,并且两者之 间的整体-部分关系也是系统责任要求表达的,才 有必要建立这个结构
27
10.2.4 审查与调整
1. 是否符合分类学的常识 一般-特殊结构中各个类之间的关系应该符合分类 学的常识和人类的日常思维方式。检查方法是用 “is-a-kind-of”关系来衡量每一对一般类与特殊 类。 2. 系统责任是否需要这样的分类 在一个候选的一般-特殊结构中,特殊类与特殊类 以及一般类与特殊类之间,虽然从概念上讲是有所 区别的,但是系统责任却未必要求做出这样的区别。
广东工业大学计算机学院
8
10.1.2 表示法 图10-2是表示组合关系的图形符号。图中 上部是一个整体对象,下部是组成该组合关 系的方向:从三角形顶角引出的线指向整体 对角。三角形标记表明组合关系的方向:从 三角形顶角引出的线指向整体对象,从三角 形底边中点画出的线连到部分对象。通常, 把整体对象画在图的上部而把部分对象放在 下部,这样安排有助于模型的理解。
实现方法: class A { public: class B //定义在类A中的类 { public: …
2019/1/20
广东工业大学计算机学院
6
private:
… } void f(); private : int a;
}
2019/1/20
广东工业大学计算机学院
7
2019/1/20
2019/1/20
广东工业大学计算机学院
18
10.1.7 整体-部分分结构的进一步运用
整体-部分分结构是一种表达能力很强的系统构造 手段,还可以把它作为一种改进系统构造和解决某 些棘手问题的有效手段。 1. 表示动态变化的对象特征 对象的某些属性与服务在系统的运行和演化过程中 发生动态的变化。例如:系统中的“人员”对象。 在系统运行中随着时间的推移人员身份在发生变 化。 一般解决办法是删除旧的对象而用另一个类创建一 个新对象。
2019/1/20 广东工业大学计算机学院 22
一般类的特征集合则是特殊类集合的真子集;而特 殊类的对象实例集合是一般类对象实例集合的真子 集,如图10-5所示。
特征集合 对象实例集合 一般类的 特征 特殊类的特征 特殊类 一般类
2019/1/20
广东工业大学计算机学院
23
10.2.2 表示法
2019/1/20 广东工业大学计算机学院 26
4. 考察类的属性与服务 考察:一看一个类的属性服务是否适合这个类的全 部对象。另一方面检查是否有两个类含有一些共同 的属性的服务。 5. 考虑领域范围内的复用 可是考虑到它在同一个领域的可复用性。
2019/1/20
广东工业大学计算机学院
2019/1/20 广东工业大学计算机学院 3
10.1 整体-部分结构 整体 - 部分分关系反映了对象之间的构成关 系,它也称为聚集关系。 10.1.1 整体-部分结构及其用途 用于描述系统中各类对象之间的组成关系, 通过它可以看出某个类的对象以另外一些类 的对象作为其组成部分。