《软件开发与项目管理课后练习(参考答案).docx》由会员分享,可在线阅读,更多相关《软件开发与项目管理课后练习(参考答案).docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件开发与项目管理课后练习(参考答案)软件开发与项目管理参考答案第一章软件开发模型和开发方法一知识回首与考虑1、软件产品的特性是什么?软件是一种逻辑产品,具有无形性;软件产品的生产主要是研制;主要是脑力劳动;软件不存在磨损和老化问题,但存在退化问题;软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;软件具有“复杂性,其开发和运行常遭到计算机系统的限制。2、软件生产有几个阶段?各有何特征?程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开场提出构造化方法
2、。软件工程时代:这个阶段生产方式是工程化的生产,使用数据库开发工具开发环境网络分布式面向对象技术来开发软件。3、什么是软件危机?产生的原因是什么?软件危机:是指在计算机软件的开发和维护经过中所碰到的一系列严重问题。主要是指怎样开发软件,如何知足对软件日益增长的需求,怎样维护数量不断膨胀的先有软件。原因:一是软件产品的固有特性(软件的不可预见性、软件的规模大且逻辑较复杂),二是软件专业人员本身的缺陷。4、什么是软件工程?它的目的和内容是什么?软件工程:是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。目的:付出较低开发成本;到达要求的功能;获得较好的性能;开发的软件易于移植;只需较低的
3、维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。内容:研究内容包括开发技术和开发管理两个方面。开发技术主要研究:软件开发方法,开发经过,开发工具和环境。开发管理主要研究:软件管理学,软件经济学,软件心。5、软件工程面临的问题是什么?软件重用性差软件可维护性差开发出的软件不能知足用户需要6、什么是软件生命周期?它有哪几个活动?软件生命周期:一个软件从提出开发要求开场直到该软件报废为止的整个时期。活动:可行性分析和项目开发计划,需求分析,概要设计,具体设计,编码,测试,维护。7、什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描绘软件开发经过中各种活动怎样执行的模型。主
4、要模型:瀑布模型、快速原型模型、增量模型、螺旋模型、敏捷模型、喷泉模型、混合模型。二单项选择题1、软件开发的各项活动严格根据线性方式进行,当前活动接收上一项活动的工作结果,施行并完成所需的工作内容的软件开发模型是A。A、瀑布模型B、快速原型模型C、增量模型D、敏捷模型2、下列B最能适应快速变化的需求。A、瀑布模型B、快速原型模型C、增量模型D、敏捷模型3、B可把一个复杂问题的求解经过分成几个阶段,而且这种分解是自顶向下、逐层分解的。A、面向对象方法B、构造化方法C、可视化方法D、ICASE方法4、C在可视化开发工具提供的图形用户界面上,通过操作界面元素开发,诸如菜单、按钮、对话框、编辑框、单项
5、选择按钮、复选框、列表框和滚动条。A、面向对象方法B、构造化方法C、可视化方法D、ICASE方法5、面向对象的特征有C。A、模块化、封装、继承B、模块化、继承、多态C、封装、继承、多态D、模块化、封装、继承、多态三填空题1、瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本活动,并且规定了它们自上而下、互相衔接的固定次序,好像瀑布流水,逐级下落。2、螺旋模型沿着螺旋线进行若干次迭代,包括下面活动:制定计划、风险分析、施行工程、客户评估。3、敏捷开发相对于非敏捷开发,更强调程序员团队与业务专家之间的严密协作,面对面沟通,频繁交付新的软件版本、紧凑而自我
6、组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。4、构造化软件开发方法的基本要点是自顶向下、逐步求精和模块化设计。5、面向对象方法的主要特征有封装性、继承性和多态性。四简答题1、请比拟瀑布模型和螺旋模型的优缺点?瀑布模型优点:有利于大型软件开发经过中人员的组织、管理,有利于软件开发方法和工具的研究,进而提高了大型软件项目开发的质量和效率。瀑布模型缺点:开发经过一般不能逆转,否则代价太大;实际的项目开发很难严格按该模型进行;客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。螺旋模
7、型优点:设计上的灵敏性,能够在项目的各个阶段进行变更;以小的分段来构建大型系统,使成本计算变得简单容易;客户始终介入每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;随着项目推进,客户始终把握项目的最新信息,进而他或她能够和管理层有效地交互。螺旋模型缺点:采用螺旋模型需要具有相当丰富的风险评估经历和专门知识,在风险较大的项目开发中,假如未能够及时标识风险,势必造成重大损失;太多的迭代次数会增加开发成本,延迟提交时间。2、相对于传统的软件开发方法,面向对象方法有哪些优点?传统开发:软件重用性差软件维护性差开发的软件不能知足用户的需求而OOP是尽可能模拟人类习惯的思维方式,使软件开发的方法
8、与经过接近人类认识世界、解决问题的方法与经过。3、ICASE方法有哪些特点?ICASE的最终目的是实现应用软件的全自动开发,即开发人员只要写好需求规格讲明书,软件开发环境就自动完成从需求分析开场的所有软件开发4、在增量模型的迭代经过中,应该先实现复杂的重要的功能模块还是简单的次要的功能模块?先实现重要的再实现次要的5、螺旋模型的4个象限包括哪些活动?制定计划、风险分析、施行工程、客户评估。第二章需求分析一知识回首与考虑1、软件需求有哪3个层次?业务需求、用户需求、功能需求2、常用的需求捕获技术有哪些?用户访谈、采集资料、问卷表、小组会议3、用户访谈经过有哪几个步骤?准备访谈、计划访谈日程、访谈
9、开场和结束、引导访谈4、什么是功能性需求和非功能性需求?功能性需求:是讲有详细的完成内容的需求。非功能性需求:是指软件产品为知足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩大性和对技术和对业务的适应性等。5、什么是系统用户和角色?系统用户:指软件的最终操作者,也是软件工程内的一个概念,指终端用户的抽象集合。角色:权限针对的是系统的资源6、用例模型中的重要元素和作用是什么?重要元素:介入者、用例、通信关联作用:描绘系统中对象的互相作用7、什么是业务流程图?作用是什么?业务流程图:是一种描绘系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表主要是描
10、绘业务走向绘制是根据业务的实际处理步骤和经过进行的是一种系统分析人员都懂的共同语言,用来描绘系统组织构造、业务流程作用:制作流程图的经过是全面了解业务处理的经过,是进行系统分析的根据是系统分析员、管理人员、业务操作人员互相沟通思想的工具系统分析员可直接在业务流程图上拟出能够实现计算机处理的部分用它可分析出业务流程的合理性8、数据字典是什么?作用是什么?数据字典是是一种用户能够访问的记录数据库和应用程序源数据的目录作用:作为分析阶段的工具在构造化分析中,数据字典的作用是给数据流图上每个成分加以定义和讲明二单项选择题1、D包括需求的获取、分析、规格讲明、变更、验证、管理一系列需求工程。A、系统设计
11、B、数据库设计C、测试D、需求分析2、需求分析的任务就是软件系统解决B的问题,要全面地理解客户的各项需求,并准确地表达所接收的用户需求的经过。A、设计B、做什么C、需求D、功能3、用户访谈一般会经历5个阶段:准备访谈、A、访谈开场和结束引导访谈、后继的访谈整理工作。A、计划和安排访谈日期B、日程管理C、日程安排D、计划施行4、C是需求捕获时广泛使用的一种工具,它采用了统计分析的方法,显得更科学。A、用户调研B、采集资料C、问卷表D、用户访谈5、B主要用来图示化系统的主事件流程,它主要用来描绘用户的需求,即用户希望系统具备的能完成一定功能的动作,通俗的讲,用例就是软件的功能模块,所以是设计系统分
12、析阶段的起点。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、数据库设计讲明
13、书D、需求规格讲明书10、在编写模块时,通常包括模块摘要,业务数据项,B,功能点的操作讲明、规则、角色、附图等。A、模块性能B、模块的功能点C、谈话摘要D、用例模型三填空题1、需求分析是指根据用户需求,将软件功能和性能与用户达成一致,估计软件风险和评估项目代价,最终构成开发计划的一个复杂经过。2、在需求捕获中最常见的技术包括用户访谈、采集资料、问卷表、小组会议4种。3、用户访谈一般经历5个阶段:准备访谈、计划和安排访谈日程、访谈开场和结束、引导访谈、后继的访谈整理工作。4、在面向对象的分析方法中要建立对象模型,而在构造化分析方法中,数据流程图则是建模的主要工具。5、软件需求分析所要做的工作是深
14、化描绘软件的功能和特性,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。6、用例是从系统外部可见的行为,是系统为某一个或几个介入者Actor提供的一段完好的服务。7、包含关系最典型的应用就是复用。8、业务流程图就是用一些规定的符号及连线来表示某个详细业务处理经过。9、数据字典是一种用户能够访问的记录数据库和应用程序源数据的目录。10、“用户需求讲明书是面向用户的,是合同的产物;而需求规格讲明书则是面向公司内部的,是立项建议书的产物。四简答题1、什么是需求分析?需求分析是指根据用户需求,将软件功能和性能与用户达成一致,估计软件风险和评估项目代价,最终构成开发计划的一个
15、复杂经过。2、什么是用例?用例之间有什么关系?用例就是软件的功能模块3、现行系统业务流程总结,在绘制业务流程图之前,要对现行系统进行具体调查,并写出现行系统业务流程总结。略4、根据系统业务流程的描绘,绘制出系统处理业务流程图。略5、什么数据字典DataDictionary?是一种用户能够访问的记录数据库和应用程序源数据的目录6、简述数据字典的组成?数据项、数据构造、数据流、数据存储、处理经过第三章软件设计一知识回首与考虑1、什么是软件设计?软件设计是一个把软件需求转换为软件表示的经过。最初,这种表示只是描绘了软件的总体构造,称为软件概要设计,然后对构造进一步细化,称为具体设计或经过设计。2、什
16、么是软件架构设计?软件架构设计有哪些原则?系统架构设计:是一个系统的草图,描绘了构成系统的抽象组件,以及各个组件之间的是怎样进行通讯的,这些组件在实现经过中能够被细化为实际的组件比方类或者对象。原则:一般采用“4+1视图模型,即逻辑视图、进程视图、开发视图、物理视图、场景视图3、什么是界面设计?界面设计包含哪些原则?界面设计:人与机器之间交换和传递信息的媒介原则:界面功能体现用户任务要求正确选择界面的类型界面操作直观、简单,减少用户工作量界面风格保持一致4、什么是数据库设计?数据库逻辑设计和物理设计各包含哪些内容?数据库设计:数据库设计是指对于一个给定的应用环境,构造最优的数据库形式,建立数据
17、库及其应用系统,使之能够有效地存储数据,以知足各种用户的应用需求。数据库逻辑设计:是将概念设计中的ER图,抽象成关系模型,并知足第三范式如学生学号,姓名,性别并在主键上用下划线标识。数据库物理设计:是将逻辑设计中的关系设计成表,并将你、表构造设计好。5、什么是模块设计?模块设计包含哪些主要方面?模块设计是:指把工业模具分解成小的部分的经过。主要方面:模块要素接口、功能、状态、逻辑抽象与逐步求精简单工厂形式二单项选择题1、在面向对象的开发方法中,C将是面向对象技术领域内占主导地位的标准建模语言。A、Booch方法B、Coad方法C、UML语言D、OMT方法2、为了提高模块的独立性,模块内部最好是
18、C。A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚3、在SD方法中,全面指导模块划分的最重要的原则是D。A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性4、软件具体设计的主要任务是确定每个模块的A。A、算法和使用的数据构造B、外部接口C、功能D、编程5、在软件构造图中,模块框之间若有直线段连接,则表示它们之间存在AA、调用关系B、组成关系C、链接关系D、顺执行关系三填空题1、软件设计是一个把软件需求转换为软件表示的经过,最初,这种表示只是描绘了软件的总的体系构造,称为软件概要设计,然后对构造进一步细化,称为具体设计或经过设计2、Kruchten提出了4+1视图模型,从5个不同的视角来
19、描绘软件体系构造,即逻辑视图、进程视图、开发视图、物理视图和场景视图。3、用来文档化用户需求并建立的数据库模型是指语义对象模型。4、高度概括事物主要的或本质的特性,暂时忽略或不考虑其细节的软件设计方法是抽象。将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单、易实现的模块,该设计方法是逐步求精。四简答题1、简述软件架构设计视图模型。逻辑视图、进程视图、开发视图、物理视图、场景视图2、简述1NF、2NF和3NF的限定条件。第一范式1NF:关系模型中的每个属性都是不可分解第二范式2NF:符合第一范式;所有的非码属性均依靠于所有的码属性第三范式3NF:符合第二范式;没有一个
20、非码属性传递依靠于其他的非码属性3、简述界面设计中的输入经过设计原则。界面功能体现用户任务要求正确选择界面的类型界面操作直观、简单,减少用户工作量界面风格保持一致4、实体关系图E-R图的图形标识符有哪些?各表示什么含义?简醚E-R模型建模的一般步骤。实体:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联络:用菱形表示,菱形框内写明联络名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联络的类型1:1,1:n或m:n。建模一般步骤:确定构造范围。实体定义。联络定义。属性分配。5、什么是模块耦合和模块内聚?它们对系统构造有什么影响?耦合:是软件系统构
21、造中各模块间互相联络严密程度的一种度量。内聚:表示内部间聚集、关联的程度对系统构造影响:使程序模块的可重用性、移植性大大加强。第四章编码一知识回首与考虑1、编码的目的是什么?将设计描绘翻译成某种预定的程序设计语言的经过。2、什么是编码规范?指编写代码时应该遵守的文字约束。3、什么是代码组织?对整个项目的代码进行整理,使之愈加有序。实现类似功能的文件应该放在同一个文件夹中或者同一个项目中。4、什么是代码优化?代码优化的意义是什么?指对程序代码进行等价指不改变程序的运行结果变换。意义:提高代码质量,提高目的程序的运行速度,减少目的代码运行所需要的控件。5、代码优化有哪些常用技术?删除多余运算符、代
22、码外提、强度削弱、交换循环控制条件、合并已知量与复写传播、删除无用赋值6、什么是局部优化?划分中间代码为基本块步骤:求出四元式程序中各个基本块的入白话句对每一入白话句,构造其所属的基本块凡未被纳入某一基本块的语句能够把它们删除基本块的变换:删除公共子表达式删除无用代码重新命名临时变量交换语句次序7、什么是代码调试?是在程序中设置的一个位置,程序执行到这些位置时会中断或暂停。8、代码调试的经过是什么?有哪些常用的调试方法?经过:从错误的外部表现入手,确定程序中出错的位置研究有关部分的程序,找出错误的内在原因修改设计和代码,以排除这个错误重复进行暴露这个错误原始测试,以确认该错误故障能否已排除假如
23、所做的修正无效,则撤销这次活动,重复上述经过,直到找到一个有效的解决方法为止调试方法:强行排错、回溯法排错、归纳法排错、演绎法排错二单项选择题1、D的经过是将设计描绘翻译成某种预定的程序设计语言的经过A、需求分析B、软件设计C、软件测试D、编码2、下列B不属于编码规范。A、代码组织B、代码优化C、变量命名规则D、函数命名规则3、A能减少冗余代码的数量,提高代码的内聚程度,减少耦合程度。A、面向对象方法B、构造化方法C、可视化方法D、ICASE方法4、A是指基本块内的优化。所谓基本块,是指程序中的顺序执行语句序列,其中只要一个入白话句和一个出白话句。A、局部优化B、代码优化C、代码外提D、删除多
24、余运算5、下列D不属于代码调试方法。A、强行排错B、回溯法排错C、演绎法排错D、比例法排错三填空题1、作为软件工程的一个步骤,编码是设计的必然结果,因而,程序的质量主要取决于软件设计的质量。2、为提高代码质量,提高目的程序的运行速度,减少目的代码运行所需要的控件,需要对代码进行优化。3、代码组织是对整个项目的代码进行整理,使之愈加有序。实现类似功能的文件应该放在同一个文件夹中或者同一个项目中。4、强度削弱的思想是想把强度大的运算换算成强度小的运算。代码调试是在程序中设置的一个位置,程序执行到这些位置时会中断或暂停。四简答题1、什么是编码经过?编码的目的是什么?将设计描绘翻译成某种预定的程序设计
25、语言的经过。2、编码规范主要包括几个部分?变量命名规则、函数命名规则、类命名规则、常见语句书写规则、注释风格、代码组织3、代码优化有哪些常用技术?删除多余运算符、代码外提、强度削弱、交换循环控制条件、合并已知量与复写传播、删除无用赋值4、代码调试有哪些方法?强行排错、回溯法排错、归纳法排错、演绎法排错5、错误的分类有哪些?编译时的错误、运行时的错误第五章软件测试一知识回首与考虑1、简述软件测试的原则。制定测试计划应尽早开场保持测试计划的灵敏性保持测试计划简洁和易读尽量争取多渠道评审测试计划计算测试计划的投入2、简单介绍至少5款软件测试工具或测试管理的工具。功能测试QTP性能测试loadrunner源代码扫描测试fortifysca浸透测试webinspect单元测试pc-lint/ctest/juint3、用黑盒测试设计测试用例有哪些常用方法?等价类划分边界值分析错误猜想法因果图方法其它4、什么是集成测试?它包括哪两种方式?每个模块完成单元测试后,需要根据设计是确定的构造图,将他们连接起来,进行集成测试,也称为综合测试。集成测试包括非增量测试和增量测试两种方式5、测试的目的是什么?是为了发现尽可能多的缺陷,不是为了讲明软件中没有缺陷。6、测试人员需要何时参加需求分析?原则上,测试人员对需求了解得越深化对测试工作越有利,所以一开场就应该参加需求分析