第三章 软件需求分析(2).ppt
《第三章 软件需求分析(2).ppt》由会员分享,可在线阅读,更多相关《第三章 软件需求分析(2).ppt(114页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 软件需求分析软件需求分析(2)计算机世界计算机世界现实世界现实世界影射影射计算机世界计算机世界现实世界现实世界结结构构化化开开发发方方法法结构化结构化结构化结构化分析分析分析分析结构化结构化结构化结构化设计设计设计设计结构化结构化结构化结构化编程编程编程编程OOAOOAOOAOOAOODOODOODOODOOPOOPOOPOOP面面向向对对象象开开发发方方法法 3.4.2 面向对象分析方法v软件开发中为什么要使用面向对象软件开发中为什么要使用面向对象方法?方法?v面向对象分析方法与结构化分析方面向对象分析方法与结构化分析方法有哪些相似之处?有何区别?法有哪些相似之处?有何区别?v
2、面向对象面向对象方法是对过去的一个完全方法是对过去的一个完全突破,还是突破,还是“换汤不换药换汤不换药”?对象(object)现实世界中某个具体的物理实体或概念在计算机现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。逻辑中的映射和体现。对象具有的含义:对象具有的含义:q 在现实世界中:在现实世界中:是客观世界中的一个实体是客观世界中的一个实体q 在面向对象程序中:在面向对象程序中:表达成计算机可理解、可操纵、具有一表达成计算机可理解、可操纵、具有一 定属性和行为的对象定属性和行为的对象q 在计算机世界中:在计算机世界中:是一个可标识的存储区域是一个可标识的存储区域 面向对象方法是
3、一种运用对象、类、面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性继承、封装、聚合、消息传递、多态性等概念来构造系统的等概念来构造系统的软件开发方法软件开发方法。面向对象面向对象面向对象面向对象=对象对象对象对象+类类类类+继承继承继承继承+消息通信消息通信消息通信消息通信面向对象的主要特征:面向对象的主要特征:q封闭性封闭性 (Encapsulation)(Encapsulation)q 继承性继承性 (Inheritance)(Inheritance)q 多态性多态性 (Polymorphism)(Polymorphism)类(类(classclass)具有共同属性和行为
4、的对象的抽象类与对象的关系类是对象的抽象对象是类的实例类类对象对象对象、实体与类对象、实体与类对象实体类抽象数据类计算机世界现实世界计算机逻辑的实现影射抽象实例化抽象概念世界封装封装 封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽)传统方法数据与过程是分离的传统方法数据与过程是分离的过程过程1 1输入输入输入输入输出输出输出输出过程过程2 2过程过程3 3数据实体数据实体属于该对象属于该对象的数据的数据对象对象处理数据的方法处理数据的方法消息消息消息消息消息消息消息消息对象把数据和处理数据的
5、方法封状成一个单元对象把数据和处理数据的方法封状成一个单元传统方法和面向对象方法的比较传统方法和面向对象方法的比较传统方法系统是过程的集合系统是过程的集合系统是过程的集合系统是过程的集合过程与数据实体交互过程与数据实体交互过程与数据实体交互过程与数据实体交互过程接受输入产生输出过程接受输入产生输出过程接受输入产生输出过程接受输入产生输出面向对象方法系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象发送与响应消息对象发送与响应消息对象发送与响应消息对象发送与响应消息继承继承
6、(继承性(继承性inheritance)inheritance)继承性是父类和子类之继承性是父类和子类之间共享数据和方法的机间共享数据和方法的机制制继承性具有传递性继承性具有传递性继承性包括单继承和多继承性包括单继承和多重继承重继承 子类子类继承部分继承部分增加部分增加部分父类父类共性部分共性部分继承性作用 使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率多态(多态性多态(多态性polymorphism)polymorphism)不同的对象收到同一消息可产生完全不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态不同的结果,这一现象叫做多态多态的效果多态的效果 用户发送一个
7、通用的用户发送一个通用的消消息,而实现的细节则由接收对象自息,而实现的细节则由接收对象自行决定行决定多态性的作用 增强了操作的透明性,可理解性和增强了操作的透明性,可理解性和可扩展性可扩展性 增强了软件的灵活性和重用性增强了软件的灵活性和重用性消息(message)消息消息 对象之间相互请求或相互协作的途对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规径,是要求某个对象执行某个功能操作的规格说明格说明消息内容消息内容 通常包含接收方及请求接收方通常包含接收方及请求接收方完成的功能信息完成的功能信息发送方发送方 发出消息,请求接收方响应发出消息,请求接收方响应接收方接收方 收
8、到消息后,经过解释,激活方收到消息后,经过解释,激活方法,予以响应法,予以响应为什么对面向对象方法感兴趣为什么对面向对象方法感兴趣?面向对象方法的主要优点:自然性追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用 可复用性(可重用性)reusebility可扩展性可管理性 面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。可复用性(可重用性)可复用性(可重用性)传统系统分析传统系统分析:面向功能,把系统看成 一组功能OOAOOA:把
9、问题当作一组相互作用的实体,并确定实体间关系(1)(1)方法是对软件开发过程所有阶段进行综合方法是对软件开发过程所有阶段进行综合考虑而得到的考虑而得到的;(2)(2)从生存期的一个阶段到下一个阶段所使用从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性的方法与技术具有高度的连续性;(3)(3)将将OOAOOA、OODOOD、OOPOOP集成到生存期的集成到生存期的相应阶段。相应阶段。面向对象技术的特点面向对象技术的特点 OOOO方方法法改改进进了了在在生生存存期期各各个个阶阶段段间间的的界界面面,因因为为生生存存期期各各个个阶阶段段开开发发出出来来的的“部部件件”都都是是类类,在
10、在面面向向对对象象生生存存期期的的各各个个阶阶段段对对各各个个类类的的信信息息进进行行细细化化,类类成为分析、设计和实现的成为分析、设计和实现的基本单元基本单元。OOOO方法的开发过程方法的开发过程类的生存期模型类的规类的规格说明格说明从废弃从废弃型开发型开发既存类既存类的复用的复用渐增式渐增式的实现的实现渐增式渐增式的测试的测试求精和求精和 维护维护 测试用测试用例和测试例和测试 的开发的开发实现实现从既存从既存类演变类演变类类的的规规格格说说明明指指导导对对存存放放现现存存类类的的软软件件库进行查找库进行查找现存类提供当前应用所需功能现存类提供当前应用所需功能三种可能利用现存类的方向:三种
11、可能利用现存类的方向:现存类的复用现存类的复用 从现存类进行演变从现存类进行演变 从废弃类进行开发从废弃类进行开发 类的设计与实现类的设计与实现对象之间的联系与对象模型面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。对象模型表示静态的、结构的系统数据的性质。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。对象模型对象模型 分类关系(归纳关系、一般与特殊的关系)组成
12、关系(组合关系、整体/部分的关系)对象属性之间的静态的联系 对象行为的动态联系 类及对象间常见的联系类及对象间常见的联系分类关系(一般与特殊的关系)示例学生学生本科生本科生研究生研究生组成关系(整体与部分的关系)示例学科部学科部办公室办公室学院学院实验室实验室对象模型中表现上述联系的结构和连接分类是对象抽象的基础分类是对象抽象的基础 分类结构表现的是事物的一般与特殊的关分类结构表现的是事物的一般与特殊的关系,即系,即“is-ais-a”关系。关系。面向对象术语中常把一般与特殊的关系称面向对象术语中常把一般与特殊的关系称为为泛化(泛化(GeneralizationGeneralization)与
13、与特化特化(SpecializationSpecialization)联系联系(1)(1)分类结构(一般分类结构(一般/特殊结构)特殊结构)存户存户一般一般/特殊结构举例特殊结构举例 一般类一般类(父类、基类、超类父类、基类、超类)特殊类特殊类(子类、具体类子类、具体类)继承继承一个特殊类中的所有对象可继承一般类中的属一个特殊类中的所有对象可继承一般类中的属性性、服务服务、关系关系账号账号姓名姓名余额余额存款存款取款取款 支票存户支票存户 储蓄存户储蓄存户利息率利息率 组装结构表示对象类之间的组成关组装结构表示对象类之间的组成关系,即整体与部分的关系。系,即整体与部分的关系。整体对于部分是整体
14、对于部分是“has-ahas-a”关系。关系。(部分对于整体是部分对于整体是“a-part-of”“a-part-of”关系关系)组装结构体现了面向对象方法的组装结构体现了面向对象方法的 聚合(也叫聚集聚合(也叫聚集 Aggregation Aggregation)原则。原则。(2)(2)组装结构(整体组装结构(整体/部分结构)部分结构)1+1+电源电源主机箱主机箱键盘键盘监视器监视器鼠标鼠标内存内存CPUCPU硬盘硬盘o o 微机微机整体整体/部分结构表示法举例部分结构表示法举例实例连接表现了对象之间的静态联系,实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之间的依赖关通过对象的
15、属性来表现对象之间的依赖关系。系。面向对象术语中把对象之间的实例连面向对象术语中把对象之间的实例连接称为接称为链接链接(Link)(Link),把类之间的实例连接,把类之间的实例连接称为称为关联关联(Association)(Association)。(3)(3)实例连接实例连接(Instance Connection)(Instance Connection)教师教师 指导论文指导论文0,m 10,m 1学生学生教师为学生教师为学生指导论文:指导论文:教师教师 教学教学0,m 0,n 0,m 0,n 学生学生教师为学生教师为学生授课:授课:实例连接实例连接示例及表示示例及表示 允许实例连接带
16、有一组属性,这些属允许实例连接带有一组属性,这些属性通过关联来描述性通过关联来描述 类类 1 1 连接名称连接名称m nm n类类 1 1连接连接属性属性关联关系关联关系(链属性链属性)的表示的表示为之工作为之工作工资工资职务职务雇主雇主雇员雇员 个人个人名字名字身份证号身份证号公司公司名字名字地址地址题目题目答辩时间答辩时间成绩成绩 教师教师学生学生 指导论文指导论文0,m 10,m 1关联关系关联关系(链属性链属性)对象之间的对象之间的通信通信联系。联系。一需要另一个对象的服务,便向它发出一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对个对象请求服务的消息,接收消息的对
17、象响应消息,触发所要求的服务操作。象响应消息,触发所要求的服务操作。消息连接体现了对象行为的消息连接体现了对象行为的动态联系动态联系。(4)(4)消息连接消息连接 (Message Connection)(Message Connection)一家公司的对象模型(一家公司的对象模型(OMTOMT)示例示例为之工作为之工作为之工作为之工作管理管理 0 0,1 1姓名姓名身份证号码身份证号码地址地址员工员工名字名字电话号码电话号码主要产品主要产品地址地址公司公司职务职务雇用雇用解雇解雇项目名项目名预算预算优先级优先级项目项目产品名产品名成本成本重量重量产品产品工人工人经理经理部门部门部门名部门名主
18、持主持参加参加1+1+1+1+1+1+1+1+1+1+生产生产 方法论是如何对复杂系统进行“抽象”的工作,以及如何建立抽象模型。面向对象的方法论面向对象的方法论面向对象分析方法确实不同于结构化分析方法吗?Fichman,R.G and C.F.Kemerer,在“Object-oriented Conventional Analysis and Design Methodologies”中阐述:我们的结论是面向对象分析方法表现了相对面向过程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性质,从而导致了和面向对
19、象的三个基本原理相正交的问题域模型。二二.面向对象分析建模面向对象分析建模(OOA)(OOA)面向对象分析方法使得软件工程师能够面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。成分)的表示来对问题建模。面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。建立分析模型建立分析模型5 5个基本原则:个基本原则:(1 1 1 1)建模信息域;建模信息域;建模信息域;建模信息域;(2 2 2 2)描述模块功能;描述模块功能;描述模块功能;描述模块功能;(3 3 3 3)表示模
20、型行为;表示模型行为;表示模型行为;表示模型行为;(4 4 4 4)分解以模型显示更多细节;分解以模型显示更多细节;分解以模型显示更多细节;分解以模型显示更多细节;(5 5 5 5)早期)早期)早期)早期模型表示问题的本质,而后期模型表示问题的本质,而后期模型表示问题的本质,而后期模型表示问题的本质,而后期 模型提供实现细节。模型提供实现细节。模型提供实现细节。模型提供实现细节。是定义所有和被求解的问题相关的类(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:(1)必须在客户和软件工程师之间沟通了解基本的用户需求;(2)必须标识类(定义属性和方法);(3)必须刻划类层次;(4)表
21、示对象对象关系(对象连接);(5)必须建模对象行为;(6)(1)到(5)递进地反复使用,直至完成建模OOAOOA的意图的意图面向面向对象对象分析方法相似步骤:分析方法相似步骤:(1 1)使用基本需求作为指南选择类和对象;)使用基本需求作为指南选择类和对象;(2 2)为对象标识属性和操作;)为对象标识属性和操作;(3 3)定义组织类的结构和层次;)定义组织类的结构和层次;(4 4)建造对象)建造对象-关系模型的;关系模型的;(5 5)建造对象)建造对象-行为模型。行为模型。由由Rumbaugh Rumbaugh、Booch Booch、Jacobson Jacobson提提出的统一建模语言出的统
22、一建模语言(Unify Modeing (Unify Modeing LanguageLanguage简称简称UML)UML)UMLUML是一种定义良好,易于表达,功是一种定义良好,易于表达,功能强大且普遍实用的建模语言。能强大且普遍实用的建模语言。统一的统一的OOAOOA方法方法 对象模型技术对象模型技术 (OMT,Object Model TechOMT,Object Model Tech.).)对象模型对象模型动态模型动态模型功能模型功能模型基本模型基本模型:三个模型分别从不同角度分析系统三个模型分别从不同角度分析系统对象模型对象模型:描述静态结构描述静态结构,定义做定义做事情的实体事情
23、的实体功能模型功能模型:描述处理描述处理(数据变换数据变换),),指指明系统应明系统应“做什么做什么”动态模型动态模型:描述交互过程描述交互过程,规定什规定什么时候做么时候做分析模型分析模型OMTOMT模型系统分析和设计过程概观图模型系统分析和设计过程概观图产生需求产生需求结构及对象结构及对象设计设计建立模型建立模型问题描述问题描述对象模型、动态模型、功能模型对象模型、动态模型、功能模型详细的对象模型详细的对象模型详细的动态模型详细的动态模型详细的功能模型详细的功能模型分分析析阶阶段段设设计计阶阶段段设置:由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮
24、设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。实例:饮料自动售货机系统实例:饮料自动售货机系统(1)(1)找出对象及其关联找出对象及其关联(2)(2)赋予类及关联的属性数据赋予类及关联的属性数据(3)(3)组织类的结构组织类的结构OMT的的对象图对象图步骤步骤:设置:一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动
25、调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。找出饮料自动售货机系统中的对象找出饮料自动售货机系统中的对象描述系统内部对象结构,包括对象本身的描述系统内部对象结构,包括对象本身的定义、对象的属性、操作,以及对象与其它对定义、对象的属性、操作,以及对象与其它对象之间的关系。象之间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 软件需求分析2 第三 软件 需求 分析
限制150内