




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程2022/9/142第1章 软件工程学概述 1.1 软件危机 1.2 软件工程 1.3 软件生命周期1.4 软件过程1.5 小结2022/9/143软件危机的介绍1.1 软件危机硬件和软件发展的不平衡,硬件性能的发展极其迅速,给软件提出了更高的要求软件开发和维护成本越来越大,令人吃惊地高失败的软件开发项目屡见不鲜什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2022/9/144软件危机软件危机的表现软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难软件开发速度跟不上计算机发展速度软件危机的原因技术原因软件规模越来越大 软件复杂度越来越高 管理
2、原因软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性对用户需求没有完整准确的认识,就匆忙着手编写程序如何克服软件危机 :软件工程2022/9/1452022/9/146引入同一变动付出的代价随时间变化的趋势问题在哪里?软件开发链条的“放大”作用。(规范每个环节)只有早期发现问题,才会尽量减少损失。(失之毫厘,谬以千里)但客观规律:用户的牙膏不会一下子挤完。(静态开发方法“天生”会延迟问题的发现)2022/9/147消除软件危机的途径对计算机软件正确认识。(软件的偏见、定义及特征)推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。开发和使用更好的软件工具。
3、需要组织管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。无章法(个人英雄主义) 工程项目管理模式(团队合作开发)软件工程三要素2022/9/1481.2 软件工程软件工程(IEEE)1968年秋,提出软件工程1) 将系统化、规范化、可量化的工程原则和方法,应用于软件的开发、运行和维护。2) 对1)中方法的理论研究。主要目标:高效开发高质量软件。软件工程规范工业界:参照修改其它工程项目的管理模式如 ISO, PMI, Six Sigma学术界:CMM2022/9/149软件工程基本原理 (开发与维护的指导)用分阶段的生命周期计划严格管理坚持进行阶段评审实
4、行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性2022/9/1410软件的生命周期 软件开发过程瀑布模型快速原型、螺旋模型 喷泉模型等软件开发新过程敏捷软件开发(极限编程XP)统一软件开发过程软件开发的规律软件开发方法 结构化方法面向对象方法Jackson系统开发方法模块化方法软件复用2022/9/1411软件工程方法学把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(paradigm)。软件工程(方法学)三个要素:方法、工具和过程。方法是完成软件开发各项任务的技术,回答“如何做”;工具
5、是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答“如何控制、协调、保证质量”。2022/9/1412传统方法学也称为生命周期方法学或结构化范型。 当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。结构化静态分析,面向对象动态分析传统方法学2022/9/1413传统方法的特点生命周期模型软件过程划分为若干个阶段每个阶段有各自的任务阶段之间有某种顺序性2022/9/1414面向对象方法:对象作为融合数据及在数据之
6、上的操作行为的统一的软件构件。把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。对象彼此间仅能通过发送消息互相联系封装性。数据:静态操作:动态Everything is Object.2022/9/1415OO特点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式。用面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。概念和表示方法上的一致性,阶段间平滑(无缝)过渡。特殊到一
7、般的归纳思维过程;一般到特殊的演绎思维过程。(继承的思想)2022/9/1416OO特点 (2)最终产品中的对象与现实世界中的实体相对应,降低了复杂性,提高了可理解性,简化了软件的开发和维护工作。对象是相对独立的实体,容易在软件产品中重复使用,促进了软件重用。面用对象方法特有的继承性,也进一步提高了面向对象软件的可重用性。2022/9/1417当需求变化时:要求服务员礼貌待客!- 问候模拟人类思维迭代开发设计简单、容易理解2022/9/1418面向对象分析类图的例子2022/9/14191.3 软件生命周期 软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个
8、阶段,每个阶段有各自的任务。1软件定义2软件开发3运行维护2022/9/1420问题定义(领域分析1)要解决的问题是什么可行性研究 (领域分析2,问题背景)上一个阶段所确定的问题是否有行得通的解决办法需求分析仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”。要用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明(specification)。2022/9/1421概要设计概括地回答“怎样实现目标系统?”这个问题。概要设计又称为初步设计、逻辑设计、高层设计或总体设计。可以给出实现目标系统的几种可能的方案。另一项主要任务是设计程序的体系结构,即确定程序由哪些模块组成以及
9、模块间的关系。详细设计任务是把解法具体化,回答“应该怎样具体地实现这个系统”这个关键问题。还不是编写程序,而是设计出程序的详细规格说明。又称为模块设计、物理设计或低层设计。 2022/9/1422编码和单元测试关键任务是写出正确的容易理解、容易维护的程序模块,并测试。综合测试关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。集成测试、验收测试、系统测试分析系统的可靠性记录测试计划、详细测试方案及实际测试结果,作为软件配置的一部分。2022/9/1423软件维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有四类维护活动改正性维护,也就是诊断和改正在
10、使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。2022/9/14241.4 软件过程在实际软件开发时,软件规模、种类、开发环境及开发时使用的技术方法等因素,影响阶段的划分。软件开发软件维护软件定义生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型,现在仍然是应用得最广泛的过程模型。按照传统的瀑布模型来开发软件,有如下特点。阶段间具有顺序性和依赖性推迟实现的观点清楚地区分逻
11、辑设计与物理设计,尽可能推迟程序的物理实现。2022/9/1425瀑布模型 2022/9/1426传统瀑布模型 传统的瀑布模型 不希望有“变化”变化来的越晚,付出的代价越高。设计阶段过多的假设,导致理想化、一厢情愿的东西过多。(用户只参与需求)“文档驱动”,静态2022/9/1427质量保证的观点每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。2022/9/1428实际瀑布模型可以在一定程度解决“变化”的问题如何“拥抱”变化?实际的瀑布模型2022/9/1429快速原型模型快速建立起可以运行的程序,
12、其功能往往是最终产品功能的子集。模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户试用,通过实践了解目标系统的概貌。2022/9/1430快速原型模型2022/9/1431快速原型开发快速原型的本质是“快速”。尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。(原型通常没有严格的规范化,缺少文档,难以维护)2022/9/1432增量模型也称为渐增模型。把软件产品作为一系列增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基
13、本需求,提供最核心的功能。(滚雪球方式)2022/9/1433增量模型瀑布模型:力求一次性给用户完整的系统。增量模型:逐步增加系统功能。需要开放的架构设计。2022/9/1434风险更大的增量模型2022/9/1435螺旋模型螺旋模型的基本思想是使用原型及其他方法尽量降低风险。在每个阶段之前都增加了风险分析过程的快速原型模型。完整的螺旋模型中带箭头的点划线的长度代表当前累计的开发费用,螺线旋过的角度值代表开发进度。2022/9/1436简化的螺旋模型原型模型可以在一定程度上降低风险,但对有些风险也无能为力。需要专业的风险评估人员。2022/9/1437完整的螺旋模型2022/9/1438喷泉模型迭代是OO开发过程的主要特性。喷泉模型是典型的面向对象生命周期模型。“喷泉” 体现了面向对象软件开发过程迭代和无缝的特性。为避免喷泉模型的过分无序,把一个线性过程作为总目标。迭代 2022/9/1439喷泉模型迭代:逐步求精阶段间没有明显的界限面向对象的思想保证了各个阶段开发的一致性。2022/9/1440敏捷软件开发快速适应需求变化提高软件生产率灵活、动态的人员组织方式面向业务目标持续改进和重组2022/9/1441Rational统一过程2022/9/1442敏捷过程与极限编程敏捷软件开发宣言个体和交互胜过过程和工具可以工作的软件胜过面面俱到的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新员工岗前安全培训考试试题重点
- 2025-2030年金属铜市场前景分析及投资策略与风险管理研究报告
- 2025年工程项目的风险评估方法试题及答案
- 2025-2030年防辐用品行业市场发展分析及前景趋势与投资战略研究报告
- 2025-2030年门窗木材行业风险投资发展分析及投资融资策略研究报告
- 2025-2030年针织衫行业风险投资发展分析及投资融资策略研究报告
- 2025-2030年酚酞片产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年速溶茶粉行业市场深度分析及前景趋势与投资研究报告
- 2025-2030年逆变器行业市场发展分析及投资前景研究报告
- 2025-2030年轮胎起重机行业市场发展分析及发展趋势与投资研究报告
- 诉讼文书送达地址确认书
- 一级病原微生物实验室危害评估报告
- 茶叶加工机械与设备(全套524张课件)
- 五年级下册数学课件-4.分数连加、连减和加减混合运算及应用练习 苏教版 (共11张PPT)
- 设备机房出入登记表
- 电脑节能环保证书
- 工程质保金付款申请表格
- 建房界址四邻无争议确认表
- 肝胆外科住院医师规范化培训理论考试(题库)
- 机械设备安装与维修理论教案
- 房屋外立面改造施工组织设计
评论
0/150
提交评论