论软件开发模型及应用

2022年1月,我所在的公司,某能源集团下属的信息公司,承担该能源集团下属的化工部投资建设的化工生产综合运营管控系统,简称运营管控系统。作为公司技术骨干,我有幸担任了该系统架构师,主要负责该系统的架构设计工作。该系统主要是解决化工部已有系统信息孤岛的问题。运营管控共有5个大模块,工厂模型、工作台、通用服务、活动监测、营运管控。大家知道,如何让系统开发顺利进行,选择一种适合的开发模型组织开发显得至关重要。

当前主流的开发模型有瀑布型、演化型、螺旋型、统一过程型(UP)、敏捷型。其中瀑布型式严格遵守软件生命周期各个阶段的固定顺序,一个阶段完成再进入另一个阶段。适合于业务需求比较明确而且很少变更的项目。演化型是从初始的模型演化成为最终软件产品,是一种渐进式的原型法。适合于软件需求不明确且项目周期比较长。螺旋型是结合瀑布型和演化型的优点,最主要的特点是加入了风险分析,适合于项目规模庞大而复杂且高风险的项目。由于流程复杂、增加了大量的成本和时间消耗。敏捷方法是一种以人为本、迭代、循序渐进的开发方法。适合于小规模软件或者小团队开发。统一过程是一个通用框架,适合于各种应用领域、组织类型、性能水平、项目规模的项目。采用了强大的UML建模语言。能够再团队中形成统一的规范和模板。同时有许多的成熟商业软件提供整个开发周期的开发支持。可以极大的降低开发和管理成本。提高开发效率,因此,我们选择采用统一过程开发模型。

     基于统一过程的软件项目一般分为初始阶段、细化阶段、构建阶段、交付阶段四个阶段。本文主要着重从前三个阶段具体论述统一过程开发模型在该项目中的具体应用。

初始阶段

 在初始阶段,我们主要为整个系统建立业务模型并确定项目边界。化工部旗下一共有3家二级子公司,27个家三级生产单位。很多业务流程各不相同。通过调研分析和整理,并利用UML工具PD对业务模型进行梳理,识别出与系统交互的外部实体。比如人员、组织机构、班组、物料、设备、装置等。整理系统中所需要相关接口。包括硬件接口和软件接口。然后就是整理相关业务流程。从哪个环节开始,哪个环节结束,中间牵扯哪些部门,业务涉及哪些岗位,什么角色提交、什么角色审批等。所有工作流相关业务都给弄明白了。最后,我们利用PD建立相关的用例图和时序图,并整理相关设计文档,以备后续设计使用。同时我们也梳理一些特殊需求进行了评估。对于暂时无法实现或者成本比较高的需求,统一记录到风险列表。

细化阶段

  主要是基于初始阶段确定下来的需求流程进行补充和完善,同时,淘汰业务中风险最高的元素。识别出主要功能和一些重要的非功能需求,做出最佳的决策。我们基于初始阶段的成果,对实体进行进一步的梳理,譬如,剔除无用的实体类,抽象合并和留下真正需要的实体类,同时根据业务需要补充类之间的关系。我们对业务用例也进行进一步梳理。根据系统业务功能需要,我们评估哪些构件需要投入时间去研究开发的,哪些是需要采用第三方的。一些业务组件,基于我们原有构件库进行升级和改造,可以直接使用。这样既可以提高开发效率,又节省项目成本。而譬如一些基于视频通信的功能,由于自研的成本和本身团队能力限制,所以采用第三方的构件来实现。由于项目工期相对紧张,同时为了减少后期开发和维护的成本,对通信接口格式规范进行了统一的设计,同时,也在架构层面上降低项目的开发风险。

构建阶段

主要是开发所有剩余的构件和应用程序功能,把这些构件集成为产品。由于运营管控系统分为PC端、移动端、PAD端三部分。我们采用了基于组件的方式进行具体功能的构建,譬如,我们设计开发了通用登录模块,统一的权限管理模块,组织机构管理模块,物料管理模块,日志管理模块等。同时,我把团队又根据业务分为通用业务组、组件架构业务组、移动端业务组,通用业务组主要进行具体业务功能的开发;组件架构组,主要对通用构件进行封装和集成,移动端业务组,主要进行移动端和PAD端开发。由于采用了组件进行开发,既降低开发的风险和后续维护的成本,同时提高开发效率,项目推进过程中取得了不错的效果。由于涉及到全集团27个化工厂,同时,软件的产品质量是以一个企业生存的基础,我们在测试环境也进行充分的工作,譬如,在开发内部进行单元测试,系统模块进行功能测试;同时,由于涉及浏览器和移动端,在各种版本兼容性上也进行了充分的测试;最后,考虑到用户体验,还对系统进行充分的压力和性能测试。

整个项目历时16个月开发完成,最终于2023年4月交付,到目前运行稳定。通过在生产环境一段时间的使用,用户普遍反应良好。但是同时也存在一些不足。例如,在细化阶段,没有充分考虑到

实践证明,这种开发模型的选择有效降低了开发成本和项目风险。提高了开发团队的开发效率,运营管控系统是一个化工数据管理平台,在后续的工作中,为公司创造效益,同时

你可能感兴趣的:(软考,架构师,统一过程开发)