现代软件工程第2章作业
软件工程(第五版)--习题及答案--第二章
一、选择题1、系统流程图是一种传统工具,用于描绘(D)。
A、逻辑模型B、程序结构C、体系结构D、物理系统2、软件可行性研究的目的是(C)。
A、证明软件开发项目可行B、证明软件开发项目不可行C、阐述软件开发项目值得或不值得做D、为了确定软件开发项目要不要做3、技术可行性研究要解决的问题是(A)。
A、从技术方面说明项目是否可行B、从技术上定义项目要解决的问题C、给出项目开发可行的技术路线D、给出精简的项目需求设计报告4、可行性研究的步骤首先是(A)。
A、确定项目目标,即对要解决的问题进行定义B、研究项目要求C、对项目目标进行可行性分析D、给出可行的解决方案5、可行性研究的任务不包括(D)。
A、技术可行性B、经济可行性C、法律可行性D、政治可行性6、系统流程图是描述(A)的工具。
A、物理系统B、逻辑系统C、体系系统D、程序系统7、可行性研究实质上是要进行一次(A)需求分析,设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的8、系统流程图的符号不包括(D)。
A、B、C、D、二、简答题1、软件开发的早期,为什么要进行可行性研究?目标的可行性研究有几个方面?答:许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决。
如果开发人员没有尽早停止没有可行解决方案的开发项目,就会造成时间、资金、人力、物力的浪费。
为了降低软件开发失败的可能性,需要进行软件可行性研究。
可行性研究要从经济可行性、技术可行性、运行可行性和法律可行性四方面进行。
2、简述可行性研究的步骤。
答:(1)审核系统的规模和目标;(2)分析研究现行系统;(3)设计新系统的高层逻辑模型;(4)获得并比较可行的方案;(5)撰写可行性研究报告。
3、某航空公司为了方便旅客,拟开发一个机票预订系统。
将旅客的信息(姓名、性别、工作单位、身份证号、旅行时间、旅行目的地等)输入该系统后,系统自动为旅客安排航班。
打印出取票通知和票务账单。
旅客可在航班的前一天凭取票通知和票务账单交款取票。
最新版软件工程第2次作业
第2次作业一、判断题(本大题共100分,共 40 小题,每小题 2.5 分)1. 软件实际上就是由程序和对程序的说明文档构成( )。
2. 边界值分析法是一种典型的白盒测试法()3. 软件实际上就是程序()。
4. 错误推测法与测试人员的经验和直觉有很大关系,因此对错误的发现能力相对较弱()。
5. 支撑软件以系统软件为基础,以提高系统性能为主要目标,支撑应用软件的开发与运行,主要有环境数据库、各种接口软件和工具组。
()6. 项目进度管理就是对项目的进度进行计划安排()7. 边界值分析法中,如果程序的规格说明给出的输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
()8. 软件的维护实际上和硬件维护是相同的。
()9. 软件工具是指这样一类程序,它可以用来帮助软件项目开发过程中某些阶段或某个环节实现软件过程自动化,从而提高软件的劳动生产率和质量、缩短软件开发周期、降低软件生产成本。
()10. 软件需求是度量软件质量的基础,与需求不一致就是质量不高()11. 软件设计阶段要解决软件“做什么”的问题12. 状态图中除正常情况外,还应包括边界情况和特殊情况。
13. 所有视图都来源于用例视图14. 在实现阶段不应过早考虑怎样实现目标系统。
15. 应尽量避免类中包含的属性过多,16. 面向对象方法中,当目标系统的需求发生变化时,只要实体及实体之间的联系不发生变化,就不会引起软件系统结构的变化。
17. 交互图是行为图的一种18. 判定树能够清晰地表示复杂的条件组合与应做的动作之间的对应关系19. 归纳法的基本思想是:首先设想所有可能的出错原因,然后试图用测试排除每一个假设的原因。
()20. 设计问题域子系统时,可以重用已有的类和调整需求。
21. 部署图属于实现视图22. 软件配置管理是一组标识、组织和控制修改源程序的活动()23. “小型二手货交易平台”的“报价信息查询”模块的数据流图为“事物型数据流图”。
现代软件工程第2章 软件过程
任务集
工作任务 工作产品 质量保证点 项目例程碑
…
软件工程动作 #1.k
任务集
工作任务 工作产品 质量保证点 项目例程碑
…
框架活动 #n 软件工程动作 #n.1
任务集
工作任务 工作产品 质量保证点 项目例程碑
…
软件工程动作 #n.m
任务集
工作任务 工作产品 质量保证点 项目例程碑
2.1.1 定义框架活动
2.1.2 明确任务集
对于一个小型、相对简单的项目而言,获取需求的任务集可能包括:
1)制定项目的干系人列表。 2)邀请所有的干系人参加一个非正式会议。 3)征询每一个人对于软件特征和功能的需求。 4)讨论需求,并确定最终的需求列表。 5)划定需求优先级。 6)标出不确定领域。
第2章 软件过程
从20世纪70年代初开始,各种软件开发模型相继提出,如瀑布模型、演 化模型和螺旋模型等,为最初形成的“过程观”注入了具体内容,即开 发人员注重于需求分析、概要设计、详细设计、编码、质量保证、配置 管理、维护等若干个活动步骤。这样的思维方式和以此为基础的软件开 发活动,把软件开发纳入了工程化的轨道。软件工程的这些研究所带来 的结果是令人欣慰的:大量有效的方法与工具被开发出来,软件质量得 到了改善,软件开发与维护的费用大为减少,用户的满意率提高等等。 “软件过程”概念就是在这样的形势下,被提出和发展的。
第2章 软件过程
1984年10月召开的第一届国际软件过程讨论会正式提出了“软件过程” 的概念并赋予明确定义,即:软件过程(Software Processes)是在软件 生存周期中所实施的一系列活动(Activity)的集合,且每个活动可由一 些任务(Task)组成。 这是“软件工程”史上一次认识上的飞跃,它标志着人们已经认识到软 件过程因素对软件开发的重要影响,促使人们把注意力从对抽象的软件 生存周期模型的研究,转向那些对软件项目的成功起着关键作用的过程 细节的研究。
软件工程课后习题答案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}
软件工程(概论)生存期和开发模型-作业2
2.3 软件开发模型
4.模型的优点 开发阶段清晰,便于评审、审计、跟踪、管理和控制。
5.模型的缺点 传统的项目组织方法是按顺序完成每个工作流程,即瀑布式生命周期。瀑布
只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。 瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错
一阶段(活3)动用的户输使入用,环继境续很进稳行定下;一阶段的活动,否则返回上一阶段修改。 (4)用户除提出需求以外,很少参与开发工作。
2.模瀑型布的模特型点认为:项目经理或软件管理人员,只要控制好每级台阶的高度 (和1宽)度里,程在碑每或个基台线阶驱处动设,立或里者程说碑文或档基驱线动,;并组织好对基线的评审与审 (计2,)就过可程以逆控转制性好很项差目或的者开说发不成可本逆、转进,度因和为质根量据。上游的错误会在下游进行
误的传递会采取发散扩大的方式。
瀑布模型反馈环
CMM/CMMI采取阶段评审和不符合项(Noncompliance Items)的动态跟踪制度, 只有前一阶段不符合项全部改正,才允许开发人员进入后一阶段工作。
不符合项,就是在评审中发现的问题项,它不同于Bug。对于这些不符合项,软 件管理部门要列出表格,记录在案,确定责任人,限定改正时间,动态跟踪到底 。
可行性研究的结果是负责人作出是否继续进行这项工程的决定的重要依据。 可行性研究以后的各个阶段,将需要投入多少相应的人力物力。 及时终止不值得投资的工程项目,可以避免更大的浪费。
2.2 软件工程过程
3. 需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须 具备哪些功能。产生《需求规格说明书》。
软件工程各章作业习题的名词解释和问答题参考答案
软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。
2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四. 简答题1.什么是需求分析该阶段的基本任务是什么指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四. 简答题1.什么是软件概要设计, 该阶段的基本任务是什么以需求分析文档为依据,解决实现软件体系结构。
软件工程课后习题_第1,2,3章
软件工程课后习题_第1,2,3章第一章:一.判断题:1.软件就程序,编软件就是编写程序。
()2.软件危机的主要表现是软件需求增加,软件价格上升。
()3.软件工程科学出现的主要原因是软件危机的出现。
()4.与计算机科学的理论研究不同,软件工程是一门原理性学科()二.选择题1.在下列选项中,()不是软件的特征A系统性与复杂性 B 可靠性与一致性C 抽象性与智能性D 有形性与可控性2.软件危机的主要原因是:A软件工具落后 B 软件生产能力不足C 对软件的认识不够D 软件本身的特点及开发方法3.下列说法正确是的是A 20世纪50年代提出了软件工程的概念B 20世纪60年代提出了软件工程的概念C 20世纪70年代提出了客户机/服务器技术D 20世纪80年代软件工程学达到成熟4.( )是将系统化的规范的可定量的方法应用于软件的开发,运行和维护的过程。
它包括方法、工具和过程三个要素A 软件生命周期B 软件测试C 软件工程D 软件过程5.在下列选项中,()不属于软件工程学科索要研究的基本内容。
A 软件工程材料B 软件工程目标C 软件工程原理D 软件工程过程6.软件工程的三要素是()A技术,方法和工具 B 方法,对象和类 C 方法,工具和过程 D 过程,模型和方法7.用来辅助软件开发,运行,维护,管理,支持等过程中的活动的软件成为软件开发工具,通常也称为()工具A CADB CAIC CAMD CASE三简答题1.与计算机硬件相比,计算机软件有哪些特点?2.软件就是程序吗?如何定义软件?3.什么是软件危机?是什么原因导致了软件危机?4.为什么说软件工程的开发能在一定程度上解决软件危机的各种弊端?5.请简述软件工程的研究内容。
6.请简述软件工程的三要素。
7.请简述软件工程的目标,过程和原则。
8.请简述软件工程的基本原则。
9.请简述现代软件工程与传统软件工程显著的区别与改进。
第二章:一判断题1.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程第二章试题
选择题1.以下关于数据流图的说法错误的是(c)。
A.数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B 数据流图是用作结构化分析的一种工具C.传统的数据流图中主要由加工、数据源点、终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(c)。
A.数据库设计B.数据通信C.数据定义D.数据维护3.主要从(A)几个方面进行系统可行性研究。
(A)技术可行性,经济可行性,操作可行性。
(B)技术可行性,经济可行性,系统可行性。
(C)经济可行性,系统可行性,操作可行性。
(D)经济可行性,系统可行性,时间可行性。
4.进行需求分析可使用多种工具,但(C)是不适用的。
A数据流图(B)判定表(C)PAD图(D)数据字典5.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发?的决策依据,因必须给出(b)的回答。
A.确定B.行或不行C.正确D.无二义6.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(c)A.数据库设计B.数据通信C.数据定义D.数据维护7.在数据流图中,○(椭圆)代表(c)。
A、源点 B、终点 C、加工 D、模块8.研究开发所需要的成本和资源是属于可行性研究中的( B )研究的一方面。
A. 技术可行性B.经济可行性C.社会可行性D.法律可行性9.经济可行性研究的范围包括(c)A.资源有效性B.管理制度C.效益分析D.开发风险10.数据流图(DFD )是 ________ 方法中用于表示系统的逻辑模型的一种图形工具。
A. SAB. SDC. SPD. SC判断题1.流图中的区域数等于环形复杂度。
(√)2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(×)3.数据流图(DFD)是软件开发需求分析阶段经常使用的工具。
(√)4. 在软件工程项目中不随参与人数的增加而使软件的生产率增加的主要问题是参与人员之间的通讯困难。
软件工程习题与答案
第1章概述(习题和参考答案)[推断题]1. 由于今日个人计算机不断发展壮大,人们不再接受软件团队的开发方式。
(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不须要增加功能。
(×)5. 大多数软件系统是不简洁变更的,除非它们在设计时考虑了变更。
(√)6. 一般来说,软件只有在其行为和设计者的目标一样的状况下才能成功。
(×)[选择题]1. ()因素促使计算机系统越来越困难。
(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变更D. 以上全部选项2. 下面的()不再是现代软件工程师关注的问题。
(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件须要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会慢慢退化而不会磨损,其缘由在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在运用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件照旧是定制开发的,其缘由在于()。
(C)A. 软件组件重用是特别普遍的B. 可重用的组件太昂贵而无法运用C. 软件在不运用其他组件的状况下很简洁构造出来D. 商业组件在许多应用领域中可以得到5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年头末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。
(B)A. 消退软件固有的困难性B. 开发高质量的软件C. 努力发挥开发人员的创建性潜能D. 更好地维护正在运用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程第2章作业
软件工程第2章作业一、填空题(每小题2分,共22分)1、可行性研究实质上是进行一次简化、压缩了的__需求分析和设计__________。
2、可行性研究的三个方面是技术可行性、社会可行性和____经济可行性_____。
3、可行性研究的第一个具体步骤是___确定项目的规模和目标_______。
4、若年利率为i,不计复利,P元在n年后的价值F是___p×(1+n×i) ______。
5、整个生存周期系统的累计收入的折现值PT 与总成本折现值ST之差称为纯收入。
6、把资金投入到项目中与把资金存入银行比较,其中投入到项目中可获得的年利率就称为项目的_投资回收率。
7、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定__项目值得开发否____。
8、可行性研究在进行简要需求分析和设计时,要在高层次上以____较抽象形式___________进行。
9、软件工程有两种效益,它们是无形效益和_____有形效益_________。
10、项目开发计划是一种_____管理性_________文档。
11、基于计算机系统的系统元素主要有硬件、软件、人、___数据库_、文档、____规程_______。
二、选择题(每选择题2分,共36分)1、可行性研究的目的是决定( B )。
A、开发项目B、项目是否值得开发C、规划项目D、维护项目2、技术可行性要研究的问题之一是( D )。
A、存在侵权否B、成本效益问题C、运行方式可行否D、技术风险问题3、纯收入是累计效益现在值与投资之( B )。
A、和B、差C、积D、商4、项目开发计划这类文档是一种( B )。
A、技术性文档B、管理性文档C、需求分析文档D、设计文档5、在软件的可行性研究中,可以从不同的角度对软件的可行性进行研究,其中是从软件的功能可行性角度考虑的是( B )。
A、经济可行性B、技术可行性C、操作可行性D、法律可行性6、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )。
软件工程实用教程(2版)-第2章-习题与参考答案-2012-3-15
《软件工程实用教程》习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。
这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。
例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提高软件产品质量提供了有效保证。
瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。
将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
快速原型方法具有以下一些特点。
•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。
一旦需求或设计确定下来,原型就将被抛弃。
因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。
快速原型往往采用软件生成工具来创建,例如,4GL语言。
软件工程第二章习题
2、假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。
解答:采用瀑布模型。
原因:软件需求明确,不必使用快速原型模型获取用户的真正需求。
软件的功能简单,不必使用增量模型和螺旋模型。
3、假设你要为一家生产和销售长筒靴的公司开发一个软件,该产品将监控该公司的存货:跟踪从购买橡胶开始,到靴子生产,发货到各个连锁店,直至卖给顾客的全过程。
你在为这个项目选择生命周期模型时使用什么准则?解答:采用螺旋模型。
原因:螺旋模型可以降低产品不能满足用户需求的风险,也可以逐步取得明确的需求,逐步的完善。
4、列出在开发上一题所述软件产品的过程中可能遇到的风险。
你打算怎样排除这些风险?解答:1)需求不明确,在明确需求的过程中延误交工期限。
排除:利用快速原型法,选好快速开发工具,对用户的需求变更做出快速反应,及早确定最后需求。
2)需求越提越多,无法按照计划及时定下需求。
排除:帮助用户对需求进行分析,确定下来近期完成的主要功能。
其它附加功能和次要功能可在升级版本中体现。
确保项目的顺利开展。
3)开发人员不熟悉业务。
排除:在和用户确定需求的过程中,及时向用户请教业务相关的知识,同时也可以请用户针对与业务流程或专业术语进行专门的培训。
5、你为靴类连锁店开发的存货监控软件(见第三题)很受用户欢迎,你所在的软件开发公司决定把它重新写成一个通用软件包,以卖给各种生产并通过自己的连锁店销售产品公司。
因此,这个新产品必须是可移植的,并且应该能够很容易地适应新的运行环境(硬件或操作系统),满足不同用户的需求。
你在选择生命周期模型时使用的准则与在第三题中使用的准则有哪些不同?解答:应采用喷泉模型。
原因:喷泉模型是典型的面向对象生命周期模型。
具有较好的可移植性,容易适应各种运行环境,满足不同用户的需求。
软件工程第一二三章习题参考答案
请问:
(1)为什么鲍曼拆下存储器就能摆脱计算机的干扰而独自控制宇宙飞船?我们现在遇到的软件问题有这么严重吗?
(2)如果不依靠飞行指挥中心,鲍曼怎样才知道HAL的故障预报有问题?
(3)应该怎样设计计算机系统,才能避免出现故事中描述的这类问题?
3.什么是软件工程?它有哪些本质特性?怎样用软件工程消除(至少是缓解)软件危机?
答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1)软件工程关注于大型程序的构造;2)软件工程的中心课题是控制复杂性;3)软件经常变化;4)开发软件的效率非常重要;5)和谐地合作是开发软件的关键;6)软件必须有效地支持它的用户;7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程第一二三章习题参考答案
人怎么能在设计阶段清除它呢?”你怎么反驳他?
答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件已经完成时再引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
第2章参考答案
一.基本概念1.什么是软件过程?软件过程包括哪三类过程?这三类过程分别承担什么任务?答:软件过程(Software Procedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。
●软件过程规范了软件开发的活动集合和活动顺序,提供了构造高质量软件所需要完成的一系列相关活动及其活动顺序的框架。
;●软件过程贯穿软件开发方法论;软件过程可概括为三类:基本过程、支持过程、组织过程。
这三个过程反映了软件开发的活动集合,●基本过程:软件开发的主干活动集。
如同建筑工程的签合同、搞设计、现场施工、工程交付、使用维护,也就是进行投入产出的实质性活动集。
软件开发的基本过程多数属于开发人员执行的活动集,它包括需求分析、软件设计、系统实现这些子活动;。
●支持过程:软件开发的辅助活动集。
如同建筑工程的资料管理、工程监理等。
也可以说是软件质量保证的活动集。
应该属于项目管理层执行的活动集。
这个活动集在现代软件工程中逐渐被重视;●组织过程:软件开发的软、硬件环境建设。
如同建筑工程的施工装备、人员协调、人员培训、后勤保障等综合配套管理活动。
组织过程基本上属于企业管理层执行的活动集,体现了IT企业的可持续发展能力和竞争优势。
2.软件过程与软件工程有什么区别和联系?答:(1)过程与工程是两个层面的问题,过程是加工高质量软件产品的活动集合和顺序,具体的投入产出过程,关注在技术层面;工程是对过程的投入进行资源协调,是向过程要效益的管理层面。
(2)软件过程是软件工程的子集。
在软件工程的过程、方法和工具三要素中,它是底层要素;在软件工程的目标、原则和过程三维全景图中,通过软件过程才能实现软件工程的目标。
3.什么是软件生命周期?与软件过程有何区别和联系?答:(1)软件生存周期:软件产品从定义到开发、经过使用和维护,直到最终被弃用;(2)两者指同一个事情,只是表达问题的角度不同:●软件过程:关注产品加工的活动集合、顺序和方法论;●生命周期:关注软件产品从诞生到消亡的生命历程,实质内容也就是软件过程;因此软件过程=软件生存周期,“软件生存周期模型”也称为“软件过程模型”或“软件开发模型”。
软件工程第1-2章课后习题参考答案
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是知道计算机软件开发和维护的一门工程学科。
第二章 软件工程复习题
第二章软件工程复习题1.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否_____,____。
2.成本—效益分析首先是估算将要开发的系统的______,然后与可能的效益进行_____。
3.软件工程有两种效益,它们是______和_______。
4.成本-效益分析的目的是从______评价开发一个新的软件项目是否可行。
5._______就是使累计的经济效益等于最初的投资费用所需的时间。
项目的______是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
6.可行性研究的第一个具体步骤是_______。
7.可行性研究实质上进行一次简化、压缩了的_______。
8.研究开发资源的有效性是进行( )可行性研究的一方面。
A.技术B.经济C.社会D.操作9.在软件的可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是( )。
A.经济可行性B.技术可行性C.操作可行性D.法律可行性10.技术可行性要解决( )。
A.存在侵权否B.成本—效益问题C.运行方式可行D.技术风险分析11.研究软硬件资源的有效性是进行( )研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性12.在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( )。
A.工作阶段间的等待时间B.生产原型的复杂性C.参与人员所需的工作站数D.参与人员之间的通信困难。
13.制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( )。
A. 组织与管理B.分析与估算C.设计与测试D.规划与调度14.对每个合理的方案分析员都应该准备( )资料。
A.系统流程B.组成系统的物理元素清单,成本-效益分析C.实现这个系统的进度计划D.以上全部正确15.原型化方法是一类动态定义需求的方法,下列叙述中,( )不具有原型化方法的特征。
A.提供严格定义的文档B.加强用户参与和决策C.简化项目管理D.加快需求的确定。
软件工程课后作业
第一章1.1答:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
1.2答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
1.3答:1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.填空题
(1)可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否、。
可行性研究实质上是要进行一次简化,压缩了的和过程,要在较高层次上以较抽象的方式进行需求分析和过程设计。
(2)可行性研究需要从可行性、可行性、
可行性三个方面分析研究每种解决方法的可行性。
(3)典型的可行性研究有下列步骤:确定项目规模和目标,
,,导出和评价各种方案,推荐可行的编写可行性研究报告。
(4)一个可行性研究报告的主要内容包括:引言、可行性研究的前提、对现有系统的分析、、、、其他可供选择方案、结论意见。
(5)成本-效益分析的目的是从角度开发一个新的软件项目是否可行。
成本-效益分析首先是估算将要开发的系统的
,然后与可能取得的效益进行。
2.选择题
(1)研究开发资源的有效性是进行()可行性研究的一方面。
A.技术
B.经济
C.社会
D.操作
(2)在软件的可行性研究中,可以从不同的角度对软件进行研究,其中从软件的功能可行性角度考虑的是()
A.经济可行性
B.技术可行性
C.操作可行性
D.法律可行性
(3)在遵循软件工程原则开发软件过程中,计划阶段应该依次完成()
A.软件计划、需求分析、系统定义
B.系统定义、软件计划、需求分析
C.需求分析、概要设计、软件计划
D.软件计划、需求分析、概要设计
(4)技术可行性要解决()
A.存在侵权否
B.成本-效益问题
C.运行方式可行
D.技术风险问题
(5)在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是()
A.工作阶段间的等待时间
B.生活原型的复杂性
C.参与人员所需的工作站数
D.参与人员之间的通信困难
(6)制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是()
A.组织与管理
B.分析与估算
C.设计与测试
D.规划与调度
(7)可行性分析中,系统流程图用于描述()
A.当前运行系统
B.当前逻辑模型
C.目标系统
D.新系统
(8)研究软硬件资源的有效性是进行()研究的一方面。
A.技术可行性
B.经济可行性
C.社会可行性
D.操作可行性
(9)可行性研究要求进行的需求分析和设计应是()
A.详细的
B.全面的
C.简化的、压缩的
D.彻底的
(10)对每一合理的方案分析员都应该准备()资料。
A.系统流程 B.组成系统的物理元素清单、成本-效益分析
C.实现这个系统的进度计划 D.以上全部正解
3.简答题
(1)可行性研究的任务有哪些?
(2)研究项目的技术可行性一般要考虑的情况有哪些?(3)可行性研究包括哪些步骤?
(4)可行性研究报告有哪些主要内容?
(5)成本-效益分析的目的是什么?可用哪些指标进行度量?(6)项目开发计划有哪些内容?。