《01软件工程与软件过程.ppt》由会员分享,可在线阅读,更多相关《01软件工程与软件过程.ppt(12页珍藏版)》请在优知文库上搜索。
1、2023-3-101第第1章章 软件工程学概述软件工程学概述 1.1 软件危机软件危机 1.2 软件工程软件工程 1.3 软件生命周期软件生命周期 1.4 软件过程软件过程 1.5 小结小结2023-3-102 软件工程方法学软件工程方法学 把在软件生命周期全过程中使用的一整套把在软件生命周期全过程中使用的一整套技术的集合技术的集合称为称为方法学方法学(methodology),也称范型,也称范型(paradigm)。 软件工程方法学三个要素:软件工程方法学三个要素:方法、工具和过程方法、工具和过程。 方法是完成软件开发各项任务的技术,回答方法是完成软件开发各项任务的技术,回答“如何做如何做”
2、; 工具是为方法的运用提供自动或半自动软件支撑环境,回答工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什用什么做么做”; 过程是为获得高质量的软件要完成的一系列任务的框架,规定完成过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答各项任务步骤,回答“如何控制、协调、保证质量如何控制、协调、保证质量”。管理方法管理方法2023-3-1031.3 软件生命周期软件生命周期 软件生命周期由软件生命周期由软件定义、软件开发软件定义、软件开发和和运行维护运行维护三个时期组成,每个时期又可进一步划分成若干三个时期组成,每个时期又可进一步划分成若干个阶段,每个阶段有各自的
3、任务。个阶段,每个阶段有各自的任务。1软件定义软件定义2软件开发软件开发3运行维护运行维护2023-3-1041. 问题定义问题定义(领域分析(领域分析1) 必须回答的关键问题是:必须回答的关键问题是:“要解决的问题是什么要解决的问题是什么”。2. 可行性研究可行性研究 (领域分析(领域分析2,问题背景),问题背景) 回答的关键问题是:回答的关键问题是:“上一个阶段所确定的问题是上一个阶段所确定的问题是否有行得通的解决办法否有行得通的解决办法”。3. 需求分析需求分析 仍然不是具体地解决客户的问题,而是准确地回答仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么目标系统必须做什么
4、”。 此外,要用正式文档准确地记录对目标系统的需求,此外,要用正式文档准确地记录对目标系统的需求,这份文档通常称为这份文档通常称为规格说明规格说明(specification)。2023-3-1054.概要设计概要设计概括地回答概括地回答“怎样实现目标系统怎样实现目标系统?”这个问题。概要设计又这个问题。概要设计又称为称为初步设计、逻辑设计、高层设计或总体设计初步设计、逻辑设计、高层设计或总体设计。可以给出实现目标系统的几种可能的方案。可以给出实现目标系统的几种可能的方案。另一项主要任务是设计程序的另一项主要任务是设计程序的体系结构体系结构,即确定程序由哪,即确定程序由哪些模块组成以及模块间的
5、关系。些模块组成以及模块间的关系。5.详细设计详细设计任务是把解法任务是把解法具体化具体化,回答,回答“应该怎样具体地实现这个系应该怎样具体地实现这个系统统”这个关键问题。这个关键问题。还不是编写程序,而是设计出程序的还不是编写程序,而是设计出程序的详细规格详细规格说明。说明。又称为又称为模块设计、物理设计或低层设计模块设计、物理设计或低层设计。 2023-3-1066.编码和单元测试编码和单元测试关键任务是写出正确的容易理解、容易维护的程序模块,并测关键任务是写出正确的容易理解、容易维护的程序模块,并测试。试。7.综合测试综合测试关键任务是通过各种类型的测试关键任务是通过各种类型的测试(及相
6、应的调试及相应的调试)使软件达到预定使软件达到预定的要求。的要求。集成测试、验收测试、系统测试集成测试、验收测试、系统测试分析系统的可靠性分析系统的可靠性记录测试计划、详细测试方案及实际测试结果,作为软件配置记录测试计划、详细测试方案及实际测试结果,作为软件配置的一部分。的一部分。2023-3-1078.软件维护软件维护 维护阶段的关键任务是,通过各种必要的维护活动使维护阶段的关键任务是,通过各种必要的维护活动使系统系统持久持久地满足用户的需要。地满足用户的需要。 通常有四类维护活动通常有四类维护活动改正性维护改正性维护,也就是诊断和改正在使用过程中发现的软件,也就是诊断和改正在使用过程中发现
7、的软件错误;错误;适应性维护适应性维护,即修改软件以适应环境的变化;,即修改软件以适应环境的变化;完善性维护完善性维护,即根据用户的要求改进或扩充软件使,即根据用户的要求改进或扩充软件使它更完它更完善;善;预防性维护预防性维护,即修改软件为将来的维护活动预先做准备。,即修改软件为将来的维护活动预先做准备。2023-3-1081.4 软件过程软件过程 在实际软件开发时,软件规模、种类、在实际软件开发时,软件规模、种类、开发环境及开发时使用的技术方法等开发环境及开发时使用的技术方法等因素,因素,影响阶段的划分。影响阶段的划分。软件开发软件维护软件定义 生命周期模型规定了生命周期模型规定了把生命周期
8、划分成哪把生命周期划分成哪些阶段及各个阶段的些阶段及各个阶段的执行顺序,因此,也执行顺序,因此,也称为称为过程模型过程模型。2023-3-109瀑布模型瀑布模型 在在20世纪世纪80年代之前,瀑布模型一直是唯一被广泛年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型,现在仍然是应用得采用的生命周期模型,现在仍然是应用得最广泛最广泛的的过程模型。过程模型。 按照传统的瀑布模型来开发软件,有如下特点。按照传统的瀑布模型来开发软件,有如下特点。 阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性 推迟实现的观点推迟实现的观点 清楚地区分逻辑设计与物理设计,尽可能推迟程序的清楚地区分逻辑设计与物理设计
9、,尽可能推迟程序的物理实现。物理实现。2023-3-1010传统瀑布模型传统瀑布模型 传统的瀑布模型传统的瀑布模型 不希望有不希望有“变化变化” 变化来的越晚,付出变化来的越晚,付出的代价越高。的代价越高。 设计阶段过多的假设,设计阶段过多的假设,导致理想化、一厢情导致理想化、一厢情愿的东西过多。愿的东西过多。(用户用户只参与需求只参与需求) “文档驱动文档驱动”,静态,静态2023-3-1011 质量保证的观点质量保证的观点 每个阶段都必须完成规定的文档,没有交出合格的每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。文档就是没有完成该阶段的任务。 每个阶段结束前都要对所完成的文档进行评审,以每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。便尽早发现问题,改正错误。2023-3-1012实际瀑布模型实际瀑布模型 可以在一定程度解决可以在一定程度解决“变化变化”的问题的问题 如何如何“拥抱拥抱”变化?变化?实际的瀑布模型实际的瀑布模型