软件工程导论(第五版)课件-第8、9章

上传人:xian****hua 文档编号:134912865 上传时间:2022-08-14 格式:DOC 页数:11 大小:100.50KB
收藏 版权申诉 举报 下载
软件工程导论(第五版)课件-第8、9章_第1页
第1页 / 共11页
软件工程导论(第五版)课件-第8、9章_第2页
第2页 / 共11页
软件工程导论(第五版)课件-第8、9章_第3页
第3页 / 共11页
资源描述:

《软件工程导论(第五版)课件-第8、9章》由会员分享,可在线阅读,更多相关《软件工程导论(第五版)课件-第8、9章(11页珍藏版)》请在装配图网上搜索。

1、第8章一、复习要求1、了解维护的概念和软件维护的类型二、内容提要软件维护的概念(1) 软件维护的定义我们称在软件运行维护阶段对软件产品所进行的修改就是所谓的维护。要求进行维护的原因多种多样,归结起来有三种类型: 改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷; 因在软件使用过程中数据环境发生变化或处理环境发生变化,需要修改软件以适应这种变化。 用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求,为满足这些要求,就需要修改软件把这些要求纳入到软件之中。9、软件维护的类型 纠正性维护也称为改正性维护。在软件交付使用后,必然会有一部分隐藏的错误被带到运行阶

2、段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做纠正性维护。 适应性维护随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。 完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。在维护阶段

3、的最初一、二年,纠正性维护的工作量较大。随着错误发现率急剧降低,并趋于稳定,就进入了正常使用期。然而,由于改造的要求,适应性维护和完善性维护的工作量逐步增加。实践表明,在几种维护活动中,完善性维护所占的比重最大,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50。 预防性维护除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。在整个软

4、件维护阶段所花费的全部工作量中,预防性维护只占很小的比例,而完善性维护占了几乎一半的工作量。从上图可以看到,软件维护活动所花费的工作占整个生存期工作量的70%以上。三、例题分析一、选择题1. 软件维护的类型有 (A B C D )。A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护2. 各种软件维护的类型中最重要的是 ( A )。A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护3. 以下属于完善性维护的有(B)。A) 解决开发是未能测试各种可能条件带来的问题B) 增加联机求助命令C) 考虑未来移植的问题D) 改正发现的错误二、判断题1 软件维护只需要纠正性维护、适

5、应性维护和完善性维护。()2 改进程序的执行效率不会引入错误。()3 强调简明性的程序出错率低。()4 用面向对象方法开发的软件系统,可维护性好。()三、简答题1 为什么要进行软件维护?答:软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。一个中等规模的软件,如果其开发过程需要一二年时间,则它投入使用以后,其运行时间可能持续510年之久。在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时,还解决维护工作本身所产生的问题。做好软件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益。维护阶段的花费约

6、占整个软件生命期花费的67%。因此,应充分认识到维护现有软件的重要意义。第9章 面向对象方法学引论一、复习要求1. 了解面向对象方法学的出发点和基本原则2、了解面向对象的概念, 2.了解统一建模语言UML二、内容提要1、面向对象方法学的出发点和基本原则面向对象方法学(Object - Oriented Methodology,简称OOM)的出发点和基本原则,尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法不同,OOM以数据或信息为主线,把数据和处理结合构成统一体 对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。面向对象方法学四要

7、素对象(object):世界由对象组成。 类 (class) :具有相同属性和操作的对象可划分为类;单个对象可视为某一类的实例 (instance)。 继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。面向对象技术是一个非常实用而强有力的软件开发方法。它的特征是: 方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。 从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修

8、改。 把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。2. 面向对象的概念关于“面向对象”,有许多不同的看法。Coad和Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。(1) 对象(object)对象的定义家具属性属性价格尺寸重量位置颜色桌子价格尺寸重量位置颜色一般意义来讲,对象是现实世界中存在的一个事物。可以是物理的,如一个家具或桌子

9、,可以是概念上的,如一个开发项目。对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。 例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。 对象、属性、操作、消息定义服务服务购买销售称重移动购买销售称重移动对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,在C+中称为成员函数,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。而所谓的消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的

10、某个操作的规格说明。发送给一个对象的消息定义了一个操作名和一个参数表(可能是空的),并指定某一个对象。由一个对象接收的消息则调用消息中指定的操作,并将传递过来的实际参数与参数表中相应的形式参数结合起来。接收对象对消息的处理可能会改变对象中的状态,即改变接收对象的属性,并发送一个消息给自己或另一个对象。可以认为,这种消息的传递大致等价于过程性范型中的函数调用。(2) 类(class)和实例(instance)把具有相同特征和行为的对象归在一起就形成了类。类成为某些对象的模板,抽象地描述了属于该类的全部对象的属性和操作。属于某个类的对象叫做该类的实例。如下图所示。从“李杰”、“王辉”和“杨芳”等对

11、象可得到类“学生”,而这些对象就称为该类的实例。类定义了各个实例所共有的结构,类的每一个实例都可以使用类中定义的操作。实例的当前状态是由实例所执行的操作定义的。 李杰王辉杨芳学生 属性属性属性属性李杰男广东软件1980.49#楼129室王辉男湖南计算机控制1979.19#楼320室杨芳女北京系统结构1979.125#楼418室姓名性别籍贯专业出生年月住址服务服务服务看书实验上课运动看书实验上课运动看书实验上课运动看书实验上课运动服务对象、类与实例 (3) 继承 (inheritance)如果某几个类之间具有共性的东西(信息结构和行为),抽取出来放在一个一般类中,而将各个类的特有的东西放在特殊类

12、中分别描述,则可建立起特殊类对一般类的继承。如下图所示,。各个特殊类可以从一般类中继承共性,这样避免了重复。汽车运货车救火车起重车大轿车特殊类对一般类的继承关系 (7) 多态性多态性是指相同的操作、函数或过程作用于多种类型的对象上并获得不同的结果。即不同的对象,收到同一消息产生完全不同的结果,这种现象称为多态性。例如,在父类“几何图形”中,定义了一个操作“绘图”,它的子类“椭圆”和“矩形”都继承了几何图形的绘图操作。同是“绘图”操作,分别作用在“椭圆”和“矩形”上,却画出不同的图形。4. UML统一建模语言用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是描述系统数据结构的对象模型

13、,描述系统控制结构的动态模型和描述系统功能的功能模型。这三种模型都涉及到数据、控制和操作等共同的概念,只不过每种模型描述的侧重点不同。软件开发主要是软件需求和软件设计,软件需求和软件设计的关键是软件建模。最时尚的是UML的建模思想和Rose的建模实现方式.统一的建模语言(UML)已经在企业中广泛使用,它把Booch、Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML允许软件工程师使用由一组语法的语义的实用的规则支配的符号来表示分析模型。UML常用的图:用例图、类图、对象图、包图、顺序图、状态图提供标准病症信号病历管理病人标准病症信号库 医

14、生值班护士病症监护病情报告管理中央监护使用使用使用 用例图类图订单DateReceivedisPrepaidNumber:String Dispatch() Close()订单项Quantity:IntegerisSatisfied1*1*产品1*客户 name address CreditRating()个人客户团体客户用户 医生值班护士 病人病历管理 病历用户界面 病情报告局部监视报警信号病症监视器中央监护系统 病人病症信号 标准病症信号数据库 病历库标准病症信号库用户层用户界面层应用层数据库层包图病情报告监视器采集信号发送信号信号异常返回打印更新中央监视系统病历报警信号顺序图电梯状态图超

15、时在第一层上移向上移动到达上移空闲到达向下移动下移向第一层移动到达三、例题分析一、选择题1. 下列哪些是面向对象方法的基本机制 ( ABC )。A) 继承B) 消息C) 方法D) 结构2. UML语言支持的建模方式有( ABD )。A) 静态建模B) 动态建模 C) 模块化建模 D) 功能建模 3. 下列各种图可用于动态建模的有( ACD )。A) 状态图 B) 类图 C) 顺序图 D) 活动图4每个对象可用它自己的一组属性和它可执行的一组( C )来表现。A) 函数B) 功能C) 操作D) 数据5面向对象的主要特征除唯一性、继承性、封装性外,还具有( A )A) 多态性B) 移植性C) 完整

16、性D) 兼容性6表示对象交互行为的模型是( D )A) 对象模型B) 静态模型C) 功能模型D) 动态模型7、UML的类图、对象图和( D )是“静态图”。A) 顺序图 B) 状态图 C) 活动图 D) 包图二、判断题1. 面向对象的的方法是以类作为最基本的元素,它是分析问题解决问题的核心。()2. 类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。() 3. 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系()。4. 多态性就是消息有多种类型。()5. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。 () 6. 用例模型的基本组成

17、部件是用例、角色和用例之间的联系。 ()7 Uml的用例图是描述功能的( )三、 简答题1 阐述面向对象的特征,并做简要的解释。答:(1) 对象惟一性。每个对象都有自身惟一的标识,通过这种标识,可找到相应的对象。(2) 分类性。是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。(3) 继承性。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。(4) 多态性。是指相同的操作或函数,过程作用于多种类型的对象上,并获得不同的结果。2 面向对象程序设计有哪些优点?解:开发时间短、效率高、可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性 ,可以在应用程序中大量采用成熟的

18、类库,从而缩短开发时间,这样程序更易于维护、 更新和升级。继承和封装使得应用程序的修改带来的影响更加局部 化。3比较面向对象方法与结构化方法的特点。 解:分析是问题抽象 (做什么),设计是问题求解 (怎么做),实现是问题的解 (结果)。任 何方法学对客观世界的抽象和求解过程都是如此。在问题抽象阶段,结构化方法面向过程, 按照数据变换的过程寻找问题的结点,对问题进行分解。因此,与面向对象方法强调的对象 模型不同,描述数据变换的功能模型是结构化方法的重点。如果问题世界的功能比数据更复 杂或者更重要,那么结构化方法仍然应是首选的方法学。如果数据结构复杂且变换不多, 那么如果以过程主导分析和设计,一旦

19、有系统变更就会给下游开发带来极大混乱。 由于对过程的理解不同,面向过程的功能细分所分割出的功能模块有时会因人而异。而面向 对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。在设计上,结构化方法学产生自顶向下、结构清晰的系统结构。每个模块有可能保持较强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系,程序与数据结构很难封装在一起。如果数据结构复杂,则模块独立性很难保证。面向对象方法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构中,很容易实现程序与数据结构的封装。 在软件工程基本原则中有一条“形式化原则”,即对问题世界的抽象结论应该以形式化语言 (图形语言、伪码语言等)表述出来。结构化方法可以用数据流图、系统结构图、数据辞典、状态转移图、实体关系图来进行系统逻辑模型的描述;而面向对象方法可以使用对象模型图、数据辞典、动态模型图、功能模型图。其中对象模型图近似系统结构图与实体关系图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。*书中的对象模型要清楚

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!