一、软件开发过程
软件过程的定义:从软件项目定义需求开始直至软件使用后被废弃为止,跨越整个软件生存期内的系统开发、运行和维护及其相关项的全部活动。
-5主要过程:获取过程、共因过程、开发过程、运行过程、维护过程。
-8个支持过程:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程。
-4个组织过程:管理过程、基础设施过程、改进过程、培训过程。
解决方案:CMM、ISO9000
三种常用的软件开发过程:RUP、敏捷软件开发、MSF。
二、RUP(Rational Unified Process)
1、概述
-四大要素:生命周期、人员、方法、产品
-最佳实践:
迭代式开发:贯穿于以下的整个流程过程中
需求管理:用例已被证明是捕获需求的一种有效方法
体系架构:Cobal、Intnet、COM)
可视化建模UML
验证软件质量:测试、根据需求
控制软件变更:版本控制
-名词定义
用户:代表了与所开发的系统有交互的某一个人、某一个系统。
用例:能够向用户提供有价值结果的一项系统功能。所有的用例构成了用例模型。
架构:系统在所在的环境中最高层次的概念。
工作流:在业务中执行的活动序列。相对于业务主角个体生成的一个可见结果。9大工作流:业务建模、需求、设计、实施、测试、部署、配置项目管理。
活动:要求角色需要完成的工作。
工件:由过程生成、由过程修改、由过程使用。比如,模型、文档、源代码、可执行文件、工具。
里程碑:迭代正式结束的时间点。
2、生命周期
图1、迭代与增量的生命周期结
-静态结构:9大核心工作流程。核心过程工作流程:业务建模、需求、分析设计、实施、测试、部署;核心支持工作流程:配置和变更管理、项目管理、环境。
-动态结构:先启、精华、构建、产品化。
-迭代过程要处理一组用例;迭代过程达到了预定的目标,则可以进入下一个迭代的过程。建立里程碑。
3、人员
-五大类角色集:分析员、开发人员、测试员、经理、其他角色。
-分析员:业务流程分析员、业务设计员、业务模型复审员、需求复审员、系统分析员、用例阐述者、用户界面设计员。
-开发人员:架构设计师、架构复审员、封装体设计员、代码复审员、数据库设计员、设计复审员、设计员、实施人员、集成人员。
-测试人员:测试员、测试设计员。
-经理:变更控制经理、配置经理、部署经理、流程工程师、项目经理、项目复审员。
-其它角色:课程开发员、图形设计员、系统管理员、工具专家、技术文档编写员。
4、方法
第一,用例及用例驱动整个RUP过程。
第二,以架构为中心。
第三,在面向对象的分析设计中采用UML进行可视化建模。
第四,面向对象的设计和构件实现。
5、产品
RUP中的产品叫作工件,工件是项目期间使用并生成最终或中间的产物。包括业务建模工件集、需求工件集、分析设计工件集、实施工件集、测试工件集、部署工件集、配置与变更管理工件集、项目管理工件集、环境工件集。
6、总结
RUP是软件开发的一种模式,是一种软件过程产品,有利于降低风险、可配置。
缺点:对四大要素的侧重点、配置的裁剪、没有详细具体的说明。
固定的比如:生命周期的四个阶段,9个核心工作流程
变化的:阶段的长短,迭代的次数,不同迭代持续的时间,迭代的目标