欢迎来到天天文库
浏览记录
ID:38543682
大小:240.50 KB
页数:22页
时间:2019-06-14
《软件工程rjgc02》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节软件生存周期模型(软件工程过程模型)(一)、瀑布模型(二)、原型模型(三)、喷泉模型(四)、螺旋模型第二课(一)、瀑布模型问题定义可行性研究需求分析总体设计祥细设计编码综合测试软件维护特点:1、下导式开发2、追溯式确认3、适合能事先确切定义需求的软件开发分析时期设计时期编码与测试时期运行与维护时期1、问题定义---问题性质、工程目标及规模2、可行性研究---技术上、经济上、社会上是否有可行解?3、需求分析---确定目标系统必须具备的功能?4、总体设计---1).几种求解方案;2).设计软件的
2、结构5、祥细设计---设计出程序的祥细规格说明6、编码与单元测试---程序编码实现与模块测试7、综合测试---集成测试和验收测试8、维护---改正性维护、适应性维护、完善性维护预防性维护一、瀑布模型(四个活动时期八个阶段)需求分析快速设计实现原型评审和修改需求建立产品特点:1、用户能较快地接触到产品的雏形,有利于与用户交流;2、需要开发工具的支持;3、适合不能事先确切定义需求的软件开发。(二)、原型模型特点:1、软件周期各阶段相互重叠、多次反复;2、类似喷泉的水可以落到各个层面上;3、面向对象软件工
3、程中发展起来的。运行维护测试编码软件设计系统设计需求分析(三)、喷泉模型初始需求与项目计划基于用户说明的计划用户评价基于初始需求的风险分析基于用户反映的风险分析初始软件原型第二级原型工程系统特点:在原型模型基础上,引入多次原型反复并增加风险评估。(四)、螺旋模型第四节软件工程的基本目标和原则一、软件工程的定义德国人Bauer给出的软件工程定义:"软件工程是为了经济地获得能够在实际机器上有效的可靠软件而建立和使用的一系列完善的工程化原则"。1983年IEEE(电气和电子工程师学会)给出的定义为:“软件
4、工程是开发、运行、维护和修复软件的系统方法"。是以工程化方法为基础的一门计算机科学与工程学结合的交叉学科。目前提出的软件工程的定义,其主要思想都是强调软件开发过程中需要应用工程化的原则。①软件工程方法为软件开发提供了“如何做”的技术它包括多方面的任务,如项目计划与估算、软件系统需求分析、数据结构设计、系统总体结构设计、算法过程设计、编码、测试以及维护等。②软件工具为软件工程方法提供自动的或半自动的软件支撑环境,建立起称为计算机辅助软件工程的软件开发支撑系统。将各种软件工具、集成起来,形成软件工程环境
5、。③软件工程过程指将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的过程,定义了方法使用的顺序、要求交付的文档资料、保证质量和协调变化所需的管理,以及软件开开发各个阶段完成的里程碑。二、软件工程的三个要素:方法、工具和过程组织实施软件工程项目是为了获得项目的成功,即达到以下几个主要的目标:①付出较低的开发成本②达到预期的软件功能③取得较好的软件性能④使开发的软件易于移植⑤付出较低的维护费用⑥能按时完成开发工作,及时交付使用。在项目的实际开发中,使以上几个目标都达到理想的程度往
6、往是非常困难的,有些目标之间是互补关系,有些目标之间是互斥的。三、软件工程项目的基本目标软件工程目标间存在的关系:互斥关系互补关系低成本开发按时交付易于维护高可靠性高性能软件工程目标间存在的关系软件工程基本目标适用于所有软件工程项目,为达到这些目标,在软件开发过程中必须遵循下列软件工程原则:①抽象抽取事物最基本的特性和行为,忽略非基本细节,采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程。②信息隐蔽将模块设计成为“黑箱”,实现细节隐藏在模块内部,不让模块的使用者直接访问,这就是所谓信息封装(
7、使用与实现分离)的原则。使用者只能通过模块接口访问模块中封装的数据。③模块化模块是程序中在逻辑上相对自主的成分,是独立的编程单位,应有良好的接口定义,如C语言程序中的函数过程,C++语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。④局部化在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间有松散的耦合,模块内部有较强的内聚,这有助于控制各个解的复杂性。四、软件工程的原则(一)四、软件工程的原则(二)⑤确定性软件开发过程中所有概念的表达应是确定的、无歧义的、规范的,这样有助于
8、人们在交流时不会产生误解、遗漏,保证整个开发工作的协调一致。⑥一致性整个软件系统(包括程序、文档和数据)的各个模块应使用一致的概念、符号和术语;程序内、外部接口应保持一致;软件同硬件、操作系统的接口应保持一致;系统规格说明与系统行为应保持一致;用于形式化规格说明的公理系统应保持一致。⑦完备性软件系统不丢失任何重要成分,可以完全实现系统所要求的功能,为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。⑧可验证性开发大型软件系统时需要对系统自顶向下、逐层分解,
此文档下载收益归作者所有