需求发现的常用技术中,无法验证所发现的需求是否满足用户的要求,而且无法验证其正确性的是__自悟__________和____提炼________。 31.简述软件需求的分类及其关系。P23-24;
答:软件需求可以分为功能需求和非功能需求2大类;功能需求规定了系统及构件必须执行的功能;非功能需求又可以分为性能需求、外部接口需求、设计约束和质量
属性需求。功能需求是整个软件需求的主体,没有功能需求就没有性能、外部接口、设计约束和质量的需求;一个非功能需求可以作用于1个或多个功能需求。
32.什么是模块?什么是模块内聚?请列出从低到高的常见内聚类型。P56、57、58、59
答:模块是执行一个特殊任务的过程以及相关的数据结构。内聚是指一个模块内部各个成分之间相互关联程度的度量。从低到高的内聚类型:偶然内聚;逻辑内聚;时
间内聚;过程内聚;通信内聚;顺序内聚;功能内聚。
33.什么是状态?什么是状态图?简述实际应用中使用状态图的作用。107、108、113
答:状态是类目的一个实例在其生存中的一种条件或情况;期间该实例满足这一条件,就执行某一活动或等待一个消息。状态图是现实状态机的图,强调从一个状态到
另一个状态的控制流。在实际使用中状态图的作用:创建一个系统的动态图和创建一个场景的模型。
34.简述RUP中需求获取的基本步骤和相关制品。P132
答:需求获取的步骤和相关制品:
第1步是列出候选的特征,相关制品是特征表;
第2步是理解系统语境,相关制品是领域模型或业务模型;
第3步是捕获系统功能需求,相关制品是用况模型(use case模型); 第4步是捕获非功能需求,相关制品是补充的需求或针对特殊需求的用况。
35.简述黑盒测试技术的要点。P186
答:黑盒测试技术的要点:
(1)支持测试工程模型的中间部分;
(2)事务流测试技术是将路径测试技术用于功能测试的产物,是一种实用的功能测试技术,通过事务的操作逻辑发现软件中的错误; (3)事务流测试技术是基于软件规约的,对错误的假定是软件通过了与预想不同的事务路径; (4)基于事务的基本操作;事务流测试技术的最大问题和最大代价是获取事务流程图及用例设计; (5)事务处理流程测试要达到基本的测试覆盖。 36.简述增量模型以及可适应的情况。P224
答:增量模型意指需求可以结构化分组,形成一个个增量,并形成一个结构,之后对每一个增量进行瀑布开发。
用增量模型开发的前提是需求的结构化,模型适合“技术驱动”的软件产品开发。 31.软件开发方法:一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程.
32.数据字典: 简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述.
33.黑盒测试法:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。
34.软件质量保证:向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
35.模块的作用范围:一个模块的控制范围是指它本身及其所有下属模块的集合。这里下属模块包括直接下属模块及下属模块的下属模块
36.简述软件产品的特性。 答:1.软件产品是一种逻辑产品。
2.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。 3 .软件产品不会用坏,不存在磨损、消耗问题。
4.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是\定做\的。 5.软件费用不断增加,成本相当昂贵。
37.简述在需求分析基本任务中,对问题的综合需求包括哪几个方面。 答: 一.确定对系统的综合要求 1. 功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。 2. 性能需求
性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。 3. 可靠性和可用性需求
可靠性需求定量地指定系统的可靠性。
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。 4. 出错处理需求
这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。 5. 接口需求
接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。 6. 约束
设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设计(或实现)过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。 7. 逆向需求
逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。 8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
二 .分析系统的数据要求
任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
三. 导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
四.修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
38.简述结构化程序设计的基本要点。
答: (1)设计软件系统结构(简称软件结构)
a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)
b.确定模块的功能。 (功能)
c.确定模块之间的调用关系。 (调用)
d.确定模块之间的接口,即模块之间传递的信息。 (接口) e.评价模块结构的质量。 (质量) (2)数据结构及数据库设计 a.数据结构设计
b.数据库设计:(概念设计、逻辑设计、物理设计)
(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划) (4)评审
39.简述提高软件可维护性的方法。
A、建立明确的软件质量目标。B、利用先进的软件开发技术和工具。 C、建立明确的质量保证工作。D、选择可维护的程序设计语言。 E、改进程序文档。
31.软件工程过程 即软件生命周期的方法、工具和概念
32.模块化 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能
33.集成测试 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。 34.软件可靠性 (1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率; (2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力; 35.模块的控制范围
四、简答题(本大题共4小题,每小题5分,共20分) 36.简述软件工程面临的问题。 答:内容:①软件开发技术②软件开发管理
面临的主要问题:①软件费用②软件可靠性③软件维护④软件生产率⑤软件重用
37.简述可行性研究报告包含的主要内容。
技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评估技术可行
性时,一旦估计错误,将会出现灾难性后果。
经济可行性:包括成本――效果分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。 社会可行性包括:合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。
38.简述软件结构设计的优化准则。 39.简述快速原型的开发步骤。
答:快速原型开发步骤可划分下列阶段:
(1)快速分析:迅速确定基本需求、集中力量确定需求说明。
(2)快速构造原型:在快速分析基础上,在强有力的软件工具支持下,快速构造所需原型。
(3)运行原型:在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及相互间的理解,以发现各种问题。 (4)评价原型;在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意见。
(5)修改原型:在评价基础上进行修改。若不满足需求说明,则根据明确的需求修改原型。若不满足用户需求,则先修改并明确用户需求,再重新构造原型。