下面我从一个完整的软件工程的角度来向大家阐述工程实施及项目管理的相关内容。
在软件工程的开发过程中,我们经常会遇到很难到期完成软件产品,原因有很多但并不是我们的工作不好,因为会遇到很多意想不到的问题如:人员便动,需求变化,资金不足等。为了保证系统的实用性、可靠性、安全性、完整性、开放性、先进性、易扩展性和可维护性,不仅要有高性能与高品质的硬件及软件,而且要从工程实施和项目管理等方面来确保工程高质量、如期完成,并长期可靠地运行。
下面我从一个完整的软件工程的角度来向大家阐述工程实施及项目管理的相关内容。
1.1. 工程概述
1.1.1. 系统需求分析及确认
本方案设计需考虑到未来业务发展与拓展的需要,这样制定的业务标准才能做到业务合理、技术上可行并预留业务发展的空间。
很显然,要承担系统需求分析工作,需要既了解业务又掌握应用系统开发方法的专业人员,需要具备工程建设的实力、并具有此类工程建设实际经验的实体(比如集成商)与中信银行共同来进行。项目实施组将聘请有以上背景的资深专家一同工作,以求有效而且高质量地完成这项工作。所有的需求分析内容都将建立文档,全面覆盖业务及操作内容,作为应用系统软件开发、项目建设的依据,同时使项目在投产后成为一个各种情况都有据可查的、高可操作性环境。
1.1.2. 工程实施服务
工程实施主要是对应用系统开发及系统级的对应服务。包括:硬件平台、系统软件、网络产品的安装,应用软件开发设计,系统测试,系统试运行,技术文档的编写整理及应用系统的操作培训等。工程实施服务将是整个实施服务过程中的最重要的环节,集成商将组成精干的技术队伍,包括集成商的系统与网络工程师、产品专家及专业技术人员等共同完成上述工作。
1.1.3. 项目管理服务
集成商根据数据仓库项目方法论提供以下项目管理服务:
- 项目组织管理
- 项目进度管理
- 项目计划管理
- 项目质量控制
- 项目风险管理
- 项目变更管理
- 项目验收管理
- 实施项目管理检查
1.2. 组织及分工
为确保本项目的成功实施,作为主承包商的主要工作内容如下:
- 整体项目管理
- 提供系统软件和硬件
- 负责与子承包商的联系和工作协调
- 提供系统集成服务并负责项目实施成功
针对每一个系统集成项目,集成商的项目实施部门要成立一个项目实施小组。主要角色划分如下:
- 项目经理
项目经理是项目实施中最主要的角色。集成商与客户双方都需要有人担当此角色。
- 集成方项目经理责任:负责与客户的所有联络、协调工作、汇报任何有关本项目工作说明书的执行情况,在应用系统完成测试验收、并交付给客户方之前,集成商项目经理代表集成商,所有用户的情况都统一反映到项目经理,简化用户反馈过程,以确保项目平稳、顺利地进行。
- 客户方项目经理责任:担当用户与集成商交流的渠道。根据项目小组的要求,在双方约定的时间之内,协助收集、提供有关用户方的信息、数据,作出相应的批示和决定。对项目交付事项的接受工作进行管理。
- 产品顾问
负责帮助项目组及客户理解项目实施所采用的一切硬软件产品, 选择系统选项及参数, 提供最适合项目及最新产品的详细资料,从而满足客户的业务需求。产品顾问应对现有及今后可能有的产品有深入的理解,同时具备很好的用户需求理解能力。
- 系统分析员
具备丰富的I/T技术经验,对于计算机系统的整体架构有深刻的理解,根据用户要求合理地分配计算资源,以理解诸如响应时间、网络吞吐、分布计算能力等问题。
- 专业技术工程师
精通本项目所需要的某专项技术,同时具备很好的用户需求理解能力。在项目实施的各个阶段通过自身技术专长及时实现用户需求。
项目组织结构
项目工作组的组织结构图如下所示。
* 总体系统集成、项目管理由集成商负责,客户负责协调并安排技术人员参与开发工作。集成商将提供项目经理及相应专业技术人员。
1.3. 系统集成实施服务
为保证系统的建设和正常运行,集成商所提供的系统集成实施专业技术服务分为建设期和运行保用期两个阶段。本节说明此一时期集成商提供的与应用系统相关的服务,其它诸如系统硬件、系统软件和网络产品等方面的服务不在此说明。
1.3.1. 建设期
在建设期的主要任务,是按照方案的设计实施整体系统,使之达到应用系统目标。集成商将协调提供所有用户需要的集成实施服务和支持,主要任务包括以下几个方面:
- 工程的组织和实施计划的制定
- 技术方案的分析与设计
- 配套硬软件的选型及咨询
- 开发与系统维护人员的培训
- 协助并监督软硬件的安装、调试
- 系统软硬件平台的建立与调试
- 应用软件的开发、调试
- 集成测试过程中的技术支持
- 系统验收过程中的技术支持
1.3.2. 运行保用期
运行保用期是本项目任务的一部分。由于系统已经验收并已投入运行,集成商的项目实施组成员将不以在客户现场工作为主,但对客户系统的运行会进行定期检查了解,客户在运行过程中遇到问题的报告途径及集成商的相应办法将被明确设定。在系统正常运行期间,对系统的运行提供常规的技术服务包括:
- 运行期间正常的定期维护工作
- 运行期间故障的及时响应和修正
- 硬件及系统软件在扩充功能和更新换代时的技术支持
- 应用软件在扩充功能和更新换代时的技术支持
1.4. 工程质量保证计划
1.4.1. 应用系统开发质量控制
一、 在应用程序开发过程中,将采用集成商全球统一的应用开发方法论来完成本的应用开发。这是一套标准、完善且经过集成商多年应用开发实践检验的应用系统开发方法论,
一直作为质量控制的重要组成部分指导着集成商的应用软件的开发。
- 整个项目开发周期划分为需求定义、外部设计、内部设计、编程和单元测试、集成测试、试运行及投产等阶段。
- 项目开发周期的每一阶段都有相应的标准、 规范和流程,并有相应的提交件,如需求定义阶段需提交需求定义说明书,外部设计阶段需提交外部设计规格书,人机界面设计等,内部设计阶段需提交内部设计规格书,数据流程图等。每一种提交件都要经过与客户和质量控制组的反复讨论确定和审核。阶段的输出结果(提交件)将作为下一阶段工作的输入和依据,在前一阶段为完成之前是不能进入下一阶段的,从而保证项目有序的进行,
以免在基础并不充分的情况下贸然进入下一阶段,而造成可能的返工
- 有相应的工具软件提供支持,如PROJECT等软件进行项目各阶段的管理。
- 每阶段有明确的完成条件和提交件的清单
- 严格的测试流程
二、 在组织结构上,将设置质量控制小组,专门负责应用系统的开发的质量控制。质量控制小组由项目双方项目经理、开发组负责人、业务人员及双方领导组成。
三、 质量管理小组将定期或不定期的举行检查会议,进行项目各阶段提交件的评审,听取项目经理及项目其他人员的汇报,对项目的进展和质量进行监督和控制,提出有关建议和意见。
四、 质量管理小组的每次会议的内容,结论和决定,都将形成文字备忘录,为项目文档保存,并作为以后工作的依据,随时对项目的进展和质量进行修正。
1.4.2. 系统集成质量控制
一个系统集成项目涉及到合作各方的密切合作,任何一方,任何一个阶段的工作都不是孤立的,与项目的其他各部分有着密切的关联,因此在系统集成过程中:
- 合作各方要精诚团结、密切配合,并且要分工明确、责任分明,严格遵守项目各阶段的标准、规范和流程。
- 项目各部分,各小组的设计文档,实施方案,测试计划和数据的准备,工程进度要充分考虑其他部分的接口和工作要求,必要时需要其他小组或部门的人员参与,以确保系统集成的顺利。
- 要在组织上成立质量小组,或项目协调委员会,协调项目各方的工作,进行资源,人员的调配,保证项目的进展和质量。
- 质量小组将定期或不定期的举行检查会议,检查系统集成的进度和质量,对存在的问题进行推动。
1.5. 系统测试与验收
本建设工程包括多个方面的工作和任务,每一项任务的完成、每一个文档的提交、每一个设备、软件或应用系统的交付,都有相应的完成标志和测试、评估和验收标准。对于系统、网络和应用这种重大的工作里程碑事件,测试验收工作更为严谨和充分,计划更为周密。
按照集成商系统集成服务的程序和行业惯例,整个项目实施过程中要对不同的交付项目进行如下各类测试和验收中的一种或几种,具体进行哪种或哪些测试验收工作依交付项目的性质不同而不同。
1.5.1. 审议确认
这是一种采用对交付件内容进行阅读、讲解、评议、问题与回答的形式进行评审,并作出接受或拒绝决定的方法。对于交付的项目管理文档、设计文档、测试报告、技术资料等交付项目,通常采用这种方法。
1.5.2. 安装测试
采用标准的测试程序(如硬件设备开机自检)和操作方法,对交付件进行测试1的方法。通常用于对硬件设备和系统软件的验收。
1.5.3. 初始安装测试
类似于安装测试,通常用于对最终提交结果进行安装测试。典型的情况是系统软件的初始安装测试,此时安装的是用于进行设计开发的平台或工具,而不是直接提交客户作生产目的。
1.5.4. 单元测试
在开发过程中对新的或修改的程序模块和子系统进行的独立测试,用于验证其是否满足基本设计目标。
1.5.5. 综合测试
见系统集成测试。
1.5.6. 系统集成测试
对整个系统,包括硬件、系统软件、应用程序、网络等各个方面进行全面测试,验证系统是否达到设计目标的测试过程。
1.5.7. 性能测试、压力测试和破坏性测试
性能测试是对系统设计的各种数量化指标进行测试,检验交付系统是否达到设计要求的过程。
压力测试的内容包括测试系统在特定工作负载下的性能表现(余量测试)、在峰值冲击下的性能和表现(抗冲击测试)。
破坏性测试是人为制造各种非永久性的故障(抗毁能力测试)、外部异常行为(软件可靠性测试)、错误操作等,测试整个系统的表现。
1.5.8. 用户验收测试
用户验收测试是用户根据自己的业务处理要求,在实际系统上进行的类似于系统集成测试的过程。这种测试的目的是检验数据仓库系统是否达到设计要求,是否可以投入业务运行。与系统集成测试的不同在于,用户验收测试更加着重从业务功能方面的测试,时间也相对短。
1.5.9. 分行入网认证测试
用于测试分行系统与数据仓库系统的接口在技术、业务处理、操作程序等各方面是否满足设计的要求。
1.6. 人员培训
对用户人员进行技术培训是工程成功的重要因素,是整个项目能否顺利实施的重要保证。针对本的业务和技术特点以及本的要求,我们将提供必要的技术培训,并可就客户的其它具体要求提供其它方面的培训。
1.7. 资料文档
为保证系统的建设和正常运行,我们将提供如下几类资料和文档。
一、 产品类
- 硬件资料
- 系统软件及开发工具资料
- 其他相应产品资料
二、 工程类
- 系统需求规格书
- 逻辑设计文档
- 系统结构设计文档
- 数据库设计文档
- 接口需求说明书
- 接口设计文档
- 程序详细设计说明书
- 系统故障处理流程文档
三、 计划与测试类
- 项目开发与管理计划
- 项目实施计划
- 测试计划及测试标准
- 测试结果报告
- 验收计划及验收标准
- 验收结果报告
四、 技术支持与维护类
- 应用系统用户手册
- 系统操作员手册
- 系统运行手册
- 故障处理和恢复手册
1.8. 初步工程计划
制订初步项目计划的目的是:
- 尽早找出工程实施的关键路径,帮助确定时间进度安排和资源分配
- 确定项目的里程碑事件,制定项目进度监督和质量检查的计划和方法
- 分析工程计划目标的可行性,降低客户和系统的工程风险
- 制定工程人力资源和其它物质的分配计划
- 初步项目计划是工程正式启动后,项目组迅速开展实质性工作的基础。
1.8.1. 项目准备
一、 合同的签订
主要是确定合同中各项具体的条款,对每项具体条款作出详细的解释说明,签订合同,以督促合同各方完成合同规定的各项工作。该项工作应由中信银行及集成商共同完成。
二、 项目启动
依据项目合同,建立项目组织结构,项目人员到位,进行项目开工动员;明确项目各方的责任和义务,进行任务分工,制定详细的项目实施计划,制定有关的纪律和制度,以保证项目的顺利进行。
1.8.2. 项目实施
按照本的具体需求进行一系列开发工作。这部分工作由技术开发组完成。
一、 系统需求定义
会同业务人员与专业技术人员,从系统实现的角度着眼,进行进一步的分析和界定,提交需求规格说明书。
总结
上面就软件工程的相关概念及过程作了介绍,在实际的项目中尽可能的规范,减少失败的可能性。