至今为止本人还没有经历过任何一个完整的软件项目,从职业规划的角度来看这是不利的。所以今天就来幻想一下一个完整的软件项目生命周期该是什么样的呢?
一、项目起源_投标
软件的需求者,也就是招标单位一般在开始正式竞标前会有一份详细的采购招标书出现。这份招标书会详细的说明项目的技术配置及要求、评标标准、合同条款和条件、投标须知等项。技术层面的人喜欢看评标标准。一般也就是分为商务、技术、价格三大部分进行。商务和技术均满足 标书要求时,以仪器设备的性能价格比加综合因素作为综合评估的依据,当然也就是综合评估最优者中标。需要指明的是综合因素包括:设备的质量、前瞻性、可靠性、设备的运输保险费、付款方式及时间、交货期、安装调试、零配件来源、投标商信誉、售后服务承诺以及相关的技术培训和服务等。而公司的管理层一般比较注重的是合同条款和条件,也就是一些价格、付款方式、投标产品要求、交货期、保修期等等。
二、招标要求
招标文件的组成有:招标要求、通用技术要求、开发管理规范、需求说明书、合同签订后甲方交付文件的清单。通用技术的要求一般包括如下几点:
1、系统服务器的硬件平台应该建立在较高性能的服务器集群上;
2、根据需求选择具体架构,系统架构应该采用面向服务的应用架构(SOA)、CS、BS相结合的多层体系结构。
3、系统架构中各层应该采用成熟并符合技术标准的服务器、中间件、数据库产品并保证基础平台的独立性。
4、对于大多数BS的项目浏览器建议采用IE6.0及以上版本;系统应保证xp客户端的正常使用并在此基础上兼顾其他版本。
5、项目必须符合J2EE规格,采用Java编程语言和服务端Java技术实现业务逻辑;采用面向对象的组件技术并基于跨平台业界标准,提供面向服务的框架。
6、系统应对数据和应用的安全性作充分考虑,并提供较完善的数据加密及健全机制或接口以及日志跟踪和分析功能。
7、有些项目需要提供符合中文使用习惯的操作界面;有些项目会涉及到国际化的界面。
8、如何使用统一身份认证的问题。
技术方案的常见要求:功能定义、系统架构设计、原型系统说明、技术实现途径、关键技术及技术风险、系统建议书。。
项目计划包括:项目组织和管理计划、费用明细表、时间进度表、技术支持计划。
三、需求调研
完成需求说明书并及时和客户讨论形成评审意见,直到用户确认签字。理论上需求没有通过用户确认是无法进入下一环节。在此阶段完成需求分析报告,描述系统所应具备的外部行为;需求规格说明书,目的是明确系统的功能,读者是系统分析员和程序员,主要使程序员明确并可接受用户的需求。
四、设计开发
总的设计方案:在和用户充分交互理解的基础上,提出系统的技术架构,对系统的功能、性能等指标作描述,对实现方法和要求作规范,是系统进行详细设计的依据。还需要确定是文档编写规范,约束软件文档编写的基本规则;代码编写规范,目的是为了提高代码的可读性、系统的稳定性以及降低维护的成本、尽量统一各开发人员的编程工作。
概要设计和详细设计的主要工作就是确定待开发软件的功能、性能、数据、界面的需求;详设阶段主要是着重描述每一模块是怎样实现的,包括实现的算法和逻辑流程等。
项目开发计划使用文件的形式,把对于在开发过程中各项工作的负责人、开发进度、所需经费预算、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作,当然可以作为一项评估员工绩效考核的指标。
在项目实施过程中,为了使得整个项目实施过程工程化,客户会要求我们须根据自身情况选用适当的支撑工具,如项目管理工具、源代码配置管理工具(SVN、CVS)、缺陷跟踪工具、项目构建工具等。甚至要求在项目的实施过程中向其提供以上工具的访问权限,以便及时了解项目的进展情况。
五、测试
需要形成单元测试和压力测试方案和计划、集成测试方案和计划并与之对应的测试结果报告。方案和计划主要是用来指导开发人员如何开展软件的测试;报告主要是对遇到的困难和解决办法进行反思和总结,为以后软件的改进提供建议,为产品质量改进提供参考。
六、试运行
提供产品验收报告,提供产品与需求符合度的评测。项目总结报告,对项目运作中出现的问题的反思和总结,为以后项目的改进提供建议和经验的积累。
用户操作手册,便于用户对软件安装、使用、管理和维护,也利于用户的查询操作。
七、运行维护阶段
形成系统运行管理制度,对各部门系统应用的管理规定,包括操作,防病毒,备份和恢复、介质、数据安全保密、电源以及共组环境等管理规定。
八、签字验收
软件项目的生命周期真的结束了吗?