软件开发与项目管理课后练习参考答案Word格式文档下载.docx
《软件开发与项目管理课后练习参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件开发与项目管理课后练习参考答案Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
![软件开发与项目管理课后练习参考答案Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/11/70e28871-8ae8-4e97-9057-be5343cda7bc/70e28871-8ae8-4e97-9057-be5343cda7bc1.gif)
开发的软件易于移植;
只需较低的维护费用;
能按时完成开发任务,及时交付使用;
开发的软件可靠性高。
容:
研究容包括开发技术和开发管理两个方面。
开发技术主要研究:
软件开发方法,开发过程,开发工具和环境。
开发管理主要研究:
软件管理学,软件经济学,软件心。
5、软件工程面临的问题是什么?
①软件重用性差
②软件可维护性差
③开发出的软件不能满足用户需要
6、什么是软件生命周期?
它有哪几个活动?
软件生命周期:
一个软件从提出开发要求开始直到该软件报废为止的整个时期。
活动:
可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
7、什么是软件生存周期模型?
有哪些主要模型?
软件生存周期模型:
是描述软件开发过程中各种活动如何执行的模型。
主要模型:
瀑布模型、快速原型模型、增量模型、螺旋模型、敏捷模型、喷泉模型、混合模型。
(二)单项选择题
1、软件开发的各项活动严格按照线性方式进行,当前活动接收上一项活动的工作结果,实施并完成所需的工作容的软件开发模型是(A)。
A、瀑布模型B、快速原型模型C、增量模型D、敏捷模型
2、下列(B)最能适应快速变化的需求。
3、(B)可把一个复杂问题的求解过程分成几个阶段,而且这种分解是自顶向下、逐层分解的。
A、面向对象方法B、结构化方法C、可视化方法D、ICASE方法
4、(C)在可视化开发工具提供的图形用户界面上,通过操作界面元素开发,诸如菜单、按钮、对话框、编辑框、单选按钮、复选框、列表框和滚动条。
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、计划实施
4、(C)是需求捕获时广泛使用的一种工具,它采用了统计分析的方法,显得更科学。
A、用户调研B、收集资料C、问卷表D、用户访谈
5、(B)主要用来图示化系统的主事件流程,它主要用来描述用户的需求,即用户希望系统具备的能完成一定功能的动作,通俗的讲,用例就是软件的功能模块,所以是设计系统分析阶段的起点。
A、顺序图B、用例图C、协作图D、构件图
6、用例之间可以抽象出包含、(D)和泛化几种关系。
A、扩大B、缩小C、多态D、扩展
7、用例描述一般包括简要描述(说明)、前置(前提条件)、(B)、其他事件流、异常事件流、后置(事后)条件等。
A、数据流B、基本事件流C、函数D、数据
8、(B)是一种描述系统各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向,它是物理模型。
A、数据流图B、业务流程图C、E-R图D、顺序图
9、(D)作为产品需求的最终成果必须具有综合性,必须包括所有的需求。
开发人员和用户不能进行任何假设。
A、用例说明书B、系统设计说明书C、数据库设计说明书D、需求规格说明书
10、在编写模块时,通常包括模块摘要,业务数据项,(B),功能点的操作说明、规则、角色、附图等。
A、模块性能B、模块的功能点C、谈话摘要D、用例模型
1、(需求分析)是指根据用户需求,将软件功能和性能与用户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。
2、在需求捕获中最常见的技术包括用户访谈、(收集资料)、问卷表、小组会议4种。
3、用户访谈一般经历5个阶段:
准备访谈、计划和安排访谈日程、访谈开始和结束、(引导访谈)、后继的访谈整理工作。
4、在面向对象的分析方法中要建立(对象模型),而在结构化分析方法中,数据流程图则是建模的主要工具。
5、软件需求分析所要做的工作是深入描述(软件的功能和特性),确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。
6、(用例)是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。
7、包含关系最典型的应用就是(复用)。
8、(业务流程图)就是用一些规定的符号及连线来表示某个具体业务处理过程。
9、(数据字典)是一种用户可以访问的记录数据库和应用程序源数据的目录。
10、“用户需求说明书”是面向用户的,是合同的产物;
而(需求规格说明书)则是面向公司部的,是立项建议书的产物。
1、什么是需求分析?
需求分析是指根据用户需求,将软件功能和性能与用户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。
2、什么是用例?
用例之间有什么关系?
用例就是软件的功能模块
3、现行系统业务流程总结,在绘制业务流程图之前,要对现行系统进行详细调查,并写出现行系统业务流程总结。
略
4、根据系统业务流程的描述,绘制出系统处理业务流程图。
5、什么数据字典(DataDictionary)?
是一种用户可以访问的记录数据库和应用程序源数据的目录
6、简述数据字典的组成?
数据项、数据结构、数据流、数据存储、处理过程
第三章(软件设计)
1、什么是软件设计?
软件设计是一个把软件需求转换为软件表示的过程。
最初,这种表示只是描述了软件的总体结构,称为软件概要设计,然后对结构进一步细化,称为详细设计或过程设计。
2、什么是软件架构设计?
软件架构设计有哪些原则?
系统架构设计:
是一个系统的草图,描述了构成系统的抽象组件,以及各个组件之间的是如何进行通讯的,这些组件在实现过程中可以被细化为实际的组件比如类或者对象。
原则:
一般采用“4+1”视图模型,即逻辑视图、进程视图、开发视图、物理视图、场景视图
3、什么是界面设计?
界面设计包含哪些原则?
界面设计:
人与机器之间交换和传递信息的媒介
①界面功能体现用户任务要求②正确选择界面的类型③界面操作直观、简单,减少用户工作量④界面风格保持一致
4、什么是数据库设计?
数据库逻辑设计和物理设计各包含哪些容?
数据库设计:
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,以满足各种用户的应用需求。
数据库逻辑设计:
是将概念设计中的ER图,抽象成关系模型,并满足第三式如学生(学号,,性别)并在主键上用下划线标识。
数据库物理设计:
是将逻辑设计中的关系设计成表,并将你、表结构设计好。
5、什么是模块设计?
模块设计包含哪些主要方面?
模块设计是:
指把工业模具分解成小的部分的过程。
主要方面:
①模块要素(接口、功能、状态、逻辑)②抽象与逐步求精③简单工厂模式
1、在面向对象的开发方法中,(C)将是面向对象技术领域占主导地位的标准建模语言。
A、Booch方法B、Coad方法C、UML语言D、OMT方法
2、为了提高模块的独立性,模块部最好是(C)。
A、逻辑聚B、时间聚C、功能聚D、通信聚
3、在SD方法中,全面指导模块划分的最重要的原则是(D)。
A、程序模块化B、模块高聚C、模块低耦合D、模块独立性
4、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、编程
5、在软件结构图中,模块框之间若有直线段连接,则表示它们之间存在(A)
A、调用关系B、组成关系C、关系D、顺执行关系
1、软件设计是一个把软件需求转换为软件表示的过程,最初,这种表示只是描述了软件的总的体系结构,称为(软件概要设计),然后对结构进一步细化,称为(详细设计或过程设计)
2、Kruchten提出了4+1视图模型,从5个不同的视角来描述软件体系结构,即(逻辑视图)、(进程视图)、(开发视图)、(物理视图)和(场景视图)。
3、用来文档化用户需求并建立的数据库模型是指(语义对象模型)。
4、高度概括事物主要的或本质的特性,暂时忽略或不考虑其细节的软件设计方法是(抽象)。
将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单、易实现的模块,该设计方法是(逐步求精)。
1、简述软件架构设计视图模型。
逻辑视图、进程视图、开发视图、物理视图、场景视图
2、简述1NF、2NF和3NF的限定条件。
第一式(1NF):
关系模型中的每个属性都是不可分解
第二式(2NF):
符合第一式;
所有的非码属性均依赖于所有的码属性
第三式(3NF):
符合第二式;
没有一个非码属性传递依赖于其他的非码属性
3、简述界面设计中的输入过程设计原则。
界面功能体现用户任务要求
正确选择界面的类型
界面操作直观、简单,减少用户工作量
界面风格保持一致
4、实体关系图(E-R图)的图形标识符有哪些?
各表示什么含义?
简醚E-R模型建模的一般步骤。
实体:
用矩形表示,矩形框写明实体名。
属性:
用椭圆形表示,并用无向边将其与相应的实体连接起来。
联系:
用菱形表示,菱形框写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
n或m:
n)。
建模一般步骤:
①确定结构围。
②实体定义。
③联系定义。
④属性分配。
5、什么是模块耦合和模块聚?
它们对系统结构有什么影响?
耦合:
是软件系统结构中各模块间相互联系紧密程度的一种度量。
聚:
表示部间聚集、关联的程度
对系统结构影响:
使程序模块的可重用性、移植性大大增强。
第四章(编码)
1、编码的目的是什么?
将设计描述翻译成某种预定的程序设计语言的过程。
2、什么是编码规?
指编写代码时应该遵守的文字约束。
3、什么是代码组织?
对整个项目的代码进行整理,使之更加有序。
实现类似功能的文件应该放在同一个文件夹中或者同一个项目中。
4、什么是代码优化?
代码优化的意义是什么?
指对程序代码进行等价(指不改变程序的运行结果)变换。
意义:
提高代码质量,提高目标程序的运行速度,减少目标代码运行所需要的控件。
5、代码优化有哪些常用技术?
删除多余运算符、代码外提、强度削弱、交换循环控制条件、合并已知量与复写传播、删除无用赋值
6、什么是局部优化?
划分中间代码为基本块步骤:
①求出四元式程序中各个基本块的入口语句②对每一入口语句,构造其所属的基本块③凡未被纳入某一基本块的语句可以把它们删除
基本块的变换:
①删除公共子表达式②删除无用代码③重新命名临时变量④交换语句次序
7、什么是代码调试?
是在程序中设置的一个位置,程序执行到这些位置时会中断(或暂停)。
8、代码调试的过程是什么?
有哪些常用的调试方法?
过程:
①从错误的外部表现入手,确定程序中出错的位置②研究有关部分的程序,找出错误的在原因③修改设计和代码,以排除这个错误④重复进行暴露这个错误原始测试,以确认该错误故障是否已排除⑤如果所做的修正无效,则撤销这次活动,重复上述过程,直到找到一个有效的解决方法为止
调试方法:
强行排错、回溯法排错、归纳法排错、演绎法排错
1、(D)的过程是将设计描述翻译成某种预定的程序设计语言的过程
A、需求分析B、软件设计C、软件测试D、编码
2、下列(B)不属于编码规。
A、代码组织B、代码优化C、变量命名规则D、函数命名规则
3、(A)能减少冗余代码的数量,提高代码的聚程度,减少耦合程度。
4、(A)是指基本块的优化。
所谓基本块,是指程序中的顺序执行语句序列,其中只有一个入口语句和一个出口语句。
A、局部优化B、代码优化C、代码外提D、删除多余运算
5、下列(D)不属于代码调试方法。
A、强行排错B、回溯法排错C、演绎法排错D、比例法排错
1、作为软件工程的一个步骤,(编码)是设计的必然结果,因此,程序的质量主要取决于软件设计的质量。
2、为提高代码质量,提高目标程序的运行速度,减少目标代码运行所需要的控件,需要对代码进行(优化)。
3、(代码组织)是对整个项目的代码进行整理,使之更加有序。
4、(强度削弱)的思想是想把强度大的运算换算成强度小的运算。
(代码调试)是在程序中设置的一个位置,程序执行到这些位置时会中断(或暂停)。
1、什么是编码过程?
编码的目标是什么?
2、编码规主要包括几个部分?
变量命名规则、函数命名规则、类命名规则、常见语句书写规则、注释风格、代码组织
3、代码优化有哪些常用技术?
4、代码调试有哪些方法?
5、错误的分类有哪些?
编译时的错误、运行时的错误
第五章(软件测试)
1、简述软件测试的原则。
①制定测试计划应尽早开始
②保持测试计划的灵活性
③保持测试计划简洁和易读
④尽量争取多渠道评审测试计划
⑤计算测试计划的投入
2、简单介绍至少5款软件测试工具或测试管理的工具。
①功能测试QTP
②性能测试loadrunner
③源代码扫描测试fortifysca
④渗透测试webinspect
⑤单元测试pc-lint/ctest/juint
3、用黑盒测试设计测试用例有哪些常用方法?
①等价类划分
②边界值分析
③错误猜测法
④因果图方法
⑤其它
4、什么是集成测试?
它包括哪两种方式?
每个模块完成单元测试后,需要按照设计是确定的结构图,将他们连接起来,进行集成测试,也称为综合测试。
集成测试包括非增量测试和增量测试两种方式
5、测试的目的是什么?
是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
6、测试人员需要何时参加需求分析?
原则上,测试人员对需求了解得越深入对测试工作越有利,所以一开始就应该参加需求分析工作。
7、代码走查是如何进行的?
就像代码检查一样,代码走查也是采用持续1~2小时的不间断会议的形式。
代码走查小组由3~5人组成,其中一人扮演协调人的角色,一个人担任秘书(负责记录所有查出的错误)的角色,还有一个人担任测试人员。
关于这3~5人的组成结构,有各种各样的建议,当然,程序作者应该是其中之一。
建议包括其他参与者。
8、性能测试什么时候开展最为合适?
在产品相对比较文档,
功能测试
完成后。
灵活性比较强。
1、以下(B)属于软件性能测试的畴。
A、接口测试B、压力测试C、单元测试D、易用性测试
2、在用白盒测试中的逻辑覆盖法设计测试用例时,在下列覆盖中,(D)是最强的覆盖准则。
A、语句覆盖B、条件覆盖C、判定/条件覆盖D、路径覆盖
3、在大多数实际情况下,性能测试的实现方法是(A)。
A、黑盒测试B、白盒测试C、静态分析D、可靠性测试
4、下列软件属性中,软件产品首要满足的应该是(A)。
A、功能需求B、性能需求C、可扩展性和灵活性D、容错纠错能力
5、测试人员的基本素质为(D)。
A、计算机专业技能B、测试专业技能C、行业知识D、以上都是
1、软件测试计划评审会需要(项目经理)、(SQA负责人)、(
配置负责人)和(测试组)人员参加。
2、软件测试主要分为(静态测试)、(动态测试)、(黑盒测试)和(白盒测试)4类测试。
3、黑盒测试用例设计方法包括(等价划分)、(边界值分析)、(因果图)、错误推测法等。
4、通过画因果图来写测试用例的步骤为(分析程序规格说明的描述中,哪些是原因,哪些是结果)、(分析程序规格说明的描述中语义的容,并将其表示成连接各个原因与各个结果的因果图)、(在因果图上使用若干个特殊的符号标明特定的约束条件)、把因果图转换为状态图和(把判定表中每一列表示的情况写成测试用例)共5个步骤。
5、使用软件测试工具的目的是(帮助测试寻找问题)、(协助问题的诊断)、(节省测试时间)。
1、测试人员在软件开发过程中的任务是什么?
①尽可能早的找出系统中的Bug;
②避免软件开发过程中缺陷的出现;
③衡量软件的品质,保证系统的质量;
④关注用户的需求,并保证系统符合用户需求。
总的目标是:
确保软件的质量。
2、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点。
黑盒测试的优点:
适应于阶段测试,从产品功能角度测试,容易入手生成测试数据。
缺点:
某些代码得不到测试,如果规格说明有误,可能无法发现,不易进行充分性测试。
白盒测试的优点:
可构成测试数据使特定程序部分得到测试,有一定的充分性度量手段,可生成较多工具支持。
不易生成测试数据,无法对未实现规格说明的部分进行测试,作量大通常只用于单元测试有应用局限。
3、简述缺陷产生的原因。
①需求:
需求表述理解