软件工程导论第十章

合集下载

《软件工程导论》张海潘第五版清华课后答案

《软件工程导论》张海潘第五版清华课后答案
第四章答案
了解结构化开发方法的核心概念和工具,提供 对练习问题的参考答案。
面向对象开发方法
第五章
深入探讨面向对象开发方法的理论和实践,学习如何设计和构建强大的面向 对象软件系统。
课后答案
第一章答案
掌握软件工程概述的关键知识点,提供练习题 的答案以加深理解。
第三章答案
学习需求分析和建模的实际应用,提供对课后 习题的详细解答。
第二章答案
了解软件生命周期的各个阶段,掌握解决实践 问题的方法和技巧。
《软件工程导论》张海潘 第五版清华课后答案
欢迎来到《软件工程导论》张海潘第五版清华课后答案的世界。让我们一起 探索这门令人兴奋的学科,并发现其中的奥秘和乐趣。
课本信息
书名:《软件工程导论》
作者:张海潘
版本:第五版
出版社:清华大学出版社
作者简介
张海潘
张海潘是一位资深的软件工程教授,拥有丰富的教学和研究经验。他对软件 开发过程和方法论有着深入的研究,并致力于培养下一代的软件工程师。
章节导引Biblioteka 1第二章:软件生命周期
2
深入研究软件项目的整个生命周期,了
解每个阶段的任务和活动。
3
第四章:结构化开发方法
4
介绍结构化开发方法的基本原理和技术, 帮助开发人员构建可靠和易维护的软件。
第一章:软件工程概述
了解软件工程的基本概念和原理,掌握 软件工程的核心思想和目标。
第三章:需求分析与建模
学习如何捕捉用户需求并进行有效的需 求分析和建模。

软件工程导论张海藩课后习题答案(完整版)

软件工程导论张海藩课后习题答案(完整版)

作业及解答(第4章)
其中, ✓符号∷=表示定义为; ✓符号[...]表示可选项; ✓符号a|b表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字符 串中是否含有合法的浮点二进制数。试对这个有穷状态机进 行规格说明。
作业及解答(第4章)
该有穷状态机的初态是“等待字符串输人”。在初态若接收 到字符十、或字符一、或二进制位,则进人“输人尾数” 状态;在初态若接收到其他字符,则进人终态“非浮点二 进制数”。在“输人尾数”状态若接收到二进制位,则保 持该状态不变;若接收到字符 E ,则进人“等待输人指数 ”状态;若接收到其他字符,则进人终态“非浮点二进制 数”。在“等待输人指数”状态若接收到字符+、或字符 一、或二进制位,则进人“输人指数”状态;若接收到其 他字符,则进人终态“非浮点二进制数”。在“输人指数 ”状态若接收到二进制位,则保持该状态不变;若输人其 他字符,则进人终态“非浮点二进制数”;若输人结束, 则进人终态“浮点二进制数”。
E2 病人
F2生理信号
E3 时钟
F3日前、时间
F5安全范围 D2患者安全范围
P2 分析信号
危及病人信息
P3 产生警告信息
F2生理信号
F4警告信息
P1 接收信号
F2生理信号
E1 护士
P4 定时取样 生理信号
定时的生理信号 F6日志
P5 更新日志
D1患者日志
E1 护士
F6日志 F1要求报告
P6 产生病情报告
(3) 假设在1995年存储器字长为32位,一名程序员每天可 开发出30条指令,程序员的月平均工资为6000美元,重 复(1)、(2)题。
作业及解答(第1-2章)
(1)在1985年对计算机存储容量的需求,估计是

软件工程导论_张海藩(第五版)课后习题答案

软件工程导论_张海藩(第五版)课后习题答案

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

软件工程导论复习重点总结很全(第六版)(精)

软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机的典型表现:(1对软件开发成本和进度的估计常常很不准确;(2用户对“已完成的”软件系统不满意的现象经常发生;(3软件产品的质量往往靠不住;(4软件常常是不可维护的;(5软件通常没有适当的文档资料;(6软件成本在计算机系统总成本中所占的比例逐年上升;(7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

1.1.2 产生软件危机的原因(1与软件本身的特点有关(2与软件开发与维护的方法不正确有关1.1.3 消除软件危机的途径对计算机软件有正确的认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。

应该开发和使用更好的软件工具。

总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。

1.21.2.1 软件工程的介绍软件工程:是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(期中考软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2 软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性1.2.3 软件工程方法学软件工程包括技术和管理两方面的内容。

软件工程导论_第十章

软件工程导论_第十章

2. OOA基本任务是:
运用面向对象的方法,对问题域和系统责任 进行分析和理解,找出描述问题域及系统责任所需的 对象,定义对象的属性、服务以及它们之间的关系。 目标是建立一个符合问题域、满足用户功能需求的 OOA模型。
问题域:被开发系统的应用领域,记载现实世界中要
由这个系统进行处理的业务范围。现实世界中系统 所要解决问题的领域为“问题域”,如“银行业务” 属于“银行的问题域”。 系统责任:所开发的系统应该具备的职能。
• “小镇”是牙科诊所的地址属性,不是独 立的对象;“软件系统”和“系统”是 同义词,指的是将要开发的软件产品, 不是问题域中的对象;“就诊时间”、 “预约时间”和“约定时间”在本问题 陈述中的含义相同,指的都是预约的就 诊时间,实际上,预约的就诊时间既包 括日期又包括时间,但是,它们是预约 登记表包含的属性,不是问题域中的独 立的对象;“名字”和“姓名”是同义 词,应该作为病人和预约登记表的属性;
我们目标是尽可能全面的发现属性,宁可多费时, 也不要遗漏所需要的属性。
10.3.5 识别继承关系
继承关系的建立实质上是知识抽取过程,它应该 反映出一定深度的领域知识,因此必须有领域专家密 切配合才能完成。通常,许多归纳关系都是根据客观 世界现有的分类模式建立起来的,只要可能,就应该 使用现有的概念。
10.3 建立对象模型(类图)
1. 描述系统静态的对象模型(类图)是面向对象
的三个模型中的基本模型。 2. 它表述了系统中各个对象的类型及其间存在 的各种关系。在面向对象建模中,建立类图是最 基本的任务;建立类图也是最需要花费精力和时 间的技术活动。
3. 该模型主要关心系统中的:
①对象的结构; ②属性; ④关联; ⑤类的层次。 ③操作和方法;

软件工程导论(第六版)张海藩课后习题部分答案(20201006230822)

软件工程导论(第六版)张海藩课后习题部分答案(20201006230822)

第一章1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学( 2 种):1. 传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护 3 个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点: 1. 可强迫开发人员采用规范的方法; 2. 严格规定了每个阶段必须提交的文档;3. 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点: 1. 在软件开发初期,指明用户全部需求是困难的; 2. 需求确定后,经过一段时间才得到软件最初版本; 3. 完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点: 1 满足用户需求程度高; 2 用户的参与面广; 3 返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。

软件工程导论课件(第六版)(张海潘编著)(1-13章)

软件工程导论课件(第六版)(张海潘编著)(1-13章)

13
件,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量的 软件并有效地维护它,这就是软件工程。
第1章 软件工程学概述
1.2.1
软件工程的介绍
1.2 软件工程
1968年在第一届NATO会议上曾经给出了软件工程的一个
14
早期定义:“软件工程就是为了经济地获得可靠的且能在 实际机器上有效地运行的软件,而建立和使用完善的工程 原理。” 1993年IEEE进一步给出了一个更全面更具体的定义: “软件工程是: ①把系统的、规范的、可度量的途径应用 于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。
第1章 软件工程学概述
1.2.1
软件工程的介绍
1.2 软件工程
软件具有的本质特性
软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 必须有效地支持它的用户 两种背景的人创造产品这个特性与前两个特性紧密相关
15
第1章 软件工程学概述
充分认识到软 2件开发不是某 种个体劳动的 神秘技巧 , 而应该是各类 人员协同配合, 共同完成的工 程项目。 推广使用在实 3践中总结出来 的开发软件的 成功的技术和 方法,并且研 究探索更好更 有效的技术和 方法。
11
首先应该对计 1算机软件有一 个正确的认识。
应该开发和使 4用更好的软件 工具。
1.4 软件过程
1.4 软件过程
1.4.1 瀑布模型
34
瀑布模型一直是唯一被广泛采用的生命周期模型,现在它 仍然是软件工程中应用得最广泛的过程模型。如下图所示为 传统的瀑布模型
图1.2传统的瀑布模型如图1.2所示为传统的瀑布模型。

软件工程(第10版)读书笔记——软件工程导论

软件工程(第10版)读书笔记——软件工程导论

软件⼯程(第10版)读书笔记——软件⼯程导论第⼀章 概述1.软件⼯程产⽣的背景: ⾯对不断增长的系统复杂性,导致软件项⽬⾯临不可靠,费⽤超预期,延迟交付等问题,需要采⽤有效的软件⼯程⽅法来应对。

2.好的软件的基本特性:可接受性,可依赖性和信息安全性,效率,可维护性。

3.软件过程:实现软件产品开发的活动序列。

包括:软件规格说明,软件开发,软件确认,软件演化。

4.软件⼯程职业道德(ACM/IEEE-CS软件⼯程职业道德和⾏为准则)第⼆章 软件过程1.背景:没有放之四海皆准的软件过程,但需要不断改进组织中落后的软件过程技术。

要充分利⽤⼯业界软件⼯程的最佳实践,或者引⼊UML建模和测试驱动等开发技术来改进⾃⼰的过程。

2.通⽤的软件过程模型:- 瀑布模型(要求早期的承诺并且在实施变更时要进⾏系统返⼯,仅适⽤嵌⼊式系统,关键性系统,⼤型软件系统):a.需求分析及定义;b.系统及软件设计c.实现和单元测试d.集成和系统测试e.运⾏和维护- 增量式开发(每⼀增量版本包括⽤户需求的⼀部分功能)优点:a.降低需求变更成本;b.及时得到客户的反馈意见;c.客户在较早期可以获得可以交付和部署的未包括所有功能版本。

存在问题:a.过程不可见,因为系统快速迭代,要产⽣反映每个版本的⽂档不合算。

b.增量式开发容易使系统结构退化,敏捷⽅法建议定期对软件进⾏重构。

- 集成与配置(⾯向复⽤的软件⼯程)优点:减低软件开发量,降低成本和风险缺点:不完全满⾜客户的真实需求;对可复⽤构件的新版本不可控制,失去对系统演化的控制。

3.过程改进⽬的:通过理解当前的软件过程,对其进⾏改变以提⾼产品质量,降低成本和开发时间。

⽅法:过程成熟度⽅法(软件过程成熟度等级反馈好的技术和管理实践多⼤程序得到应⽤)敏捷⽅法(最好的过程是额外开销最低的过程)第三章 敏捷软件开发1.敏捷⽅法原则a.客户参与b.拥抱变化c.增量交付d.保持简洁e.⼈⽽不是过程2.敏捷开发技术(极限编程)极限编程开发实践a.⽤户故事(开发团队将⽤户场景分解为任务,并预计所需⼯作量及资源)b.重构(局部修改可能导致软件结构退化,重构改进软件结构及可读性)c.测试先⾏的开发d.结对编程(系统共有共责,⾮正式评审,⿎励重构)3.敏捷项⽬管理(scrum敏捷⽅法)⽬的:解决敏捷项⽬团队的时间和资源能否充分利⽤。

(完整word版)软件工程导论(第6版)(word文档良心出品)

(完整word版)软件工程导论(第6版)(word文档良心出品)

第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。

2.如何维护数量不断膨胀的已有软件。

具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。

2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。

4.软件常常是不可维护的。

5.软件通常没有适当的文档材料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。

软件配置:程序、文档和数据。

软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。

软件:是程序、数据及相关文档的集合。

程序:是能够完成预定功能和性能的可执行的指令序列。

数据:是使程序能够适当地处理信息的数据结构。

文档:是开发、使用和维护程序所需要的图文资料。

软件工程:指导计算机软件开发和维护的一门工程学科。

软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。

2.软件工程的中心课题是控制复杂性。

3.软件经常变化。

4.开发软件的效率非常重要。

5.和谐地合作是开发软件的关键。

6.软件必须有效地支持它的用户。

7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。

2.坚持进行阶段评审。

3.实行严格的产品控制4.采用现代程序设计技术。

5.结构应能清楚的审查。

6.开发小组的人员应该少而精。

7.承认不断改进软件工程实践的必要性。

软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。

软件工程导论张海潘(第六版)第1-13章总结 PPT课件

软件工程导论张海潘(第六版)第1-13章总结 PPT课件

+
[ ]
{ }
( )
意思是等价于(或定义为);
+
意思是和(即,连接两个分量);
[ ]意思是或(即,从方括弧内列出的若干个分量中选择一 个),通常用“|”号隔开供选择的分量; { } 意思是重复(即,重复花括弧内的分量);常常使用上限 和下限进一步注释表示重复的花括弧。 ( ) 意思是可选(即,圆括弧里的分量可有可无)。
从下述3个方面研究每种解法的可行性:
1)技术可行性 2)经济可行性 3)操作可行性 其他方面:运行可行性、法律可行性
2、典型的可行性研究有下述一些步骤:
1.复查系统规模和目标。
3.导出新系统的高层逻辑模型 5.导出和评价供选择的解法 7.草拟开发计划
2.研究目前正在使用的系统
4.进一步定义问题 6.推荐行动方针 8.书写文档提交审查。
(1)建立数据模型——E-R图 (2)描绘数据结构——层次方框图和Warnier图 (3)数据结构规范化
32
第三章
4、需求分析过程建立三种模型
数据模型:实体-联系图
需求分析
功能模型:数据流图
行为模型:状态转换图
数据字典是分析模型的核心
5、实体-联系图 数据模型中包含3种相互关联的信息:数据对象、数据 对象的属性、数据对象彼此间相互连接的关系。 联系可分为以下三种类型:一对一,一对多和多对
外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9]


a)拨校外电话需先拨0, 若是本市电话则再接着拨8位 数 字(第1位不是0); b)若是外地电话则拨3位区 码再拨8位电话号码(第1位不 是0)。
数字零=0

张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】

张海藩《软件工程导论》(第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章 面向对象分析

第10章面向对象分析不论采用哪种方法开发软件,分析的过程都是提取系统需求的过程。

分析工作主要包括3项内容,这就是理解、表达和验证。

首先,系统分析员通过与用户及领域专家的充分交流,力求完全理解用户需求和该应用领域中的关键性的背景知识,并用某种无二义性的方式把这种理解表达成文档资料。

分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型、动态模型和功能模型组成)。

由于问题复杂,而且人与人之间的交流带有随意性和非形式化的特点,上述理解过程通常不能一次就达到理想的效果。

因此,还必须进一步验证软件需求规格说明的正确性、完整性和有效性,如果发现了问题则进行修正。

显然,需求分析过程是系统分析员与用户及领域专家反复交流和多次修正的过程。

也就是说,理解和验证的过程通常交替进行,反复迭代,而且往往需要利用原型系统作为辅助工具。

面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。

在用面向对象观点建立起的3种模型中,对象模型是最基本、最重要、最核心的。

10.1面向对象分析的基本过程10.1.1 概述面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

通常,面向对象分析过程从分析陈述用户需求的文件开始。

可能由用户(包括出资开发该软件的业主代表及最终用户)单方面写出需求陈述,也可能由系统分析员配合用户,共同写出需求陈述。

当软件项目采用招标方式确定开发单位时,“标书”往往可以作为初步的需求陈述。

需求陈述通常是不完整、不准确的,而且往往是非正式的。

通过分析,可以发现和改正原始陈述中的二义性和不一致性,补充遗漏的内容,从而使需求陈述更完整、更准确。

因此,不应该认为需求陈述是一成不变的,而应该把它作为细化和完善实际需求的基础。

在分析需求陈述的过程中,系统分析员需要反复多次地与用户协商、讨论、交流信息,还应该通过调研了解现有的类似系统。

张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】

张海藩《软件工程导论》(第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章-面向对象的分析(第六版)(张海潘编著)
抽取和整理用户需求并建立问题域精确模型的过程.
步骤: 理解----用户、分析员和领域专家 表达----需求规格说明书(对象模型、动态模型、功能模型)
验证----二义性,完善性
对象模型最基本、最重要、最核心。
6
第6页,共63页。
10.1 面向对象分析的基本过程
2、3个子模型与5个层次
3个子模型 在面向对象分析中,主要由对象模型、动态模型和功能模型
10
第10页,共63页。
10.2 需求陈述
10.2.2 实例:自动取款机(ATM)系统
ATM机系统问题描述
银行网络中包含柜员和 ATM,ATM 被共享中心所分享。
每家银行利用自己的计算机维护自己的账户并处理账户所属的交 易,这些交易包括存款和取款。
某些银行拥有自己的柜员站,柜员站直接和该银行的计算机通信, 柜员键入账户数据和交易数据。
29
第29页,共63页。
经过筛选之后,得到ATM系统中各个类的属性,如图所示: 图中还标出了一些限定词:“卡号”、“分行代码”、“账号”、“雇员
号”、“站号”
30
第30页,共63页。
10.3.5 识别继承关系
建立类间的继承是为了共享其公共性质/属性。
继承也对类按层次加以组织。 继承关系反映出一定深度的领域知识,需领域专家密
拥有 ATM
➢ 储户
拥有 帐户
➢ 分行计算机 维护 帐户
➢ ……
…… ……
2)需求陈述中隐含的关联
➢ 分行
组成 总行
➢ 分行
保管 帐户
➢ ……
…… ……
3)根据问题域知识得出的关联
➢ 现金兑换卡 访问 帐户
➢ 分行
雇用 柜员

(NEW)张海藩《软件工程导论》(第6版)配套题库【名校考研真题+课后习题+章节题库+模拟试题】

(NEW)张海藩《软件工程导论》(第6版)配套题库【名校考研真题+课后习题+章节题库+模拟试题】

一、选择题
1.软件工程是采用( )的概念、原理、技术方法指导计算机 程序设计的工程学科。[中国传媒大学2014研]
A.工程 B.系统工程 C.体系结构 D.结构化设计 【答案】A 【解析】软件工程是采用工程的概念、原理、技术和方法来开发与 维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最 好的技术方法结合起来,从而经济地开发出高质量的软件,并且进行有 效地维护。 2.随着开发小组人数的( ),因交流开发进展情况和讨论遇 到的问题而造成的通信开销也急剧增加。[中国传媒大学2014研] A.增加 B.降低 C.稳定 D.不稳定 【答案】A 【解析】当开发小组变得更大时,即开发小组人数增加时,每个人 需要用更多时间与组内其他成员讨论问题、协调工作,因此,通信开销
12.为了解决软件危机,人们提出了用( )的原理来设计软 件。[中国传媒大学2013研]
A.运筹学 B.工程学 C.软件学 D.数学 【答案】B
【解析】为了解决软件危机,通过采用软件工程来指导软件的设 计。软件工程是采用工程的概念、原理、技术和方法来开发与维护软 件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技 术方法结合起来,以经济地开发出高质量的软件并有效地维护。
16.结构化维护与非结构化维护的主要区别在于( )。[中国 传媒大学2013研]
A.软件是否结构化 B.软件配置是否完整 C.程序的完整性 D.文档的完整性
【答案】B 【解析】非结构化维护需要付出很大代价,这种维护方式是没有使 用良好定义的方法学开发出来的软件的必然结果;结构化维护是在软件 开发的早期应用软件工程方法学的结果。因此,结构化维护与非结构化 维护的主要区别是软件配置的完整性,有了软件的完整配置能减少精力 的浪费并且能提高维护的总体质量。 17.下面是被测模块的流程图。测试数据为:A=1,B=0,X=3; A=2,B=1,X=1。判断符合如下哪个等级的逻辑覆盖:( )。

软件工程导论课后习题答案.

软件工程导论课后习题答案.

第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。

而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。

这些都降低了开发商的信誉,引起用户不满。

(2) 用户对已完成的软件不满意的现象时有发生。

(3) 软件产品的质量往往是靠不住的。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。

(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。

(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

二、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

软件工程的本质特征:(1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具(5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户(7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径:(1) 对计算机软件有一个正确的认识(软件≠程序)(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3) 推广使用在实践中总结出来的开发软件的成功技术和方法(4) 开发和使用更好的软件工具三、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。

软件工程导论(第六版)张海藩课后习题部分答案

软件工程导论(第六版)张海藩课后习题部分答案

软件⼯程导论(第六版)张海藩课后习题部分答案第⼀章1-1 什么是软件危机 ? 是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

1-3 什么是软件⼯程 ? 是指导计算机软件开发和维护的⼀门⼯程学科。

1-4 简述结构化范型和⾯向对象范型的要点,并分析它们的优缺点。

⽬前使⽤得最⼴泛的软件⼯程⽅法学( 2 种):1. 传统⽅法学:也称为⽣命周期⽅法学或结构化范型。

优点:把软件⽣命周期划分成基⼲个阶段,每个阶段的任务相对独⽴,⽽且⽐较简单,便于不同⼈员分⼯协作,从⽽降低了整个软件开发过程的困难程度。

缺点:当软件规模庞⼤时,或者对软件的需求是模糊的或会承受时间⽽变化的时候,开发出的软件往往不成功;⽽且维护起来仍然很困难。

2. ⾯向对象⽅法学:优点:降低了软件产品的复杂性;提⾼了软件的可理解性;简化了软件的开发和维护⼯作;促进了软件重⽤。

1-6 什么是软件过程 ?它与软件⼯程⽅法学有何关系 ?z 软件过程:是为了获得⾼质量软件所需要完成的⼀系列任务的框架,它规定了完成各项任务的⼯作步骤 z 软件⼯程⽅法学:通常把在软件⽣命周期全过程中使⽤的⼀整套技术⽅法的集合称为⽅法学,也称范型1-7 什么是软件⽣命周期模型,试⽐较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适⽤范围。

软件⽣命周期由软件定义、软件开发和运⾏维护 3 个时期组成,每个时期⼜进⼀步划分成若⼲个阶段。

⽣命周期模型规定了把⽣命周期划分成哪些阶段及各个阶段的执⾏顺序,因此,也称为过程模型。

瀑布模型的优点: 1. 可强迫开发⼈员采⽤规范的⽅法; 2. 严格规定了每个阶段必须提交的⽂档;3. 要求每个阶段交出的所有产品都必须经过质量保证⼩组的仔细验证。

瀑布模型的缺点: 1.在软件开发初期,指明⽤户全部需求是困难的; 2.需求确定后,经过⼀段时间才得到软件最初版本; 3. 完全依赖规格说明,导致不能满⾜⽤户需求。

适⽤中⼩型项⽬。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

识别主题 定义类与对象 识别结构 定义属性 定义服务
11
OOA的一般过程 OOA的一般过程
获取用户基本需求 标识类和对象 定义类的结构和层次 表示类(对象) 表示类(对象)间的关系 为对象行为建模
对象模型
2010-11-11
动态模型
liang@
功能模型
12
10.2 需求陈述

柜员职责:
把储户提交的存款或取款事务输进柜员终端 接收储户交来的现金或支票,或付给储户现金

柜员终端与相应的分行计算机通信,分行计算机具体处理针 对某个账户的事务并且维护账户。
liang@ 17
2010-11-11
10.2 需求陈述

储户有权申领现金兑换卡。使用该卡可通过ATM访问自己的 储户有权申领现金兑换卡。使用该卡可通过ATM访问自己的 账户,实现如下功能:
2010-11-11
liang@
6
10.1.2 三个子模型与五个层次 10. ► 面向对象建模得到பைடு நூலகம்模型包含对象的三个要素,即 静态结构(对象模型),交互次序(动态模型)和 数据变换(功能模型)。 ► 三个子模型的重要程度随问题不同而不同
对象模型:最核心、最基础、最重要; 动态模型:交互作用和时序(例如,用户界面及过程控 制等); 功能模型:解决运算量很大的问题(例如,高级语言编 译、科学与工程计算等); 动态模型和功能模型中都包含了对象模型中的操作(即 服务或方法)
2010-11-11
liang@
18
10.2 需求陈述

使用ATM过程 使用ATM过程
用户插卡 ATM要求用户输入密码 ATM要求用户输入密码 ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机, ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机, 请求中央计算机核对这些信息并处理这次事务 中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并 且委托相应的分行计算机验证用户密码。 如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、 如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、 查询等) 当用户选择取款时,ATM请求用户输入取款额 当用户选择取款时,ATM请求用户输入取款额 最后,ATM从现金出口吐出现金,并且打印出账单交给用户 最后,ATM从现金出口吐出现金,并且打印出账单交给用户
2010-11-11 liang@ 8
主题(Subject)层:主题给出分析模型的总体概貌,是控制读者 层 主题 在同一时间所能考虑的模型规模的机制。 对象(Class & Object)层:对象是数据及其处理的抽象。 类-&-对象 对象 层 它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。一般-特殊结构 层 结构 反映了继承关系,整体-部分结构反映了聚合的关系。 属性(Attribute)层 属性(Attribute)层:属性是数据元素,用来描述对象或分类结 构的实例,可在图中给出并在对象的储存中指定,即给出对象 定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理, 层 服务 可在图上标明它并在对象的储存中指定,即给出对象定义的同 时,定义服务。
2010-11-11 liang@ 5
10.1 面向对象分析的基本过程 10.



首先,系统分析员要对需求文档进行分析。通过分析可以发 现和改正需求文档中的歧义性、不一致性,剔除冗余的内容, 挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准 确。 然后,是需求建模。系统分析员根据提取的用户需求,深入 理解用户需求,识别出问题域内的对象,并分析它们相互之 间的关系,抽象出目标系统应该完成的需求任务,并用OOA 模型准确地表示出来,即用面向对象观点建立对象模型、动 态模型和功能模型。 最后,是需求评审。通过用户、领域专家、系统分析员和系 统设计人员的评审,并进行反复修改后,确定需求规格说明。
2010-11-11
liang@
19
10.3 建立对象摸型 10.

对象模型通常有五个层次: 对象模型通常有五个层次:
确定类与对象 确定关联 划分主题 确定属性 确定 继承关系

典型的工作步骤是: 典型的工作步骤是:
首先确定对象类和关联(因为它们影响系统整体结构和 解决问题的方法),对于大型复杂问题还要进一步划分 出若干个主题; 然后给类和关联增添属性,以进一步描述它们; 接下来利用适当的继承关系进一步合并和组织类。 而对类中操作的最后确定,则需等到建立了动态模型和 功能模型之后,因为这两个子模型更准确地描述了对类 中提供的服务的需求。


2010-11-11
liang@
13
10.2 需求陈述

对系统性能及系统与外界环境交互协议的描述,是合适的 系统性能及系统与外界环境交互协议的描述,是合适的 需求。 此外,对采用的软件工程标准、模块构造准则、将来可能 做的扩充以及可维护性要求等方面的描述,也都是适当的 需求。
结构化分析对需求采取独特的“输入—加工—输出” 结构化分析对需求采取独特的“输入—加工—输出” 视角,数据被脱离数据的变换过程而单独考虑
系统行为虽然重要,但在结构化分析中往往扮演第二位 的角色,结构化分析方法着重功能分解的使用。
面向对象的目标是开发一系列模型,这些模型被用 来描述以满足一组客户需求的计算机软件。
► 自动取款机系统
自动取款机(ATM)+中央计算机+分行计算机+ 自动取款机(ATM)+中央计算机+分行计算机+柜员终端的 网络系统
► ATM和中央计算机由总行投资购买 ATM和中央计算机由总行投资购买
总行拥有多台 ATM,分别设在全市各主要街道上。 ATM,分别设在全市各主要街道上。
► 分行负责提供分行计算机和柜员终端
面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务 小结
liang@ 2
OOA及其所面对的问题 OOA及其所面对的问题
OOA相当于软件开发过程中的问题定义和 OOA相当于软件开发过程中的问题定义和需 求分析阶段 求分析阶段 OOA所面对的问题 OOA所面对的问题

2010-11-11
liang@
14
10.2.2 例子 10. 图10.2所示的自动取款机(ATM)系统,是本 10.2所示的自动取款机(ATM)系统,是本 书讲述面向对象分析和面向对象设计时使用的一个 实例。
2010-11-11
liang@
15
10.2 需求陈述
2010-11-11 liang@ 9
► 上述五个层次对应着在面向对象分析过程中
建立对象模型的五项主要活动
找出类找出类-&-对象 识别结构 识别主题 定义属性 定义服务
► 事实上,这五项工作完全没有必要顺序完成,
也无须彻底完成一项工作以后再开始另外一 项工作。
2010-11-11 liang@ 10
当开发一个新的产品或系统时,我们如何从遵循 OO软件工程的方式来刻画它? OO软件工程的方式来刻画它? 什么是相关的对象?他们如何相互关联? 对象如何在系统的范围内工作? 应如何对问题刻画或建模以使得我们可创建一个 有效的设计?
2010-11-11 liang@ 3
SA vs. OOA
在ATM上提取现金(即取款) ATM上提取现金(即取款) 查询有关自己账户的信息(例如,某个指定账户上的余额) 将来可能还要求使用ATM办理转账、存款等事务 将来可能还要求使用ATM办理转账、存款等事务

现金兑换卡:
一张特制的磁卡,上面有分行代码和卡号 分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问 哪些账户 通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储 户的全部账户 每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副 本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可 本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可 能性。也就是说,系统应该能够处理并发的访问
OOA建造若干分析模型以满足这个目标。分析模型描述 OOA建造若干分析模型以满足这个目标。分析模型描述 信息(对象模型)、功能(功能模型)和行为(动态模 型)。
2010-11-11
liang@
4
OOA的主要工作 OOA的主要工作
► 三项内容:理解、表达和验证 ► 需求分析过程是系统分析员与用户及领域专家反复
► ►
书写要点 书写要点 通常,需求陈述的内容包括:问题范围,功能需求,性能 需求,应用环境及假设条件等。总之,需求陈述应该阐明 “做什么”而不是“怎样做”。 做什么”而不是“怎样做”。 描述用户的需求而不是提出解决问题的方法。应该指出哪 描述用户的需求而不是提出解决问题的方法。应该指出哪 些是系统必要的性质,哪些是任选的性质。 应该避免对设计策略施加过多的约束,也不要描述系统的 内部结构,这样做将限制实现的灵活性。
软件工程导论
梁文新 办公室:综合楼108 办公室:综合楼108 电 话: 87571625 liang@
第十章 面向对象分析(OOA) 面向对象分析(OOA)
► 10.1 ► 10.2 ► 10.3 ► 10.4 ► 10.5 ► 10.6 ► 10.7
2010-11-11
2010-11-11
liang@
20
10.3.1 确定类与对象 10. 1.找出候选的类与对象 对象是对问题域中有意义的事物的抽象,它们既可能是 物理实体,也可能是抽象概念。· 物理实体,也可能是抽象概念。·具体地说,大多数客观事物 可分为下述五类: (1)可感知的物理实体,例如,飞机、汽车、书、房屋等等。 可感知的物理实体,例如,飞机、汽车、书、房屋等等。 (2)人或组织的角色,例如,医生、教师、雇主、雇员、计 人或组织的角色,例如,医生、教师、雇主、雇员、计 算机系、财务处等等。 (3)应该记忆的事件,例如,飞行、演出、访问、交通事故 应该记忆的事件,例如,飞行、演出、访问、交通事故 等等。 (4)两个或多个对象的相互作用,通常具有交易或接触的性 两个或多个对象的相互作用,通常具有交易或接触的性 质,例如,购买、纳税、结婚等等。 (5)需要说明的概念,例如,政策、保险政策、版权法等等。 需要说明的概念,例如,政策、保险政策、版权法等等。
相关文档
最新文档