软件生存周期

指某一软件项目从被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。

软件的生存周期一般分为软件计划、软件开发和软件运行3个时期。软件计划时期一般有问题定义和可行性研究两个阶段;开发时期有需求分析、软件设计(包括概要设计、详细设计)、编码和测试4个阶段;运行时期主要是维护阶段。图1.1列出了一个典型的软件生存周期。下面结合该图说明软件生存周期各阶段的主要任务。

1.计划时期

计划时期的主要任务是调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。用户提出一个软件开发要求后,系统分析员首先要分析该软件项目的性质是什么,通过对用户和使用部门负责人的访问和调查,开会讨论即可得到解决。

(1)问题定义

问题定义是计划时期的第一步。这一步必须回答的问题是“用户需要计算机解决的问题是什么”。由系统分析员根据对问题的理解,提出关于“系统目标与范围的说明”,请用户审查和认可。

(2)可行性研究

在对问题的性质、目标、规模清楚之后,还要确定该问题有没有行得通的解决办法。在这个阶段要为前一步提出的问题寻找一种以上在技术上可行,且在经济上有较高效益的可操作解决方案。为此,系统分析员应在高层次上做一次简化的、抽象的需求分析概要设计,探索这个问题是否值得去解决。最后写出可行性研究报告。有时可行性研究报告要包含“系统流程图”,用来描述新系统(含硬件与软件)的组成。

2.开发时期

开发时期要完成设计、编码和测试3大任务。其中设计任务用需求分析概要设计详细设计3个阶段完成。

(1)需求分析

其任务在于弄清用户对目标系统的全部需求,准确地确定“目标系统必须做什么”,确定目标系统必须具备哪些功能.

用户了解它们所面对的问题,知道必须做什么,但通常不能完整而准确地表达它们的需求,当然也不知道怎么利用计算机解决它们的问题。而软件开发人员虽然知道怎么用软件完成人们提出的各种功能要求,但是对用户领域内的业务和具体要求并不完全清楚。因此系统分析员在这个阶段必须和用户密切配合,充分交流信息,在此基础上用“需求规格说明书”的形式准确地表达出来。需求规格说明书应包括对软件的功能需求、性能需求、环境约束和外部接口等的描述。这些文档既是对用户确认的系统逻辑模型的描述,也是下一步进行设计的依据。

(2)概要设计

概要设计又称总体设计。这个阶段必须回答的关键问题是“怎么做”,即应该怎样实现目标系统。主要任务是将需求转变为软件的表示形式。开发人员要把确定的各项功能需求转换成需求的体系结构,即从需求规格说明书导出软件结构图,确定由哪些模块组成及模块之间的关系。同时还要设计该项目的应用系统的总体数据结构和数据库结构。

(3)详细设计

详细设计阶段不是编写程序,这个阶段的任务是要回答“应该怎样具体地实现这个系统”。为概要设计阶段得到的软件结构图中的每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述,即确定实现模块功能所需要的算法和数据结构,并用相应的详细设计工具表示出来。

(4)编码

这一阶段是按照选定的语言,把设计的每一个模块的过程性描述翻译为计算机可接受的源程序。写出的程序应该与设计相一致,并且结构好,清晰易读。

(5)测试

测试是开发时期的最后一个阶段,是保证软件质量的重要手段。按照不同的层次,又可细分为单元测试、集成测试、验收测试。单元测试也称模块测试,是查找各模块在功能和结构上存在的问题;集成测试也称组装测试,是将各模块按一定顺序组装起来的测试,主要是查找各模块之间接口上存在的问题;验收测试也称确认测试,是按照需求规格说明书的规定,由用户参加的对目标系统进行验收。

3.运行时期

软件人员在这一时期的主要工作是做好软件维护。运行时期是软件生存周期的最后一个时期,也是时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。软件在运行过程中可能会发现潜藏的错误,需要对它们进行诊断和改正,称为改正性维护;也可能是为了适应变化了的软件工作环境而需要做适应性维护;也可能是在软件漫长的运行时期,用户业务发生变化往往会对软件提出新的功能要求和性能要求,这种增加软件功能、增强软件性能的维护称为完善性维护;另外还有一些其他维护,如为了提高软件的可维护性和可靠性而对软件修改的预防性维护。

读书笔记:软件工程(3) - 软件生存周期相关推荐

  1. 软件架构设计 温昱著 - 读书笔记

    #读后感#一本实用性很强的架构入门书籍.内容有深有浅,涉及面广,帮我们树立一个架构设计的全局观.  本书已读完,把读后感放在最前面,以下是详细的读书笔记. #读书笔记# 我们将软件架构概念分为两大流派 ...

  2. 推荐一款看书学习必备的读书笔记app

    如果你是看网络小说这种没有深度的书籍倒是不需要做笔记,但是很明显我们看书不仅仅是消遣时间.既然如此那就需要我们在阅读时能随时随地记录下自己的灵感. 你在应用商店里搜索"笔记"大都出 ...

  3. 软件测试中文电子版姚静_软件测试[(美)ron patton]读书笔记

    雪舞奉天读书笔记                                   msn: wwwux@163.com 第一部分 软件测试综述 软件测试 - 机械工业出版社 (美) Ron Pat ...

  4. 读书笔记:软件工程(11) - 传统方法学 - 软件需求分析

    软件需求分析 可行性研究阶段:粗略了解用户的需求,提出一些可行方案.基本目的是以最小的代价在尽可能短的时间内确定问题是否存在可行的解法.而在软件需求分析阶段,需要对可行性研究的问题,进行准确的分析&q ...

  5. 读书笔记:软件工程(4) - 软件过程模型:瀑布模型

    软件过程模型 为了改变软件开发的混乱状况,使软件开发更加有序. 瀑布模型 又称为经典生命周期,它提出了一个系统的,顺序的软件开发方法,从用户需求规格说明开始,通过策划,建模,构建和部署的过程,最终提供 ...

  6. 软件工程读书笔记(四)——软件工程师的成长

    昨天依靠一罐红牛撑了一天,在零点到来前五分钟commit了最终代码.脑袋昏沉地走出实验室,去肥西路的蒸小皖吃了一碗牛肉面,在凌晨一点之前,把自己扔到了床上,当然少不了敲开宿舍楼下的门的时候宿管阿姨的一 ...

  7. [软件工程]软件生存周期过程与管理————(2020.6.29学习笔记)

    目录 第一节 软件生存周期过程概述 第二节 过程描述 第三节 应用说明 第四节 软件生存周期模型 第五节 过程规划与管理 第一节 软件生存周期过程概述 软件生存周期(SDLC,软件生命周期) 是软件的 ...

  8. 《需求工程-软件建模与分析之读书笔记之三》

    <需求工程-软件建模与分析之读书笔记之三> 第14章<面向对象建模>采用了面向对象方法学的世界观,将系统看作是一系列对象的集合,每个对象具有独立的职责,完成独立的任务,对象之间 ...

  9. 软件工程(一)------软件生存周期

    软件生存周期 一.可行性研究与计划 二.需求分析 三.总体设计 四.详细设计 五.实现(编码和单元测试) 六.集成测试 七.确认测试 八.使用和维护 日常B站学习. 观大连工业大学软件工程课程笔记. ...

最新文章

  1. python以运行效率高著称吗_如何提高python的运行效率
  2. 中文分词jieba的简单使用
  3. 5G LAN — Overview
  4. Delphi实例分析:远程传输数据和文件
  5. gulp+browserSync自动刷新页面
  6. c# TCP Socket通讯基础
  7. C语言八进制和十六进制数
  8. Oracle 12C -- 不同容器之间切换
  9. DB2 9 根本(730 磨练)认证指南,第 3 部门: 谋面 DB2 数据(4)
  10. 新手坐高铁怎么找车厢_坐动车怎么找车厢
  11. linux通过编辑文档来网络互通,No.277 记录一下:隔离网络环境下,使用WPS 2019 for Linux无痕编辑Office文档(2019-08-04)...
  12. 国土空间用途管制制度构建的思考
  13. Python-requests-12306-登陆
  14. 知识点15:文件的高级应用
  15. 带着问题重学 Java 并发编程
  16. TCP三次握手中SYN,ACK,seq ack的含义
  17. 开源进企业8月27日活动
  18. HTML多个单选按钮怎么分组,如何在Excel中对多个选项/单选按钮进行分组?
  19. Java框架之Struts2(六)
  20. 解决ArcGIS10.1符号化里面没有显示Color Ramp颜色带

热门文章

  1. 雷布斯 22 年前写的代码 你见过吗?
  2. html 更改视频封面,HTML5视频标签 - 如何设置封面背景大小
  3. 使用 Java 实现快速排序(详解)
  4. mediacodec api
  5. C语言—打字母单机游戏(简易)
  6. 编写PRD文档:产品需求文档(Product Requirement Document,PRD)
  7. C# Visual Studio 登录界面+数据库连接
  8. Laradock 的安装与使用
  9. 【操作系统-进程】PV操作——读者写者问题
  10. varchar(n)跟varchar(max)的区别