中北大学软工ppt电子版课本

上传人:第*** 文档编号:60976546 上传时间:2018-11-21 格式:DOCX 页数:86 大小:14.26MB
返回 下载 相关 举报
中北大学软工ppt电子版课本_第1页
第1页 / 共86页
中北大学软工ppt电子版课本_第2页
第2页 / 共86页
中北大学软工ppt电子版课本_第3页
第3页 / 共86页
中北大学软工ppt电子版课本_第4页
第4页 / 共86页
中北大学软工ppt电子版课本_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《中北大学软工ppt电子版课本》由会员分享,可在线阅读,更多相关《中北大学软工ppt电子版课本(86页珍藏版)》请在金锄头文库上搜索。

1、软工资料1、软件工程概述本节问题:什么是软件工程?两种主要的软件工程方法学?软件工程过程及过程模型?1.1 软件与软件危机1、软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。 2、软件的特点软件是一种逻辑部件,而不是具体的物理部件。软件在开发、生产、使用、维护等方面与硬件相比有明显差异。 软件是开发,硬件是制造 软件是自定的,硬件是组装的 软件不会磨损,硬件存在机械磨损问题3、 软件的分类(1) 按功能分u 系统软件

2、:能使计算机运行的软件,如windows 2000,UNIXu 支撑软件:在系统软件支持下开发应用软件的软件,如DBMS、VB、VF、VCu 应用软件:如办公自动化OA(Office Automation)、高考招生、人事管理等(2) 按工作方式分u 实时软件:发生某种事件或给出数据,立即处理,随时反馈的软件,反馈时间有严格限定,否则将失去监控价值;u 分时软件:把计算机应用时间分配给多个联机用户,每用户分得一个时隙,但都感到自己在独占计算机一样;u 交互式软件:实现人机交互,输入数据,计算机处理,给出结果,但没有严格时限,如MIS 、查询、报表等;u 批处理软件:成批输入数据,进行处理,输出

3、结果,这是传统的软件,如数据库系统。 (3)按规模分4、软件的发展 第一阶段:约5065,硬件价格高,软件专用。 第二阶段:约6575,硬件价格降低,软件有了需求,软件作坊出现,软件危机出现。 第三阶段:约7585,微处理器和PC机的发展,软件需求膨胀,各类软件公司出现,软件工程技术被采用,但软件危机依旧存在。 第四阶段:80年代末以来,硬件性能价格比持续提高,软件新技术出现。注: 软件就只有程序,即代码,开发语言是低级语言,使用者和设计者是同一人。硬件价格高软件看成系统,就包括程序和说明书,开发语言是高级语言,少数用户使用。硬件降价,出现软件危机软件工程阶段:软件包括程序、数据及相关文档,语

4、言包括支撑各阶段工作的语言,需求急剧增加。硬件发展相当快,软件工程强调用工程管理的技术手段来管理软件的开发、维护各个阶段。软件开发技术水平有进步,软件危机依然存在。5、软件危机 什么是软件危机?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。 软件危机的具体表现:(1)对软件开发成本和进度的估计不准确(2)用户不满意(3)软件质量不高、可靠性差(4)软件常常不可维护、错误难以改正(5)缺乏适当的文档资料(6)软件成本占系统总成本的比例逐年上升(7)软件开发速度跟不上计算机发展速度 产

5、生软件危机的原因 软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。具体表现如下: (1)软件是逻辑部件而不是物理部件。 (2)软件的规模越来越大,复杂性越来越大。 (3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。 解决软件危机的途径 1、技术措施-新的方法和工具 2、组织管理-工程管理的思想的引入典型例子:软件危机导致延误工期、超过成本、返工、彻底失败,软件成本大大提高。例如IBM的360 OS 4000多个模块,100000万行代码,花5000人年,4亿美元成本。不幸全盘失败。该项目负责人 戴维斯悲哀地说: “我们象一

6、群巨兽在泥潭中挣扎,谁挣扎的越猛,泥浆就粘的越多。最后没有一个野兽能逃脱覆灭的命运。程序设计就象这样的泥潭,程序员在泥潭中挣扎,谁也没有料到问题会这样棘手。”后来他们用早期的软件工程方法做“纽约时报信息系统”却一举成功。1.2 软件工程1、 软件工程的定义 1968年在第一届NATO会议上的早期定义: “建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。 1993年IEEE的定义: “软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;进而研究实现的途径” 。 我们国家最近定义:软件工程是指导计算机软件开

7、发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 工程学科:采用工程的概念、原理、技术与方法来管理软件的开发和维护过程。 软件生产的各个方面:软件开发的技术过程、软件项目的管理、支持软件生产的工具、方法和理论的开发等活动。2、软件工程方法学即软件工程学,用在软件生命周期全过程中的一整套技术方法的集合。 软件工程(方法)学经历的四个重要阶段:(1) 第一代软件工程 传统方法学60年代末到70年代为了克服“软件危机” 提出“软件工程”的名词, 将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、

8、技术和方法。称为传统的软件工程方法学-结构化方法(2) 第二代软件工程 面向对象方法学 80年代中期到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象方法学。(3) 第三代软件工程 过程工程 80年代中期开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程(4) 第四代软件工程 构件工程 90年代起,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构

9、造,以此达到提高效率和质量,降低成本的目的。称为构件工程。3、软件工程的基本原理 用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性1.3 软件生命周期对软件过程活动的划分,包含对软件过程基本活动的细化。 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期。 三个阶段:定义、开发、维护 八个步骤:问题定义、可行性研究、需求分析;总体设计、详细设计、编码与单元测试、综合测试;运行维护。生命周期各阶段的基本任务阶段主要问题结束标准问题定义问题是什么?

10、关于规模和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型:数据流图(Data Flow Diagram,DFD)成本/效益分析需求分析系统必须做什么?系统的逻辑模型: 数据流图(DFD) 数据字典 算法描述总体设计概括地说,应该如何解决这个问题?可能的解法:系统流程图 成本/效益分析推荐的系统结构:层次图/结构图详细设计怎样具体地实现这个系统?编码规格说明: HIPO图(Hierarchical Input Process Output,层次图+输入/处理/输出图) 或PDL图(Program Design Language,过程设计语言)编码和单元测试正确的程序模块源程序清单 单元测

11、试方案、结果综合测试符合要求的软件综合测试方案、结果 集成测试 验收测试完整一致的软件配置维护持久地满足用户需要维护记录 四类维护:(1)改正性维护: 运行中发现错误(2)适应性维护: 适应变化的软件环境(3)完善性维护: 用户需求改进/扩充(4)预防性维护1.4 软件过程获取高质量软件所需要的一系列任务框架,规定了完成各项任务、使用各种方法的顺序,各个阶段完成应交付的文档资料、任务完成标记(里程碑),为保证质量和协调变化应采取的管理措施。所有软件过程均包含四项基本活动: 软件规格说明:规定软件的功能及其运行的限制 软件开发:产生满足规格说明的软件 软件确认:确认软件能够完成客户提出的要求 软

12、件演进:为满足客户的变更要求,软件必须在使用的过程中演进1、过程模型 瀑布模型 原型模型 增量模型 螺旋模型 喷泉模型 Rational统一过程 敏捷过程与极限编程不同模型包含过程不同,但所有模型都有系统分析(需求分析)、系统设计(概要和详细设计)、系统实现(编码及测试)、系统维护。生命周期方法学是从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务。采用该方法时一个阶段一个阶段地进行开发,前一个阶段任务的完成是后一个阶段任务开始的基础和前提,后一阶段是前一阶段工作进一步具体话。每一个阶段的开始和结束都有严格标准。按照该方法,各阶段的

13、工作自顶向下从抽象到具体顺序进行,就象奔流不息的瀑布,从高处依此流到底处。因而也叫瀑布模型。把生命每个步骤都视为一个阶段(过程的一个任务框架),每个阶段都是瀑布的一个台阶,由上而下,互相衔接,按步进行。每个阶段都视为一个里程碑,设置一种基线(过程的质量保证点),基线就是每个阶段进行评审的技术条件或要求。按照传统瀑布模型开发软件的特点阶段间具有顺序性和依赖性。推迟实现的观点。每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。瀑布模型的条件:用户能提出明确的功能性能需求,而且变化很小;分析人员对用户业务熟悉了解;用户使用环境稳定,包括产品、组织、软件硬件环境;低风险:包括市场、

14、技术、法律等风险。事实证明这些条件恰恰是难于或无法满足的。生命周期方法学,各阶段有严格的顺序性和依赖性,特别强调预先定义需求的重要性。先定义,再冻结需求,然后一步一步实现。瀑布模型的优缺点: 若用户能提出明确的功能性能需求,加上有效的管理,则可基本解决软件危机,按时间、按成本、按需求地完成项目。 提供了一套完整的指导思想、开发技术和管理规程,为其他模型提供了良好的基础,软件人员都应当掌握瀑布模型; 瀑布模型反映了工程的实际情况,所以在大型系统工程项目中用的多。 若用户不能提出明确的功能性能需求,则不能使用瀑布模型; 若用户的功能性能需求出现大的变动,则会导致大修改大返工,导致超工期、超成本,甚至失败; 若立项签合同下达任务书和需求分析存在某些错误或不当,必定导致后期设计出现大大小小的多种错误。 把软件过程看成线形模型,实质上各个阶段是重叠和信息交互的,具有迭代性。原型模型(Prototype model)原型法的核心:用交付的,快速建立起来的原型取代了形式化的、僵硬的(不许修改的)规格说明,用户通过在计算机上实际运行和试用原型系统而向开发者提供真实的反馈意见。两类软件系统: 1、需求稳定,而且可以预先指定-瀑布模型。 2、需求模糊或者随时间变化-快速原型法。 原型是不成熟的、试验性的模块。原型法是以面对面的办法启发用户提出自己的各种功能、性能需求,不断修改原型,直到

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 调研报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号