软件工程第9版部分习题答案
软件工程---课后习题答案.doc
软件工程---课后习题答案.doc第一章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.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (29)综合试卷三 (33)附参考答案: (37)一软件与软件工程参考答案 (37)二软件工程管理参考答案 (40)三需求分析参考答案 (42)四面向对象的需求分析参考答案 (46)五软件设计参考答案 (55)六程序设计语言和编码参考答案 (58)七软件测试参考答案 (62)八软件维护参考答案 (65)综合试卷一参考答案及评分标准 (68)综合试卷二参考答案及评分标准 (71)综合试卷三参考答案及评分标准 (74)一软件与软件工程一、选择题1。
软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3。
包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4。
软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5。
下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7。
软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8。
软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发.B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2。
瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程试题与答案
一、填空1.结构化分析方法的分析策略是。
2.衡量模块独立性的两个定性标准是耦合性与内聚性。
3.软件集成测试的方法主要有两种,它们是渐增式与非渐增式测试。
4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否值得开发。
5•需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
6.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是维护一阶段。
7.计算机辅助软件工程这一术语的英文缩写为CASE。
8.McCall提出的软件质量模型包括一11个软件质量特性。
9.软件结构是以一模块为基础而组成的一种控制层次结构。
10.软件概要设计的主要任务就是软件结构的设计。
11.结构化稈序设计方法是使用三种基本控制结构(条件\控制\循环)构造稈序。
12.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和_数据存储对象二、选择1、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
A、Booch方法B、UML语言C、OMT方法D、Coad方法3、功能模型中所有的(A)往往形成一个层次结构。
在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。
A、数据流图B、概念模型图C、状态迁移图D、事件追踪图4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。
A、问题域分析B、高层分析C、实例的建立D、类的开发5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。
A、接口B、消息C、信息D、操作6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)A、说明B、方法C、过程D、类型9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)A、多态性B、完整性C、可移植性D、兼容10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)A、隐藏复杂性B、信息隐藏C、即存类的重用D、类的开发13.在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
(完整版)软件工程课后习题答案
第一章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.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
软件工程课后题答案大全(详细)
软件工程课后题答案大全(详细)软件工程课后题答案大全(详细)现代社会中,软件工程越来越重要,因为它在各个行业中扮演着关键的角色。
而在学习软件工程课程时,完成课后题是提高理解和掌握程度的重要途径。
本文将为您提供一份全面且详细的软件工程课后题答案大全,希望能够帮助您更好地学习与应用软件工程知识。
1. 什么是软件工程?软件工程是指应用系统化的、规范化的、可量化的方法来开发和维护软件的学科。
它涵盖了各种软件开发阶段,包括需求分析、设计、编码、测试和维护,并借鉴了工程学的原则和方法。
2. 软件工程的原则有哪些?软件工程遵循一系列原则来保证软件开发和维护的质量和效率,如下:- 需求管理原则:明确需求,确保项目目标的准确性和一致性。
- 分阶段原则:将软件开发过程划分为不同的阶段,有序进行。
- 风险管理原则:评估和管理项目中的风险,降低项目失败的可能性。
- 适应性原则:根据不同的项目需求和情况,选择合适的软件开发方法和工具。
- 团队合作原则:加强团队协作,促进良好的沟通和信息共享。
3. 软件生命周期有哪些阶段?软件生命周期包括需求分析、设计、编码、测试和维护等多个阶段。
- 需求分析:明确软件系统的功能和性能要求,了解用户需求。
- 设计:定义软件系统的整体结构和组件之间的关系,确定使用的技术和工具等。
- 编码:根据设计方案,将代码实现为可以执行的程序。
- 测试:验证软件系统的功能和性能是否满足需求,并进行错误修复。
- 维护:对软件进行修复和改进,确保系统的长期可用性。
4. 软件需求分析的方法有哪些?软件需求分析是保证软件项目成功的关键步骤,以下是几种常用的分析方法:- 面谈法:直接与用户沟通,了解他们的需求和期望。
- 文档分析法:研究和分析相关文档,如需求规格说明书、用户手册等。
- 原型法:创建一个初步的系统原型,供用户参观和测试,获取反馈。
- 视频录制法:录制用户正在进行的工作流程,以便更好地了解他们的需求。
5. 软件项目管理中的风险管理包括哪些步骤?风险管理是确保软件项目成功的重要环节,步骤如下:- 风险识别:识别和描述可能影响项目目标实现的风险。
《软件工程》习题参考答案
《软件⼯程》习题参考答案《软件⼯程》习题参考答案周兵1.1教材:《软件⼯程》⽅⽊云主编,清华⼤学出版社,2016 1.2参考书⽬:1.《Software engineering》8th Edition Ian Sommervile,PearsonEducation, 机械⼯业出版社,20062. 《软件⼯程》,王忠群主编,中国科学技术⼤学出版社,20093. 《软件⼯程导论》(第4版), 张海藩编著, 清华⼤学出版社, 20074、《Software engineering : a practitioner's approach》 RogerS. Pressman. 6th ed. Pressman, Roger S. China MachinePress, 20081.3说明:斜体部分是可选讲授内容, 带星号的习题为可选。
第1章软件⼯程学概述1.1习题A.1什么是软件?软件可以分为哪些类?p11答:软件是程序、数据及相关⽂档的完整集合。
软件可分为通⽤软件和定制软件。
A.2*什么是软件危机及其表现?p11答:软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。
软件危机包含下述两⽅⾯的问题:如何开发软件,以满⾜对软件⽇益增长的需求;如何维护数量不断膨胀的已有软件。
具体地说,软件危机主要有以下⼀些典型表现。
(1) 对软件开发成本和进度的估计常常很不准确。
(2) ⽤户对“已完成的”软件系统不满意的现象经常发⽣。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的⽂档资料。
(6) 软件成本在计算机系统总成本中所占的⽐例逐年上升。
(7) 软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤迅速普及深⼊的趋势。
A.3什么是软件⼯程?p11答:软件⼯程是指导计算机软件开发和维护的⼀门⼯程学科。
采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好的技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地维护它,这就是软件⼯程。
软件工程(原书第九版)课后练习第一章答案
第一章课后练习(P15)1.解释为什么专业化软件不仅仅包括为用户所开发程序?专业化软件在开发上与在与软件就有所不同。
专业软件通常是由团队开发而非个人,除了开发者外还有其他的用户使用。
如果你的软件有别的用户,别的工程师会去修改的话,你就必须提供除了程序源码之外的其它附带信息。
因此,系统通常除了包含一些单独的程序还有用于这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品的Web站点。
2.通用软件产品开发和定制软件开发直接有什么不同?这在实际应用中对通用软件产品用户意味着什么?(1)重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定开发者必须按客户要求进行开发。
(2)意味着通用软件很难满足通用软件客户的特殊需求。
如可靠性、安全性、快捷性。
3.软件产品应该具有与的4重要属性是那些?另外列举出4个可能有意义的属性。
重要属性:可维护性、可依赖性和安全性、有效性和可用性。
可能有意义的属性:可复用性、可分发性、可移植性和互用性。
4.除了异质性挑战、业务和社会的变革、安全和可信,说出软件工程在21世纪的可能面临的其它问题和挑战。
交付上的挑战:许多传统的软件工程技术需要耗费大量的时间,用于提高软件质量。
而今天的软件制作必须响应快、更换迅速,支持软件也必须同样快地进行更换。
交付上的挑战是:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。
5.参论的应用类型,照1.1.2节讨举例介绍为什么设计和开发不同类型的应用需要专门的软件技术。
如汽车上年的嵌入式控制系统对安全性要求极高,在车上安装是要烧制到ROM中在这里的交互在这里是很少的(或许根本就没有)。
基于Web式系统更适合用于迭代式开发和交互。
而基于Web的系统编程使用的如Ruby一类的脚本语言,完全不适合嵌入式系统工程。
(完整版)软件工程习题+答案(可编辑修改word版)
一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。
B)问题定义,可行性研究,需求分析。
C)可行性研究,需求分析,问题定义。
D)以上顺序都不对。
(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。
B)技术可行性,经济可行性,系统可行性。
C)经济可行性,系统可行性,操作可行性。
D)经济可行性,系统可行性,时间可行性。
3.耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。
B)内容耦合,控制耦合,公共环境耦合,数据耦合。
C)内容耦合,公共环境耦合,控制耦合,数据耦合。
(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D)控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使用到的设计工具是:(C )A)程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。
C)判定表,判定树,PDL,程序流程图,PAD 图,N-S 图。
D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD 图、N-S 图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD 数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。
B)模块的控制域应在模块的作用域之内。
C)模块的控制域与模块的作用域互相独立。
D)以上说法都不对。
软件工程课本习题答案
形式化方法的主要特点是:
(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、(×)测试是为了验证该软件以正确地实现了用户的需求。
2、(√)发现错误多的程序模块,残留在模块中的错误也多。
3、(×)白盒测试法是根据程序的功能来设计测试用例的。
4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。
5、(√)确定测试计划是在需求分析阶段制定的。
6、(√)集成测试计划是在概要设计阶段制定的。
7、(√)单元测试是在编码阶段完成的。
8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。
10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。
二、选择题1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。
A、测试输入数据B、预期的测试输出数据C、测试输入与预期的输出数据D、按照测试用例设计方法设计出的数据2、测试和调试最大的不同在于(A)。
A、操作者的心理状态不同B、它们的行为取向不同D 、运用的方法不同 C、使用的工具不同3、一个成功的测试是(B)。
A、发现错误B、发现至今尚未发现的错误D、证明发现不了错误 C 、没有发现错误4、白盒法和黑盒法最大的不同在于(A)。
A、测试用例设计方法不同B、测试的任务不同、基于的知识集不同D 、应用的测试阶段不同C.5、单元测试阶段主要涉及(D)的文档。
A、需求设计B、编码和详细设计C、详细设计 D 、概要设计6、检查软件产品是否符合需求定义的过程称为(A)。
A、确认测试B、集成测试D C、验证测试、验收测试7、软件调试的目的是(B)。
A、发现错误B、改正错误D、挖掘软件的潜能 C 、改善软件的性能8、进行软件测试的目的是(A)。
A、尽可能多地找出软件中的错误B、缩短软件的开发时间C、减少软件的维护成本D、证明程序没有缺陷9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。
A、 B、A BBA TrueFalse TrueFalse、 D C、 FalseTrueBAFalse FalseA BTrueTrue False TrueTrue FalseTrue TrueA OR BFalseTrue语句10、在进行单元测试时,常用的方法是(A)。
软件工程习题及答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程题库(含答案)
软件工程题库(含答案)一、单选题(共60题,每题1分,共60分)1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A、可用性B、正确性C、完整性D、可靠性正确答案:D2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ).A、可移植性B、可理解性C、可重用性D、可修改性正确答案:A3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是( )A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是( )A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括( )。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的( )。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。
A、可追踪性B、可理解性C、可互操作性D、可维护性正确答案:C10、可维护性的特性中相互促进的是( )A、效率和可移植性B、可理解性和可测试性C、效率和结构好D、效率和可修改性正确答案:B11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A、可靠性B、易使用性C、正确性D、准确性正确答案:A12、设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是( )。
《软件工程》试题及参考答案(第9套)
《软件工程》试题(第9套)第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.研究开发所需要的成本和资源是属于可行性研究中的研究的一方面。
( )A.技术可行性B.经济可行性C.社会可行性D.法律可行性2.模块的内聚性最高的是( )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚3快速原型模型的主要特点之一是( )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件 ;D.及早提供工作软件4.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )A.教正性维护B.适应性维护C.完善性维护D.预防性维护5.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性6.汽车有一个发动机。
汽车和发动机之间的关系是 ( )关系。
A.一般具体 B.整体部分C.分类关系D.主从关系7.对象是OO方法的核心,对象的类型有多种,通常把例如飞行、事故、演出、开会等等,称之为( )A.有形实体B.作用C.事件D.性能说明8.提高程序可读性的有力手段是( )A.使用三种标准控制结构B.采用有实际意义的变量名C. 显式说明一切变量D.给程序加注释9.程序的三种基本控制结构的共同特点是()A.只能用来描述简单程序 B.不能嵌套使用C.单入口,单出口 D.仅用于自动控制系统10.在软件开发的各种资源中,()是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员11. 协作图反映收发消息的对象的结构组织,它与()是同构的。
A 用例图B 类图C 活动图D 时序图12.详细设计与概要设计衔接的图形工具是( )。
A、DFD图B、SC图C、PAD图D、程序流程图13.确认测试中,作为测试依据的文档是( )。
A、需求规格说明书B、设计说明书C、源程序D、开发计划14.为了适应软硬件环境变化而修改软件的过程是( )。
软件工程第9版部分习题答案
习题参考答案Exercises(Homework): P251.3 What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.Answer:Fou.importan.attribute.ar.maintainability.dependability.performanc. ability.Othe.attribute.tha.ma.b.significan.coul.b.reusabilit.(ca .i.b.reuse.i.othe.applications).distributabilit.(ca.i.b.distribute.ov wor.o.processors).portabilit.(ca.i.operat.o.multipl.platform.e. .lapto.an.mobil.platforms.an.inter-operabilit.(ca.i.wor.wit..wid.rang .o.othe.softwar.systems).Decomposition.o.th..ke.attribute.e.g.dependabilit.decompose.t.securit y.safety.availability.etc.i.als..vali.answe.t.thi.question.2.1Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:• A system to control anti-lock braking in a car• A virtual reality system to support software maintenance• A university accounting system that replaces an existing system • An interactive travel planning system that helps users plan journeys with the lowest environmental impactAnswer:Plan-drive.processe.ar.processe.wher.al.o.th.proces.activitie.ar.pl anne.i.advanc.an.progres.i.measure.agains.thi.plan.1.Anti-loc.brakin.syste.Thi.i..safety-critica.syste.s.require..lo.o .up-fron.analysi.befor.implementation.I.certainl.need..plan-drive.app roac.t.developmen.wit.th.requirement.carefull.analysed..waterfal.mode e.perhap.wit.forma.transfor mation.betwee.th.differen.developmen.stages.2.Virtua.realit.syste.Thi.i..syste.wher.th.requirement.wil.chang.an ponents.Incrementa.developmen. with.perhaps.som.U.prototypin.i.th.mos.appropriat.model.A.agil.proces ed.3.Universit.accountin.syste.Thi.i..syste.whos.requirement.ar.fairl. e.i.a.environmen.i.conjunctio.wit.lot.o.othe. stem.suc.a..researc.gran.managemen.system.Therefore..reuse-base. proac.i.likel.t.b.appropriat.fo.this.e.interfac.bu.whic.mus.b.stabl.an.reliable.A.incrementa.developmen.approac.i.th.mos.a e.experienc.wit.th .syste.i.gained.2.4Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.Answer:There is a fundamental difference between the user and the system requirements that mean they should be considered separately.e.requirement.ar.intende.t.describ.th.system’.function.an.f er.understan.thes.re nguag.an.ma.no.b.expresse.i.grea.detail.t.allo.som.implementatio.flexibility.Th.peopl.involve.i er’.environmen.an.applicatio.d omain.e.requirement.an .ar.intende.t.b..precis.specificatio.o.th.syste.tha.ma.b.par.o..syste e.i.situation.wher.developmen.i.outsource.an plet.specificatio.o.wha.shoul.b.developed. e.requirement.hav.bee.establi shed.Excercises(Homework): P1164.2, *4.44.2Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system:er.selec.thei.de stinatio.an.inpu..credi.car.an..persona.identificatio.number.e.pr esse.th.star.button..men.displa.o.potentia.destination.i.activated.al e.t.selec..destination.Onc..destinatio.ha.bee.s er.ar.requeste.t.inpu.thei.credi.card.e.i.the.requeste.t.inpu..persona.identifi er.Whe.th.credi.transactio.ha.bee.validated.th.ticke.i.issued.Answer:Ambiguities and omissions include:●• Can a customer buy several tickets for the same destination togetheror must they be bought one at a time?●• Can customers cancel a request if a mistake has been made?●• How should the system respond if an invalid card is input?●• What happens if customers try to put their card in before selectinga destination (as they would in ATM machines)?●• Must the user press the start button again if they wish to buy anotherticket to a different destination?●• Should the system only sell tickets between the station where themachine is situated and direct connections or should it include all possible destinations?4.4Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.Answer:Possible non-functional requirements for the ticket issuing system include:1.Betwee.060.an.230.i.an.on.day.th.tota.syste.dow.tim.shoul.no.excee..minutes.2.Betwee.060.an.230.i.an.on.day.th.recover.tim.afte..syste.failur.s houl.no.excee..minutes.3.Betwee.230.an.060.i.an.on.day.th.tota.syste.dow.tim.shoul.no.excee.2.minutes.Al.thes.ar.availabilit.requirement..not.tha.thes.var.accordin.t.th. tim.o.day.Failure.whe.mos.peopl.ar.travelin.ar.les.acceptabl.tha.fail ure.whe.ther.ar.fe.customers.4.Afte.th.custome.presse..butto.o.th.machine.th.displa.shoul.b.upda te.withi.0..seconds.5.Th.ticke.issuin.tim.afte.credi.car.validatio.ha.bee.receive.shoul .no.excee.1.seconds.6.Whe.validatin.credi.cards.th.displa.shoul.provid..statu.messag.fo .customer.indicatin.tha.activit.i.takin.place.Thi.tell.th.custome.tha .th.potentiall.tim.consumin.activit.o.validatio.i.stil.i.progres.an.t ha.th.syste.ha.no.simpl.failed.7.Th.maximu.acceptabl.failur.rat.fo.ticke.issu.request.i.1.10000.Excercises(Homework): P143-1445.2, 5.5, 5.6, 5.75.2..mode.o..syste.tha.alread.exists.Explai.wh.i.i.no.alw plet.an.correct.Woul.th.sam.b.t ru.i.yo.wer.developin..mode.o..ne.system?Answer:You might create and use a model of a system that already exists for the followingreasons:1.T.understan.an.documen.th.architectur.an.operatio.o.th.existing system.2.T.ac.a.th.focu.o.discussio.abou.possibl.change.t.tha.system.r.th.re-implementatio.o.th.system.pletel.documen.t uall.t. hel.yo.wor.o.part.o.th.syste.s.onl.thes.nee.t.b.modelled.Furthermore.e.a..discussio.focus.yo.ar.unlikel.t.b.intereste.i.deta il.an.s.ca.ignor.part.o.th.syste.i.th.model.Thi.i.true.i.general.fo.model.o.ne.system.unles..model-base.approac.t plet.mode.i.required.Th.othe. plet.mode.i.whe.ther.i..contractua.re quiremen.fo.suc..mode.t.b.produce.a.par.o.th.syste.documentation.5.5Develo..sequenc.diagra.showin.th.interaction.involve.whe..studen.re gister.fo..cours.i..university.Course.ma.hav.limite.enrolment.s.th.re gistratio.proces.mus.includ.check.tha.place.ar.available.Assum.tha.th .studen.accesse.a.electroni.cours.catalo.t.fin.ou.abou.availabl.cours es.Answer:.relativel.simpl.diagra.i.al.tha.i.neede.here.I.i.bes.no.t.b.to.fuss. abou.thing.lik.UM.arro.style.a.hardl.anyon.ca.remembe.th.difference.b etwee.them.5.6Loo.carefull.a.ho.message.an.mailboxe.ar.represente.i.th.emai.syste e.i.th.syste.implementa tio.t.represen..mailbo.an.a.e-mai.message.Answer:5.7Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.Answer:Notice that I have not developed the activities representing other services or failed authentication.Excercises(Homework): P173-1746.1,6.3,6.96.1When describing a system, explain why you may have to design the system architecture before the requirements specification is complete.Answer:The architecture may have to be designed before specifications are written to provide a means of structuring the specification and developing different subsystem specifications concurrently, to allow manufacture of hardware by subcontractors and to provide a model for system costing.6.3Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements.Answer:Fundamentally.t.provid.availability.yo.nee.t.hav.(po ponen.failing.yo.ca.swi ponent.Yo.als.nee.t.hav.severa.copie.o.th.d at.tha.i.bein.processed.Securit.require.minimizin.th.numbe.o.copie.o. ponen.o nl.know.a.muc.a.i.need.to.t.d.it.job.Thi.reduce.th.chanc.o.intruder.a ccessin.th.data.Therefore.ther.i..fundamenta.architectura.conflic.betwee.availabilit. (replication.severa.copies.an.securit.(specialization.minima.copies). promis.betwee.thes.fundamentall. opposin.requirements.6.9Using the basic model of an information system as presented in Figure 6.16, suggest the components that might be part of an information system thatallows users to view information about flights arriving and departing from a particular airport.Answer:rmatio.syste.an.shoul.ident ponents might be:Level 1 (Database level)Flight database; Flight status database; Airport information; Level 2: (Information retrieval level)Status management; Flight management; Search;Level 3: (User interaction level)Authentication; session management; forms processing () Level 4 (User interface)Input checking (Javascript), browserExcercises(Homework): P202-2037.1, 7.37.1in.th.structure.notatio.show.i.Figur.7.3.specif.th.weathe.statio .us.case.fo.Repor.statu.an.Reconfigure.Yo.shoul.mak.reasonabl.assumpt ion.abou.th.functionalit.tha.i.require.here.Answer:7.3in.th.UM.graphica.notatio.fo.objec.classes.desig.th.followin.obj .you.ow.experienc.t.d ecid.o.th.attribute.an.operation.tha.shoul.b.associate.wit.thes.objec ts.• a telephone• a printer for a personal computer• a personal stereo system• a bank account• a library catalogueAnswer:plexit.ca.b.adde.t.t h.objects.However..a.onl.reall.lookin.fo.simpl.object.whic.encapsulat .th.principa.requirement.o.thes.artefacts.Possibl.design.ar.show.i.th .abov.diagram.。
软件工程部分参考答案
软件工程部分参考答案软件工程部分参考答案1:引言本文档旨在详细介绍软件工程相关内容。
软件工程是一门关注软件开发过程的学科,它涉及到软件项目的规划、设计、开发、测试和维护等方面。
通过本文档,我们可以了解软件工程的基本概念、方法和工具,以及软件工程的开发生命周期和各阶段的工作内容。
2:软件工程基本概念2.1 软件工程定义软件工程是一门应用科学,它涉及到开发和维护软件所需的理论、方法和工具。
软件工程的目标是提高软件的质量、效率和可靠性,以满足用户的需求。
2.2 软件开发生命周期软件开发生命周期是指从软件项目开始到完成的全过程,通常包括需求分析、设计、编码、测试和维护等阶段。
2.3 软件工程方法和工具软件工程方法指的是一套规范和步骤,用来指导软件项目的开发过程。
常用的软件工程方法有结构化方法、面向对象方法和敏捷开发方法等。
软件工程工具是用来辅助软件开发和管理的工具,例如需求管理工具、版本控制工具和项目管理工具等。
3:软件需求分析3.1 需求获取需求获取是指通过与用户沟通、观察和文档分析等方式,获取软件系统的需求信息。
3.2 需求规格需求规格是将需求转化为可理解和可验证的形式。
常用的需求规格方法包括用例图、活动图和数据流图等。
3.3 需求验证需求验证是指通过评审、演示和测试等方式,验证需求的正确性和完整性。
4:软件设计4.1 结构设计结构设计是指将软件系统划分为模块,并定义模块之间的关系和接口。
4.2 对象设计对象设计是指定义软件系统中的各个对象,并确定每个对象的属性和操作。
4.3 数据库设计数据库设计是指设计软件系统中的数据库结构,包括表的定义、关系的建立和索引的创建等。
5:软件编码和测试5.1 编码规范编码规范是一套约定俗成的规则,用来指导程序员编写代码。
良好的编码规范可以提高代码的可读性和可维护性。
5.2 单元测试单元测试是指对软件系统中的最小可测试单元进行测试,以验证其功能的正确性。
5.3 集成测试集成测试是指将各个模块集成起来进行测试,以验证模块之间的协作是否正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题参考答案Exercises(Homework): P251.3 What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.Answer:Four important attributes are maintainability, dependability, performance and usability. Other attributes that may be significant could be reusability (can it be reused in other applications), distributability (can it be distributed over a network of processors), portability (can it operate on multiple platforms e.g laptop and mobile platforms) and inter-operability (can it work with a wide range of other software systems).Decompositions of the 4 key attributes e.g. dependability decomposes to security, safety, availability, etc. is also a valid answer to this question.2.1Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:• A system to control anti-lock braking in a car• A virtual reality system to support software maintenance• A university accounting system that replaces an existing system • An interactive travel planning system that helps users plan journeys with the lowest environmental impactAnswer:1. Anti-lock braking system This is a safety-critical system so requiresa lot of up-front analysis before implementation. It certainly needs a plan-driven approach to development with the requirements carefully analysed. A waterfall model is therefore the most appropriate approach to use, perhaps with formal transformations between the different development stages.2. Virtual reality system This is a system where the requirements will change and there will be an extensive user interface components. Incremental development with, perhaps, some UI prototyping is the most appropriate model. An agile process may be used.3. University accounting system This is a system whose requirements are fairly ell-known and which will be used in an environment in conjunction with lots of other stems such as a research grant management system. Therefore, a reuse-based proach is likely to be appropriate for this.4. Interactive travel planning system System with a complex userinterface but which must be stable and reliable. An incremental development approach is the most appropriate as the system requirements will change as real user experience with the system is gained.2.4Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.Answer:There is a fundamental difference between the user and the system requirements that mean they should be considered separately.1. The user requirements are intended to descri be the system’s functions and features from a user perspective and it is essential that users understand these requirements. They should be expressed in natural language and may not be expressed in great detail, to allow some implementation flexibility. The people involved in the process must be able to understand the user’s environment and application domain.2. The system requirements are much more detailed than the user requirements and are intended to be a precise specification of the system that may be part of a system contract. They may also be used in situations where development is outsourced and the development team need a complete specification of what should be developed. The system requirements are developed after user requirements have been established.Excercises(Homework): P1164.2,*4.44.2Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system:An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identification number.The rail ticket is issued and their credit card account charged. When the user presses the start button, a menu display of potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card.Its validity is checked and the user is then requested to input a personal identifier. When the credit transaction has been validated, the ticket is issued.Answer:Ambiguities and omissions include:●• Can a customer buy several tickets for the same destination togetheror must they be bought one at a time?●• Can customers cancel a request if a mistake has been made?●• How should the system respond if a n invalid card is input?●• What happens if customers try to put their card in before selectinga destination (as they would in ATM machines)?●• Must the user press the start button again if they wish to buy anotherticket to a different destination?●• Shou ld the system only sell tickets between the station where themachine is situated and direct connections or should it include all possible destinations?4.4Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.Answer:Possible non-functional requirements for the ticket issuing system include:1. Between 0600 and 2300 in any one day, the total system down time should not exceed 5 minutes.2. Between 0600 and 2300 in any one day, the recovery time after a system failure should not exceed 2 minutes.3. Between 2300 and 0600 in any one day, the total system down time should not exceed 20 minutes.All these are availability requirements –note that these vary according to the time of day. Failures when most people are traveling are less acceptable than failures when there are few customers.4. After the customer presses a button on the machine, the display should be updated within 0.5 seconds.5. The ticket issuing time after credit card validation has been received should not exceed 10 seconds.6. When validating credit cards, the display should provide a status message for customers indicating that activity is taking place. This tells the customer that the potentially time consuming activity of validation is still in progress and that the system has not simply failed.7. The maximum acceptable failure rate for ticket issue requests is 1: 10000.Excercises(Homework): P143-1445.2,5.5,5.6,5.75.2How might you use a model of a system that already exists? Explain whyit is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system?Answer:You might create and use a model of a system that already exists for the followingreasons:1. To understand and document the architecture and operation of the existingsystem.2. To act as the focus of discussion about possible changes to that system.3. To inform the re-implementation of the system.You do not need a complete model unless the intention is to completely document the operation of the existing system. The aim of the model in such cases is usually to help you work on parts of the system so only these need to be modelled. Furthermore, if the model is used as a discussion focus, you are unlikely to be interested in details and so can ignore parts of the system in the model.This is true, in general, for models of new systems unless a model-based approach to development is taking place in which case a complete model is required. The other circumstances where you may need a complete model is when there is a contractual requirement for such a model to be produced as part of the system documentation.5.5Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrolment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to find out about available courses.Answer:A relatively simple diagram is all that is needed here. It is best not to be too fussy about things like UML arrow styles as hardly anyone can remember the differences between them.5.6Look carefully at how messages and mailboxes are represented in the email system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an e-mail message. Answer:5.7Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.Answer:Notice that I have not developed the activities representing other services or failed authentication.Excercises(Homework): P173-1746.1,6.3,6.96.1When describing a system, explain why you may have to design the system architecture before the requirements specification is complete.Answer:The architecture may have to be designed before specifications are written to provide a means of structuring the specification and developing different subsystem specifications concurrently, to allow manufacture of hardware by subcontractors and to provide a model for system costing.6.3Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements.Answer:Fundamentally, to provide availability, you need to have (a) replicated components in the architecture so that in the event of one component failing, you can switch immediately to a backup component. You also need to have several copies of the data that is being processed. Security requires minimizing the number of copies of the data and, wherever possible, adopting an architecture where each component only knows as much as it needs to, to do its job. This reduces the chance of intrudersaccessing the data.Therefore, there is a fundamental architectural conflict between availability (replication, several copies) and security (specialization, minimal copies). The system architect has to find the best compromise between these fundamentally opposing requirements.6.9Using the basic model of an information system as presented in Figure 6.16, suggest the components that might be part of an information system thatallows users to view information about flights arriving and departing from a particular airport.Answer:Students should consider the levels in the information system and should identify components that might be included at each level. Examples of these componentsmight be:Level 1 (Database level)Flight database; Flight status database; Airport information; Level 2: (Information retrieval level)Status management; Flight management; Search;Level 3: (User interaction level)Authentication; session management; forms processing () Level 4 (User interface)Input checking (Javascript), browserExcercises(Homework): P202-2037.1, 7.37.17.1 Using the structured notation shown in Figure 7.3, specify the weather station use cases for Report status and Reconfigure. You should make reasonable assumptions about the functionality that is required here.Answer:7.37.3 Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects.• a telephone• a printer for a personal computer• a personal stereo system• a bank account• a library catalogueAnswer:There are many possible designs here and a great deal of complexity can be added to the objects. However, I am only really looking for simple objects which encapsulate the principal requirements of these artefacts. Possible designs are shown in the above diagram.。