软件工程-理论与实践(许家珆)习题答案

合集下载

软件工程课后习题答案

软件工程课后习题答案

软件工程课后习题答案第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

软件工程-理论与实践(第2版)第1章课件PPT,许家珆等编著

软件工程-理论与实践(第2版)第1章课件PPT,许家珆等编著

1
第一章
软件工程概述
高等教育出版社 高等教育电子音像出版社
1.1 软件工程的产生和发展
软件工程(Software Engineering)是在克服20 世纪60年代末所出现的“软件危机”的过程中逐渐 形成与发展的。 随着互联网平台和环境的迅速发展,对软件工 程的发展产生了变革性的巨大影响,网格计算、普 适计算、中间件、网构软件等一批新技术和理念, 从网络资源共享与管理,人机交互及软件服务等各 方面提出了软件技术的新课题。
The Challenges and Opportunities of the Global Software Industry.
一、全球软件产业的现状、趋势与挑战
1. 软件产业的网络化趋势 2. 软件产业的服务化趋势 3. 软件产业的全球化趋势
·强调开放性、交互性 ·支持主流的开放式标准 ·人才的全球化
在微软流传着这样一个故事
有一次比尔· 盖茨和上帝谈话,上帝对他说: “地球明天就要毁灭了!由于你是如此的成功,因 此我特许你从地球上带一样东西到天堂!你想带什 么?” 比尔.盖茨回答:“请允许我从微软选300个最 优秀的人,我要把他们带到天堂!” 尽管微软的Windows、Exchange、SQL、 Office等都非常重要,但如果没有像你们这些人才, 微软也将一无所有。你们对我们公司和微软来说是 处于第一位的。

运行 时期

运行与维护
(测试报告) (维护报告)
瀑布模型
1.3 软件开发模型
软件开发模型是描述软件开发过程中各种活动 如何执行的模型,又称为软件过程模型。 软件过程模型是对软件开发实际过程的抽象和 简化。 目前典型的软件开发模型有: 瀑布模型、增量模型、螺旋模型、喷泉模型、 变换模型和基于知识的模型等。 不同的开发方法有不同的软件过程模型。

软件工程—方法与实践(许家珆)

软件工程—方法与实践(许家珆)

《软件工程——理论与实践》(第2 版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和OO 方法都是一种面向过程的软件开发方法。

(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。

1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。

它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。

2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。

它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。

2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。

功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。

3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。

3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。

面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。

4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。

4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。

编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。

5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。

软件工程习题附答案

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些与软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题1、软件生存周期中,解决软件“做什么”的阶段是()A 需求分析B 软件设计C 软件实现D 软件测试答案:A解析:需求分析阶段主要是确定软件系统需要完成的功能和性能,解决软件“做什么”的问题。

2、下面不属于软件设计原则的是()A 抽象B 模块化C 自底向上D 信息隐藏答案:C解析:软件设计的原则通常包括抽象、模块化、信息隐藏等,自底向上一般不是软件设计的原则,常见的是自顶向下的设计方法。

3、软件测试的目的是()A 证明软件没有错误B 发现软件中的错误C 改正软件中的错误D 优化软件的性能答案:B解析:软件测试的目的是为了发现软件中存在的错误,而不是证明软件没有错误或直接改正错误、优化性能。

4、下列模型中,不属于软件生命周期模型的是()A 瀑布模型B 快速原型模型C 增量模型D 螺旋模型E 喷泉模型答案:E解析:瀑布模型、快速原型模型、增量模型和螺旋模型都属于常见的软件生命周期模型,喷泉模型则主要强调软件对象之间的无缝迭代。

5、软件维护中,因修改软件而导致出现新错误的维护属于()A 改正性维护B 适应性维护C 完善性维护D 预防性维护答案:A解析:改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。

在这种维护中,可能会因为修改软件而引入新的错误。

二、填空题1、软件工程包括()、()和()三个要素。

答案:方法、工具、过程2、软件需求分析阶段的工作,可以分为四个方面:()、()、()和()。

答案:需求获取、需求分析、编写需求规格说明书、需求评审3、软件测试的步骤主要包括()、()、()和()。

答案:单元测试、集成测试、系统测试、验收测试4、面向对象的三大特性是()、()和()。

软件工程与实践考试题及答案

软件工程与实践考试题及答案

《软件工程与项目管理》复习资料一、选择题1、经济可行性研究的范围包括( C )。

A.资源有效性B.管理制度C.效益分析 D.开发风险2、结构化设计方法在软件开发中用于( A )。

A.概要设计B.详细设计C.程序设计D.测试用例设计3、程序的三种基本控制结构是( B )。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移4、软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。

A. 应用范围B. 内部逻辑C. 功能D. 输入数据5、软件开发生命周期中,( D )耗费的工作量最大。

A. 需求阶段B. 设计阶段C. 测试阶段D. 维护阶段6、模块的内聚性最高的是( D )。

A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚7、原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。

A.需求不确定性高的 B.需求确定的C.管理信息D.实时8、( D )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

A. 软件过程B. 软件工具C. 质量保证D. 软件工程9、下列关于瀑布模型的描述正确的是( D )。

A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开10、总体设计的目的是确定整个系统的( B )。

A.规模 B.功能及模块结构C.费用 D.测试方案11、快速原型模型的主要特点之一是 ( D )。

A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件12、两个模块彼此传递的信息中有控制信息,这种耦合称为( D )。

A. 数据耦合B. 公共环境耦合C. 内容耦合D. 控制耦合13、为了提高模块的独立性,模块之间最好是( D ) 。

软件工程实践题50题和答案解析

软件工程实践题50题和答案解析
(2)公司接收分公司的订单,检验订单,若有库存就供货,则修改库存,给仓库开备货单,并且将订单留底;若库存不足,则进行缺货登记。
(3)根据缺货记录将缺货通知单发给采购部,以便采购。
(4)根据采购部门的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单
进行供货处理。
试采用SA方法画出该公司销售管理系统的分层DFD(画出顶层图、0层图、1层图)。
B2;
ENDIF
B3;
ENDWHILE;
7、根据伪码画出PAD图。
START
SWITCH P
CASE 1: A; break;
CASE 2: B; break;
CASE 3: C; break;
Default;
STOP
8、请画出求1+3+5+…+n的PAD图。
9、请使用PAD图描述在数组A(1)~A(10)中找最大数的算法。
18、某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:
(1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码,名称,订期,单价,份数等项目,订户通过填写订单来订阅报刊。
(2)报社下属多个发行站,每个站负责收集登陆订单、打印收款凭证等事务。
(3)报社负责分类并统计各个发行站送来的报刊订阅信息。
请画出对应于计算托运费比率的判定树和判定表。
14、“计算折扣量”加工逻辑为:如果是国有企业,定购量>100吨的,优惠20%,否则优惠15%,如果是私营企业,定购量>100吨的,优惠15%,否则优惠10%,请画出该加工的判定树和判定表。
15、一台微机有一个显示器,一个主机,一个键盘,一个鼠标,汉王笔可有可无。主机包括一个机箱,一个主板,一个电源,存储器等部件。存储器又分为固定存储器、活动存储器,固定存储器又分为内存和硬盘,活动存储器又分为软盘和光盘。建立微机的对象模型。

软件工程课后习题答案

软件工程课后习题答案

第一章习题参考答案1﹑软件产品的特性是什么?答:软件产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。

⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。

⑶软件产品不会用坏,不存在磨损,消耗。

⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。

2﹑软件生产有几个阶段?各有何特征?答:⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。

⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。

⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。

3﹑什么是软件危机?产生原因是什么?答:软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4﹑什么是软件工程?它目标和内容是什么?答:软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

5﹑软件工程面临的问题是什么?答:软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

软件工程课后参考答案完整版

软件工程课后参考答案完整版

软件工程课后参考答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

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

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科。

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

软件工程课后参考答案

软件工程课后参考答案

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

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

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

出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。

软件工程课本习题答案

软件工程课本习题答案
2.3形式化方法的特点是什么?
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制

软件工程课后参考答案

软件工程课后参考答案

第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”;这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题;它们有以下表现:1对软件开发成本和进度的估计常常很不准确;2用户对“已完成的”软件系统不满意的现象经常发生;3软件产品的质量往往靠不住;4软件常常是不可维护的;5软件通常没有适当的文档资料;6软件成本在计算机系统总成本中所占的比例逐年上升;7软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势;出现软件危机的主要原因1与软件本身的特点有关2与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢”应该怎么反驳他答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高;一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误;3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程;本质特征:(1)软件工程关注于大型软件的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开发软件的效率非常重要(5)和谐地合作是开发软件的关键(6)软件必须有效支持它的用户(7)在软件工程领域通常由一种文化背景的人替代具有另一种文化背景的人创造产品消除软件危机的原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性5.根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=Y-1960,存储器的价格按下面公式描述的趋势逐年下降:P1=×美分/位,如果计算机字长为16位,则存储器价格下降的趋势为:P2=×美元/字,在上列公式中Y代表年份,M是存储容量字数,P1和P2代表价格;基于上述假设可以比较计算机硬件和软件成本的变化趋势;要求计算:1 在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少2 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元;如果一条指令为一个字长,计算使存储器装满程序所需用的成本;3 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复1、2题;6什么是软件过程它与软件工程方法学有何关系软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤;软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型;软件过程是软件工程方法学的3个重要组成部分之一;7.什么是软件生命周期模型试比较瀑布模型、快速模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围;通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型,生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的顺序;瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率;瀑布模型的缺点:1开发过程一般不能逆转,否则代价太大;2实际的项目开发很难严格按该模型进行;3客户往往很难清楚地给出所有的需求,而该模型却要求如此;4软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心;瀑布模型的使用范围:1用户的需求非常清楚全面,且在开发过程中没有或很少变化;2开发人员对软件的应用领域很熟悉;3用户的使用环境非常稳定;4开发工作对用户参与的要求很低;快速原型模型的优点:1可以得到比较良好的需求定义,容易适应需求的变化;2有利于开发与培训的同步;3开发费用低、开发周期短且对用户更友好;快速原型模型的缺点:1客户与开发者对原型理解不同;2 准确的比较困难;3 不利于开发人员的创新;快速原型模型的使用范围:1对所开发的领域比较熟悉而且有快速的原型开发工具;2项目招投标时,可以以原型模型作为软件的开发模型;3进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的;增量模型的优点:1采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;2如果核心产品很受欢迎,则可增加人力实现下一个增量;3可先发布部分功能给客户,对客户起到镇静剂的作用;增量模型的缺点:1并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;2增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是的控制失去整体性;增量模型的使用范围:1进行已有产品升级或新版本开发,增量模型是非常适合的;2对完成期限严格要求的产品,可以使用增量模型;3对所开发的领域比较熟悉而且已有,增量模型也是非常适合的;螺旋模型的优点:1设计上的灵活性,可以在项目的各个阶段进行变更;2以小的分段来构建大型系统,使成本计算变得简单容易;3客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;4 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互;螺旋模型的缺点:1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;2过多的迭代次数会增加开发成本,延迟提交时间;螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目;8.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性由于在整个开发过程中都使用统一的软件概念“对象”,所有其他概念例如功能、关系、事件等都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各个阶段的区分自然也就不重要了,不明显了;分析阶段的得到的对象模型也适用于设计阶段和实现阶段;由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的,这自然也就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化;所以说喷泉模型较好的体现了面向对象软件开发过程无缝和迭代的特性;第二章课后习题参考答案1、在软件开发的早期阶段为什么要进行可行性研究应从哪些方面研究目标系统的可行性1开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费;可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决;2一般说来,至少应该从以下三个方面研究每种解法的可行性:a.技术可行性b.经济可行性c.操作可行性;2、为方便储户,某银行拟开发计算机储蓄系统;储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并打印出利息清单给储户;写出问题定义病画出此系统的数据流图;问题定义如下:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址或号码、身份证号码、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户;如果是取款,储户填写取款单,然后交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户;为了满足储户的需求,该系统需要迅速的对用户的要求做出反馈,要对用户输入的信息作出最快的处理,所以就需要很大的主存容量,以及强大的数据库支持;由于是所面向的用户是广泛的储蓄用户群,所以需要系统强大的安全性能支持;系统的分层数据流图如下:1、顶层数据流图2、中层数据流图3、底层数据流图3、某航空公司拟开发一个机票预定系统;旅行社把预订机票的旅客信息姓名、性别…等输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客;写出问题定义病画出此系统的数据流图;问题定义:某航空公司,售票工作人员每天手工处理旅客预订票、安排航班、取票和收款业务,工作量较大,需要工作人员多等,总之人工不易管理,手续繁琐;数据流图如下:1、顶层数据流图2、中间层数据流图3、底层数据流图4、住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机;某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图;问题定义:本题要开发一个病人监护系统,实现对病人症状的自动监护,形成病人日志记录,减少人力的浪费; 在监控过程中,随时接受病人的生理信息脉搏、体温、血压、心电图,对病人的不正常生理信息超出医生规定的安全范围的信息发出警告,并向护士发出警告信息;护士还可以根据需要打印病人的病情报告;符号说明如下:F1-要求报告 F2-生理信号 F3-日期、时间F4-警告信息 F5-安全范围 F6-日志P1-接收信号 P2-分析信号 P3-产生警告P4-定时取样生理信号 P5-更新日志 P6-产生病情报告D1-患者日志 D2-患者安全范围 D3-生理信息E1-护士 E2-病人 E3-时钟方法一:方法二5、北京某高校可用的号码有以下几类:校内号码由4位数字组成,第1位数字不是0;校外又分为本市和外地两类,拨校外需先拨0,若是本市则再接着拨8位数字第1位不是0,若是外地则拨3位区码再拨8位号码第1位不是0;请用定义数据字典的方法,定义上述的号码;号码=校内号码|校外号码校内号码=非零数字+ 3 位数字 //后面继续定义校外号码=本市号码|外地号码本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=1|2|3|4|5|6|7|8|9数字零=03位数字=3{数字}3 //3至3个数字8位数字=非零数字+7位数字7位数字=7{数字}7数字=0|1|2|3|4|5|6|7|8|9第三章课后参考答案1、为什么要进行需求分析通常对软件系统有哪些需求答:为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,不论软件工程师把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望;需求分析的任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,对目标系统提出完整、清晰、准确、具体的要求;只有这样深入理解了用户的需求,我们的工作才会有意义;对软件通常有以下需求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、逆向需求、将来可能提出的要求;2、怎样与用户有效地沟通以获取用户的真实需求答:1访谈,访谈有两种基本形式,分别是正式的和非正式的访谈;2面向数据流自顶向下求精3简易的应用规格说明技术4快速建立软件原型3、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址或号码、身份证号码、存款类型、存款日期、到期日期、利率及密码可选等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户;用实体-联系图描绘系统中的数据对象;实体-联系图如下:本问题中共有三类实体,分别是“储户”和“储蓄所”及业务员,在它们之间存在“存取款”关系;因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多M:N关系;储户的属性主要有姓名、住址、号码和身份证号码,储蓄所的属性主要是名称、地址和号码,存取款是联系,但它也有属性主要有数额、类型、到期日期、利率和密码;业务员的属性主要有编号,姓名,性别和号码;4、分析习题2第3题所述的机票预订系统,试用实体-联系图描述本系统中的数据对象;实体-联系图如下:–本问题中主要有三类实体,分别是“顾客”、“旅行社”、“飞机航班”–在它们之间存在的关系有:“顾客”和、“旅行社”有“代理”关系;因为一位顾客可以让多家旅行社代理,一家旅行社拥有多位顾客,所以“代理”是多对多M:N关系;“顾客”和“飞机航班”有“预定机票”关系,是一对一1:1关系;–顾客的属性主要有身份证号码、姓名、性别、工作单位、旅行时间、旅行目的地、联系;–旅行社的属性主要有编号,名称,地址,负责人,联系;–飞机航班的属性主要是航班号、起飞时间、目的地、到达时间;–“预定机票”关系的属性有票额即票价5、分析习题2第4题所述的患者监护系统,试用实体-联系图描述本系统中的数据对象,画出本系统的顶层IPO图;实体-联系图如下:本系统的顶层IPO图如下:6、复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态;请用状态转换图描绘复印机的行为;从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”;引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”;第五章课后参考答案3、设计下列系统的软件结构1储蓄系统2-22机票预定系统2-33患者监护系统2-4参考答案:使用结构图表示1、1、储蓄系统2、机票预定系统3、患者监护系统4、美国某大学有200名教师,校方与教师工会刚刚签订一项协议;按照协议,所有年工资超过$26000含$26000 的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人包括教师本人每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000;教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息;需要写一个程序计算并印出每名教师的原工资和调整后的新工资;要求:1画出此系统的数据流图;2写出需求说明;3设计上述的工资调整程序要求用HIPO图描绘设计结果,设计时分别采用两种算法,并比较两种算法的优缺点:a搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;b把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果;4你所画出的数据流图适应用那种算法1系统的数据流图2需求说明;经分析可知:本系统必须包括如下7个功能:导入原工资档案、输入调资标准、检索需调资工资数据、计算新工资、校核新工资、更新新工资数据、输出工资对照表包含数据:教师工资档案、工资标准3a第六章参考答案6-3 答:6-4答:6-5 答:136-7 答:6-8 答:17 -13 + 2 = 6。

软件工程第一二三章习题参考答案

软件工程第一二三章习题参考答案

第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。

软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。

软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。

软件工程是软件开发、运行、维护和引退旳系统措施。

软件工程是指导计算机软件开发和维护旳工程学科。

软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。

软件工程旳目旳是实现软件旳优质高产。

软件工程学旳重要内容是软件开发技术和软件工程管理。

软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。

常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。

习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。

这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。

3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。

软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。

管理和控制软件开发过程相称困难。

软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。

目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。

总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。

软件工程-理论与实践(许家珆)习题答案

软件工程-理论与实践(许家珆)习题答案

习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形 B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(C D)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是( )。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和JSP方法都不适合于大型软件的开发。

(√)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

(×)9. 软件工程过程应该以软件设计为中心,关键是编写程序。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答: 实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答: 模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1) 必要的,该需求是用户所要求的。

2) 无歧义的,该需求只能用一种方式解释。

3) 可测的,该需求是可进行测试的。

4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5) 可测量的,该需求是可测量的。

需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。

2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。

P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

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

习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形 B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(C D)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是( )。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和JSP方法都不适合于大型软件的开发。

(√)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

(×)9. 软件工程过程应该以软件设计为中心,关键是编写程序。

(×)10. RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。

(√)三、简答题1. 软件产品的特性是什么?答:●软件是一种逻辑产品,具有无形性;●软件产品的生产主要是研制;●软件不存在磨损和老化问题,但存在退化问题;●软件产品的生产主要是脑力劳动;●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

2. 软件发展有几个阶段?各有何特征?答:①程序设计阶段。

硬件特征:价格贵、存储容量小、运行可靠性差。

软件特征:只有程序、程序设计概念,不重视程序设计方法。

②程序系统阶段。

硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。

软件特征:程序员数量猛增,开发人员素质低。

③软件工程阶段。

硬件特征:向超高速、大容量、微型化及网络化方向发展。

软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。

3. 什么是软件危机?其产生的原因是什么?答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。

而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。

致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。

软件危机主要表现在两个方面:(1) 软件产品质量低劣,甚至开发过程就夭折。

(2) 软件生产率低,不能满足需要。

4. 什么是软件生存周期模型?它有哪些主要模型?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

主要模型包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。

5. 有哪些主要的软件开发方法?答:主要的软件开发方法有:结构化开发方法、Jackson(JSP、JSD)方法、原型化开发方法、维也纳开发方法(VDM)和面向对象的开发方法。

6. 软件生命期各阶段的任务是什么?答:软件生命期瀑布模型分为六个阶段:● 可行性研究与计划(确定系统的目标和规模,分析项目的可行性);● 需求分析与规格说明(明确系统的规格和要求);● 设计(包括概要设计和详细设计,将系统分解为模块);● 编程(用程序语言实现每个模块,简单容易);● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);● 运行维护(扩充功能、纠错等)。

习题二答案一、选择题1. 需求分析的主要目的是(BC)。

A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”2. 需求分析的主要方法有(CD)。

A) 形式化分析方法B) PAD图描述C) 结构化分析(SA)方法D) OOA法3. 面向对象的分析方法主要是建立三类模型,即(D)。

A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型4. SA法的主要描述手段有(B)。

A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明5. 画分层DFD图的基本原则有(ACD)。

A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则6. 在E-R模型中,包含以下基本成分(C)。

A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系7. 画DFD图的主要目的是(A D)。

A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具8. 数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。

A) 数据说明条目、控制流条目、加工条目、数据存储条目B) 数据流条目、数据项条目、文件条目、加工条目C) 数据源条目、数据流条目、数据处理条目、数据文件条目D) 数据流条目、数据文件条目、数据池条目、加工条目9. 在需求分析阶段主要采用图形工具来描述的原因是(B C)。

A) 图形的信息量大,便于描述规模大的软件系统B) 图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求D) 图形比文字描述简单、形象二、判断题1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。

(×)2. SA法是面向数据流,建立在数据封闭原则上的需求分析方法。

(√)3. HIPO法既是需求分析方法,又是软件设计方法。

(√)4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务。

(×)5. 加工小说明是对系统流程图中的加工进行说明。

(×)6. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。

(×)7. 需求分析的主要方法有SD法、OOA法及HIPO法等。

(×)8. 分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。

(×)9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。

(√)10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。

(√)三、问答题1. 什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。

准确地回答“系统必须做什么?” 的问题。

获得需求规格说明书。

还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。

它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。

需求分析的基本任务包括:(1) 抽取需求分析现行系统存在需要解决的问题。

获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。

(2) 模拟和分析需求需求分析和模拟又包含三个层次的工作。

首先是需求建模。

需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。

需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。

(3) 传递需求传递需求的主要任务是书写软件需求规格说明。

(4) 认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。

常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

(5) 进化需求客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。

对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。

当前的发展是软件家族法,即产品线方法。

多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。

2. M公司的软件产品以开发实验型的新软件为主。

用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。

若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总裁不喜欢报告长度超过一页(B5)。

参考答案提示:应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。

根据快速原型法的特点,说明它特别适合于开发探索型、实验型的软件。

3. 如何画分层数据流图?答:总的原则是:至顶而下,逐层分解(画分层数据流图)。

比较复杂的系统不能画在一张纸上,逐层分解的画法可以控制每一层的复杂度。

顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。

中间层:表示某个加工分解为一组子加工,其中的子加工还需进一步分解。

底层:由不再进行分解的基本加工组成。

4. 加工小说明有哪些描述方法?答:●结构化语言:介于自然语言和形式语言(如谓词逻辑)之间。

●结构化英语:通常由外层和内层结构组成。

●汉语的情况:精确、简明扼要、文体可以灵活。

●判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。

●判定树:本质上与判定表相同,图形表示更易于理解。

5. 考察下图中子图、父图的平衡。

图1图2参考答案:显然,图1中子图与父图不平衡。

相关文档
最新文档