软件生存周期的各个阶段(可作为软件开发流程使用)

简介:

软件生存周期包括软件定义阶段、软件开发阶段和软件使用、维护和更新换代阶段。系统分析师、设计师、编程人员、测试人员以及维护人员可以作为参考,了解软件整个生命周期的阶段。

1、软件定义阶段

软件定义阶段的基本任务是确定软件系统的工程需要,可分为两个阶段。

1.1、软件系统的可行性研究

-经济可行性研究

-技术可行性研究

-法律可行性研究

-开发方案的选择性研究

可行性研究的任务是了解用户的要求及实现的环境,从技术、经济和社会等各个方面进行研究,并从成功和风险两方面来论证软件系统的可行性。参与软件开发的分析人员应在用户配合下对用户要求及实现环境作深入细致的调查,写出调研报告,并进行可行性论证。

1.2、项目需求分析

-软件功能需求:系统必须完成的功能

-软件性能需求:安全性、可靠性、可维护性和用户培训等

-软件运行环境约束

-需求建模

-问题抽象、问题分解与多视点分析

-支持需求分析的快速原型技术

-需求规格说明与评审

软件需求是指用户对其目标软件系统的功能、行为、性能、设计约束等诸方面的期望。用过与用户反复交流,对应用问题及环境充分地理解与分析,为问题涉及的信息、功能及系统行为建立模型。去除无关的和使人误解的信息,寻找是否有对类似问题的解决办法,将用户需求精确化、完全化,最终形成需求规格说明,完成软件开发生存周期的需求分析阶段。

2、软件开发阶段

软件开发阶段包括概要设计、详细设计、实现、组装测试和确认测试5个阶段。

2.1、概要设计:根据软件需求规格说明进行

-建立系统总体结构和各模块之间的关系

-定义各功能模块的接口

-设计全局数据库或数据结构

-规定设计约束

-制定组装测试计划

2.2、详细设计

-对概要设计进行细化

-建立文档资料

2.3、实现

-选择何时的编程语言编写程序

-制定模块测试方案和测试数据

-制定模块预期测试结果

-制定组装测试方案和测试数据

-制定预期测试结果

-保存相应的文档资料

2.4、组装测试

-根据模块测试方案和测试数据进行模块测试

-根据组装测试方案和测试数据逐步进行组装测试

-系统各模块连接正确性测试

-软件系统或子系统的正确性和容错性能测试

-保存相应的文档资料

2.5、确认测试

-由专家、客户、开发人员组成系统测试评审小组

-向用户提供最终的用户手册、操作手册、源程序清单及其他软件文档资料

-三方共同根据组装测试方案和测试数据逐条严格进行组装测试,确认软件系统是否达到用户的系统需求

-确认系统测试结束时应建立确认系统测试报告、项目开发总结报告

-保存相应文档资料

由专家、客户、开发人员组成的软件测试评审小组在对软件确认报告、测试结果和软件经销评审通过以后,软件产品得到确认,就可以交付用户使用。另外需要强调说明的是,软件在开发过程中通常会有很多中方案可供人们选择,可以根据成本、进度、功能、性能、系统复杂性、时空开销、风险等诸方面进行折衷平衡,以便用较小的代价实现客户对软件总体目标的需求。

3、软件使用、维护和更新换代阶段

3.1、软件的使用

-推广软件的应用。使用软件的用户越多,其社会经济效果越大

-客户和系统维护人员必须认真收集软件使用时发现的软件错误

-定期撰写“软件问题报告”

3.2、系统维护

-对发现的软件产品中潜伏的错误进行修改维护

-对用户提出的软件需求进行修改维护

-软件运行环境发生变化时需要对软件进行修改维护

-对软件定义和软件开发各阶段生存的文档资料进行修改维护

软件维护需要花费大量劳动,软件维护的好坏直接影响到软件的应用和软件生存周期,而软件的可维护性又与软件设计密切相关,所以软件在开发过程中应当重视对软件可维护性的支持。

3.3、系统更新换代

软件生存周期的最后一个阶段。本软件已完成其历史使命,但软件中的一些构件或模块还可以复用,可以成为新系统的一个组成部分。

(以上摘自《面向对象技术导论-系统分析与设计》一书)





   本文转自loose_went博客园博客,原文链接:http://www.cnblogs.com/michaelxu/archive/2008/12/29/1364459.html,如需转载请自行联系原作者

相关文章
|
消息中间件 存储 Cloud Native
揭秘发布订阅模式:让消息传递更高效
揭秘发布订阅模式:让消息传递更高效
揭秘发布订阅模式:让消息传递更高效
|
Web App开发 JavaScript
学习VUE之正则表达式全集整理
学习VUE之正则表达式全集整理
195 0
|
7月前
|
C语言 C++ 容器
【数据结构】二叉搜索树(二叉排序树)
本文介绍了二叉搜索树(Binary Search Tree, BST)的定义、实现及其性能分析。二叉搜索树是一种特殊的二叉树,其特点是左子树所有节点值小于根节点值,右子树所有节点值大于根节点值,且每个子树也满足此特性。文中详细讲解了BST的节点结构、插入、查找、删除等操作的实现,并通过C++代码展示了这些功能。此外,还讨论了BST的性能:在理想情况下,时间复杂度接近O(logN),但在最坏情况下可能退化为O(N)。为了提高效率,后续将学习自平衡二叉搜索树如AVL树和红黑树。掌握BST有助于理解STL中的set和map容器。感谢阅读,欢迎点赞支持。
525 9
|
10月前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
282 12
|
11月前
|
JSON JavaScript 前端开发
springboot中使用knife4j访问接口文档的一系列问题
本文作者是一位自学前端两年半的大一学生,分享了在Spring Boot项目中使用Knife4j遇到的问题及解决方案,包括解决Swagger请求404错误、JS错误等,详细介绍了依赖升级、注解替换及配置修改的方法。
2138 1
|
12月前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
544 4
|
人工智能 算法 安全
人工智能伦理与监管:构建负责任的AI未来
【10月更文挑战第3天】随着人工智能(AI)技术的快速发展,其在社会各领域的应用日益广泛。然而,AI的广泛应用也带来了一系列伦理和监管挑战。本文旨在探讨AI的伦理问题,分析现有的监管框架,并提出构建负责任AI未来的建议。同时,本文将提供代码示例,展示如何在实践中应用这些原则。
1750 1
|
SQL 监控 关系型数据库
如何查看MySQL使用的内存
综合运用上述方法,您可以全方位地监控和管理MySQL的内存使用。从简单查看配置到深入分析实时内存占用,每种方法都有其适用场景和优势。定期检查和调整MySQL的内存配置,对于维持数据库性能和稳定性至关重要。
1474 0
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。