软件开发基础-一个软件项目的生命周期是怎样的(软件项目生命周期六个阶段)
云端云端源想IT培训,帮你轻松拿offer”
嗨~ 今天的你过得还好吗?
又到周三了
希望你可以做颗星星
有棱有角
还会闪闪发光!
– 2023.03.15 –
每个程序员都有其不同的创造力,有的人自认为是上帝的宠儿,却忘了良好的软件系统不可能缺少团队合作的力量。一个良好的软件项目就像是一个生态系统,生产者、消费者、分解者,每一个环节都不可或缺,只有整个生态分工协作,才能打造健康、可拓展、可持续的软件系统。
今天就带大家了解一个软件项目的生命周期是怎样的,不同程序员担任的角色与分工是怎样的?
一、什么是软件项目开发周期?
软件开发周期,也叫软件开发流程,系统开发流程。软件开发周期可以保证系统从需求分析,系统设计,开发实现,再到发布,部署生产的整个流程中顺利进行。
由于各行各业的需求都具有个性化,单一的解决方案也不能适用于各个行业的实际。因此,在拥有不同的行业背景和需求的企业中,现代软件开发流程在怎样描述、组织和管理工作上不会有太多的偏差。
现代软件开发流程,主要具有以下几个模型:
- 流水线模型
- 可迭代的模型
- 敏捷的模型
- 快速的模型
一个系统的开发流程(SDLC)主要包括:设计,开发,维护,迭代,修改,测试,发布等步骤,但总结起来其实主要有以下五个步骤:计划,设计,开发,测试,部署。
1.计划
商业计划书是项目发起人最初的想法,这时,整个项目的前景和边界已经被定义了出来。团队的高层充分研究了在经济、可操作、技术领域上的可行性。并且在策划阶段,质量保证和风险评估也被准备好,以降低任何不可预测的风险。商业论证文档应该在这一阶段准备好,总结归纳所有的想法,并对计划有一个宏观的把控。
这类似于商业计划——BP。科研工程项目可能在工程和科研上都有所侧重,但是每个项目具体的侧重点也不尽相同。假如在项目成立之初,项目定位的时候不够清晰,会导致后边做计划时出现诸如:开发侧重点,功能实现及页面设计上的问题。
所以,根据甲方的一些要求和资源,制定清晰的、可操作的、可行的计划是非常重要的。若是项目初期的功能需求文档没有清晰的定位,加之甲方自己没有一个准确的模型,将会导致后边出现推倒重来的惨剧。
2.设计
产品设计需要以清晰明确的需求为前提,软件需求说明文档应当包含需求的所有细节,并且在产品设计之前应该征得用户和客户的同意。
根据需求说明文档,将会有很多的产品设计架构被提出来,这些将会被团队的中层成员写成设计说明文档,并且得到团队的高层及项目股东的评审。设计说明文档将会基于一些标准进行评估,这些标准包括但不限于预算、时间、用户友好性,风险性、集成度等。
从整个系统的生命周期来看的话,甲方随时添加删除需求是经常发生的事,但做到整体架构的统一也是最初设计必须做到的。
系统设计的过程中,本着分层和模块化的原则,可以比较清晰的描述出整个系统运行的逻辑。系统的每个子模块要实现什么功能,这些子模块在前端显示如何,后台的逻辑实现如何,数据库如何设计,这些都应该在这个阶段加以考虑的。
3. 开发
在得到最后的设计说明文档后,实施阶段立刻开始被执行,程序员开始根据项目的设计说明文档开发软件。公司应该提供统一的开发工具,以保证所有的程序开发人员可以并行的工作。在技术层面上,软件开发人员应该编写系统功能说明书 以记录系统提供的所有功能。
在开发前统一操作环境是非常必要的,企业内部都会有自己的标准,这会大大提高企业开发效率,避免因冲突引起的时间浪费。
4. 测试
软件测试应该被视为一个子阶段,并且应该在所有阶段中被执行。对项目中完成的每个功能都会进行全面的测试,包括:自测、功能单元测试、小组之间互相测试、项目内部功能联测、用户真实测试等,在测试过程中会对功能问题进行不断的完善。最终,质量控制专家从体系结构,安全性,与其他系统的集成等各个方面对软件进行整体检查。
功能测试是程序开发人员经常做的事情,功能测试工作会贯穿程序开发的始终。用户测试也是非常重要的,系统最终是要给用户去用,用户习惯与开发人员的习惯不同,所以他们的测试就很值得借鉴,这样可以提高我们系统的可用性。
5. 部署
部署前应确保所有的测试环节已通过,并且软件系统已经能够正确地成功运行,最后决定是否应该将软件部署在生产环境中。部署计划应该清晰明确,并且获得批准实施。
安装手册,管理手册,用户手册等都应该编写完整。技术团队应该准备好回答涉及软件系统所有的问题。根据最终的软件系统,编写好应急预案 ,对于新部署的软件来说,通用的应急解决方案是后置软件发布日期并且要重新进行测试。对于已经上线的软件来说,很有可能会回滚到以前的版本中,后置发布时间,并且解决已经发现的缺陷。
现在Java的WEB项目部署起来还是比较简单的,但是在部署前,应该做好充分的准备,各种突发情况的紧急处理,部署失败后的回滚等都需要被充分考虑。
二、为什么需要软件开发周期?
知道了软件开发周期,我们再来说说,一个项目为啥需要软件开发周期?下面小编总结了三个原因:
1、 质量保证和质量控制
质量保证(Quality Assurance)是在产品的开发过程中一系列的确保产品质量的活动。与此同时,质量控制(Quality Control)是在产品开发完成后,一系列的确保质量的活动。
QA是保证产品在开发的过程中防止出现缺陷,QC是识别在已经开发完成的产品中的缺陷。QA的目标是尽可能地消除软件缺陷,以此来提高QC这一步操作。QC目标是识别在QA环节中遗漏的缺陷。因此,在QA主动的质量处理和QC响应式的质量处理下,可以保证发布的产品可以达到一个高标准,而且不会带来意想不到的问题。
2、更容易地实现控制
在软件开发周期的5个核心的步骤中,有许多的文档需要编写,应准备多份文档,为程序员和测试人员提供指导和说明。
比如:
- Business Case; 商业论证
- Software Requirement Specification(SRS); 软件需求说明
- Design Document Specification(DDS); 设计文档
- Functional Specification; 功能说明
- Test Plan; 测试计划
- Deployment Plan; 部署计划
在这些文档的帮助下,将不会有一些意外发生。用户需求将会得到满足,另外,项目进度也会符合项目的计划。
3、满足用户的需求,甚至超出用户的期望
质量保证和质量控制可以保证产品按照用户的需求那样进行发布,但是,用户在将来应用系统的过程中,由于技术的迭代和商业环境的变化,非常有可能会增加系统的功能。
因此在设计阶段,设计师不仅应该给出用户需求的解决方案,同时也应该考虑到系统的灵活性、可用性,以及由于系统用户的增加带来的最大系统负载问题等。这些隐藏的需求,通常不会出现在用户需求中,但是他们希望每一个产品都是经过深思熟虑的。
三、一个软件开发项目中有哪些角色?
为了有效的完成上面所提到的软件开发周期中的五个阶段,三类关键成员应该总是参与到项目中。
他们的活动占据了整个项目95%的项目周期,在不同的阶段担任着不同的角色,来检查和监控其他人的工作以确保在整个项目周期中,做出的每一个决定都是合规和必要的。
这三类关键成员分别是项目经理、商业分析/系统分析人员和程序开发者/方案开发者,他们在整个项目中负责的内容如下:
01项目经理
- 定义项目的范围和目标
- 预算控制
- 资源分配
- 业务文档
- 协调项目高层管理
- 推出和批准
02商业分析/系统分析
- 在产品实现期间,与终端用户进行交流
- 业务和系统文档
- 评估业务需求
- 设计系统架构,业务流程和用户界面
- 确保业务需求被正确的分析以及方案的正确实施
- 确保商业和技术角色之间关系
- 质量评估和控制
03程序开发者/方案开发者
- 结实业务需求,并将商业需求转换成可部署的解决方案
- 技术研究
- 解决产品缺陷
- 准备功能规范
- 按照约定的策略进行测试
今天的分享就到这里了,想了解更多前端知识,记得常来看我!
我们下期再见!
END
文案编辑|云端学长
文案配图|云端学长
内容由:云端源想分享