现代软件过程概述

作者:徐建祥(netpirate@gmail.com

时间:2006/09/22

来自:http://www.anymobile.org

1、软件过程

随着软件系统的规模和复杂性的增加,其开发成本和风险随之增加,软件的质量问题已成为制约软件发展的关键因素之一。

所谓软件过程,即软件项目的开发过程,是指软件生命周期中,用于开发和维护软件产品的一系列过程,它与团队的组织管理以及开发技能相辅相成,全面提升软件产品的质量。

近年来,软件过程日益得到重视,国际软件界的敏捷、统一热也在持续升温。与传统的开发过程相比,敏捷过程更强调快速灵活反应,主动迎接和适应变化,主张更紧密的客户与开发商协作,以人为本的可持续发展,典型的有XP(极限编程)、FDD(特征驱动开发)等;统一软件过程以RUP为代表,采用OO技术对软件开发过程本身进行业务建模,集成了迭代开发、用例驱动、UML可视化建模、OOAD、架构设计、项目管理等许多主流先进的当代软件工艺。

在软件项目开发过程中,应该能够识别、分析不同软件项目的特点,采用相对适合的开发实践来适应软件开发过程,保证对软件开发的有效支持,如RUPXP的融合。

2、XP,极限编程

极限编程(eXtreme PropgrammingXP)是由Kent Beck1996年开创,是一种演进式的原型化方法,以最大化发挥人的能量为核心目标,以“小步快走”的逻辑指导开发,具有沟通高效、设计简单、反馈迅速等特点,是一种轻量级、敏捷的过程方法。

极限编程基于四个价值目标:沟通(communication)、简化(simplicity)、反馈(feedback)和勇气(courage),由12个最佳实践为这四个价值提供支持。

极限编程的生命周期包括4个基本活动:编码(coding)、测试(testing)、聆听(listening)、设计(designing)

2.14个价值目标

沟通:让开发人员集体负责所有代码并结队工作,鼓励与客户及团队内部保持沟通。

简化:鼓励只开发当前的功能,避免过多的文档,专注于最小化解决方案,做好为为新特性改变设计,在系统隐喻和代码规范下不断重构的准备。

反馈:通过单元测试和功能测试获得快速反馈。

勇气:提倡积极面对现实和处理问题的勇气,拥抱变化。

2.212个最佳实践


(图片1 XP最佳实践)

有计划的开发:通过结合使用优先级“故事”和技术估算,确定下一版本的功能。

小型发布:以小的增量版本经常向客户发布软件。

系统隐喻:隐喻是一个高层次的系统构想;需要不断的细化架构,来指导全部开发。

简单设计:通过保持代码简单从而保证设计简单。不断的在代码中寻找复杂点并且立刻进行移除。

测试驱动:“先测试,后编码”。用户编写测试内容以对"故事"进行测试。程序员编写测试内容来发现代码中的任何问题。在编写代码前先编写测试内容。

重构:这是一项简化技术,用来移除代码中的重复内容和复杂之处。

结对编程:团队中的两个成员使用同一台计算机开发所有的代码。一个人编写代码或者驱动,另一个人同时审查代码的正确性和可理解性。

集体代码所有权:任何人都拥有所有的代码。提高代码透明度,增强团队合作精神。

持续集成:每天按任务多次创建和集成系统,随着需求变化,进行不断的回归测试。

每周40小时工作制:程序员在疲劳时无法保证最高效率。连续两周加班是绝对不允许的,否则会影响工作效率。

现场客户:至少有一名真实的客户全天候工作于开发环境中,帮助定义系统、编写测试内容并回答问题。

编码规范:程序员采用统一的编码规范。

总体来说,XP部分满足了CMM2~3级关键过程域(KPA)的要求,XP侧重与过程和技术,CMM更注重组织和管理。

3、FDD,特征驱动开发

特征驱动开发(Feature Drive DevelopFDD),Together创始人Peter Coad所创。通过特征来制定开发计划,以每日构建为核心,强调按特征分步开发和交付。一个特征就是一个小的、具有客户价值的功能,通常表示为<action><result><object>

4、RUPRational统一过程

迭代软件开发的发展背景:软件的不确定和高风险等特性,使得传统的瀑布式开发力不从心;迭代有助于尽快发现和解决风险;迭代有助于控制项目的节奏,加快反馈,增强项目的控制力度,实现过程的有序化;迭代符合人们对事物的认识逐步加深,解决问题的能力随经验逐步提高。

Rational统一过程(Rational Unified ProcessRUP),是用例驱动、以体系结构为中心,迭代、增量的软件开发过程。适合大、中型项目。

RUP强调采用现代软件开发的一些最佳实践,作为一种降低开发新软件所带来的内在风险的方式。这些最佳实践包括:

1)迭代开发;

2)管理需求;

3)使用基于组件的构架;

4)可视建模;

5)持续的质量验证;

6)控制变更。

RUP是一个迭代过程,确定了任何软件开发项目的四个阶段:初始阶段、精化阶段、构建阶段和交付阶段。每个阶段包括一次或多次迭代;每一次迭代都会生成更加接近最终产品的可执行版本。

a、初始阶段:识别和规避项目的主要风险,建立用例模型框架,并制定里程碑日期的阶段计划;

b、精化阶段:分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素,完成部分优先级最高的用例开发;

c、构建阶段:分为多个迭代,逐步完成不同优先级的用例开发,核心Case->高风险Case->次核心Case->其它Case

d、交付阶段:进行各种功能、性能测试,进行产品化、部署,完成整个系统的开发工作。

(图片2 RUP概述图)

RUP迭代开发过程

a、第一次迭代

1)捕获需求

2) 建立初始的领域模型

3)建立用例模型框架

4)制定开发计划

b、第二次迭代

1)关键用例的Robustness分析与交互建模

2)体系结构设计

3)建立类模型

4)关键用例的开发与测试

5)完善用例模型

c、第n次迭代

完成所有用例的分析、设计与开发。

d、最后的迭代

1)整体测试:进行各种功能、性能和压力测试。

2)部署与安装:生成相应的部署图。

3)产品化:进行一些产品化的包装。

注:每一次迭代之后,都应该交付一个可以运行的中间版本。

(图片3 RUP迭代流)

5、SPP,精简并行过程

精简并行过程(Simplified Parallel ProcessSPP),对CMMI 3级以内各过程域的内容和要求作了“精简”处理,包括19个过程域、40余个规程和近60个文档模板。强调在产品生命周期之内,项目管理过程、项目研发过程和机构支撑过程“并行”开展。

(图片4 SPP)

软件过程改进解决方案(SPIS)――林锐发明。

核心组成部分

1)软件过程改进咨询服务;

2)软件工程与项目管理培训;

3)基于Web的集成化项目管理工具,Future

Future采用CMMISPP为参考标准。主要功能包括项目规划、项目监控、质量管理、配置管理、需求管理、日常工作管理等。

网站:http://www.chinaspis.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件资源分配文档 1. 项目概述 本项目旨在设计和开发一个新型的社交网络平台。该平台将支持用户创建和分享多种类型的内容,包括文字、图片、音频和视频。平台还将提供一系列社交功能,例如个人资料、好友列表、消息传递和活动组织等。该平台将采用现代化的技术架构,例如云计算、大数据和人工智能等。 2. 资源需求 2.1 硬件需求 - 服务器:需要购买一台高性能服务器,以承载平台的主要功能。服务器应该具有足够的内存、存储和处理能力,以处理大量的数据和流量。建议采用云服务器,以便根据需求进行弹性扩展。 - 存储设备:需要购买足够的存储设备,以存储平台中的用户数据、媒体文件和其他资料。建议采用分布式存储方案,以提高可靠性和性能。 - 网络设备:需要购买足够的网络设备,以确保平台的稳定和可靠性。网络设备应该具有高带宽、低延迟和高可用性。 2.2 软件需求 - 开发工具:需要使用一系列的开发工具,例如IDE、数据库管理工具、版本控制工具、测试工具和持续集成工具等。 - 服务器软件:需要安装和配置一系列的服务器软件,例如Web服务器、应用服务器、数据库服务器、缓存服务器和消息队列服务器等。服务器软件应该具有高性能、高可用性和高安全性。 - 应用软件:需要开发和部署一系列的应用软件,例如Web应用、移动应用和桌面应用等。应用软件应该具有良好的用户体验、高性能和高可靠性。 - 第三方服务:需要使用一系列的第三方服务,例如社交网络API、媒体处理API、支付服务和消息服务等。第三方服务应该具有高可用性、高安全性和良好的用户体验。 3. 人员需求 - 项目经理:负责项目的规划、管理和执行。需要有丰富的项目管理经验和技能,能够协调和指导团队成员,确保项目按时、按质量完成。 - 开发人员:包括前端开发人员、后端开发人员、移动应用开发人员和测试人员等。需要具有丰富的开发经验和技能,能够独立完成开发任务,并保证代码质量和性能。 - 设计师:负责平台的界面设计、用户体验和视觉效果等。需要有丰富的设计经验和技能,能够根据用户需求和产品定位,设计出符合用户期望的优秀界面。 - 运维人员:负责平台的部署、维护和监控等。需要具有丰富的运维经验和技能,能够保证平台的高可用性、高性能和高安全性。 4. 时间安排 本项目预计需要18个月的时间,具体时间安排如下: - 需求分析和规划:2个月 - 设计和开发阶段:12个月 - 测试和优化阶段:2个月 - 部署和上线阶段:2个月 5. 预算 本项目的总预算为500万人民币,具体预算分配如下: - 硬件成本:100万人民币 - 软件成本:50万人民币 - 人员成本:200万人民币 - 其他成本:50万人民币 - 预留成本:100万人民币 6. 风险管理 本项目存在以下风险: - 技术风险:由于该平台采用了现代化的技术架构,开发人员需要具有丰富的技术经验和能力,否则可能会出现技术难题和延期风险。 - 竞争风险:目前市场上已经存在多个社交网络平台,本项目需要具有独特的产品定位和优势,才能够在市场上获得成功。 - 安全风险:由于该平台涉及用户隐私和敏感信息,需要加强安全措施,防范黑客攻击和数据泄露等风险。 - 人员风险:本项目需要大量的人员投入,如果人员流失或者招聘不到合适的人员,可能会出现人员缺口和延期风险。 为了降低风险,我们需要采取以下措施: - 建立完善的开发流程和质量管理体系,确保开发过程的规范和高质量。 - 加强市场调研和产品定位,确保产品具有独特性和优势。 - 加强安全措施,包括数据加密、访问控制、漏洞管理和安全审计等。 - 加强人员管理和培训,确保人员稳定和技术储备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值