近年来,伴随软件类业务的不断发展,我公司在各领域承担了一系列重大软件研制和系统集成建设项目,为保障我公司已承担的各软件项目的规范开展、顺利交付,软件研发部门牵头拟制了软件项目研制过程管理方案,规范当软件项目研制过程活动,实现软件项目研制过程有序运行、良性发展。
需求分析是软件工程中的重要活动之一。需求分析是用户需求和设计师之间的桥梁,这个活动将会产生后续活动中的多个重要依据,为后续活动提供必要的输入。分析用户需求时,应尽量采用用户能够理解的语言和图表,并且减少需求对软件实现方案的依赖。
需求获取的办法很多,常见的方法主要有与用户交谈、召开讨论会、向用户展示原型系统、头脑风暴、分析用户的系统文档、市场调查、分析现有产品、逆向工程等形式。不同的需求获取方式适用于不同的场合。对于那些与用户交换意见较为方便的场合,访谈、讨论会、向用户展示原型系统都是较好的获取方式;对于已经完成了原型的软件或系统,选择向用户展示原型系统则具有更好的效果;在很多情况下,用户的角色并不显著,这时可以选择市场调查、头脑风暴的方式获取用户的需求;而对于那些需要对现有产品进行改造的项目,分析现有产品、文档或者采取逆向工程是较好的选择;最后,用户整体系统的文档也是提供资料的重要来源,可以选择对其分析,发掘潜在的软件需求。
在需求获取时,可以采取很多种方法相互结合的办法,最终的目的都是尽最大的可能反映出用户对软件系统的期望。完成软件需求规格说明并完成外部评审,作为软件设计的依据。
(1)收集用户需求。用户需求分析员根据所选择的需求获取方法,配合用户方获取用户对需求的描述。
(2)标识场景实体。场景实体是系统运行期间与系统互动的人员、设备、软件等所表现的角色。在获取用户需求时,用户需求分析员应对系统运行参与者做出标识,这样有利于发现用户需求中的潜在需求。
(3)形成初步运行方案和场景。用户需求分析员整理用户对需求的粗略描述,形成初步运行方案和场景。描述时可以使用适当的方法和图表,以用户和用户需求分析员都能够理解并达成一致为准则。
(4)汇总用户需求。用户需求分析员应将所得到的用户需求汇总并形成用户需求汇总表。
(5)提取功能性需求。软件需求分析员以低耦合原则从详细运行方案和场景中提取功能性需求,形成独立的功能描述。这一步骤中提取的功能性需求是由一个或一组软件动作所组成,能够产生一定效果的组合。功能需求应清楚描述软件功能的输入、输出,以及如何将输入转变成输出的处理要求。
(6)提取非功能性需求。软件需求分析员从详细运行方案和场景中提取非功能性需求,这些需求包括:成本需求、进度需求、性能需求、可重用性需求、可维护性需求、可靠性需求、安全性需求和保密性需求、约束条件等。
软件项目设计依据软件需求规格说明,进行软件解决方案设计、体系结构设计、接口设计、软件详细设计,编制软件概要设计说明、软件接口设计说明、软件详细设计说明等软件设计文档。
QA按照对软件设计过程和软件设计文档进行质量保证;软件项目组按要求,评审软件设计文档;项目CM员按要求对软件设计文档进行配置管理。如果需要外协软件研制任务,则需要执行外协管理过程,管理供方软件研制过程。
软件项目的开发人员依据软件设计文档,按要求进行编程、调试、自查,形成软件源程序,建立软件源程序与软件详细设计说明之间的双向追溯关系。
项目QA员按要求对软件实现过程和软件源程序进行质量保证;软件项目组按要求通过代码审查评审软件源程序;项目CM员按要求对软件源程序进行配置管理。软件代码及相应文档及时纳入开发库和受控库管理。
软件项目测试人员按要求进行软件单元测试、单元集成和测试、配置项测试,编制软件单元测试计划、软件单元测试记录、软件单元集成测试计划、软件单元集成测试记录,以及软件配置项测试的软件测试计划、软件测试说明、软件测试报告等软件测试文档。
项目QA员按要求对软件测试过程和软件测试文档进行质量保证;软件项目组按要求评审软件测试文档;项目CM员按要求对软件测试文档进行配置管理。如果存在外协软件研制任务,则需要按要求接收外协方提交的软件产品,并将其集成到本项目研制的软件产品。
软件项目组按照软件开发计划,辅助第三方对软件产品进行独立评测。针对第三方评测发现问题,修改软件产品,生成软件产品的新版本,并辅助第三方进行回归测试。
在软件产品验收交付时,软件项目组按照软件开发计划,提出产品库软件产品出库申请。软件项目组获得产品库出库的软件产品,包装交付软件产品,将软件产品提交给用户,并辅助用户对软件产品进行验收测试。软件产品验收测试通过后,软件项目组在用户现场进行软件产品的安装、配置、调试和使用培训。
此次项目包括多个方面的工作和任务,每一项任务的完成、每一个文档的交付、每一个软件或系统的交付,都有相应的完成标志和测试、评分和验收标准。对于系统和应用这种重大的工作里程碑事件,测试验收工作应更为严谨和充分,计划应更为周密。
按照我公司系统集成服务的程序和行业惯例,整个项目实施过程中要对不同的交付项目进行如下各类测试和验收中的一种或几种,具体进行哪种或哪些测试验收工作依据交付项目的性质而不同。
项目试运行准备是指为项目调试通过后及时投入试运行而所需的各项准备工作,项目的试运行准备工作应在项目的施工调试后即时进行,作为系统调试后的检验。
(1)试运行计划
首先应编制试运行工作计划,试运行计划应包括项目试运行准备的全部工作内容,如管理机构设置、人员培训、技术支持、备品备件、配合协调、规章制度、总体进度、各系统试运行时间表等,试运行计划提交建设方工程师审批。
(2)人员配备及培训
由于该项目大量采用新技术、新设备,需有一套与之相适应的管理制度、操作方法和一批专业技术人员。为确保系统正常运行,在项目试运行前应有计划、分系统地完成人员的上岗培训工作(培训工程由有丰富经验的专业调试工程师进行)。
(3)技术准备
试运行前须做好以下技术准备工作:
各设备安装调试手册、检测手册等技术资料准备完整;各设备厂商技术支持人员到位;试运行计划及故障处理方法(含试运行记录单)等。
在系统调试与测试完毕后,即实施中期结束时,我公司将与甲方组成的初验小组,对整个项目进行初步验收。
如果在初验时发现系统有不能通过测试的地方,我们将对系统进行调整,确保项目按时完成,在规定日期内,交付甲方用户使用。在系统运行无故障情况下,正式进入30天的试运行阶段。
在系统自检合格后,整个系统将进行为期30天的试运行,在为期30天的试运行阶段,由我公司参与系统的维护和管理。试运行期间,我公司将根据情况需要提供现场技术支持,对出现的任何软件问题,我们都会及时处理修正。
通过试运行验收后,甲方、我公司将对系统进行最终验收。在此期间,如系统运行有问题,我们将无条件重新检测并调试系统直至验收合格交付使用。最终验收通过后,则该系统交付给甲方正式运行,此后由甲方负责系统的运行和日常维护、管理,我公司提供相应的技术支持和服务。最终验收的内容是按双方认可的《软件验收测试大纲》和《软件验收测试细则》进行验收,验收在甲方所在地进行,由甲方组织实施。
最终验收的结果要求提供由参加终验的各方签字的最终验收报告,并且给出最终验的明确结果。当系统通过最终验收后,即进入系统运行维护阶段。
(1)按要求从产品库中出库需要交付的软件产品。
(2)按照软件开发计划的要求,标识和包装出库交付的软件产品,并填写软件移交项目清单。
(3)提出软件验收申请,填写软件验收申请报告、软件移交项目清单以及出库交付的软件产品。
(4)用户方成立软件产品验收组,对验收交付软件产品进行文档审查和验收测试。
(5)软件项目组与用户协商确认验收交付发现问题。如果当前状态满足软件产品验收交付结束条件,则进行产品资料归档;针对验收测试发现问题,提出解决方案,升级软件产品版本。
(6)软件项目组参加用户方组织的验收评审,验证已安装、配置和调试到位的软件产品。验证过程由用户方、软件项目组、软件安装人员共同参加,记录验证结果。
(7)定期邀请用户填写软件产品顾客调查表回访确认,对收集到的软件产品顾客调查表等软件产品验收交付记录进行编号、留存。
微信公众号
新浪微博