美文网首页干货在这里
浅读软件工程 (3)--软件过程

浅读软件工程 (3)--软件过程

作者: 初十一 | 来源:发表于2019-08-02 17:10 被阅读2次

    软件工程是以软件生命周期为主干的一套体系工具,所以要学习软件工作,需先了解软件生命周期。

    1 定义

    软件生命周期:SDLC,是指软件的产生直到报废的生命周期。
    过程:活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。
    软件过程:软件生存周期中的一系列相关过程。
    软件过程模型:一种开发策略,这种策略针对软件工程的各个阶段提供了一套规范,使工程的进展能达到预期的目的。

    2 软件生命周期

    软件生命周期一般由软件定义、软件开发、软件维护三个阶段组成。对应是软件产品需求的确定、软件设计与开发、软件交付后的运营维护三个大的阶段。

    2.1软件定义

    软件定义的过程是根据客户需求或市场调研来确定要做成什么样子,具备哪些功能,性能需求如何的过程。软件定义过程可细化为软件计划和需求分析。
    软件计划过程和通常理解的计划不太一样,在其他产品设计中更多称为“需求提出”和“可行性分析”。其主要输入为用户需求,需要开发方与需求方共同探讨,以初步理清产品的要求(总目标),包括功能、性能、可靠性、接口等方面的要求,然后从技术、资源、经费、周期等角度论证其实现的可行性。主要输出包括《软件定义》(与研制总要求类似,是概述性的要求,可能不太细化)和《可行性分析报告》。
    需求分析过程和通常产品开发的需求分析类似,主要是对需求进行细化分析,确定目标系统必须具备哪些功能和系统逻辑模型,形成《需求规格说明书》,并提交评审,这个评审就是设计输入评审。
    关于《研制总要求》和《需求规格说明书》的区别可参见 “[《研制总要求》与《需求规格说明书》的区别]”一文。

    2.2 软件开发

    软件开发阶段包括总体设计、详细设计、编码、测试等过程。
    总体设计是将细化的需求转换为一个个模块,从而形成系统结构。组成结构中的每个模块都应有其明确的意义,对应是一个个的需求。总体设计阶段输出是系统的体系结构和功能模块。
    细化设计是在总体设计基础上将实现系统的步骤文档化,对系统的每个模块的功能、逻辑、输入、输出、数据定义等等进行明确。可以使用HIPO图、PDL语言表述。
    编码就是按细化设计的要求写代码。
    测试是通过各种类型的测试,使软件符合预定的要求。主要包括单元测试、集成测试、验收测试。需要注意的是用文档资料方式将测试计划、详细测试方案及实际测试结果保存下来,作为软件配置的一个组成部分。

    2.3 软件维护

    运行维护是从软件交付开始,其主要任务是进行系统的日常运行管理,根据一定的规格对系统进行必要的修改,评价系统的运行效率、工作质量和经济效益,对运行费用和效果进行监理审计。
    在软件维护过程中应注意软件的修改,也需要文档保证设计、修改的可追溯性。

    2.4 一般过程

    软件一般过程
    各阶段输出的主要文档

    3 软件过程

    软件过程就是一套规范、系统,由在软件生命周期内各个阶段中的各个过程各项活动组合而成。
    书中讲软件生存周期的各个过程可以分成3 类,即主要生存周期过程、支持生存周期过程和组织的生存周期过程。其实并未明白,不是意思不明白,而是不太明白按这3类分有什么用途呢?作为疑问,记下来,读完再看。
    1.主要生存周期过程
    主要生存周期过程包括 5 个过程,供各当事方在软件生存周期期间使用。获取过程、供应过程、开发过程、操作过程、维护过程。当事方包括供应方和需求,获取过程和供方过程就是站在不同当事方描述的同一件事吧--~
    2.支持生存周期过程
    包括8 个过程,其目的是支持其他过程,用于提高软件项目的成功率和质量。这是软件工程管理的核心所在,区别于无管理的软件设计所在。
    (1)文档编制过程:确定记录生存周期过程产生的信息所需的活动。
    (2)配置管理过程:确定配置管理活动。
    (3)质量保证过程:确定客观地保证软件和过程符合规定的要求及已建立的计划所需的活动。
    (4)验证过程:根据软件项目要求,按不同深度确定验证软件所需的活动。
    (5)确认过程:确定确认软件所需的活动。
    (6)联合评审过程:确定评价一项活动的状态和产品所需的活动。
    (7)审核过程:确定为判断符合要求(计划)和合同所需的活动。
    (8)问题解决过程:确定一个用于分析和解决问题的过程(包括不合格的内容)
    3.组织的生存周期过程
    组织的生存周期过程包括4 个过程,在不同过程中存在的组织结构和人员分工。
    (1)管理过程:确定生存周期过程中的基本管理活动。
    (2)建立过程:确定建立生存周期过程中的基础结构的基本活动。
    (3)改进过程:确定一个组织为建立、测量、控制和改进其生存周期过程所需开展的基本活动。
    (4)培训过程:确定提供经适当培训的人员所需的活动。

    总之,每个开发单位都可以定义自己的软件过程,也可以根据项目的不同采用不同的软件过程。
    对于一个具体的项目来说,软件过程是软件设计开发生产的相关活动的指导性纲领和方案。

    4 常见软件过程模型

    常见的软件开发模型大致可分为如下3 类:
    (1)以需求完全确定为前提的开发模型,如瀑布模型;
    (2)在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如原型模型、螺旋模型、协同模型等;
    (3)以形式化开发方法为基础的专用过程模型。


    软件工程过程.png

    相关文章

      网友评论

        本文标题:浅读软件工程 (3)--软件过程

        本文链接:https://www.haomeiwen.com/subject/iychdctx.html