软件工程高效学 | 软件项目的生存周期

简介: 软件工程是计算机领域的一门专业基础课,它对于培养开发者的软件素质、提高开发者的软件开发能力与软件项目管理能力具有重要意义。本篇介绍软件项目的生存周期。

640.jpg

01、软件项目的生存周期

软件生存周期是指一个软件从定义、开发、使用和维护,直到最终被废弃所经历的漫长时期。软件工程采用的生命周期方法是从时间角度对软件开发和维护的复杂问题进行分解,通常软件生存周期至少包括以下5个阶段。

问题定义阶段

要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”,然后提出关于“系统目标与范围的说明”,提交用户审查和确认。

可行性研究阶段

从经济、技术、法律及软件开发风险等方面分析确定系统是否值得开发,及时停止不值得开发的项目,避免人力、物力和时间的浪费。

① 技术可行性: 主要解决的问题是通过使用现有的技术能否实现这个系统。

② 经济可行性: 主要解决的问题是这个系统的经济效益能否超过它的开发成本。

③ 操作可行性:主要解决的问题是系统的操作方式在这个用户组织内能否可行。

④ 法律可行性: 主要确定本项目法律上有无纠纷等。

需求分析阶段

需求分析的主要任务是要项目开发人员清楚用户对软件系统的全部需求,并用“需求规格说明书”的形式准确地表达出来。

开发阶段

开发阶段由软件设计、实现和测试3个阶段组成。

① 软件设计:软件设计的主要任务是将需求分析转换为软件的表现形式。

概要设计: 确定系统设计方案、软件的体系结构和软件的模块结构。

详细设计: 确定软件系统模块结构中的每个模块完整而详细的算法和数据。

② 实现: 根据选定的程序设计语言完成源程序的编码。

编码的主要任务是由程序员依据模块设计说明书,用选定的程序设计语言对模块算法进行描述,即转换成计算机可接受的程序代码,形成可执行的源程序。

③ 测试:对编码后的源代码进行测试。

通过各种类型的测试,找出软件设计中的错误并改正错误,确保软件的质量。典型的测试方法有针对软件功能的黑盒测试和针对软件源码的白盒测试。

维护阶段

在软件运行期间,通过各种必要的维护措施使系统改正错误或修改扩充功能使软件适应环境变化,以延长软件的使用寿命和提高软件的效益。软件维护有以下4种类型。

① 改正性维护: 诊断和改正在使用过程中发现的软件错误;

② 适应性维护:修改软件以适应环境的变化;

③ 完善性维护:根据用户的要求改进或扩展软件,使之更完善;

④ 预防性维护: 修改软件,为将来的维护做准备。

目录
相关文章
|
数据处理
软件工程——需求分析(生存周期),需求规格说明书,数据流图
在前面我们进行了项目的软件计划,完成了可行性研究报告,知道了要做什么的问题,而下一步,我们就需要进一步的了解项目具体要怎么做,回答必须要做什么的问题了。
|
10月前
|
Linux KVM 虚拟化
云计算——虚拟化层架构
云计算——虚拟化层架构
370 0
|
人工智能 自然语言处理 Java
手把手教你如何挑选适合你的AI编程辅助工具
ChatGPT的普及引发了对AI应用场景的探索和实践的重大变革,垂直领域专业类大模型正正在不断深化落地,其中基于大模型专注于编码的AI工具的出现显著降低了开发的复杂性,提高了开发人员的开发效率,对初级开发人员尤其有帮助。
|
4月前
|
编解码 自然语言处理 数据可视化
阿里云百炼产品月刊【2024年10月】
阿里云百炼产品月刊【2024年10月】上线,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。本月推出开源图片解析模型qwen2-vl-7b-instruct和qwen2-vl-2b-instruct,提升图片理解能力;主流模型qwen-max、qwen-turbo和qwen-plus升级至快照0919版本,支持8千字长文本输出;新增应用观测功能,实时查看调用次数和应用时延。此外,还发布了《阿里云百炼产品动态》电子书以及阿里云百炼产品最新规划电子刊,汇集最新产品动态和实践案例。
|
监控 网络协议 Devops
系统架构演变:SOA、微服务架构的区别和联系
系统架构演变:SOA、微服务架构的区别和联系
656 0
系统架构演变:SOA、微服务架构的区别和联系
|
10月前
|
数据采集 监控 供应链
ERP系统在大型企业中的实施案例研究
ERP系统在大型企业中的实施案例研究
543 0
|
安全 JavaScript 小程序
云支付官方FAQ
云支付官方小二实时更新的浓缩FAQ,帮助广大服务商快速定位问题。
|
5月前
|
缓存 监控 固态存储
如何优化磁盘性能?
【10月更文挑战第4天】如何优化磁盘性能?
248 4