第二部分软件需求分析与建模面向对象分析PPT讲稿.ppt
《第二部分软件需求分析与建模面向对象分析PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二部分软件需求分析与建模面向对象分析PPT讲稿.ppt(198页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二部分软件需求分第二部分软件需求分析与建模面向对象分析与建模面向对象分析析第1页,共198页,编辑于2022年,星期三实验实验1:软件工程:软件工程CASE工具工具什么是软件工程环境?什么是软件工程环境?CASE工具的作用?工具的作用?主流的代表性主流的代表性CASE工具?工具?软件工程各阶段工具需求?软件工程各阶段工具需求?要求:理解实验内容与方法、提交实验报告要求:理解实验内容与方法、提交实验报告习题习题3、4、61.6 1.6 实验要求及习题实验要求及习题第2页,共198页,编辑于2022年,星期三1.1.现代软件工程现代软件工程(国家示范性软件学院系列教材国家示范性软件学院系列教材)
2、张家浩张家浩/东南大学东南大学 机械工业出版社机械工业出版社 2009.12009.12.2.软件工程软件工程 理论与实践理论与实践 许家珆许家珆 曾翎曾翎 彭德中彭德中 编著编著 高等教育出版社高等教育出版社 2004.72004.73.3.软件工程软件工程-实践者的研究方法实践者的研究方法 (美)(美)Roger S.PressmanRoger S.Pressman著著 郑人杰等译郑人杰等译 机械工业出版社机械工业出版社 2008.62008.6 4.4.Software Engineering,6th EditionSoftware Engineering,6th EditionSoft
3、ware Engineering,6th EditionSoftware Engineering,6th Edition Sommerville.I.(Sommerville.I.(影印版影印版)机械工业出版社机械工业出版社 2003.42003.4主要参考书:主要参考书:主要参考书:主要参考书:第3页,共198页,编辑于2022年,星期三总总 目目 录录第第1 1章章 软件工程学概述软件工程学概述(2 2学时)学时)第第2 2章章 软件过程软件过程(2 2学时)学时)第第3 3章章 软件过程模型软件过程模型(4 4学时)学时)第第4 4章章 案例研究案例研究(2 2学时)学时)第第5 5章章
4、 软件需求分析过程软件需求分析过程(4 4学时)学时)第第6 6章章 结构化分析建模结构化分析建模(4 4学时)学时)第第7 7章章 面向对象分析面向对象分析(6 6学时)学时)第第8 8章章 软件设计软件设计(4 4学时)学时)第第9 9章章 结构化设计方法结构化设计方法(4 4学时)学时)第4页,共198页,编辑于2022年,星期三总总 目目 录录第第1010章章 面向对象设计面向对象设计(4 4学时)学时)第第1111章章 软件实现软件实现(2 2学时)学时)第第1212章章 软件测试软件测试(4 4学时)学时)第第1313章章 软件维护软件维护(2 2学时)学时)第第1414章章 软件
5、项目管理软件项目管理(2 2学时)学时)第第1515章章 软件项目估算软件项目估算(1 1学时)学时)第第1616章章 软件项目计划与管理软件项目计划与管理(1 1学时)学时)第5页,共198页,编辑于2022年,星期三第第7章章 面向对象分析面向对象分析7.1面向对象建模7.2用例建模7.3建立领域模型7.4行为建模7.5案例分析7.6实验要求及习题第6页,共198页,编辑于2022年,星期三引言:传统软件开发方法的局限性引言:传统软件开发方法的局限性传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。软件能力问题已经成为制约软件发展的因素。软件工程自70年代以来,
6、有力的推动了软件能力的解决。自顶向下的分析与设计的方法、软件项目的工程化管理、软件工具和开发环境、软件质量保证等都对软件的发展起了非常重要的作用。传统的软件开发方法在当时的软件工程中起了主导作用,随着系统复杂性、多变性增强,传统方法的缺陷就显露了出来:(1)面向过程为主。系统围绕着由计算机来实现功能的复杂过程而建立,在分析和解决问题时与人们对现实世界的认识有一定差距。第7页,共198页,编辑于2022年,星期三(2)软件结构稳定性差。需求分析阶段重点是功能模型,难以彻底明确全部需求。设计阶段的软件体系结构是基于系统功能建立的。每个模块完成一个基本功能,多个模块的组合完成一个整体功能。一个模块的
7、变动可能会影响到多个模块。用户的需求大多针对功能,功能的变化会引起体系结构的变化,不利于系统的维护。(3)软件开发的抽象力度小。解决问题的类型一般用于“输入-处理-输出”为核心的数据处理系统,不适应于复杂的实时、交互、事件驱动、分布式等新型应用的系统开发。(4)软件重用未能得到很好的解决。传统的方法一般从“零”开始开发软件,数据与操作作为相互分离的实体来考虑,使软件的可复用性差。重用的实施仅仅是公用模块的调用。面向对象的封装性、继承性、多态性等特性支持软件重用且重用的粒度大。软件的重用导致更快地、高质量地开发软件,为软件工业化生产奠定基础。第8页,共198页,编辑于2022年,星期三9传统方法
8、数据与过程是分离的传统方法数据与过程是分离的过程过程1 1输入输入输入输入输出输出输出输出过程过程2 2过程过程3 3数据实体数据实体属于该对象属于该对象的数据的数据对象对象处理数据的方法处理数据的方法消息消息消息消息对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元消息消息消息消息第9页,共198页,编辑于2022年,星期三传统方法与面向对象方法的比较传统方法与面向对象方法的比较传统方法与面向对象方法的比较传统方法与面向对象方法的比较面向对象方法面向对象方法面向对象方法面向对象方法系
9、统是系统是系统是系统是交互对象交互对象交互对象交互对象的集合的集合的集合的集合对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象对象对象对象发送与响应消息发送与响应消息发送与响应消息发送与响应消息传统方法传统方法系统是系统是过程过程的集合的集合过程与数据实体交互过程与数据实体交互过程过程接受输入并产生输出接受输入并产生输出第10页,共198页,编辑于2022年,星期三1.与人类习惯的思维方法一致与人类习惯的思维方法一致 传统的程序设计技术是面向过程的设计方法,这种传统的程序设计技术是面向过程的设计方法,这种方法以方法以算法算法为核心,把数据和过程作为相
10、互独立的部分。为核心,把数据和过程作为相互独立的部分。用这种方法所设计出来的软件系统其解空间与问题空用这种方法所设计出来的软件系统其解空间与问题空间并不一致,令人感到难于理解。间并不一致,令人感到难于理解。面向对象的软件开发过程围绕着建立问题域的面向对象的软件开发过程围绕着建立问题域的对象模对象模型型来进行:对问题领域进行自然的分解,确定需要使来进行:对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级,在对象之间用的对象和类,建立适当的类等级,在对象之间传递传递消息消息实现必要的联系。实现必要的联系。面向对象方法学的优点面向对象方法学的优点第11页,共198页,编辑于2022年
11、,星期三2.稳定性好稳定性好 传统的软件开发方法以算法为核心,开发过程基于功传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。能分析和功能分解。用传统方法所建立起来的软件系统的结构紧密依赖用传统方法所建立起来的软件系统的结构紧密依赖于系统所要完成的功能,当功能需求发生变化时将引起于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。软件结构的整体修改。面向对象方法用对象模拟问题领域中的面向对象方法用对象模拟问题领域中的实体实体,以对,以对象间的联系刻画实体间的联系。象间的联系刻画实体间的联系。由于现实世界中的实体是相对稳定的,因此,以对由于现实世界中的实体是相对稳定
12、的,因此,以对象为中心构造的软件系统也是比较稳定的。象为中心构造的软件系统也是比较稳定的。第12页,共198页,编辑于2022年,星期三3.可重用性好可重用性好 用已有的零部件装配新的产品,是典型的用已有的零部件装配新的产品,是典型的重用技术重用技术,例如,用标准函数库中的函数作为例如,用标准函数库中的函数作为“预制件预制件”来建造来建造新的软件系统。新的软件系统。重用是提高生产率的最主要的方法。重用是提高生产率的最主要的方法。传统的软件重用技术是利用标准函数库,实际的库函传统的软件重用技术是利用标准函数库,实际的库函数往往仅提供最基本、最常用的功能。数往往仅提供最基本、最常用的功能。面向对象
13、方法所使用的对象中,数据和操作是作为面向对象方法所使用的对象中,数据和操作是作为平等伙伴出现的,故对象具有很强的自含性。平等伙伴出现的,故对象具有很强的自含性。对象固有的封装性和信息隐藏机制,使得对象的对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。内部实现与外界隔离,具有较强的独立性。对象是比较理想的模块和可重用的软件成分。对象是比较理想的模块和可重用的软件成分。第13页,共198页,编辑于2022年,星期三 面向对象的软件技术在利用可重用的软件成分构造新面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。的软件系统时,有很大的灵活性。
14、有两种方法可以重复使用一个对象类:有两种方法可以重复使用一个对象类:(1)创建该类的创建该类的实例实例,从而直接使用它;,从而直接使用它;(2)从它派生出一个满足当前需要的从它派生出一个满足当前需要的新类新类。继承性机制使得子类不仅可以重用其父类的数据结构继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。扩充,这种修改并不影响对原有类的使用。由于可以像使用集成电路由于可以像使用集成电路(IC)构造计算机硬件那样,构造计算机硬件那样,比较方便地重用对象类来构造软件
15、系统,因此,有人比较方便地重用对象类来构造软件系统,因此,有人把对象类称为把对象类称为“软件软件IC”。第14页,共198页,编辑于2022年,星期三4.较易开发大型软件产品较易开发大型软件产品 在开发大型软件产品时,组织开发人员的方法不恰在开发大型软件产品时,组织开发人员的方法不恰当往往是出现问题的主要原因。当往往是出现问题的主要原因。用面向对象方法学开发软件时,构成软件系统的每个用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据、操作、功能和用对象就像一个微型程序,有自己的数据、操作、功能和用途,可以把一个大型软件产品分解成一系列本质上相互独途,可以把一个大型
16、软件产品分解成一系列本质上相互独立的小产品来处理。立的小产品来处理。对于大型软件产品来说,面向对象范型优于结构化范对于大型软件产品来说,面向对象范型优于结构化范型。型。第15页,共198页,编辑于2022年,星期三5.可维护性好可维护性好 由于下述因素的存在,使得用面向对象方法所开由于下述因素的存在,使得用面向对象方法所开发的软件可维护性好:发的软件可维护性好:(1)面向对象的软件结构稳定性比较好;面向对象的软件结构稳定性比较好;(2)面向对象的软件比较容易修改;面向对象的软件比较容易修改;(3)面向对象的软件比较容易理解;面向对象的软件比较容易理解;(4)易于测试和调试。易于测试和调试。第1
17、6页,共198页,编辑于2022年,星期三概括地说,面向对象方法具有下述4个要点:(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。(3)按照子类(派生类)与父类(基类)的关系,把若干个对象类组成一个层次结构的系统(类等级)。(4)对象彼此之间仅能通过传递消息互相联系。第20页,共198页,编辑于2022年,星期三1.类(class)人类习惯于把有相似特征的事物归为一类,分类是人类认识客观世界的基本方法。类(Class)是具有相同属性和服务的
18、一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。类代表一个抽象的数据类型,对象是在客观世界中实际存在的类的实例。类体现了人们认识事物的基本思维方法:分类面向对象基本概念面向对象基本概念第21页,共198页,编辑于2022年,星期三对象对象 vs vs 类类对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的象,抽象出对象的“本质本质”。类是共享一个公用结构和一个公共行为对象集合类是共享一个公用结构和一个公共行为对象集合 类是静态的,对象是动态的;类是一般化,对象是个性化;类
19、是类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体定义,对象是实例;类是抽象、对象是具体 第22页,共198页,编辑于2022年,星期三2.实例实例(instance)实例就是由某个特定的类所描述的一个具体的对象。当使用“对象”这个术语时,既可以指一个具体的对象,也可以泛指一般的对象。当使用“实例”这个术语时,必然是指一个具体的对象。类类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。对象对象是动态的,对象在程序执行时可以被创建和删除。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内类是对象的抽象,而对象是类的具体实例。类是抽象
20、的,不占用内存,而对象是具体的,占用存储空间。存,而对象是具体的,占用存储空间。第23页,共198页,编辑于2022年,星期三判断下列各项是类还是类的判断下列各项是类还是类的实例?实例?1我的小汽车我的小汽车 2人员人员 3王晓明王晓明 4交通工具交通工具 5教授教授 6计算机系计算机系 7中国工人中国工人 8清华大学学生清华大学学生 9日本国日本国 10喷气式战机喷气式战机 1实例实例2类类 3实例实例 4类类5类类6实例实例7类类 8类类9实例实例 10类类第24页,共198页,编辑于2022年,星期三3.消息消息(message)消息(Message)是对象发出的服务请求,一般包含提供服
21、务的对象标识、服务标识、输入信息和应答信息等。一个对象向另一个对象发出消息请求某项服务,接收消息的对象响应该消息,激发所要求的服务操作,并将操作结果返回给请求服务的对象。4.方法方法(method)方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。第25页,共198页,编辑于2022年,星期三5.属性(attribute)属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。6.封装(encapsulation)所谓封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。可见性是指
22、对象的属性和服务允许对象外部存取和引用的程度。第26页,共198页,编辑于2022年,星期三对象具有封装性的条件如下:(1)有一个清晰的边界。所有私有数据和实现操作的代码都被封装在这个边界内。(2)有确定的接口。这些接口就是对象可以接受的消息。(3)受保护的内部实现。实现对象功能的细节不能在定义该对象的类的范围外访问。封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。7.继承(inheritance)继承是子类自动地共享基类中定义的数据和方法的机制。面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组成一个层次结构的系统(类等级)。第27页,共198页,编辑于2022年,星期三
23、实现继承机制的原理实现继承机制的原理第28页,共198页,编辑于2022年,星期三继承的作用继承的作用 简化了人们对现实世界的认识和描述;简化了人们对现实世界的认识和描述;对于软件复用是十分有益的。对于软件复用是十分有益的。继承的类型继承的类型 单继承:子类只从一个父类继承;单继承:子类只从一个父类继承;多继承:子类从多个父类继承。多继承:子类从多个父类继承。第29页,共198页,编辑于2022年,星期三多态性机制为软件多态性机制为软件的结构设计提供了的结构设计提供了灵活性,减少了信灵活性,减少了信息冗余,明显提高息冗余,明显提高了软件的可复用性了软件的可复用性和可扩充性。和可扩充性。8.多态
24、性多态性(polymorphism)n多态性的意思是“有许多形态”。n多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。n在类等级的不同层次中可以共享一个行为的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。n当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。第30页,共198页,编辑于2022年,星期三9.重载(overloading)有两种重载:u函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。u运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同
25、或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同的。重载进一步提高了面向对象系统的灵活性和可读性。第31页,共198页,编辑于2022年,星期三几种面向对象方法几种面向对象方法20世纪80年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动:标识类及对象描述类及对象之间的关系定义类的属性和操作 第33页,共198页,编辑于2022年,星期三1、Booch方法Booch是面向对象方法最早的提出者之一,提出了面向对象软件工程的概念。提出了“微开发过程”和“宏开发过程”的思想。该方法提出建立以下模型:类图、对象图、状态转移图、时序图、模块图、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 部分 软件 需求 分析 建模 面向 对象 PPT 讲稿
限制150内