APP下载

计算机软件工程项目管理探析

2022-06-09范明虎徐勇翟玲刘丽冰

计算机应用文摘·触控 2022年9期
关键词:软件工程项目管理

范明虎 徐勇 翟玲 刘丽冰

摘要为消除软件开发项目实施环节的不确定性因素、规避风险隐患文章通过引入CMM模型建立计算机软件工程分布式项目管理系统采用三层分布式结构优化系统性能并聚焦组织机构、工程质量与配置、工期以及风险四个层面进行具体管理要点与技术措施的编制最终形成规范化、系统化项目管理体系希望为同类软件工程项目实施及管理方案优化提供参考

关键词:软件工程;项目管理;CMM模型;分布式结构;风险管理中图法分类号:TP311文献标识码:A

Analysis of computer software engineering project management

FAN Minghu,XU Yong,ZHAI Ling,LIU Libing

(Technology Center,Southwest Computer Co.,Ltd,Chongqing 400060,China)

Abstract; In order to overcome the uncertain factors in the implementation of software development projectsand avoid potential risks,a distributed project management system of computer software engineering isestablished by introducing CMM model. The three-tier distributed structure is adopted to optimize the systemperformance,and the specific management points and technical measures are compiled from the four levels oforganization,project quality and configuration,construction period and risk,so as to finally form astandardized and systematic project management system so as to provide an important reference value for theimplementation and management scheme optimization of similar software engineering projects.

Key words: software engineering,project management,CMM model,distributed structure,riskmanagement

1  引言

计算机软件工程作为一项系统性工程,在软件产品开发过程中常因片面关注技术、忽视管理工作重要性,引发生产效率低下、开发周期延长、产品质量不佳、工程进度滞后等问题,导致项目综合效益与实施效果不符合预期目标,对软件开发企业利益构成一定威胁。研究项目管理理念在软件开发过程的实施要点,对于优化软件工程项目管理水平、提升软件产品品质具有一定现实意义。

2  项目管理方案

2.1  建构基于 CMM 的项目管理模型

软件能力成熟度模型(CMM)主要面向软件开发全过程进行跟踪管理,在此过程中辅助软件企业解决问题、提升软件质量、提升软件产品性能及企业开发能力[1]。将其应用于计算机软件工程项目管理中,依托初始级、可重复级、已定义级、受管理级和优化级共五个级别的划分,可提供一种阶梯式进化框架,由软件开发企业明确自身所处级别,根据该级别对应的要求进行问题解决方案的设计,以此提高软件开发执行能力[2]。

2.2  分布式结构体系设计方案

2.2.1  结构设计

对于常规 C/S 结构,由服务器承担数据管理功能,客户机执行交互任务,但该结构体系存在以下问题:(1)客户机数量将受服务器功能限制,影响系统延展性,分布功能弱,无法实现系统快速部署;(2)代码重复性差,更换开发工具需重新改写程序,不支持处理逻辑共享,兼容性差;(3)维护成本高,当服务器出现故障,将使对应的应用系统瘫痪[3]。

基于上述问题,拟引入一种由客户层、中间服务层、数据库层组成的分布式结构,其中客户层由浏览器、应用程序组成,基于 HTTP,IIOP,DCOM,RMI 协议与服务层建立通信;中间服务层由 Web 服务器、应用服务器、对象管理、事务服务器组成,其中 Web 服务器、应用服务器之间可建立交互关系,應用服务器则通过 ODBC 或 JDBC 接口与数据库层连接;数据库层由关系数据库、邮件系统及其他模块组成,以此完成三层结构部署,使该系统具有较高可扩展性与灵活性,便于对客户机进行维护与管理,有效拓宽系统应用范围[4]。但在分布式软件工程环境下,需以网络环境中运行的应用程序作为服务对象,项目管理的重点在于分布式软件开发过程中的构件选择与分布方案设计,并综合考虑软件测试、分析与建模多项内容,实现项目管理目标。

2.2.2  框架逻辑建构

基于项目管理理念进行分布式软件工程开发过程管理,主要围绕下定义、过程解释、行为控制三个方面开展管理工作。在框架逻辑建构上,依托协同平台提供工作流、文档资料管理等应用程序环境,满足用户协作运用需求,并设有多个编程接口。在软件开发项目启动前,预先围绕 CMM 角色、软件开发企业成员之间建立映射关系,强化过程控制,保证 CMM 角色均位于相同基线下开展协同运作,辅助实现文档资料管理等应用程序功能。在角色划分环节,用户大体包含 PM,SEPG 与其他三类,需基于责任制度进行不同角色任务及职责的界定,如 PM 主要负责启动项目、完善项目组织安排、指派具体成员、落实项目过程管理等,SEPG 负责对软件组织定义、维护及裁剪过程、收集信息等,其他成员则基于协同框架配合完成相关开发任务[5]。

3  软件工程项目管理实施要点

3.1  组织机构管理

组织机构是项目管理实施的重要基础,其管理内容主要体现在结构合理性、内部沟通效能、人员分工等层面,常见组织机构包含以下三种类型:(1)民主组织机构,以民主管理作为主要模式,组织机构内部成员采用轮值模式进行组长选任,在此模式下能够最大限度激发项目内部成员的创造热情,但在实践环节也面临操作难度大、可行性差等问题,在成员专业度、沟通能力、领导力等方面仍存在不确定性因素,对于成员综合素质与能力提出较高要求。 (2)专家组模式,由软件工程、项目管理、技术研发等各领域专家组成工作小组,保证给予软件项目开发需求进行组内专家的选拔与任命,确保各专家充分发挥其专业效能服务于软件项目开发,避免在专家选择上存在交叉、重复问题。(3)主程序员模式,由软件开发企业基于内部人力资源管理与人才选拔机制筛选出主程序员,通常由至少1 名高级工程师负责主导组织机构的各项活动、协调组织内部管理,并支持对各项技术活动的审核,配合技术人员参与整体项目管理活动的实施,完成软件产品开发。

3.2  软件质量与配置管理

3.2.1  软件质量测试

在软件工程开发项目立项后,需指派负责人对项目实施过程进行管控,包括对软件质量测试的文档进行归纳整理,加强项目进度、项目质量管控工作,并完善开发前期客户方提出的产品需求、产品方案以及开发计划等准备内容。

具体来说,由项目负责人分别任命软件开发、测试等相关技术人员,将测试人员引入前期产品需求解读环节,针对产品规格说明书进行内容分析与审核,保证开发方案的合理性,并为后续软件测试提供可靠依据;在软件开发过程中,当针对产品需求进行定义时发现存在问题,需及时组织开发、测试与客户方等主体进行内容沟通与确认,并重新完成说明书的修改;在开发计划编制环节,将含有测试说明的版本提交,经负责人审核确认后签字,明确软件基本功能、已知问题以及未完善功能、相关建议等信息;在软件产品设计阶段,整合项目中客户方需求进行产品需求方案设计,并详细说明开发设计人员做出的相应改进及产品功能变化等信息,经多方沟通确认后完善软件设计与开发方案部署,确保最终软件产品符合客户预期要求。

在此过程中需注意,基于项目管理需求进行软件设计过程的细分,对各执行阶段进行时间节点、进度计划、任务需求的详细描述,确保软件设计各阶段均具备良好的可执行性。待软件设计任务执行完毕后,根据软件质量保证需求进行测试环境与平台的搭建,并完成测试计划编制与用例审核,落实对测试负责人的综合评估,便于在测试结束后生成详细的测试报告,最终提交至客户处进行查询。

3.2.2  软件配置管理

以配置项级软件作为管理对象,按需求分析、单元划分及研制、集成化管理的流程执行具体管理任务:(1)在需求分析环节,预先完成软件重要性等级的划分,引入分级管理模式进行需求来源、分析、变更、版本控制等方面的管理工作。例如,针对需求变更环节进行管理,需明确变更原因、变更管理措施、可能产生的后果等因素,综合运用技术手段由系统层出发进行变更原因的追溯,在配置项层进行需求明确,并对匹配接口及系统所受影响进行综合分析。 (2)在单元划分环节,从技术层面对配套硬件特征、软件运行环境、实际功能需求等内容进行把关,遵循合理性原则进行部件划分,保证接口一致性。 (3)在单元研制环节,整合软件设计、实现、测试等环节进行部件研制,为软件产品质量提供保障。 (4)在单元集成管理环节,针对软件现有单元的功能性、接口一致性等进行注意校核,并明确软件产品验收及后期运行维护标准,保证最终软件产品顺利交付。

3.3  工程进度管理

通过对软件工程项目实施进度进行管理,主要以时间进度为管控目标,对照软件研制计划与流程管理内容进行项目研制进度的跟踪分析,及时查明进度延误现象的原因,并编制配套解决方案。以某嵌入式软件系统开发项目为例,该系统包含至少10个分、子系统,代码超过10万行,对该项目建立进度管理表格,以 A 软件配置项作为进度管理对象,围绕系统分析与设计、软件需求、软件设计、软件实现、软件测试、软件验收与软件维护共7 个管理项目进行进度管控,分别以“是否按时完成”“是否通过评审”作为评审内容,最终各项指标均在规定时间内完成、且通过评审,以此证明软件工程进度管控效果理想。

3.4  项目风险管理

将 CMM 模型作为风险管理工具,针对软件开发过程进行分析,整合狀态评估结果进行成熟度评定,提炼出风险因子,并完成风险管控措施的编制,由此落实软件开发全过程管理与持续性改进优化,辅助企业提升项目管理水平与软件开发能力。其中,风险管理的具体实施步骤体现在以下四个方面。

(1)建立 CMM 等级模型,基于 CMM 模型对应的五个等级进行项目管理内容的详细分析,企业对照模型等级划分进行能力成熟度评定与定位,并结合对标自查中暴露出的问题进行相应解决措施的编制。在能力成熟度评估环节,可围绕以下两个层面入手:一方面,针对软件工程过程进行评估,取决于项目组织情况、环境建构水平等因素,用于评价管理者、技术人员在软件过程改进中的贡献度。另一方面,以软件工程能力作为评估对象,聚焦软件工程预算、进度计划及合同管理等环节进行风险因数的识别与分析。经上述过程获取评估结果、完成等级评定,对照五个不同 CMM 等级确认项目管理内容,其中“初始级”对应缺乏管理;“可重复级”需围绕需求、分包、质量、配置等方面进行管理,并对软件开发项目实施过程进行跟踪、落实监督机制;“已定义级”包含基于项目管理的集成式软件管理、项目组织过程定义、协同管理等内容;“管理级”涉及过程量化管理、软件质量评估与缺陷防范等内容;“优化级”围绕软件技术、软件过程两个方面落实变更过程管理。

(2)风险因子识别与评估,在完成等级评定的基础上,需根据对应的项目管理内容进行项目风险分析,从中提炼出风险因子进行特征识别,并对于项目风险可能诱发的隐患进行综合分析。常见的风险识别方法包括以下三种:①风险清单分析法,基于全生命周期管理理念全面排查项目风险源,依照风险等级按顺序列举10项风险源,并在项目实施过程中严格落实跟踪调查,及时采取相应改进措施消除风险隐患;② LEC 法,以定量评价作为主要表现形式,运用风险分类树进行风险因素罗列及不同因素间关联性的分析,并结合问卷调查方法进行风险分类模型的细化,进一步完善软件工程项目管理体系;③建立风险问卷调查表方法,由风险评估专家结合软件工程项目特征进行调查问卷的编制,收集调研结果进行详细评估与分析。基于风险诱因分析、风险条件识别、风险特征判断、风险隐患评估等流程,实现对软件工程项目风险的甄别与评估,在此基础上进入量化处理环节,融合类比成本、数据成本、人工成本等项目成本估算方法进行风险粗略量化评估,并后续引入 SPLM 软件、构造性成本模型实现对项目风险成本的精确计算。

(3)风险防范与控制,出于优化软件状态、削弱风险隐患的目标,可基于 CMM 模型准则针对软件状态等级进行描述,提炼出重要元素与管理经验进行详细阐述,并完成风险防控计划的编制。在此基础上,整合实践成果建立软件工程项目的风险管理制度,细化风险识别与防控体系设计,并采用定期与不定期结合方式进行项目风险的量化评估,判断风险潜在影响,由管理人员遵循现行制度进行风险防范与应急方案的编制,最大限度剔除软件前期设计、开发过程及运行测试等环节存在的风险因素,维护软件工程的安全高效运行。

(4)全生命周期管理,在采用 CMM 模型建立评估、识别、量化、管控体系的基础上,还需面向软件工程的动态变化特征,引入全生命周期管理模型进行项目风险的跟踪管控,对于软件工程运行过程中暴露的风险隐患与状态进行持续改进,同时面向可能诱发的新风险因素进行相应风险控制计划的编制,整合计划执行进度、执行效果进行全面分析,并生成最终的风险管理报告,为软件工程项目实施提供参考指向、辅助项目决策编制。此外,还可通过建立软件风险知识库、构建项目风险管理闭环、完善风险管理学习机制等举措,全面发挥风险管理效能,驱动软件工程项目管理水平的提升。

4  结论

通过引入项目管理理念进行软件开发过程管控,聚焦组织机构管理、软件质量与配置项管理、工程进度管理以及项目风险管理四个层面进行软件项目管理实施经验的总结,能够顺利实现各管理层次及任务目标的有效落实,满足软件设计与开发任务要求,满足客户方提出的产品需求、提升软件工程项目整体质效。未来还需进一步加强项目管理方法与技术手段间的融合程度,依托信息化手段辅助提升软件开发过程数据收集、分析及处理等环节的时效性,借此辅助项目决策的科学开展,在此基础上围绕文档资料、控制计划、用户管理、开发人员管理多个方面进行项目管理内容的扩充与丰富,更好地提升软件工程管理水平,为同类项目管理工作的实施提供参考。

参考文献:

[1] 周长泉.软件项目管理与软件质量的思考探讨[J].中国新通信,2022(2):46⁃47.

[2] 王彬彬.“互联网+”时代下数据挖掘技术在软件工程中的应用研究[J].北京印刷学院学报,2021(4):148⁃151.

[3] 李映晟.软件开发过程中对项目管理技术的有效运用研究[J].软件,2021(10):96⁃98.

[4] 周逸宁,池志杰.对软件项目管理里及风险评估的研究与探讨[J].网络安全技术与应用,2022(2):63⁃64.

[5] 法晓宇.基于devops的软件开发与项目管理[ J].電子元器件与信息技术,2020(8):132⁃133.

作者简介:

范明虎(1973—) ,硕士,高级工程师,研究方向:指挥控制自动化。

猜你喜欢

软件工程项目管理
项目管理在科研项目管理中的应用
环境工程的项目管理
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
航天项目管理——高技术复杂项目管理