谈论软件开发流程与开发方法的重要性

近段时间,做了一个简单的项目,但是各种问题。

项目背景:

本身该项目就属于重构项目,已经存在老版本的软件,但是对老版本的软件貌似不太满意,决定重做。

项目应该属于中小型项目,投入资源研发团队5人左右(有老员工,新员工,无架构师,无测试人员),少部分组件可以沿用老版本,但是没有很明确的架构规划,开发模型刚开始尝试的类似于快速原型模型因为项目需求并不是很明确,只有一部分功能是确定的,另一些需要在做出来之后,结合使用人员反馈的需求来更改,采用快速原型模型应该是最合适的,先做出来大致的功能,再让使用者使用,提需求更改,不断完善。

从软件生命周期谈论项目进展

1.可行性研究与计划

   首先考虑开发本次项目所需要用到的技术点c++,OCX控件,QT,duilib,OpenCaseCade,在这几项中QT与OpenCaseCade都是临时加进来的技术项,在经过一些列的DEMO测试和实验之后,实验结果大致满足需求之后,决定用在该项目中。在快速原型模型中这种做法具有一定的风险性,以后的多次修改需求中,有可能存在不能很快解决的技术问题,这些问题要提前预想如何快速解决,做好计划才能保证以后的流程中的可控性。

2.需求分析

  需求分析是软件开发的重要一个环节,直接关系到本次项目要做成的功能的范围,此时需要开发人员与产品经理以及软件使用人员同时商量确定,在此环节开始时,有必要各自做好准备工作,因为如果需求一旦确定,就会根据需求开始设计后面的设计,就像盖房子一样,地基不稳,如何起高楼。对于需求要进行确认,协商好的需求确定下来,要形成文档,以后的项目进展都以此为标准,不得轻易修改,如果某一方要提出修改需求,要经过多方便的沟通确认,看是否可以改。该需求本身就是一种很烦人的事情(作为一个开发人员深有感触)

3.概要设计

该阶段需要架构师统筹安排,想好一个稳妥的架构,比如界面外观怎么做使用QT还是DUIlib或者MFC,外部的嵌入组件如何衔接,开发工具的选择,在VS工程要创建几个项目文件,每个项目实现什么功能,每个功能有几个类实现,各个项目之间如何交换数据等问题。以及人员责任划分。

4.详细设计

在概要设计的基础上,明确每个类需要实现的功能,实现与责任人无缝绑定,责任人确定无问题,则可生成文档,以后开发过程有任何问题,以此为基础。

5开发实现

开发人员根据制定的准确的设计文档,开发编码,实现相关功能,问题及时反馈,架构师及项目经理及时分析解决问题,避免出现拖延情况。此时测试人员可根据详细设计文档开始想好测试用例,确保开发人员实现的相关功能达到预期效果。

6.测试

在这里进行模块化测试与集成测试,测试人员根据测试用例对开发的功能进行测试,遇见问题及时反馈BUG信息,通过与开发交流准确解决问题。

7.确认测试

开发人员与测试人员把要解决的bug确认解决,通过QA的质量把控,完成软件开发。

8.使用和维护

附带用户使用手册,投入用户手中使用,在用户使用时不断反馈BUG,并及时通过产品经理确认筛选,让开发人员及时调整修改。

总结

在项目进行中,最开始出现问题的就是在需求分析时就出现了问题,需求没有得到准确确定,模棱两可,后续概要设计无完整的框架,没有结构性,到概要设计时更是无法准确设计出准确的详细设计说明书,本来的快速原型模型失去了作用。

上层的一点问题但后面的过程被一点一点的放大,最后的结果就是,有需求就改,没有大家公认的设计文档可参考,无标准性,今天这个人说这个不好,然后就改改改,开发人员一直在无休止的改bug,公司层面无休止的催促,抱怨效率低,陷入恶性循环。

如果把每一步都做到位,后续只要按照约定的来做,只会越做越简单,项目也会很快完成,开头做的混乱后续也会越来越差,就像大楼一样,地基太差,楼层盖的无论多华丽,最后还是倒塌,道理是一样的,软件开发的流程以及根据项目规模采用不同的开发模型很有必要,磨刀不误砍柴工。

 

 

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页