汉语版软件需求分析与设计复习题201011版_第1页
汉语版软件需求分析与设计复习题201011版_第2页
汉语版软件需求分析与设计复习题201011版_第3页
汉语版软件需求分析与设计复习题201011版_第4页
汉语版软件需求分析与设计复习题201011版_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件需求分析与设计模拟考试题及答案一 解释下列名词的含义:1软件工程2过程3风险4演化型原型5里程碑6技术设计7白盒测试8面向对象9由底向上测试10性能测试二判断1、( ) 程序设计语言种类很多,在进行软件开发时可以随便选择一种语言进行编码。3、( ) 在软件开发的各个阶段进行过程中,增加人员肯定会对整个项目提前完成有好处。4、( ) CoCoMo模型可以用来估算系统的工作量和软件开发所需时间。6、( ) OOA方法的核心思想是利用面向对象的概念和方法为软件需求建造模型,大致步骤是识别对象(属性和方法),识别类及其结构,定义对象之间的消息传递等。7、( ) 系统需求分析员应该具有开发软、硬件系

2、统的经验并且了解用户领域的知识。8、( )软件运行正确,可见软件中没有缺陷(fault)。9、( )软件失败(failure)在系统交付之前和交付之后都可能被发现。10、( )开发人员和客户对软件质量因素的认可是完全一致的。12、( )里程碑(milestone)就是开发过程中的某个活动(activity)。13、( )在软件开发中一定要不惜代价避免风险。/ 三填空(本大题仅为参考) 1、请列举出三方面的用以衡量软件质量的因素:( )、( )、( )。2、软件开发过程从大的阶段上分为( )、( )、程序设计、( )、单元测试、组装测试、( )、交付、维护。3、数据流图中,使用了四种基本符号,它

3、们分别是( )。4、开发原型的目的是( )。5、请列举出2种软件开发模型:( )、( )。6、项目进度通常用活动图来管理,活动图中的节点表示( ),节点之间的线段表示( )。7、常用的软件开发组织结构有( )、成员之间平等的开发小组方式等。8、软件成本的算法估算等式E=(a+bSc)m(X)中,主要的影响因素S表示( )。9、风险控制的主要手段有( )、( )、( )。四从供选择的答案中,选出正确的答案填入()内。 1白盒测试法常用的方法是A方法,黑盒法中常用的方法是B方法和C方法,C方法根据输入的关系设计测试用例。供选择的答案:A、B、C:综合测试路径测试等价分类 归纳测试 因 果 图追踪

4、回溯排错( ) 2模块综合测试的方法有A和B两种,A是从下层模块向上层模块依次结合进行测试,为测试需要C以便调用被测模块,但从开发的初期就能并行进行测试作业,并且每个模块的D都很容易做,是这种方法的优点。其缺点是直到测试的最后阶段,程序的缺陷都难以发现。B是从上层模块向下层模块依次结合进行测试,为了测试需要设计E模块模拟被测模块所调用的下级模块。 供选择的答案:A、B、D:功能测试组合测试综合测试 可靠性测试 结构测试自顶向下测试 自底向上测试C、E:仿真模拟生成 转贮跟踪 驱动模块 宏模块支持模块( )4软件设计中划分程序模块通常遵循的原则是要求各模块间的耦合性尽可能_,三种可能的模块耦合是

5、:_:例如,一个模块直接引用另一模块中的数据。_:例如,一个模块把开关量作为参数传送给另一模块。_:例如,一个模块把数值量作为参数传送给另一模块。其中,_的耦合性最强。 强 弱 适中 公共耦合 数据耦合 逻辑耦合 外部耦合 内容耦合 控制耦合5软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)及(C)的完整集合。其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文资料。A,B,C: 软件 程序 代码 硬件 文档 外设 数据 图表 填入答案(A: B: C: D: )五简述题1说明错误、缺陷、失败的

6、含义与联系。(请举例说明)2影响软件工程开发实践的关键要素是什么?3画出软件生存周期的瀑布模型,注明各个阶段所需文档,并说明其优缺点。4简述设计用户界面应考虑的问题。5试述COCOMO模型的工作原理。6举例说明需求的分类及相互关系。(P138)7对每一种耦合关系,举例说明之。8说明软件测试过程的主要步骤及含义。六综合题目1 根据给定的命题画出UML分析图(课本或课件上介绍过的图-例如用例图、类图等)。/ 测试方面的题目。2 综合论述题目。( 例如:为什么软件维护费用一直居高不下?困难何在?克服困难的途径何在?-自己总结)( 又例如:试阐述设计软件用户界面应该考虑的问题。-课件第5章22,23页

7、)/ 3. 软件计划和项目管理中: 根据活动图计算关键路径 (第三章)汉语版软件需求分析与设计教学内容回顾 (备注1:下述问题答案以教学课件为主要参考,加注“/”标记的仅作为参考内容) (备注2:所标页数为英文教材页数,可以简单的在课件中或汉语教材中按章节查找)Chapter01 SE的定义、目的、方法及作用(P2 / P16) / 开发模式(paradiam)(P4)/ 说明错误、缺陷、失败的含义与联系。(请举例说明)(6页)(44页习题3)软件质量应从哪几个方面来衡量?论述之。(9-12页)/ 软件系统的系统组成(P16)现代软件工程大致包含的几个阶段及各个阶段文档(P23-24)使现代S

8、E实践发生变化的(七个)关键因素是什么?(28-29页)什么是抽象?(30页) 什么是软件过程?软件过程的重要性是什么?包含几个阶段?(32页)(45页)什么是重用?(34页) 作业:(1)掌握所学基本概念 (2)习题2Chaoter02什么是软件过程?软件过程的重要性是什么? (P45-46)瀑布模型及各阶段文档,优缺点?(P49)原型的概念(P51)论述分阶段开发模型的含义, 分类及特点。(56页) / 螺旋模型四个象限的任务及四重循环的含义?(P58)/ P80-81页 习题2, 3。/ 在所有的软件开发过程模型中,你认为哪些过程给予你最大的灵活性以应对需求/ 的变更?(81页习题11)

9、作业:(1)掌握所学基本概念 (2)习题2,9,11Chapter03什么是项目调度?活动?里程碑?(83页)/ 如何计算软件项目活动图的关键路径?(习题2,3)软件人员应该具备的能力是什么?(96页)/ 软件项目组织的基本结构?(101页)专家估算法的大致含义?(106页),算式估算法的大致含义?(108页)试述COCOMO模型的三个阶段基本工作原理或含义。(111页)什么是风险?有几种降低风险的策略?(119、122页)/ 找出图3.23和3.24(139页)的关键路径。作业:(1)掌握所学基本概念 (2)习题11Chapter04需求的含义是什么? (143页)确定需求的过程是什么?(1

10、44页 图4.1)举例说明获取需求时的需求分类及相互关系。(152页)/ 如何使需求变得可测试?(151-152页, sidebar4.4)需求文档分为哪两类?(153页)什么是功能性需求和非功能性需求/质量需求?(149页)/ 需求的特性?(正确性、一致性、完整性)(155页)/ 掌握了解DFD图(172页)在需求原型化方面,什么是抛弃型原型?什么是演化型原型?(192-193页)/ 用DFD图简单描述ATM机的工作原理(主要功能和数据流)(220页习题7)作业:(1)掌握所学基本概念 (2)采用DFD图和用例图做习题6Chapter05什么是设计?概念设计?技术设计?(223-224页)三

11、种设计层次及其关系?(229页)/ 什么是模块化?什么是抽象?(238页)论述设计用户界面应考虑的问题。(242页)5.5节-模块独立性-耦合与内聚的概念及层次划分?(248-xxx页)举例说明耦合与内聚的基本分类。(284页习题4,5)作业:(1)掌握所学基本概念 (2)习题4,5,9 Chapter06什么是面向对象?(286页) /有几个什么特征?(286-291)OO开发有何优势?(291页)OO开发过程有几个步骤?(292页)用例图的组成和画法(294页)熟悉类图中各个类之间的基本关系分类(303-305)熟悉类图、顺序图的组成和基本画法(300-308页)作业:(1)掌握所学基本概

12、念 (2)掌握用例图、类图、时序图的基本画法Chapter07/ 为什么说编码工作是纷繁复杂甚至令人气馁?(337页) (了解)一般性的编程原则应该从哪三个方面考虑?(340-344页)/ 论述编码阶段实现某种算法时所涉及的问题。(342页)在编写程序内部文档时,除了HCB外,还应添加什么注释信息?(352-354页)/ 什么是极限编程(XP)?(357页)作业:(1)掌握所学基本概念Chapter08产生缺陷的原因?(365页)缺陷分类的理由?(367页)几种主要的缺陷类型?(367-368页)/ 什么是正交缺陷分类?(369页)测试的各个阶段及其任务?(372页图8.3)/ 测试的态度问题

13、?(为什么要独立设置测试团队?)(373页)测试的方法-黑盒、白盒的概念?(374)什么是单元测试? /步骤?什么是走查和检查?(376页)/ 黑盒白盒方法各自的分类?(结合补充材料)集成测试及其主要方法的分类?(390-392)/ 传统测试和OO测试有何不同?(398-399页)/ 测试计划涉及的几个步骤?(400页) (了解)作业:(1)掌握所学基本概念 (2)习题7,14Chapter09系统测试的主要步骤及各自含义?(420页, 图9.2)/ 什么是系统配置?配置管理?(423页)/ 什么是回归测试?(425页)功能测试的含义极其作用?(430页)性能测试的含义与作用?(436页)性能

14、测试的主要分类?(436页)/ 什么是可靠性、可用性和可维护性?(438页)确认测试, 确认测试分类?(基准测试和引导测试)(447-448页)什么是alpha测试?测试?(448页)/ 什么是安装测试?(450页)作业:(1)掌握所学基本概念一 解释下列名词的含义:1.软件工程:软件工程是一种系统工程,不只包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理2.过程:软件工具、技术和方法的组合。3.风险:在软件生产过程中不希望看到的、有负面结果的事件。4.演化型原型:在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型

15、的概貌和使用效果,并对需求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。从原型法的基本思想中科院看到,用户能及早看到系统模型,在循环迭代修改和完善过程中,使用户的需求日益明确,从而消除了用户需求的不确定性,同时从原型到模型的生产,周期短、见效快,对环境变化的适应能力较强。5.里程碑:指特定的时间点, 标志着活动的结束, 通常伴随着提交物。6.技术设计:技术设计软件功能和接口的实现方法,告诉程序员怎样实现系统能做什么。7.白盒测试:根据测试对象的结构不同的方式来进行测试。 优点:模块详细测试。缺点:实际上行不通8.面向对象:OO是一种软件

16、开发方法,它将问题及其解决方法组织成一系列独立的对象,数据结构和动作都被包括在内。9.由底向上测试:自底向上测试是从“原子”模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。 自底向上综合测试的步骤分为: 1 把低层模块组织成实现某个子功能的模块群(cluster); 2 开发一个测试驱动模块,控制测试数据的输入和测试结果的输出; 3 对每个模块群进行测试; 4 删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。 10.性能测试:性能测试将集成的

17、构件与非功能性系统需求进行比较,得到验证过的系统。作用:测试非功能性需求二判断1、(×) 程序设计语言种类很多,在进行软件开发时可以随便选择一种语言进行编码。3、(×)在软件开发的各个阶段进行过程中,增加人员肯定会对整个项目提前完成有好处。4、(×)CoCoMo模型可以用来估算系统的工作量和软件开发所需时间。6、() OOA方法的核心思想是利用面向对象的概念和方法为软件需求建造模型,大致步骤是识别对象(属性和方法),识别类及其结构,定义对象之间的消息传递等。7、()系统需求分析员应该具有开发软、硬件系统的经验并且了解用户领域的知识。8、(×)软件运行正确

18、,可见软件中没有缺陷(fault)。9、()软件失败(failure)在系统交付之前和交付之后都可能被发现。10、(×)开发人员和客户对软件质量因素的认可是完全一致的。12、()里程碑(milestone)就是开发过程中的某个活动(activity)。13、(×)在软件开发中一定要不惜代价避免风险。三填空(本大题仅为参考) 1、请列举出三方面的用以衡量软件质量的因素:(最终产品的质量)、(开发过程的质量)、(商业价值)。2、软件开发过程从大的阶段上分为(可行性分析)、(系统需求设计)、程序设计、(编写程序)、单元测试、组装测试、(系统测试)、交付、维护。3、数据流图中,使用

19、了四种基本符号,它们分别是( )。 加工 数据流向 数据集合 外部项4、开发原型的目的是(用来让用户和开发者共同研究,提出意见,为最终产品定型 )。5、请列举出2种软件开发模型:(瀑布模型)、( 原型化模型)。6、项目进度通常用活动图来管理,活动图中的节点表示(开始结点),节点之间的线段表示(广播消息)。7、常用的软件开发组织结构有( )、成员之间平等的开发小组方式等。8、软件成本的算法估算等式E=(a+bSc)m(X)中,主要的影响因素S表示(系统规模估计量)。9、风险控制的主要手段有(规避风险)、(转移风险)、(加入风险会发生)。四从供选择的答案中,选出正确的答案填入()内。 1白盒测试法

20、常用的方法是A方法,黑盒法中常用的方法是B方法和C方法,C方法根据输入的关系设计测试用例。供选择的答案: A、B、C:综合测试路径测试等价分类 归纳测试 因 果 图追踪 回溯排错 2模块综合测试的方法有A和B两种,A是从下层模块向上层模块依次结合进行测试,为测试需要C以便调用被测模块,但从开发的初期就能并行进行测试作业,并且每个模块的D都很容易做,是这种方法的优点。其缺点是直到测试的最后阶段,程序的缺陷都难以发现。B是从上层模块向下层模块依次结合进行测试,为了测试需要设计E模块模拟被测模块所调用的下级模块。A: B: C: D: E: 供选择的答案:A、B、D:功能测试组合测试综合测试 可靠性

21、测试 结构测试自顶向下测试 自底向上测试C、E:仿真模拟生成 转贮跟踪 驱动模块 宏模块支持模块4软件设计中划分程序模块通常遵循的原则是要求各模块间的耦合性尽可能_,三种可能的模块耦合是: _:例如,一个模块直接引用另一模块中的数据。_:例如,一个模块把开关量作为参数传送给另一模块。_:例如,一个模块把数值量作为参数传送给另一模块。其中,_的耦合性最强。 强 弱 适中 公共耦合 数据耦合 逻辑耦合 外部耦合 内容耦合 控制耦合5软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)及(C)的完整集合。其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序能够正确操纵信息

22、的数据结构,(C)是与程序开发、维护和使用有关的图文资料。A,B,C: 软件 程序 代码 硬件 文档 外设 数据 图表 填入答案(A: B: C: )五简述题1说明错误、缺陷、失败的含义与联系。(请举例说明)答:错误,是进行软件开发过程中人为出错造成的。 缺陷:当人们在进行软件开发活动的过程中出现错误时,就会引起缺陷。失败:是指系统违背了它应有的行为。可能会在系统交付前或交付后被发现,也可能在测试过程中或者在运行和维护过程中被发现。(1)单个错误可能产生多个缺陷,并且缺陷可能驻留在任何开发或维护的产品中,如设计人员可能错误理解某个需求,创建处于需求分析人员和用户实际意图不相符的设计,这个设计缺

23、陷是一种错误的编码,可能导致其他缺陷,像不正确的代码或用户手册中不正确的描述等。(2)并非每一个缺陷都对应于一个失败,如果不执行缺陷代码或者不进入某个特定状态缺陷就不会引起失败。(3)缺陷是系统的内部视图,这是从开发人员角度看问题而失败是系统的外部视图,它是用户所看到的问题。例如:X: 内存分配 Y: 示例-“在装配线上的多个传送带运行”2影响软件工程开发实践的关键要素是什么?(1)商用产品投入市场时间的紧迫性。(2)计算技术在经济中的转变:更低的硬件成本,更高的开发和维护成本。(3)功能强大的桌面计算的可用性。 (4)广泛的局域网和广域网。(5)面向对象技术的采用及其有效性。(6)使用窗口、

24、图标、菜单和指示器的图形用户界面(7)软件开发瀑布模型的不可预测性。3画出软件生存周期的瀑布模型,注明各个阶段所需文档,并说明其优缺点。答:需求分析 SRS 系统设计 系统设计文档如软件结构图 程序设计 模块功能算法和数据描述文档 编码 源程序和注释 单元测试和集成测试 测试报告 系统测试 测试报告 验收测试 测试报告 运行维护 维护报告优点:(1)它的简单性使得开发人员很容易向不熟悉软件开发的客户作出解释。 (2)明确的表示出为了下一阶段的开发,那些中间产品是必须的。用里程碑明确表示出一个阶段的结束,并伴随着提交物。 (3)瀑布模型是其他复杂模型的基础。缺点:最大的问题是它不能反映实际代码的

25、开发过程。 面临软件变动时, 该模型无法处理实际过程中的重复开发问题-软件是一个创造的过程,不是一个制造的过程。 文档转换有困难。 没有将开发看成一个迭代的过程。 难以适应商业环境和操作环境的变化。4简述设计用户界面应考虑的问题。答:(1)隐喻:可以认识和学习的基本术语。 (2)头脑中的模型:数据、功能、任务和角色的组织和表示。(3)模型的导航规则:如何在数据,功能,活动和角色中移动。 (4)外观:系统向用户传输信息的外观特性。(5)感觉:向用户提供有吸引力的体验和交互技术。(6)文化问题:信仰,价值观、道德规范、传统、风俗和传说。 (7)用户偏好:个人喜好。5试述COCOMO模型的工作原理。

26、答:阶段1,项目通常构建原型以解决包含用户界面、软件和系统交互、性能和技术成熟性等方面在内的高风险问题。COCOMO用应用点来估计规模。阶段2(早期设计阶段),COCOMO采用功能点作为对规模的估计量。阶段3(后体系结构阶段),COCOMO规模用功能点或代码行的形式来表述。6举例说明需求的分类及相互关系。答:A必须满足的需求(必须的) B很值得要得但不是必须的(值得要的)C可要可不要的(可选的)。之所以有上述分类的原因:有的软件开发项目受到了时间和资源的限制。我们在从所有的利益相关者得到需求的过程中,一定会遇到这样的情况:大家对“需求应该是什么”的看法不一致甚至会有冲突。7对每一种耦合关系,举

27、例说明之。六种等级 (关于耦合程度的度量) 非直接耦合:模块相互之间没有信息传递数据耦合:模块间传递的是数据 特征耦合:模块间传递的是数据结构 控制耦合:模块间传递的是控制量内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时公共耦合:公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合 非直接耦合8说明软件测试过程的主要步骤及含义。单元测试 设计规格 系统功能 其他软件 客户需求 用户环境使用中的系统安装测试构件 测 说明 需求 需求 规格说明功能测试性能测试验收测试集成测试代码 试 单元测试构件 中代码 的 集成的模块 运行的系统 验证、确认 接受的系统单元测试

28、 构件 的软件构件 代码 系统测试 将每个程序 验证系统构件 对系统进行 将系统与这 根据顾客的 在系统实际 构件与系统 是否能够按照 评估,以确 些软件和硬 需求描述检 使用环境中 中的其他构 系统和程序设 定集成的系 件需求的剩 查该系统。 测试该系统。 件隔离,对 计规格说明中 统是否确实 余部分进行 其本身进行 描述的那样共 执行需求规 比较。 测试。 同工作。 格说明中描 述的功能。六综合题目3 根据给定的命题画出UML分析图(课本或课件上介绍过的图-例如用例图、类图等)。 UML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所

29、作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。 一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。 UML模型图(5类,10种):用例图、静态图(类图,对象图,包图)、行为图(状态图,活动图)、交互图(顺序图,合作图)、实现图(构件图,配置图

30、)UML主要文件:UML概要(UML Summary)、UML语义(UML Semantics)、UML表示法指南(UML Notation Guide)对象约束语言规约(Object Contraint language Specification):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。(1).用例图 (UML use-case diagrams) 从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标 用例图

31、描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行者是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。1、进度项目进度是对特定项目的软件开发周期的刻画。包括对项目阶段、步骤、活动的分解,对各个活动的交互关系的描述,以及对各活动完成时间的初步估算2、活动项目的一部分, 一般占用项目进度计划中的一段时间14. 软件的概念 (=代

32、码+数据+文档)特点A:软件是一个逻辑实体 B:软件生产不同于硬件C:软件是复杂的D:开发过程中社会因素的干扰(观念、体制等)3、什么是新的开发途径 ? 设想采用系统工程的方法-强调可管理的开发途径(软件-分解为许多部分-对每一部分对进行细致的说 明-细致开发各个软件部分-合成软件部件-高质量的软件产品 )4、什么是软件工程SE= 弄清问题本质(将问题理解清楚,叙述明白) + 实现解决方案 (通过开发环境与工具),用系统科学的方法解决问题 j问题分析: 大的问题=子问题集+ 子问题之间的关系集 (Fig1.1) k系统合成: 各个解决方案的最后有机合成 . l几个概念: 工具 : 仪器/自动软

33、件系统/编程环境 /软件工具模块 过程 : 软件工具、技术和方法的组合. 模式-开发软件时特定的方法或哲学 - 面向对象模式 - 结构化模式,基于过程的模式,等等5、什么是过程质量过程质量是指过程满足明确和隐含需要的能力的特性之总和。既然过程的基本功能是将输入转化为输出,那么过程质量一方面可以通过构成过程的要素(如投入的资源)和相关活动满足明确和隐含需要的程度来考虑,另一方面也可以通过过程输出(如产品和劳务等有形或无形产品)的质量好坏来间接地反映6、软件工程师的任务 task: 以计算机科学理论和计算机功能为基础,通过对要解决问题的本质的了解,采用相应的工具和技术,实现设计方案,推出高质量的软

34、件产品。 SE = 采用工具、技术等用来解决现实问题的 综合过程7、软件工程的目的保软件具有技术高质量和实际商业用途 8、 V模型与基本瀑布模型的区别A: V模型使一些迭代活动更加明确B: 瀑布模型强调文档和提交物/制品, 而V模型强调开发活动及正确性9、原型化模型j 解释:该模型本身是有效的过程模型的基础。因为它允许用户以独立的工程模型的方式, 每一阶段都基于原型的建立, 以快速构造系统, 逐步完成各阶段任务 10、增量式和迭代式增量式开发:(系统需求按照功能分成若干子系统,开始建造的版本是规模小的、部分功能的系统,后续版本添加包含新功能的子系统,最后版本是包含全部功能的子系统集.迭代式开发

35、:系统开始就提供了整体功能框架,后续版本陆续增强各个子系统,最后版本使各个子系统的功能达到最强.是统一开发过程(RUP)的关键实践开发被组织成一系列固定的短期小项目每次迭代都产生经过测试、集成并可执行的局部系统每次迭代都具有各自的需求分析、设计、实现和测试随着时间和一次次迭代,系统增量式完善11、 分阶段开发形式的存在原因A: 培训-观察用户的反馈B: 市场-将在早期建立和开拓C: 尽早发现和修复软件问题D: 不同的发布版本具有不同的专业技能 12、统一过程它是用例驱动的、以基本架构为中心的、迭代式和增量性的软件开发过程框架,它使用对象管理组织(OMG)的UML 并与对象管理组织(OMG)的软

36、件过程工程原模型(SPEM)等相兼容。 “统一过程”将重复一系列生命期,这些生命期构成了一个系统的寿命。每个生命期都以向客户推出一个产品版本而结束。 每个周期包括四个阶段:开始阶段、确立阶段、构建阶段和移交阶段。每个阶段可以进一步划分为多次迭代。13、 螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审

37、4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。采用螺旋模型的软件过程如下图所示::螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。 14、 甘特图: 它是对项目的描述,显示在活动的并行性,并用颜色或图标来指明完成的程度。使用该图,项目经理能够了解哪些活动可并行进行,那些活动处于关键路径上。15、聚合和组合的区别这两个比较难理解,重点说一下。聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“conta

38、ins-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。实例分析联通客户响应OSS。系统有故障单、业务开通、资源核查、割接、业务重保、网络品质性能等功能模块。现在我们抽出部分需求做为例子讲解。1 通知分为一般通知、割接通知、重保通知。这个是继承关系。2 NoticeService和实现类NoticeServiceImpl是实现关系。3 NoticeServiceImpl通过save方法的参数引用Notice,是

39、依赖关系。同时调用了BaseDao完成功能,也是依赖关系。4 割接通知和故障单之间通过中间类(通知电路)关联,是一般关联。5 重保通知和预案库间是聚合关系。因为预案库可以事先录入,和重保通知没有必然联系,可以独立存在。在系统中是手工从列表中选择。删除重保通知,不影响预案。6 割接通知和需求单之间是聚合关系。同理,需求单可以独立于割接通知存在。也就是说删除割接通知,不影响需求单。7 通知和回复是组合关系。因为回复不能独立于通知存在。也就是说删除通知,该条通知对应的回复也要级联删除。综合论述题目。 例如:为什么软件维护费用一直居高不下?困难何在?克服困难的途径何在?-自己总结)首先是没有充分认识到

40、软件维护的重要性和困难;其次是没有系统地考虑软件维护问题,例如从需求分析和系统设计时就考虑到维护的问题;还有管理问题和技术问题,例如文档与编码难于理解,又难于修改。文档质量差和不全,开发技术陈旧。例如:试阐述设计软件用户界面应该考虑的问题。答:(1)隐喻:可以认识和学习的基本术语。 (2)头脑中的模型:数据、功能、任务和角色的组织和表示。(3)模型的导航规则:如何在数据,功能,活动和角色中移动。 (4)外观:系统向用户传输信息的外观特性。(5)感觉:向用户提供有吸引力的体验和交互技术。(6)文化问题:信仰,价值观、道德规范、传统、风俗和传说。(7)用户偏好:个人喜好。汉语版软件需求分析与设计教

41、学内容回顾Chapter01 1、SE的定义软件工程的定义:软件工程是一种系统工程,不只包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理。2、软件工程的目的确保软件具有技术高质量和实际商业用途 3、现代软件工程大致包含的几个阶段及各个阶段文档 4、 什么是抽象?基于某种归纳水平的问题描述。它使我们将注意力集中在问题的关键方面而非细节。(30页) 5、什么是软件过程?A:定义: 软件开发活动中的各种组织及规范方法。是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts(计划、文档、模型、编码、测试、手册等)组成6、软件过程的重要性

42、是什么?软件过程构成了软件项目管理控制的基础,并且创建了一个环境以便于技术方法的采用、工作产品(模型、文档、报告、表格等)的产生、里程碑的创建、质量的保证、正常变更的正确管理。1 有效的软件过程可以提高组织的生产能力:有效的软件过程可以改善我们对软件的维护:7、包含几个阶段?初始级可重复级定义级定量管理级(不断)优化级企业改进的开展的目的是通过把改进转变为一种系统性的行为方式去持续地和计量地改进企如果要用简单的一句话来表达从一级到高一级所需要的努力的话,我们可以有:从一级到二级的转化:规范化过程从二级到三级的转化:标准化、稳定的过程从三级到四级的转化:可预测的过程从四级到五级的转化:

43、继续不断地改进过程8、什么是重用?重用 定义: 共性 à可重用的部件à 新的项目 重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去.9、软件工程的定义:软件工程是一种系统工程,不只包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理。10、说明错误、缺陷、失败的含义与联系。答:错误,是进行软件开发过程中人为出错造成的。 缺陷:当人们在进行软件开发活动的过程中出现错误时,就会引起缺陷。失败:是指系统违背了它应有的行为。可能会在系统交付前或交付后被发现,也可能在测试过程中或者在运行和维护过程中被发现。(1)单个错误可能产生多个缺陷,

44、并且缺陷可能驻留在任何开发或维护的产品中,如设计人员可能错误理解某个需求,创建处于需求分析人员和用户实际意图不相符的设计,这个设计缺陷是一种错误的编码,可能导致其他缺陷,像不正确的代码或用户手册中不正确的描述等。(2)并非每一个缺陷都对应于一个失败,如果不执行缺陷代码或者不进入某个特定状态缺陷就不会引起失败。(3)缺陷是系统的内部视图,这是从开发人员角度看问题而失败是系统的外部视图,它是用户所看到的问题。11、软件质量应从哪几个方面来衡量?论述之。答:(1)产品的质量:用户在测量软件质量的时候,用户从故障数目和故障类型等外部特性进行评价,如将失败分为次要的、主要的、灾难性的。设计和编写代码倾向

45、于考虑内部特性,尤其是,从业人员通常会把故障的数目和类型看作产品质量的证据。(2)生产该产品的过程的质量:任何一个活动出了差错都会影响产品的质量,对过程进行建模的优点是我们能够研究它,并寻找方法对他加以改进。(3)在产品将使用的商业环境背景下的产品的质量商业应用背景下的软件质量(商业质量) A: 技术价值与商业价值的联系与区别 技术价值: 技术指标 (软件速度,正确运行的时间,以及可维护性 , 等等. ) 商业价值: 机构对软件是否与其战略利益相吻合的一种价值评估误区: 软件的技术质量将自动转化为软件的商业价值 目标: 将技术价值与商业价值统一起来B、 改进过程所带来的商业价值(或者说对商业质

46、量的影响) X: 传统公式 : 投资回报(ROI) =资本金+收益+风险回报 Y: 软件生产: (将工作量视为投资,而非单纯的代价或金钱) 投资 = 生产软件的正常消耗 + 过程改进的消耗 涉及回报的九种投资 : 培训; 进度控制; 风险管理与控制; 质量监督与管理; 过程控制; 成本管理; 生产率改进; 客户管理; 软件商业化.C:软件行业投资回报的定义(Fig1.6) (一般行业)Dollars-à effort(针对软件业)12、使现代SE实践发生变化的(七个)关键因素是什么?(1)商用产品投入市场时间的紧迫性。(2)计算技术在经济中的转变:更低的硬件成本,更高的开发和维护成本

47、。(3)功能强大的桌面计算的可用性。 (4)广泛的局域网和广域网。(5)面向对象技术的采用及其有效性。 (6)使用窗口、图标、菜单和指示器的图形用户界面(7)软件开发瀑布模型的不可预测性。Chaoter02什么是软件过程?软件过程的重要性是什么? (P45-46)1、原型的概念原型: 一种部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型2、瀑布模型及各阶段文档,优缺点?答:需求分析 SRS 系统设计 系统设计文档如软件结构图 程序设计 模块功能算法和数据描述文档 编码 源程序和注释 单元测试和集成测试 测试报告 系统测试 测试报告 验收测试 测试报告 运行维护 维护报告优点

48、:(1)它的简单性使得开发人员很容易向不熟悉软件开发的客户作出解释。 (2)明确的表示出为了下一阶段的开发,那些中间产品是必须的。用里程碑明确表示出一个阶段的结束,并伴随着提交物。 (3)瀑布模型是其他复杂模型的基础。 缺点:最大的问题是它不能反映实际代码的开发过程。 面临软件变动时, 该模型无法处理实际过程中的重复开发问题-软件是一个创造的过程,不是一个制造的过程。 文档转换有困难。 没有将开发看成一个迭代的过程。 难以适应商业环境和操作环境的变化。3、论述分阶段开发模型的含义, 分类及特点。答:分阶段开发模型:系统被设计成部分提交, 每次用户只能得到部分功能, 而其他部分处于开发过程中.分类:增量开发:系统需求按照功能分成若干子系统,开始建造的版本是规模小的、部分功能的系统,后续版本添加包含新功能的子系统,最后版本是包含全部功能的子系统集。 迭代开发:系统开始就提供了整体功能框架,后续版本陆续增强各个子系统,最后版本使各个子系统的功能达到最强.4、在所有的软件开发过程模型中,你认为哪些过程给予你最大的灵活性以应对需求的变更?1设计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个需求上。2设计结构应该尽可能的模拟实际问题。3设计应该表现出一致性。4不要把设计当成编写代码。 5在创建设计时就应该能够评估质量。6评审设计以减少语义性的错误。Chapter035、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论