第8章 软件工程 习题与答案
《软件工程》各章课后习题答案
![《软件工程》各章课后习题答案](https://img.taocdn.com/s3/m/bae4f22b5e0e7cd184254b35eefdc8d377ee1460.png)
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程第二版答案
![软件工程第二版答案](https://img.taocdn.com/s3/m/3038ec57fe00bed5b9f3f90f76c66137ef064f61.png)
里面包含绝大部分的软件工程第二版中的课后习题答案瞿中编第一章仿真试题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、UML是软件开发中的一个重要工具,它重要应用于哪种软件开发方法( )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、分析阶段B、设计阶段C、编码阶段D、测试阶段13、软件开发模型是指软件开发的所有过程、活动和任务的结构框架。
软件工程 张海藩 课后习题答案
![软件工程 张海藩 课后习题答案](https://img.taocdn.com/s3/m/61920866e518964bcf847c9e.png)
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程课后习题参考答案
![软件工程课后习题参考答案](https://img.taocdn.com/s3/m/61323f0bf011f18583d049649b6648d7c1c70896.png)
软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
《软件工程学》第8章 维护-习题
![《软件工程学》第8章 维护-习题](https://img.taocdn.com/s3/m/2e8b35f6852458fb760b5612.png)
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.黑盒测试法可有效的检查模块的内部逻辑结构的正确性。
……………………()9.在进行需求分析时同时考虑维护问题。
……………………()
10.尽可能在软件开发过程中保证各阶段文档的正确性。
……………………()。
软件工程吴迪第八章课后答案
![软件工程吴迪第八章课后答案](https://img.taocdn.com/s3/m/867303ff51e2524de518964bcf84b9d528ea2cc2.png)
软件工程吴迪第八章课后答案HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】软件工程课后答案《软件工程》作业及答案1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2假设你是一家软件公司的总工程师,当你把图给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程习题及答案.doc
![软件工程习题及答案.doc](https://img.taocdn.com/s3/m/e706836d001ca300a6c30c22590102020740f26b.png)
软件工程习题及答案:一、选择题:D1. 为了提升测试的效率,应当。
A、随机地选用测试数据B、取全部可能的输入数据作为测试数据C、在达成编码后拟订软件的测试计划D、选择发现错误可能性大的数据作为测试数据D2. 与设计测试数据没关的文档是。
A、需求说明书B、设计说明书C、源程序D、项目开发设计B3. 结构设计是一种应用最宽泛的系统设计方法,是以为基础、自顶向下、逐渐求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构A4. 纲要设计的结果是供给一份。
A、模块说明书B、框图C、程序D、数据结构B5. 需求剖析是由剖析员经认识用户的要求,仔细仔细地调研、剖析,最后应成立目标系统的逻辑模型并写出。
A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档D6. 说明是提升程序可读性的有效手段,好的程序说明占到程序总量的。
A、 1/6B、 1/5C、1/4 D 、 1/3A7. 变换型和事务型是程序结构的标准形式。
从某处获取数据,再对这些数据作办理,而后将结果送出是属于。
A、变换型B、事务型B8. PAD( Problem Analysis Diagram )图是一种工具。
A、系统描述B、详尽设计C、测试D、编程协助A9. 排错一般是在测试发现错误后进行,此中找到错误地点占排错总工作量的。
A、 95%B、 5%C、 50%D、 20%A10. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的。
A、总貌B、细节C、抽象D、软件的作者B11. 数据流图中,当数据流向或流自文件时,。
A、数据流要命名,文件不用命名B、数据流不用命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不一样的D、数据流和文件均不要命名,经过加工可自然反应出B12. 剖析员是。
A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导A13. 在软件开发中,有益于发挥集体智慧的一种做法是。
软件工程 第八章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学
![软件工程 第八章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学](https://img.taocdn.com/s3/m/f18b2cf0250c844769eae009581b6bd97e19bc40.png)
第八章测验一、单项选择题(共40.00分)1.()为我们提供了可以进行质量评估的软件表示。
A.需求分析B.设计C.工程计划D.以上均不正确正确答案:B2.用()可以方便地实现单向关联。
A.对象B.容器C.指针D.哈希表正确答案:C3.对于一对多关联来说,保存关联信息的关联对象可以与()合并。
A.''一"端对象B.''多〃端对象C.参与关联的任一个对象D,以上均不正确正确答案:B4.如果一个处理影响或修改了一个对象,那么最好把该处理与处理的O联系在一起。
A. 目标B.触发者C.输入数据D.输出数据正确答案:A二、多项选择题(共33.00分)1.下面哪些是在面向对象设计过程中,可能对OOA产出的问题域模型作的补充或修改?()A.调整需求B,重用已有的类C.把问题域类组合在一起D.采用更高效的实现算法正确答案:ABC2.数据管理子系统中常见的数据存储管理模式包括()oA.光盘库8.文件系统C.关系型数据库D.面向对象数据库正确答案:BCD3.以下哪些属于设计人一机交互界面的准那么?()A.及时提供反应信息B.提供撤销命令C.配色鲜艳醒目D.减少操作步骤正确答案:A B D三、判断题(共27,00分)L从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。
()A.正确B.错误正确答案:A2.持久性机制应该在设计阶段进行考虑。
()A.正确B.错误正确答案:A3.设计任务管理局部的首要前提是对并发性的分析。
()A.正确B.错误正确答案:A。
软件工程--习题及答案---第八章
![软件工程--习题及答案---第八章](https://img.taocdn.com/s3/m/58afd6f381eb6294dd88d0d233d4b14e85243e8c.png)
软件工程--习题及答案---第八章一、判断题1、(√)使用括号改善表达式的清晰性。
2、(×)对递归定义的数据结构不要使用递归定义的过程。
3、(×)尽可能对程序代码进行优化。
4、(√)不要修改不好的程序,要重新编写。
5、(√)不要进行浮点数的相等比较。
6、(×)应尽可能多地使用临时变量。
7、(√)利用数据类型对数据值进行防范。
8、(×)用计数方法而不是用文件结束符判别批量数据输入的结束。
9、(×)程序中的注释是可有可无的。
10、(√)使用有意义的标识符。
11、(×)应尽量把程序编写的短一些。
12、(×)应尽量使用goto语句。
二、选择题1、在编码中首先要考虑的是(B)。
A、程序的执行效率B、程序的可读性C、程序的一致性D、程序的安全性2、(D)。
不属于序言性注释内容的是A、模块设计者B、修改日期C、程序的整体说明D、语句功能3、序言性注释应置于文件或模块的(A)位置。
A、起始B、结束C、中间D、起始和中间4、如果编写系统软件,可选用的语言是(C)。
A、FoxProB、COBOLC、CD、FORTRAN5、选择程序设计语言不应该考虑的是(B)。
A、应用领域B、语言的功能C、用户的要求D、用户的使用水平6、与编程风格有关的因素不包括(D)。
A、源程序文档化B、语句构造C、输入输出D、程序的编译效率7、最早用于科学计算的程序设计语言是(C)。
A、PROLOGB、SmalltalkC、FORTRAND、COBOL8、功能性注释的主要内容不包括(B)。
A、程序段的功能B、模块的功能C、数据的状态D、语句的功能9、对建立良好的编程风格,下面描述正确的是(A)。
A、程序应简单、清晰、可读性好B、符号名的命名只要符合语法即可C、充分考虑程序的执行效率D、程序的注释可有可无10、源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括合适的标识符、注释和(A)。
软件工程习题及课后答案
![软件工程习题及课后答案](https://img.taocdn.com/s3/m/a61b801f6bd97f192279e912.png)
第8章面向对象设计(习题与参考答案)[选择题]1. ()面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。
A. 真B. 假2. ()系统设计的主要任务是细化分析模型,最终形成系统的设计模型。
A. 真B. 假3. ()关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。
A. 真B. 假4. ()用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。
A. 真B. 假5. 内聚表示一个模块()的程度,耦合表示一个模块()的程度。
A. 可以被更加细化B. 仅关注在一件事情上C. 能够适时地完成其功能D. 联接其他模块和外部世界6. 良好设计的特征是()。
A. 模块之间呈现高耦合B. 实现分析模型中的所有需求C. 包括所有组件的测试用例D. 提供软件的完整描述E. 选项B和DF. 选项B、C和D7. ()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;( )细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。
A. 系统设计B. 对象设计C. 数据库设计D.用户界面设计8.下面的( )界面设计原则不允许用户保持对计算机交互的控制。
A. 允许交互中断B. 允许交互操作取消C. 对临时用户隐藏技术内部信息D.只提供一种规定的方法完成任务[练习题]1. 面向对象设计与面向对象分析的区别是什么?设计包括哪些活动? 答案要点:面向对象分析是重点考虑系统“做什么”的问题,即运用面向对象方法对问题域进行分析和理解,建立系统的分析模型;面向对象设计重点考虑系统“怎样做”的问题,即在分析模型的基础上形成实现环境下的设计模型。
面向对象设计主要涉及系统设计、对象设计(或详细设计)、数据库设计和用户界面设计等活动。
2. 3. 课程在类设计中,为什么建议使用set 方法和get 方法进行属性设置和读取? 答案要点:目的在于降低类之间的耦合度。
软件工程习题与答案
![软件工程习题与答案](https://img.taocdn.com/s3/m/801d6372a9956bec0975f46527d3240c8547a144.png)
第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. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程第八章课后题
![软件工程第八章课后题](https://img.taocdn.com/s3/m/303169864afe04a1b071deed.png)
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
软件工程答案(共五则范文)
![软件工程答案(共五则范文)](https://img.taocdn.com/s3/m/6ffc3a5724c52cc58bd63186bceb19e8b8f6ec91.png)
软件工程答案(共五则范文)第一篇:软件工程答案软件工程课后习题答案殷锋主编·天津科学技术出版社注:有些可能错误,读者自己注意第一章一、填空题:1、软件是计算机系统中与硬件相互依存的另一部分,是包括、、及相关文档的的完整集合2、软件工程包括三要素:方法、工具和过程。
3、软件开发的基本方法包括和二、选择题:1、C2、B3、C第二章一、填空题:1、软件生存周期的各个过程可以分成三类,及主要生存周期过程、支持生存周期过程和组织的生存周期过程。
2、软件生存周期包括计划、需求分析、设计、程序编码、软件测试和运行维护6个阶段。
3、软件过程改进(SPI)帮助软件企业对其软件过程的改变进行计划,制定以及实施。
二、填空题1、A2、B三、判断题1、√2、X第三章三、填空题:1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定够解决2、可行性研究在进行简要需求分析和设计时,要在高层次上以进行3、需求分析阶段产生的最重要的文档是。
4、为解决一个复杂的问题,往往采取的策略是5、SA方法中使用半形式化的描述方式表达需求,采用的主要描述工具是流图和E-R图。
6、数据流图中有四种负号元素,它们是点7、数据字典中有四类条目,分别是8、在IDEF0图中,表示系统功能的图形成为图。
9、在画分层的DFD时,父图与子图的输入/输出的数据流要10、用于描述基本加工的小说明的三种描述工具是定表。
二、选择题1、A2、C3、B4、B5、D6、D7、D8、A9、D10、A11、C12、B第四章一、填空题1、变换型系统由3部分组成:。
2、模块的分解的基本原则是。
3、在软件开发的过程中必须遵循的软件工程原则有:和模块独立性。
二、选择题1、D2、A3、A4、A5、B三、判断题1、√2、X3、X4、√5、X第五章二、填空题1、软件测试是为了而执行程序的过程。
2、运行被测程序的方法称为测试。
3、动态测试中,主要测试软件功能的方法称为法4、选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准为判定/覆盖法。
软件工程习题答案
![软件工程习题答案](https://img.taocdn.com/s3/m/388b853bbc64783e0912a21614791711cc79796a.png)
软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。
2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。
3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。
4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。
其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。
6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。
四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。
2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。
软件工程课后习题答案
![软件工程课后习题答案](https://img.taocdn.com/s3/m/e240878265ce05087632136b.png)
软件工程课后习题答案习题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)脚本正常情况脚本:●储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;●业务员查收存款,审核存款与存款单存款金额吻合;●存款单生效;●储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;●业务员审核存款,验证储户身份,确定储户存款金额 > = 取款金额;●审核通过,取款单生效;●系统打印利息清单,业务员把本金和利息返回储户。
软件工程导论(第六版)张海藩课后习题答案(1-8章)
![软件工程导论(第六版)张海藩课后习题答案(1-8章)](https://img.taocdn.com/s3/m/de42ce85a1c7aa00b52acb8d.png)
第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
(完整版)软件工程课后习题答案
![(完整版)软件工程课后习题答案](https://img.taocdn.com/s3/m/fc2b3647240c844769eaeee7.png)
第一章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.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
软件工程课后题答案大全(详细)
![软件工程课后题答案大全(详细)](https://img.taocdn.com/s3/m/19a7950d76a20029bc642d00.png)
软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
软件工程(第四版)习题及解答9-8
![软件工程(第四版)习题及解答9-8](https://img.taocdn.com/s3/m/b36090670975f46526d3e184.png)
第1章
一、判断题
1× 2 √ 3× 4√ 5× 6√ 7√ 8× 9√10×
二、选择题
1-5CADDD6-10ADAAD11-15AAADA
三、简答题
1、软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
1、
“学生管理系统”的顶层图案={学号+姓名+性别+年龄+专业+班级}
成绩库=学号+课程号+分数
课程库=课程号+课程名+学分
学生信息=学号+姓名+性别+年龄+专业+班级
考试成绩=学号+课程号+分数
学号=”00001”...”99999”
姓名=2{汉字}4
系统目标和范围说明书
1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
(3)系统流程图
第3章
一、判断题
1√ 2 × 3√ 4 × 5√ 6× 7× 8√
二、选择题
1-5 BACDB 6-10 ABDAA 11-15 BABDB 16-20 ADCDB
三、简答题
1、需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
软件工程第八章课后题
![软件工程第八章课后题](https://img.taocdn.com/s3/m/303169864afe04a1b071deed.png)
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章习题(P206-208)一、复习题1.简述软件的特点答:软件相对硬件而言有许多不同特点。
了解这些特别之处能够帮助我们全面.正确地理解计算机软件。
(1)软件是一种逻辑实体,而不是具体的物理实体,具有很强的抽象性。
我们只能把它记录在介质上,或在系统上运行,但却无法直接通过我们的眼睛看到软件的形态。
(2)软件是一个逻辑上复杂而规模上庞大的系统,涉及技术.管理等多方面的问题。
如果将代码比作零件,则一个软件是由成百上千万个零件组成的复合体,而且其结构远较机械装置复杂。
应该说软件的复杂程度高于同等规模的硬件产品。
(3)软件是智力产品,其价值体现在解决问题的知识和能力,而并不体现在软件载体本身。
软件的生产方式与硬件明显不同,设计方法和制造阶段不同;软件的生成成本主要在研发设计上,而大量复制几乎没有成本。
(4)在软件的运行和使用期间,没有硬件的磨损.老化问题。
但软件维护比硬件维护要复杂得多,软件的故障主是由于对软件的改变和使用环境的变化引起的。
(5)软件的开发和运行对硬件有较强依赖关系。
在软件开发有可移植性的问题,现在通常把软件的可移植性作为衡量软件质量的重要因素之一。
(6)软件工作涉及许多社会因素。
软件与人的关系密切,涉及到语言.文化等多方面,甚至关系到的道德领域。
{P182}2.什么是软件危机?主要有哪些表现?其产生的原因是什么?答:软件危机是软件开发领域,特别是在大型软件开发和维护过程中遇到的一系列严重问题的统称。
软件危机主要表现为费用高.开发过程不易控制.工作量估计困难.软件质量低.软件项目失败率高.无法判断大型系统能否正常工作以及软件维护任务重等现象。
产生软件危机的主要原因,一方面是软件本身所固有的抽象性.复杂性等特性;另一方面是人们当时对软件和软件开发过程的不正确认识。
{P182-183}3.简述什么是软件工程答:软件工程是应用计算机科学.数学及管理科学等原理开发软件的工程。
它借鉴系统工程的原则.方法,以提高质量,降低成本为目的。
软件工程是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门学科。
采用工程化方法和途径来开发与维护软件。
{P183-184}4.简述软件工程研究的基本内容与目标答:软件工程研究的内容包括与软件开发相关的理论,结构,过程,方法,工具,环境,管理,规范等。
理论与结构是软件开发的技术基础,包括程序正确性证明理论,软件可靠性理论,软件成本估算模型,软件开发过程模型,模块划分原理等。
软件开发技术包括软件开发方法学,软件工具和软件开发环境。
良好的软件工具可促进方法的研制,而先进的软件开发方法能改进工具。
软件工具的集成构成软件开发环境。
管理技术是提高开发质量的保证,软件工程管理包括软件开发管理和软件经济管理,前者包括人员分配,制定计划,确定标准与配置,而后者的主要内容有成本估算和质量评价。
软件工程的基本目标是提高软件质量,降低软件开发成本为。
{ P183-184 }5.软件生存周期一般可分为哪几个阶段?答:软件生存周期一般可分为:市场分析,可行性研究,以及项目定义阶段;需求分析阶段;设计(总体设计和详细设计)阶段;编码实现阶段;测试阶段;使用与维护阶段等。
{P184-185}6.试比较各种软件开发模型的优点和缺点答:常用的软件开发模型包括瀑布模型.原型模型和螺旋模型。
瀑布模型是软件工程的基础模型。
该模型简单直观,但缺乏灵活性,无法解决软件需求不明确或不准确的问题。
不适合大规模软件项目的开发。
原型模型的优点是支持软件需求开发,该模型提高了开发人员的效率,降低开发费用,缩短开发时间。
原型模型的缺点是容易给人错觉,用户不一定能理解原型与正式系统之间的差别。
管理开销大,并且资源管理也很困难。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
螺旋模型需要多次迭代,会增加开发成本,延迟提交时间。
{P185-187}7.简述需求分析的任务和过程答:需求分析的根本任务就是要明确项目的目标,也就是准确地回答“系统要做什么”这个问题。
需求本身与系统如何实现是无关的。
对系统的综合需求主要有:系统功能需求.系统性能需求.运行环境需求.将来可能提出的需求。
需求分析过程包括需求的获取.需求分析.需求文档编写.需求管理等一系列活动。
{P196-199}8.简述面向对象的软件工程方法答:面向对象方法在软件工程领域能够全面运用。
它包括面向对象的分析.面向对象的设计.面向对象的编程.面向对象的测试和面向对象的软件维护等主要内容。
面向对象的分析直接针对问题域中客观存在的各项事物建立模型中的对象。
用对象的属性和服务分别描述事物的静态特征和行为。
面向对象的分析主要用于需求分析阶段。
面向对象的设计针对系统的实现运用面向对象方法。
包括把面向对象的分析模型直接搬到面向对象的设计;二是针对具体实现中的人机界面.数据存储.任务管理等因素实现采用与面向对象的分析相同的表示法和模型结构。
面向对象的编程又称作面向对象的实现。
是用一种面向对象的编程语言把面向对象设计模型中的每个成分书写出来。
面向对象的测试是对于用面向对象技术开发的软件,在测试过程中继续运用面向对象技术,进行以对象概念为中心的软件测试。
面向对象的软件工程方法为改进软件维护提供了有效的途径。
程序与问题域一致,各个阶段的表示一致,大大降低了理解的难度。
可提高软件维护效率。
{P193-194}9.什么是软件质量?如何保证软件质量?答:软件质量是指所有描述计算机软件优秀程度的特性的组合。
通俗地说就是,软件满足各功能.性能需求,符合标准的程度,程度高则质量。
IEEE定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。
软件质量是各种特性的复杂组合。
它随着应用的不同而不同,随着用户提出的质量要求不同而不同。
用户满意度是衡量软件质量的总体标准。
在软件项目的开发过程中,首先应强调软件总体质量,包括软件正确性.可维护性.健壮性.可用性与效率等多方面。
应在软件工程化生产的整个周期的各个阶段都注意软件的质量。
应制定软件质量标准,定量地评价软件质量。
主要采取的技术措施是审查和测试。
在软件开发的各个阶段都可以分别组织审查和测试,以实现全程的质量管理。
{P199-200}10.简述软件项目管理的内容答:项目管理是指把各种资源组合在一起,在规定的时间.预算和质量目标范围内完成项目的各项工作。
管理工作强调协调各方面的因素,达到整体的最优。
软件项目管理的主要内容包括项目的组织计划.资源管理.质量管理。
其中资源管理包括对项目开发所需的技术.人员.资金等方面的管理。
软件项目管理的手段主要是一系列制度.规范文档和专业管理工具。
{P202-2045}二、练习题(一)填空题1.一个完整的软件包括:____________________________________等几个组成部分。
程序、数据和文档(P62)2、为了便于对照检查,测试用例应由输入数据和预期的_________两部分组成。
输出结果3、结构化语言是介于自然语言和_________之间的一种半形式语言。
形式语言(二)选择题1.在软件开发中,下面任务不属于设计阶段的是______。
A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型D (P185)2.软件维护产生的副作用,是指_____。
A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作C (P194)3.提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要_____。
A.消除错误B.检测错误C.避开错误D.容错B4._____是以提高软件质量为目的的技术活动。
A.技术创新B.测试C.技术创造D.技术评审D (P200)5.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析.设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A.开发过程基于功能分析和功能分解B.强调需求分析重要性C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整C (P191)6.软件开发过程中,抽取和整理用户需求并建立问题域模型的过程叫________。
A.可行性研究B.需求分析C.总体设计D.编码实现B (P196)7.为了提高测试的效率,应该________。
A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据D (P200-201)8.对象实现了数据和操作的结合,使数据和操作________于对象的统一体中。
A.结合B.隐藏C.封装D.抽象C (191)9.软件测试方法中的静态测试方法之一为________A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析B (201)10.软件生命周期中所花费用最多的阶段是________A.详细设计B.软件编码C.软件测试D.软件维护D (P185)12.结构化程序设计主要强调的是________A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性D (P188)13.需求分析阶段的任务是确定________A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能D (P196)(三)讨论题1.试分析软件何时变得无用?提示:该题主要考虑对软件本质的分析和认识。
软件在运行和使用期间,没有硬件的磨损.老化问题。
但软件维护比硬件维护要复杂得多,软件的故障主是由于对软件的改变和使用环境的变化引起的。
软件的开发和运行对硬件有较强依赖关系。
因此,对于某种具体软件而言,当软件的运行环境变化到一定程度,或对软件的需求变化到一定程度,或者能够运行该软件的硬件退出市场后,这时种软件就会变得无用了。
{P182}2、试论系统开发的分析阶段有什么工作?需求分析阶段主要工作包括需求的获取、分析、编写文档、管理等。
(1)需求的获取需求获取是需求分析阶段的基本活动。
软件的需求来源可以是多方面的,这取决于待开发产品的性质和开发环境。
需求获取的关键是同用户之间的交流,它也是非常容易出现误解和歧义的环节。
需求获取的成功完全依赖于客户和开发者之间的合作效果。
(2)综合分析在需求信息获取的基础上,进行问题分析和方案的综合。
由于需求获取来源的多样性,最初的表达往往是不规范的,描述问题的形式和角度各不相同。
并不是用户提出的所有需求都是合理的,有些甚至是矛盾的,需要用科学的方法,找出系统各元素之间的联系,逐步细化所有的软件功能,接口特性和设计上的限制等。