分享

企业管理软件杂谈-开发篇

 豆芽悟 2022-03-19

今天接上一篇企业管理软件杂谈-基础篇 结尾提到的一套企业管理软件从无到有的开发过程是怎么样的呢?展开来谈谈软件开发的生命周期。

CMMI模型

CMMI模型:软件能力成熟度集成模型,这套模型的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。

一套软件的标准开发过程应该遵循CMMI模型的第3级(已定义级)的18个过程域进行开发过程管控关于CMMI的更多知识,读者可以通过百度搜索关键字进行了解。这里引用刘润【五分钟商学院】的金句:前人的肩膀,我们的阶梯善于利用已有的科学知识,是保证工作质量、提升工作效率的最有效方法。

CMMI模型可以提炼出软件开发的哪些关键节点

笔者根据网上资料,结合自己的从业经历,将软件开发过程分成7个阶段+文档管理,下面分别逐一说明

需求开发

我们可以理解为收集业务需求。通过访谈、焦点会议、观察、问卷调查、资料收集等方式从业务需求方获取各类需求信息。16年8月,我当时在内部做了一个关于需求开发的分享,当时主要以UML(统一建模语言)工具来作为需求开发的操作工具。想了解关于需求开发的朋友可以给我留言,我可以分享下该文档。

该阶段的产出文档:《需求调研文档》

需求分析

这个阶段是需求分析师的主要工作,通过前面需求开发获取的信息,考虑如何系统化实现业务需求。这个也是一般用户和软件从业人员在思考同一问题时往往有分歧的点。在之前的文章【想与做的差距有多大】里我提到一个用户需求的例子:

某用户A提出我想做一个报表:要求可以统计每个月销售TOP10的店铺,同时要可以看到其流水明细。

作为需求分析师就需要考虑这样一个报表的粒度应该是怎么样的?按照第一句话统计每个月销售TOP10的店铺,这时是以店铺的月销售流水为报表粒度。第二句是以店铺的每笔销售流水为粒度。这就是需求分析的过程。

该阶段的产出文档:《需求分析说明书》。内容主要含业务需求分析和非功能性需求。

PS:非功能性需求主要指性能要求(如读取速度等),输入输出要求、安全性等。

对于不同的软件程序设计方法(结构化设计VS面向对象设计),他们对概要设计和详细设计的要求是不同的。笔者前面提到的UML是面向对象设计的一种系统分析方法,所以这里的概要设计和详细设计只描述在面向对象设计这种设计方法下,概要设计和详细设计各做些什么?

概要设计

概要设计主要解决系统用什么技术进行开发?系统各个模块的数据流、信息流如何串联?

该阶段的产出文档:《概要设计说明书》。内容包括外部接口、内部接口设计说明,利用UML的10类图形说明系统的各种关系,如用例图展示系统外部的各类执行者与系统提供的各种用例之间的关系。

这里说下需求分析说明书和概要设计说明书的区别:需求说明书主要是项目前期为确定具体目标而整理的文档,便于对系统的功能进行总结分析,为系统的确定功能和框架提供决策支持。而设计说明书是系统开发前,在功能需求已经很明确的情况下,为实现需求的功能而阐述自己开发设计思想、方法的说明文档。

上述3个阶段主要由需求分析师负责。需求分析师们将业务方的需求翻译成程序猿哥哥们能够理解的,且软件上具备实现可行性的需求描述。这三个阶段也是一套系统未来成败的最关键环节。

详细设计

这个阶段将详细说明每个模块的具体功能、性能、输入、输出、算法、流程逻辑等。基本上可达到开发人员按此文档进行进行开发的目的。因此此文档的编写作者一般是具备开发、设计技能的专业人员。对于面向对象的开发,将提炼出各种类、类之间的关系。

该阶段的产出文档:《概要设计说明书》。笔者不是专业开发人员,这里就仅作简单的概述说明。

编码及单元测试

这个阶段将进入程序编写(即我们常说的写代码的阶段),程序猿哥哥们通过编程语言将需求分析师的需求描述翻译成计算机可以识别的计算机语言。程序猿哥哥还会对自己完成的每个最小单元进行测试,以保证软件在每个最小单位内是可以正常运行。

软件测试

含集成测试、有效性测试、系统测试。这里不对这3类测试详细展开说明。这个阶段由测试人员对程序猿哥哥交付的程序进行各类测试,以保证最终交付到用户手中的软件可以正常使用。

这里特别说明下,软件测试是一个需要相当经验积累的工作。一般软件公司常安排新进人员做测试,很多新人对测试的意义和方法论如果没有掌握,一般都测不出真正的软件问题。好的软件公司,核心的测试人员都是由有业务经验、开发经验的人员来担任,这样才能保证软件的质量。

该阶段的产出文档:《测试用例》及《测试问题集》。这里的测试用例的编写是围绕着概要设计阶段的用例图等来完善,所有的测试都是围绕着是否满足软件需求?

验收测试

这个阶段软件已交付到用户手中,用户需先对软件进行一轮验收测试,提出软件在业务流、数据流等核心需求,及操作便捷性等非功能性需求是否满足上线条件?

该阶段的产出文档:《测试问题集》。

文档管理

从上面的7个阶段,我们可以发现每个阶段都有标志性的产出文档。一套软件的开发是一个系统性的工程,要实现多方在沟通、理解上尽量减少差异,降低沟通成本,那么高质量的文档就是避免大家互相扯皮的关键。

介绍完软件开发的全生命周期,希望可以让读者对软件开发,在头脑中有个基本概念。

下一篇分享什么?

第一篇我们分享了企业管理软件有ERP,OA,CRM等,那么企业在选择一套管理软件时有哪些注意事项?如何从企业业务发展、系统运营成本等考虑软件选型?


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多