软件工程 软件生存周期

与任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的过程,这个过程称为软件生存周期(软件生命周期)。详细的划分如下图:

Sofeware Life Cycle

它们的主要任务如下:

  1. 制定规划(可行性分析)

    确定要开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的要求。由系统分析员和用户合作,研究该项任务的可行性,探讨解决问题的可能方案。并对可利用资源(硬件、软件、人力等)、成本、效益、开发进度等作出估计,制定开发任务的实施计划,连同可行性报告一同提交管理部门评审。

    通常可行性分析与规划制定的过程由用户、项目负责人和系统分析师共同进行,这个阶段主要产生文档:可行性分析报告、项目开发计划

  2. 系统与软件需求分析(定义)

    与客户合作,获取待开发软件的功能、性能、可靠性、接口以及其它质量需求,并进行需求分析与建模,从而得到待开发软件的详细定义。基于获得的文档与模型,编写系统和软件需求规格说明,提交管理部门评审。

    这个过程的任务不是具体地解决问题,而是准确地确定软件系统必须做什么,确定软件系统的功能、性能、数据、界面等要求,从而确定一个系统的逻辑模型。

  3. 软件设计

    把各项需求转换为相应的体系结构,包括数据的、系统的及软件的。每一组成部分都应是意义明确的模块,每个模块都和需求相对应,也即是概要设计/高层设计。进而对模块进行具体的描述,为编写源代码打下基础,即是详细设计。所有设计都应以设计规格说明形式形成文档,以便后续使用并提交评审。

    概要设计主要由系统分析师和软件设计师参加,主要产生 概要设计书 。而详细设计阶段主要由软件设计师和程序员参加,将概要设计的理念进一步细化,产生 详细设计文档

  4. 编程与单元测试

    把上述设计转换为计算机程序即实现和单元测试。对于编写出的源程序必须进行单元测试,查找各模块在功能和结构上存在的问题并纠正。这一步必须注意程序设计风格,源程序应该是结构良好、清晰、易读的,并与设计一致。

  5. 集成与系统测试

    测试是保证质量的重要手段,主要方式是在设计测试用例的基础上检验软件的各部分。把已测试过的模块按一定顺序组装起来,最后按规定的需求,逐项进行系统的确认测试,确定软件是否满足需求规格,能否交付。

    测试阶段通常会由另一个部门的软件设计师或系统分析师参加(为了避免自我产生的盲区),一般来说还会产生 软件测试计划、测试用例、软件测试报告

  6. 运行与维护

    自软件投入使用则进入运行阶段,软件在运行中可能由于多方面的原因需要修改,主要目的均为维护软件正常使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值