软件工程案例教程答案
软件工程课后习题答案
软件工程课后习题答案第一章1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。
答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。
软件分化出的在电子商务方面的应用。
1.2举例说明软件对社会的影响(包括正面影响和负面影响)。
答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。
您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。
另一个有趣的方面是使用诺依曼的“风险”列在SEN中做重点讨论。
你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。
1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。
答:软件需要如此长的开发时间:a)设施不上线b)开发工具并不如预期般运作c)客户提出的新要求,需要重新设计和返工d)产品依赖于政府的规定,被意外更改。
e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。
f)多个操作系统下运行的任务需求比预期需要更长的时间。
g)软件项目风险管理比预期需要更多的时间。
h)依赖的技术仍处于开发阶段,从而延长日程安排。
开发成本高:a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。
b)制定了错误的软件功能需要重新设计和实施。
c)开发错误的用户界面,而导致重新设计和实施。
d)开发了不需要的额外的软件功能而延长了开发日程安排。
在将软件交付顾客使用之前,我们无法找到所有错误:a)产品依赖于政府监管,意外而改变。
b)产品技术标准草案,会意外更改。
c)有时会在项目后期添加新的开发人员。
d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。
e)破坏高效调度产生的项目管理成果和无效的规划f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。
软件工程---课后习题答案.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.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
软件工程管理分析案例教程(第三版)课后习题-答案
第一章二、判断题1、搬家属于项目。
(√)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。
(×)3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。
(√)4、项目具有临时性的特征。
(√)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。
(×)6、项目开发过程中可以无限制地使用资源。
(×)三、选择题1、下列选项中不是项目与日常运作的区别的是(C)A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。
B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。
C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。
D.项目是一次性的,日常运作是重复性的。
2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧 B.整合范围与成本 C.确定期限 D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做 B.受限于有限的资源 C.需要规划、执行和控制 D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划 B.组织实施 C.项目控制 D.提供资金5、下列选项中属于项目的是(C)A.上课 B.社区保安 C.野餐活动 D.每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
A.过程 B.项目 C.项目群 D.组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。
A.人力资源管理 B.项目管理 C.软件项目管理 D.需求管理9、下列活动中不是项目的是(C)A.野餐活动 B.集体婚礼 C.上课 D.开发操作系统10、下列选项中不是项目的特征的是(C)A.项目具有明确的目标B.项目具有限定的周期C.项目可以重复进行D.项目对资源成本具有约束性第二章二、判断题1、项目初始阶段甲方为软件开发方,乙方为顾客。
软件工程案例教程习题
软件工程第一章习题一一、判断题1.程序是按事先设计的功能和性能要求执行的指令序列。
()2.数据时使程序能够正确操纵信息的数据结构。
()3.文档与程序开发、维护和使用有关的图文材料。
()4.软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
()5.增量模型的特点是文档驱动。
()6.瀑布模型的特点是文档驱动。
()7.瀑布模型是一种软件生存周期模型。
()8.在软件生存周期中,用户主要是在软件开发期参与软件开发。
()9.瀑布模型的主要问题是可靠性低。
()10.软件生存周期中时间最长的阶段是需求分析。
()11.原型化方法适用于需求已确定的系统。
()12.瀑布模型本质上是一种线性模型。
()13.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统。
二、填空题1.软件工程是开发、运行、维护和修复软件的系统化方法,它包含的三个要素指的是:()()和()。
2.软件是计算机系统中于硬件相互依存的另一部分,它是包括()、()与()的完整集合。
3.开发软件时对提高软件开发人员工作效率至关重要的是()。
软件工程中描述生存周期的瀑布模型一般包括计划、()、设计、编码、测试、维护、等几个阶段,其中设计阶段在管理上有可以一次分成()和()两步。
4.软件发展的第一阶段称为“程序设计的原始时期”,这时期即没有(),也没有(),程序员只能用机器指令编写程序。
5.软件发展过程的第二阶段称为“基本软件期”。
出现了(),并逐渐普与。
随着()的发展,编译技术也有较大的发展。
6.软件发展过程的第三阶段称为“程序设计方法时代”。
这一时期,于硬件费用下降相反,软件开发费急剧上升。
人们提出了()和()等程序设计方法,设法降低软件的开发费用。
7.软件发展的第四阶段称为“软件工程期”。
软件开发技术不再仅仅是程序设计技术,而是包括与软件开发的各个阶段,()、()、编码、单元测试、综合测试、()与整体有关的各种管理技术。
软件工程案例教程答案
第一章1.下列所述不是软件特点的是(A)A.软件是有形的B.软件不存在磨损和消耗问题C.软件开发成本高D.软件没有明显的制作过程 C)2.软件工程的出现主要是由于(计算机的D.C.B.其他工程学科的影响软件危机的出现 A.程序设计方法学的影响发展)不是软件危机的表现形式3.以下(C开发的软件价格便宜C.A.开发的软件不满足用户的需要 B.开发的软件可维护性差D.开发的软件可靠性差4.软件工程的目的是(C)A.建造大型的软件系统B.开发的软件可维护性差C.软泥吉安质量的保证D.研究软件开发的远离)5.下列所述不是软件组成的是(D 文档界面 D. A.程序B.数据 C. 下列对“计算机软件”描述正确的是(A)6.是在计算机硬件设备生产过 C.是计算机系统的组成部分A. B.不能作为商品参加交易程中生产出来的 D.之存在语计算机系统工作时7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因A.软件的复杂性B.软件维护困难 C软件成本太高. D.软件质量难保证8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A.软件危机B.质量保证C.开发效率D.生产工程化9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A.项目管理B.成本核算C.人员培训D.工具开发10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴软件工程经济D. 软件工程环境C. 软件开发工具B. 软件开发方法A.二、填空题1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。
2.螺旋式开发模型主要是针对风险比较大的项目而设计的3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
软件工程课后习题答案2-12章
书状态为S2&终端 输入“H=”加书名 管理员设置状 态 管理员删除 管理员添加
预约
书出库(删除) 书入库
图4.4.2
(三)图书馆终端用户模式的有穷状态机描述 • 状态机J:{读者查询状态,查询结果} • 输入集K:{终端输入用户查询命令,书的各种 状态(S1,S2,S3)} • 转换函数T:如图4.4.3所示 • 初始态S:{读者查询状态} • 终态集F:{查询结果}
取票通知 账单 机票 账单
P3.1 核对取票凭证 顾客 取票通知 P3.2 交款 机票 P3.3 打印机票
机票预定系 统
信 息 通 知 单 机 票
账
单
信息
机票
通
预定信息处 理
信息
知
账
通
单
有
单
取票凭证处 理
通知 账单 单
账单
信 息 定 预 航班信
息
机票预定子 系统
单 知
机票发放子 系统
效 通 知
机
票
取款单
P3.1输入取款 信息
取款信息 E1储 户 密码 P3.2 密码校验
P4 计算利息
利息 利息 P5 打印利息 清单
密码正确信息
E2业 务员
利率
P6设置利 率
利率
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单
取
单
储蓄业务处理
(一)图书状态的有穷状态机描述 • 状态机J:{书在图书馆S1,书被借出S2, 书被预约S3} • 输入集K:{书上条形码,借阅卡条形码, 终端输入各种命令} • 转换函数T:如图4.4.1所示 • 初始态S:{书在图书馆S1,书被借出S2} • 终态集F:{书被借出S2,书被预约S3}
软件工程(第5版课后答案)
f(作者姓名)
系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。
设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。
P175 5
P175 5 参考答案
划分等价类(略) 全面测试系统正常操作 B BS BSD F FD
B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息
单击此处可添加副标题
P23 7参考答案
增量模型 缺点: 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。
习题1第6题
什么是软件过程?它与软件工程方法学有何关系?
P23 6
P23 6参考答案
软件工程课后答案完整版
软件工程课后答案完整版软件工程是一门涉及软件开发与管理的学科,它关注着如何有效地组织、设计、开发和维护软件系统。
作为一门实践性强的学科,课后答案对于学习软件工程的学生来说非常重要。
本文将以软件工程课后答案为主题,为您提供一份完整版的答案,旨在帮助您更好地理解和掌握软件工程的知识。
一、需求分析与规格说明1. 问题描述对于任何一门软件工程课程,需求分析和规格说明都是至关重要的环节。
通过合理地分析需求,可以明确软件系统的功能需求、性能需求和用户需求,从而为后续的设计和开发工作奠定基础。
在这一部分中,我们将详细讨论问题描述、需求规格说明以及软件需求规格说明的编写步骤和技巧。
2. 答案示例问题描述:某个公司需要开发一个在线购物系统,能够满足用户浏览商品、下单购买、支付、评价等功能。
需求规格说明:该系统需要具备以下功能需求:- 用户注册登录:用户可以通过注册登录系统,建立个人账号,用于后续购物操作。
- 商品浏览:用户可以浏览系统中的商品,包括商品图片、详细介绍、价格等信息。
- 购物车管理:用户可以将感兴趣的商品加入购物车,并对购物车进行管理,如增加、删除、修改商品数量等操作。
- 订单管理:用户可以在购物车中选择商品提交订单,并进行支付操作。
- 支付功能:系统需要集成常用的支付渠道,如支付宝、微信支付等,以便用户支付订单。
- 评价功能:用户在收到商品后可以对商品进行评价,并可以查看其他用户对商品的评价。
三、软件系统设计与实现1. 系统架构设计系统架构设计是软件工程中的核心环节之一,它关注着如何将系统划分为各个模块,并确定模块之间的接口和依赖关系。
在这一部分中,我们将着重讨论系统架构设计的原则、方法以及常用的架构模式。
2. 答案示例系统架构设计的主要目标是实现系统的可扩展性、灵活性和可维护性。
在本次项目中,我们采用了经典的三层架构模式,即用户界面层、业务逻辑层和数据访问层。
- 用户界面层:负责与用户进行交互操作,接收用户输入的请求,并向用户展示系统的响应结果。
软件工程课后参考答案
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
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 简述软件的定义、软件的特点和软件危机的表现。
软件的定义:软件是由计算机程序、数据和文档组成的。
软件的特点:1)抽象性,2)软件生产无明显的制造过程,3)无磨损性,4)对计算机系统的依赖性,5)软件的手工开发方式,6)软件本身复杂性,7)软件的高成本软件危机的表现:1)软件开发周期大大超过规定日期,2)软件开发成本严重超标,3)软件质量难于保证。
1.2 什么是软件工程和软件工程化?软件工程:软件工程化:把软件工程理论应用到软件开发组织中,以改进软件产品开发的时间(T)、质量(Q)、成本(C)和服务(S)。
1.3简要说明软件工程三要素与质量关注点之间的关系。
软件工程的三要素:方法、工具和过程。
关系看P41.4如何构造软件过程?软件过程构造时首先应建立一个公共过程框架,其中定义了少量可用于所有项目的框架活动;再给出各个框架活动的任务集合,使得框架活动能够适合于项目的特点和项目组的需求;最后是保护性活动。
1.5什么是软件生存周期?软件生存周期分为哪几个阶段?各阶段的任务是什么?软件生存周期:是软件产品或软件系统从设计、投入使用到被淘汰的全过程。
软件生存周期:定义、开发、维护。
1)定义:包括问题定义、可行性研究和需求分析。
2)开发时期包括设计、编码和测试。
3)维护时期包括维护阶段。
1.6常用的软件工程方法和开发模型各有哪些?软件工程方法:生命周期法(又称传统方法或结构化方法)、面向对象方法和原型法。
软件开发模型:瀑布模型、快速原型模型、演化模型、面向对象模型、形式化方法模型。
1.7什么是软件工具、软件开发环境和软件工程环境?软件工具:是用来辅助软件开发、运行、维护、管理和支持等过程中活动的软件。
1.8软件工程的基本原理:1)按软件生存期分为阶段制定计划并认真实施。
2) 坚持进行阶段评审。
3)坚持严格的产品控制。
4)使用现代程序设计技术。
5)明确责任,使得工作结果能够得到清楚的审查。
软件工程管理分析案例教程(第三版)课后习题-答案
第一章二、判断题1、搬家属于项目。
(√)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。
(×)3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。
(√)4、项目具有临时性的特征。
(√)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。
(×)6、项目开发过程中可以无限制地使用资源。
(×)三、选择题1、下列选项中不是项目与日常运作的区别的是(C)A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。
B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。
C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。
D.项目是一次性的,日常运作是重复性的。
2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧 B.整合范围与成本 C.确定期限 D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做 B.受限于有限的资源 C.需要规划、执行和控制 D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划 B.组织实施 C.项目控制 D.提供资金5、下列选项中属于项目的是(C)A.上课 B.社区保安 C.野餐活动 D.每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
A.过程 B.项目 C.项目群 D.组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。
A.人力资源管理 B.项目管理 C.软件项目管理 D.需求管理9、下列活动中不是项目的是(C)A.野餐活动 B.集体婚礼 C.上课 D.开发操作系统10、下列选项中不是项目的特征的是(C)A.项目具有明确的目标B.项目具有限定的周期C.项目可以重复进行D.项目对资源成本具有约束性第二章二、判断题1、项目初始阶段甲方为软件开发方,乙方为顾客。
《软件工程案例教程》李军国主编习题答案
《软件⼯程案例教程》李军国主编习题答案第1章习题答案⼀、判断题⼆、填空题三、简答题1.软件的特点:①软件具有抽象性。
②软件与硬件的⽣产⽅式不同。
③软件与硬件的维护⽅式不同。
④软件具有复杂的逻辑性。
⑤软件的成本较⾼。
⑥软件的使⽤和社会因素有关。
2.软件危机产⽣的原因:①⽤户需求不明确。
②缺乏正确的理论指导。
③软件开发规模越来越⼤。
④软件开发复杂度越来越⾼。
3.软件危机的主要表现:①软件开发进度难以预测。
②软件开发成本难以控制。
③⽤户对产品功能难以满⾜。
④软件产品质量⽆法保证。
⑤软件产品难以维护。
⑥软件缺少适当的⽂档资料。
4.软件⼯程学的基本原则有哪些:①抽象。
②信息隐蔽。
③模块化。
④局部化。
⑤确定性。
⑥⼀致性。
⑦完备性。
⑧可验证性。
5 什么是软件的⽣命周期?答案:软件与任何⼀个事物⼀样,有它的孕育、诞⽣、成长、成熟、衰亡的⽣存过程。
这就是软件的⽣存周期。
6 软件⼯程过程有哪⼏个基本过程活动?试说明之。
答案:软件⼯程过程的基本过程活动有4步:①软件规格说明(需求定义)。
规定软件的功能及其运⾏的限制;②软件设计与开发(设计开发)。
产⽣满⾜规格说明的软件;③软件确认(测试)。
确认软件能够完成客户提出的要求;④软件演进(维护)。
为满⾜客户的变更要求,软件必须在使⽤的过程中演进。
四、综合题1.详细说明软件⽣命周期分哪⼏个阶段?答案:软件⽣命周期主要分为6个阶段:软件项⽬计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运⾏维护。
(1)软件项⽬计划:在这⼀步要确定软件⼯作范围,进⾏软件风险分析,预计软件开发所需要的资源,建⽴成本与进度的估算。
根据有关成本与进度的限制分析项⽬的可⾏性。
(2)软件需求分析和定义:在这⼀步详细定义分配给软件的系统元素。
可以⽤以下两种⽅式中的⼀种对需求进⾏分析和定义。
⼀种是正式的信息域分析,可⽤于建⽴信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另⼀种是软件原型化⽅法,即建⽴软件原型,并由⽤户进⾏评价,从⽽确定软件需求。
软件工程课后习题答案
软件工程课后习题答案习题1 略。
习题2 略。
习题3 略。
习题42.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?人们在理解用自然语言描述的规格说明时,容易产生二义性。
为了克服非形式化方法的缺点,人们把数学引入软件开发工程,创造了基于数学的形式化说明技术。
应用形式化方法的准则:(1)应该选用释放的表示方法;(2)应该形式化,但不要过分形式化;(3)应该估算成本;(4)应该有形式化方法顾问随时提供咨询;(5)不应该放弃传统的开发方法;(6)应该建立详尽的文档;(7)不应该放弃质量标准;(8)不应该盲目依赖形式化方法;(9)应该测试、测试再测试;(10)应该重用。
4.用有穷状态机说明自动化图书馆流通系统习题5 略。
习题6 略。
习题7 略。
习题8 略。
习题91.什么是面向对象方法学?它有哪些优点?面向对象方法学,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使得实现解法的解空间(也称为求解域)与描述问题的问题空间(也称为问题域)在结构上尽可能一致。
优点:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.较易开发大型软件产品;5.可维护性好10.建立订货系统的用例模型。
分析如下:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库市事务报告给订货系统,系统接受到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。
综上所述,用例如下:习题101.用面向对象方法分析研究本书习题2第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
对象模型参考:以上还需将关联关系说明补全。
动态模型参考:(1)脚本正常情况脚本:储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;业务员查收存款,审核存款与存款单存款金额吻合;存款单生效;储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;业务员审核存款,验证储户身份,确定储户存款金额> = 取款金额;审核通过,取款单生效;系统打印利息清单,业务员把本金和利息返回储户。
软件工程课后参考答案
软件工程课后参考答案 The manuscript was revised on the evening of 2021第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.下列所述不是软件特点的是(A)A.软件是有形的B.软件不存在磨损和消耗问题C.软件开发成本高D.软件没有明显的制作过程2.软件工程的出现主要是由于(C)A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展3.以下(C)不是软件危机的表现形式A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.软件工程的目的是(C)A.建造大型的软件系统B.开发的软件可维护性差C.软泥吉安质量的保证D.研究软件开发的远离5.下列所述不是软件组成的是(D)A.程序B.数据C.界面D.文档6.下列对“计算机软件”描述正确的是(A)A.是计算机系统的组成部分B.不能作为商品参加交易C.是在计算机硬件设备生产过程中生产出来的D.之存在语计算机系统工作时7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因A.软件的复杂性B.软件维护困难C软件成本太高. D.软件质量难保证8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A.软件危机B.质量保证C.开发效率D.生产工程化9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A.项目管理B.成本核算C.人员培训D.工具开发10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济二、填空题1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。
2.螺旋式开发模型主要是针对风险比较大的项目而设计的3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
5.喷泉模型比较适合用于面向对象的开发方法。
三、判断题1.软件开发方法的主要目的是克服软件手工生产带来的问题,使软件开发能进入工程化和规范化的环境(Y)2.软件工程的提出起源于软件危机,其目的书最终解决软件的生产工程化(Y)3.软件工程改进也是软件工程的范畴(Y)一、选择题1.结构化分析方法是面向(B)的自顶向下逐步求精的分析方法。
A.目标B.数据流C功能. D.对象2.在进行软件设计时应该遵循的最主要的原理是(C)A.抽象B模块化. C.模块独立D信息屏蔽.3.在结构化分析方法中,常用的描述软件功能需求的工具是(C)A.业务流程图、处理说明B软件流程图、模块说明. C.数据流程图、数据字典 D.系统流程图、程序编码二、填空题1.结构化分析方法是(面向数据流)进行分析的方法。
2.在软件开发的结构化方法中,构成系统逻辑的模型的是(数据流图(DFD))和数字字典。
3.数据流图是描述数据在软件中流动和被处理的过程,是软件模型的一种图示,它一般包括4种图形符号:变换/加工、外部实体、数据流向和(数据储存)。
4.(面向对象)是将数据和对数据的操作紧密结合起来的方法,这是与传统结构化方法的主要区别三、判断题1.面向对象开发过程是多次重复和迭代的演化过程,(面向对象开发方法是)在概念和表示方法是的一致性保证了各项开发活动之间的平滑过渡(N)2.软件逆向工程是根据对软件需求的分析恢复其设计和软件代码的过程(N)第三章一、选择题1、软件开发过程中,需求活动的主要任务是(B)A给出软件解决方案B定义需求并建立系统模型C定义模块算法D给出系统模块结构2、软件需求规格说明文档中包括多方面的内容,下述(D)不是软件需求规格说明文档中应包括的内容A安全描述B功能描述C性能描述D软件代码3.软件需求分析一般应确定的是用户对软件的(D)A功能需求B非功能需求C性能需求D功能需求和非功能需求4.结构化分析方法中,描述软件功能需求的常用工具有(C)同第二章5.软件需求分析阶段建立原型的主要目的是(D)A确定系统的功能和性能要求B确定系统的性能要求C确定系统是否满足用户要求D确定系统是否满足开发人员需要6.在需求分析阶段,需求分析人员需要了解用户的需求,认真仔细地调研、分析,最终应建立目标系统的逻辑模型并写出(B)A模块说明书B需求规格说明书C项目开发设计D合同文档7.如见需求阶段要解决的问题(A)A软件做什么B软件提供哪些信息C软件采用什么结构D软件怎样做8.软件需求管理过程包括需求获取、需求分析、编写需求规格说明书、需求评审以及(D)A用户参加B需求变更C总结D都不正确9.在原型法中开发人员根据(A)需求不断修改原型,直到满足用户需求为止。
A用户B开发人员C系统分析员D程序员10.结构化分析方法以数据流图、(D)和加工说明等描述工具,即用直观的图和简介的怨言来描述软件系统模型。
A、DFD图B、PAD图C、HIPO图D数据字典二.填空题1.面向数据流的软件设计中,一般将数据流图的数据流划分为变换流和(事物流)。
2.分析模型在系统级描述和(软件设计的差距)之间建立了桥梁。
最常见的实体关系图的表示法是(E-R图)表示法和()三.判断题1.系统流程图表达了系统中各个袁术之间信息的流动情况(Y)2.用例需求分析方法采用的是一种结构化的情景分析方法,即是一种基于场景建模的方法(N)3.面向对象的分析方法认为系统是对象的集合,是以功能和数据为基础的(Y)第四章一、选择题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.软件的(A)设计也称为总体结构设计,其主要人物是建立软件的总体结构A概要B抽象C逻辑D规划6.数据字典是定义(A)中的数据的工具A数据流图B系统流程图C程序流程图D软件结构图7.耦合是软件各个模块间连接的一种度量。
一组模块都访问同意数据结构应属于(B)A内容耦合B公共耦合C外部耦合D控制耦合8.面向数据流的软件设计方法中,一般是把数据流图中的数据流分为(B)两种流,在将数据流图映射为软件结构A数据流与事物流B交换流和事务流C信息流与控制流D交换流和数据流9.(C)是指让一些关系密切的软件元素在物理上彼此靠近A信息隐蔽B内聚C局部化D模块独立10.软件设计是一个将(B)转换为软件表示的过程A代码设计B软件需求C详细设计D系统分析11.数据储存和数据流都是(D),仅仅是所处的状态不同A分析结果B事件C动作D数据12.在结构化方法中,软件功能分解属于软件开发中的(C)阶段的任务A详细设计B需求分析C概要设计D编程调试13.数据字典是数据定义信息的集合,它所定义的对象都包括在(A)A数据流图B程序框图C软件结构D方框图14.模块本身的内聚是模块独立性的重要度量因素之一,在7类内聚中,具有最强内聚的一类是(D)A顺序性内聚B过程性内聚C逻辑性内聚D功能性内聚15.面向数据流的设计方法把(A)映射城软件结构A数据流B系统结构C控制结构D信息流16.数据流图和(数据字典)共同组成系统逻辑模型17.下列关于软件设计准则的描述,错误速度是(C)A提高模块的独立性B体现统一的风格C是模块结构的作用语在该模块的控制域外D结构应该尽可能满足变更的要求二、填空题1、数据字包括(数据流)、(实体)、(数据储存)和基本加工2、软件设计把一确定的软件需求转换成特定的设计表示,使其得以实现3、设计模型是从分析模型转化而来的,主要包括四类模型:(体系结构设计模型)、数据设计模型、接口设计模型、模块化4、面向兑现设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、隐蔽性、功能独立性和、模块化5、构建(模块)设计的最终目的是将数据模型、体系结构模型、接口模型变为(运行软件)三、判断题1、软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程(N)2、软件设计说明书是软件概要设计的主要成果(Y)3、软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代价(Y)4、模式是针对特定问题的解决方案,好的模式采用成熟和成功的方法,比重新设计要好很多。
框架是特定应用领域的数据结构模式(N)第五章一、选择题1、(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的,而且可以通过名字来访问A模块化B抽象C精化D模块2、面向数据结构的设计方法是进行(c)的一种方法A系统设计B详细设计C软件设计D编码3.Jackson设计方法是由Jackson所提出的,它是一种面向(C)的软件设计方法A对象B数据流C数据结构D控制结构4.数据元素组成数据的方式基本类型是(D)A顺序的B选择的C循环的D以上全部5.程序流程图中的箭头代表的是(B)A数据流B控制流C调用关系D组成关系6.伪码又称为过程设计语言PDL,一种典型的PDL是仿照(C)编写的A、FORTRAN B汇编语言C、PASCAL语言DCOBOL语言7.伪码作为详细设计的工具,缺点在于(B)A每个符号对应与源程序的一行代码,对于提高系统的可理解性作用很小B不如其他图形工具直观,描述复杂的条件组合与动作间的对应关系不够明了C容易使程序不受任何约束,随意转移控制D不支持逐步求精,是程序员不去烤炉系统的全局结构8.结构化程序流程图中一般包括3种基本结构,下述结构中(D)不属于其基本解结构。
A顺序结构B条件结构C选择结构D嵌套结构9.软件设计模块化的目的是(B)A提高易读性B降低复杂性C怎家内聚性D降低耦合性二.填空题1、PDL又称(伪码),它是一种非形式的比较灵活的语言2、软件店详细设计可采用图形、(表格)和过程设计语言等形式的描述工具表示模块的处理过程3、软件的详细设计需要设计人员对每个设计模块进行描述,确定所使用的(数据结构)接口细节和输入、输出数据等4、结构化设计方法语结构化分析方法一样,采用(逐步求精)技术、结构化设计方法与结构化分析方法相结合,依数据流图设计程序的结构5、软件中详细设计一般是在(需求分析)基础上才能实施,它们一起构成了软件设计的全部内容6、在Warnier方法中,采用(树形结构)表示数据结构和程序结构7、面向数据结构的设计方法主要包括(Jackson)和(Warnier)三.判断题1、Jackson方法的原理与Warnier方法的原理类似,也是从数据结构出发设计程序,但后者的逻辑要求更严格(Y)2、软件的详细设计也称模块设计,他要求设计人员为每一个程序模块确定所使用的算法、数据结构、接口细节和输入输出数据等(Y)3、伪代码可以被直接编译,它体现了设计的程序的框架或者代表了一个程序流程图。