软件开发与项目管理参考答案
第一章(软件开发模型和开发方法)
(一)知识回顾与思考
1、软件产品的特性是什么?
软件是一种逻辑产品,具有无形性; 
软件产品的生产主要是研制;主要是脑力劳动; 
软件不存在磨损和老化问题,但存在退化问题; 
软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; 
软件具有 “ 复杂性 ” ,其开发和运行常受到计算机系统的限制。
2、软件生产有几个阶段?各有何特征?
程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。 
程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。 
软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。
3、什么是软件危机?产生的原因是什么?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
原因一是软件产品的固有特性(软件的不可预见性、软件的规模大且逻辑较复杂),二是软件专业人员自身的缺陷。
4、什么是软件工程?它的目标和内容是什么?
软件工程是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。 
目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需
较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
内容:研究内容包括开发技术和开发管理两个方面。 开发技术主要研究:软件开发方法,开发过程,开发工具和环境。 开发管理主要研究:软件管理学,软件经济学,软件心
5、软件工程面临的问题是什么?
软件重用性差
软件可维护性差
开发出的软件不能满足用户需要
6、什么是软件生命周期?它有哪几个活动?
软件生周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 
活动:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
7、什么是软件生存周期模型?有哪些主要模型?
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
主要模型瀑布模型、快速原型模型、增量模型、螺旋模型、敏捷模型、喷泉模型、混合模型。
(二)单项选择题
1、软件开发的各项活动严格按照线性方式进行,当前活动接收上一项活动的工作结果,实施并完成所需的工作内容的软件开发模型是(A)。
A、瀑布模型  B、快速原型模型  C、增量模型  D、敏捷模型
2、下列(B)最能适应快速变化的需求。
A、瀑布模型  B、快速原型模型  C、增量模型  D、敏捷模型
3、(B)可把一个复杂问题的求解过程分成几个阶段,而且这种分解是自顶向下、逐层分解的。
A、面向对象方法  B、结构化方法  C、可视化方法  D、ICASE方法
模块化设计的优点4、(C)在可视化开发工具提供的图形用户界面上,通过操作界面元素开发,诸如菜单、按钮、对话框、编辑框、单选按钮、复选框、列表框和滚动条。
A、面向对象方法  B、结构化方法  C、可视化方法  D、ICASE方法
5、面向对象的特征有(C)。
A、模块化、封装、继承  B、模块化、继承、多态  C、封装、继承、多态  D、模块化、封装、继承、多态
(三)填空题
1、瀑布模型将软件生命周期划分为(制定计划)、(需求分析)、(软件设计)、(程序编写)、(软件测试)和(运行维护)6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
2、螺旋模型沿着螺旋线进行若干次迭代,包括以下活动:(制定计划)、(风险分析)、(实施工程)、(客户评估)。
3、敏捷开发相对于非敏捷开发,更强调(程序员团队与业务专家之间的紧密协作,面对面沟通,频繁交付新的软件版本)、(紧凑而自我组织型的团队)、(能够很好地适应需求变化的代码编写)和(团队组织方法),也更注重(软件开发中人的作用)。
4、结构化软件开发方法的基本要点是(自顶向下)、(逐步求精)和(模块化设计)。
5、面向对象方法的主要特征有(封装性)、(继承性)和(多态性)。
(四)简答题
1、请比较瀑布模型和螺旋模型的优缺点?
瀑布模型优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
瀑布模型缺点:开发过程一般不能逆转,否则代价太大;实际的项目开发很难严格按该模型进行;客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
螺旋模型优点:设计上的灵活性,可以在项目的各个阶段进行变更;以小的分段来构建大型系统,使成本计算变得简单容易;客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
螺旋模型缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;过多的迭代次数会增加开发成本,延迟提交时间。
2、相对于传统的软件开发方法,面向对象方法有哪些优点?
传统开发:软件重用性差软件维护性差开发的软件不能满足用户的需求
而OOP是尽可能模拟人类习惯的思维方式,使软件开发的方法与过程接近人类认识世界、解决问题的方法与过程。
3、ICASE方法有哪些特点?
ICASE的最终目标是实现应用软件的全自动开发,即开发人员只要写好需求规格说明书,软件开发环境就自动完成从需求分析开始的所有软件开发
4、在增量模型的迭代过程中,应该先实现复杂的重要的功能模块还是简单的次要的功能模块?
先实现重要的再实现次要的
5、螺旋模型的4个象限包括哪些活动?
制定计划风险分析实施工程客户评估。
第二章(需求分析)
(一)知识回顾与思考
1、软件需求有哪3个层次?
业务需求、用户需求、功能需求
2、常用的需求捕获技术有哪些?
用户访谈、收集资料、问卷表、小组会议
3、用户访谈过程有哪几个步骤?
准备访谈、计划访谈日程、访谈开始和结束、引导访谈
4、什么是功能性需求和非功能性需求?
功能性需求:是说有具体的完成内容的需求。
非功能性需求:是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。
5、什么是系统用户和角?
系统用户:指软件的最终操作者,也是软件工程内的一个概念,指终端用户的抽象集合。
角:权限针对的是系统的资源
6、用例模型中的重要元素和作用是什么?
重要元素:参与者、用例、通信关联
作用:描述系统中对象的相互作用
7、什么是业务流程图?作用是什么?
业务流程图:
是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表
主要是描述业务走向
绘制是按照业务的实际处理步骤和过程进行的
是一种系统分析人员都懂的共同语言, 用来描述系统组织结构、业务流程
作用:
制作流程图的过程是全面了解业务处理的过程,是进行系统分析的依据 
是系统分析员、管理人员、业务操作人员相互交流思想的工具
系统分析员可直接在业务流程图上拟出可以实现计算机处理的部分 
用它可分析出业务流程的合理性
8、数据字典是什么?作用是什么?
数据字典是是一种用户可以访问的记录数据库和应用程序源数据的目录
作用:作为分析阶段的工具在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明
(二)单项选择题
1、(D)包括需求的获取、分析、规格说明、变更、验证、管理一系列需求工程。
A、系统设计    B、数据库设计    C、测试    D、需求分析
2、需求分析的任务就是软件系统解决(B)的问题,要全面地理解客户的各项需求,并准确
地表达所接收的用户需求的过程。
A、设计    B、做什么    C、需求    D、功能
3、用户访谈一般会经历5个阶段:准备访谈、(A)、访谈开始和结束引导访谈、后继的访谈整理工作。
A、计划和安排访谈日期    B、日程管理    C、日程安排    D、计划实施

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。