目录
第8章 软件工程
前言
1、 软件工程的矩阵模型
2、 软件工程的生命周期模型
3、软件开发活动知识体系:
8 . 1 软件生命周期(时间维度)
1. 软件生存周期的三大过程
2. 软件生命周期10个阶段各阶段的任务(时间维度)
附录:产品全生命周期
1. 一般产品什么周期
2. 项目生命周期在产品生命周期中的
3. 一般项目生命周期
4. 初创产品/项目什么周期流程
5. 产品在市场上的存活生命周期流程
6. 企业什么周期模型
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来
解决软件问题的工程,其目的是提高软件生产率、提高软件质量、减低软件成本 。
IEEE对软件工程的定义是:将系统的、规范的、可度量的工程化方法应用于软件开发、运行
和维护的全过程及上述方法的研究。
软件工程由方法、工具和过程三个部分组成:
软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软
件生命周期或生存周期。
一个完整的软件项目开发的生命周期是以需求(要做什么)为出发点,从提出软件开发计划的那一刻开始,直到软件在实际应用中完全报废为止。软件生命周期的提出是为了更好地管理、维护和升级软件,其中更大的意义在于管理软件开发的步骤和方法。
目前,划分软件生命周期阶段的方法有许多种,软件规模、种类、开发方式和幵发
环境,以及开发时使用的方法论都影响软件生命周期阶段的划分。对软件生命周期各阶
段进行划分,必须遵循一条基本的原则,那就是各阶段的任务应尽可能地相对独立,同
一阶段各项任务的性质应尽可能地相同,从而达到降低每个阶段任务的复杂度,减少不
同阶段任务之间的联系,有利于软件工程的组织和管理。
在国家标准《信息技术软件生存周期过程( G B / T 8566—2007)》标准中,将软件
生存周期中可能执行的活动分为5 个基本过程、9 个支持过程和7 个组织过程。每个生
存周期过程划分为一组活动,每一项活动进一步划分为一组任务。
(1) 第一大过程:开发活动的5个基本过程。
基本过程供各主要参与方在软件生存周期期间使用,主要参与方是发起或完成软件产品开发、运行或维护的组织。
基本过程分为获取过程、供应过程、幵发过程、运作过程和维护过程。
(2) 第二大过程:开发活动的9 个支持过程。
支持过程作为一个有机组成部分支持其他过程,以便取得软件项目的成功,并提高软件项目的质景。
支持过程包括文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程和易用性过程,根据需要,支持过程可被其他过程应用和执行。
(3) 第三大过程:管理活动的7 个组织管理过程。
组织过程可被某个组织用来建立和实现由相关的生存周期过程和人员组成的基础结构并不断改进这种结构和过程。应用它们通常超出特定的项目和合同的范围,但是,这些特定项目和合同的经验教训有助于改善组织状况。
组织过程包括管理过程、基础设施过程、改进过程、人力资源过程、资产管理过程、重用大纲管理过程和领域工程过程。
备注:
从这里可以感受到,信息系统分析的目标和重心、聚焦点是如何提升组织和企业的管理效率,而不是如何开发一个目标系统。
根据国家标准 G B / T 8566—2007,软件生命周期可以划分为可行性研究、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用、维护、退役10个阶段,各自分别对应于软件生存周期的基本过程,如图8-1所示。
(1) 可行性研究和项目开发计划。
通过分析用户提出的软件开发要求,确定软件项目的性质、目标和规模,得出可行性研究报告。如果可行性研究的结果是可行的,就要制订详细的项目开发计划。这两个活动通常被整合在一起进行,在实际工作中通常把它们归类到同一个阶段中。
(2) 需求分析(What)
需求分析工作是软件生命周期中重要的一步,也是决定性的一步。
只有通过需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。
(3) 概要设计(How)
根据软件需求规格说明书建立软件系统的总体模块结构和模块间的关系,定义各功能模块接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划。
(4)详细设计。
将各模块要实现的功能用相应的设计工具详细描述出来。
(5) 实现。
写出正确的、易理解的和易维护的程序模块。
程序员根据详细设计文档将详细设计转化为程序,完成单元测试。
( 6 ) 组装测试(集成测试)。
将经过单元测试的模块逐步进行组装和测试。
(7) 确认测试。
测试系统是否达到了系统需求,按照规格说明书的规定,由用户(或在用户积极参与下)对系统进行验收。必要时,还可以再通过现场测试或并行运行等方法对系统进行进一步的测试。
(8) 使用。
将软件安装在用户确定的运行环境中,测试通过后移交用户使用。在软件的使用过程中,客户和维护人员必须认真收集发现的软件错误,定期或阶段性地撰写软件问题报告和软件修改报告。
(9) 维护。
通过各种必要的维护活动使系统持久地满足用户的需要。
(10) 退役。
终止对软件产品的支持,软件停止使用。
死亡才是必然与规律.
不同的是时间与时机.
贵族企业,走向衰败是必然趋势,但处于最高位,且离终点有较长的距离。
初创企业,上升是必然的趋势,但处于最低位,离死亡终点也最近。
当一个人的职业周期小于企业的生命周期,且落在企业的上升期,这是幸运的。