一、软件过程
1、什么是软件过程?他与软件工程方法学有何关系?
什么是软件工程过程?它包含哪些过程?
过程评估在软件过程改善中有什么作用?
答:(1)软件工程基本过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
①获取过程定义需求方按合同获取一个系统、软件产品或服务的活动。
②供应过程定义供方向需求方提供合同中的系统、软件产品或服务所需的活动。
③开发过程定义开发者和机构为了定义和开发软件或提供服务所需的活动。此过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。
④操作过程定义操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。
⑤维护过程定义维护者和机构。
(2)软件过程是软件工程方法学的三个重大组成部分之一,软件工程方法学的三个要素为:方法、工具和过程。
解析:软件过程(process)是在软件生存周期中所实施的一系列活动 (activity)的集合,且每个活动可由一些任务(task)组成,保证生产出来的产品是稳定的。
二、能力成熟度
2、CMM的基本思想是什么?为什么要把能力成熟度划分成5个等级?
答:(1) CMM的基本思想:由于软件危机是因对软件过程管理不善而引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量,提高软件生产率和软件质量的关键是改善对软件过程的管理。
(2) 能力成熟度划分的缘由
①对软件过程的改善,是在完成一个又一个小的改善步骤基础上不断进行的渐进过程。
②这5个成熟度等级定义了一个有序的尺度,用以测量软件机构的软件过程成熟度和评价其软件过程能力,这些等级还协助软件机构把应做的改善工作排出优先次序。
③成熟度等级是妥善定义的向成熟软件机构前进途中的平台,每个成熟度等级都为软件过程的继续改善提供了一个台阶。
2.2、CMMI 与ISO9000有什么异同?
答:(1)两者的一样点:IS09001与CMMI均可作为软件企业的过程改善框架。ISO9000是一个关于质量管理体系的标准族,用于协助组织确保满足客户和利益相关者的需求。其主要的作用是指导组织建立和改善质量体系,质量体系评估。
(2)两者的不同点:在范围上,一个是“泛用”,一个是“专用”。ISO9001标准面向合同环境,站在用户立场,要求对质量要素进行控制,规定了质量体系的最低标准。而CMMI标准则强调软件开发过程的成熟度,即内部过程的不断改善和提高;在形式上,ISO9001审核只有“通过”和“不通过”两个结论,而CMMI评定则是一个动态过程,软件组织在通过低级别评估后,可根据高级别的要求确定改善方略。
2.3、什么是CMMI 过程域?举例说明其含义。
答:CMMI(Capability Maturity Model Integration)是用于衡量软件过程能力的实际上的标准,同时也是目前软件过程改善最好的参考标准。
过程是软件从立项到项目交付的一段时间所做的工作;过程域就是把这段工作分成几个小阶段来管理。例如,“需求开发”就是一个过程域。给你个简单的比喻,过程是数轴上的一个线段,那么,过程域就是把这条线段分成几个小线段。
2.4、CMMI 的连续式(continuous representation)模型和阶段式(staged representation)模型各有什么优缺点?
答:选择阶段式模型的理由:
– CMM是一种阶段式模型,它已经被多年实践证明是有效的。
– 阶段模型提供了明确的改善路径,特别适合于刚开始做过程改善的组织。
– 在一个定义过程成熟度的单一的系统,有助于进行跨组织的比较。
选择连续式模型的理由:
– 自由和可见性,连续式模型为用户提供了较大的自由度,用户可以基本于组织级业务目的的选择过程改善活动次序。
– 基于连续式模型的评估可增强对过程改善的强项和弱点的认识。
2.5、软件工程标准化的等级有哪些?
答:根据软件工程标准制定的机构与适用的范围,软件工程标准化分为:国际标准、国家标准、行业标准、企业规范及项目规范等5个等级。(1)国际标准:由国际标准化组织ISO制定和公布,供世界各国参考的标准。该组织有很大的代表性和权威性,它所公布的标准有很大权威性;(2)国家标准:由政府或国家级的机构制定或批准,适合于全国范围的标准。主要有:GB(国标)、ANSI(美国国家标准协会);
(3)行业标准:由行业机构、学术团体或国防机构制定的适合某个行业的标准。主要有:IEEE(美国电气与电子工程师学会)、GJB(中华人民共和国国家军用标准);
(4)企业规范:大型企业或公司所制定的适用于本部门的规范;
(5)项目规范:某一项组织为该项目专用的软件工程规范。
三、Rational统一过程
3、简述RUP(Rational Unified Process)的基本内容。
Rational统一过程主要适用于何种项目?
答:RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。基本内容:迭代式开发、管理需求、体系结构、可视化建模、验证软件质量、控制软件变更。
Rational统一过程(RUP)强调采用迭代和渐增的方式来开发软件,整个项目开发过程由多个迭代过程组成。在每次迭代中只思考系统的一部分需求,针对这部分需求进行分析、设计、实现、测试和部署等工作,每次迭代都是在系统已完成部分的基础上进行的,每次给系统增加些N的功能,如此循环往复地进行下去,直至完成最终项目。它适用于大型的需求不断变化的复杂软件系统项目。
解析:每次只思考… 每次迭代基于…每次增加N… ;适用于大型|变化|复杂
3.2、试讨论Rational统一的优缺点。
答:(1)优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量以及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享一样的知识基础、它具有简洁和清晰的过程结构,为开发过程提供了较大的通用性。
(2)缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,它没有支持多项目的开发结构,在必定程度上降低了在开发组织内大范围实现重用的可能性。
四、软件文档
4、软件工程的文档分哪两大类,主要作用是什么?
答: 软件工程的文档分为软件设计文档和开发支持文档。
根据文档产生和使用范围,软件文档大致可分为三类:
1)开发文档;
2)管理文档;
3)用户文档。
根据文档类内容,软件文档又可分为两类:
1)用户文档;
2)系统文档。
五、微软过程
5、说明微软过程的适用范围。
答:微软过程的每一个生命周期发布一个递进的软件版本,各个生命周期持续、快速地迭代循环。它综合了Rational统一过程和灵敏过程的许多优点,是对众多成功项目的开发经验的正确总结;适用于商业环境下具有有限资源和有限开发时间约束的项目。
解析:RUP+灵敏+众多成功经验;适用于:商业|资源|时间|约束
六、灵敏过程
6、说明灵敏过程的适用范围。
答:灵敏过程具有对变化和不确定性的更快速、更灵敏的反应特性,而且在快速的同时依旧能够保持可持续的开发速度。较适用于开发可用资源及开发时间都有较苛刻约束的小型项目。
特点:变化、快速、灵敏
适用于:资源|时间|约束|小型
6.2、针对灵敏方法的十二条核心实践,结合软件工程问题论述其有效性。
答:灵敏开发的12条原则:
1)On-Site Customer (现场客户):客户是Team成员,在开发现场和开发人员一起工作。
2)计划项目(Planning Game)
3)频繁地小规模发布软件(Small Releases)
4)简单设计(Simple Design)
5)测试驱动开发(Test Driven Development)
6)持续集成(Continuous Integration)
7)集体拥有代码(Collective Code Ownership)
8)编程规范(Coding Standards)
9)重构(Refactoring)
10)System Metaphor(系统隐喻)
11)Pair Programming(结对编程)
12)平稳的工作效率(Sustainable Pace)
灵敏开发中有12条原则,它们是灵敏实践区别于重型过程的特征所在。
1)我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
2)即使到了开发的后期,也欢迎改变需求。灵敏过程利用变化来为客户创造竞争优势。
3)常常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。
4)在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
5)围绕被激励起来的人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。
6)在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。
7)工作的软件是首要进度度量标准。
8)灵敏过程提可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
9)不断地关注优秀的技能和好的设计会增强灵敏能力。
10)简单——使未完成的工作最大化的艺术——是根本的。
11)最好的构架、需求和设计出自与自组织的团队。
12)每隔必定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
暂无评论内容