《软件需求分析》PPT课件_第1页
《软件需求分析》PPT课件_第2页
《软件需求分析》PPT课件_第3页
《软件需求分析》PPT课件_第4页
《软件需求分析》PPT课件_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.4分析建摸方法,结构化分析(传统建模方法)面向对象分析,计算机世界,现实世界,影射,计算机世界,现实世界,结构化开发方法,结构化分析,结构化设计,结构化编程,OOA,OOD,OOP,面向对象开发方法,3.4.2面向对象分析方法,软件开发中为什么要使用面向对象方法?面向对象分析方法与结构化分析方法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全突破,还是“换汤不换药”?,对象(object),现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。对象具有的含义:在现实世界中:是客观世界中的一个实体在面向对象程序中:表达成计算机可理解、可操纵、具有一定属性和行为的对象在计算机世界中:是一个可标识的存储区域,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。,面向对象=对象+类+继承+消息通信,面向对象的主要特征:封闭性(Encapsulation)继承性(Inheritance)多态性(Polymorphism),类(class),具有共同属性和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例,类,对象,对象、实体与类,对象,实体,类,抽象数据类,计算机世界,现实世界,计算机逻辑的实现,影射,抽象,实例化,抽象,概念世界,封装,封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽),传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,传统方法和面向对象方法的比较,传统方法系统是过程的集合过程与数据实体交互过程接受输入产生输出,面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息,继承(继承性inheritance),继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承,子类,继承部分,增加部分,父类,共性部分,继承性作用,使软件系统具有开放性更好地进行抽象与分类增强代码的重用率,多态(多态性polymorphism),不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态多态的效果用户发送一个通用的消息,而实现的细节则由接收对象自行决定,多态性的作用,增强了操作的透明性,可理解性和可扩展性增强了软件的灵活性和重用性,消息(message),消息对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容通常包含接收方及请求接收方完成的功能信息发送方发出消息,请求接收方响应接收方收到消息后,经过解释,激活方法,予以响应,为什么对面向对象方法感兴趣?,面向对象方法的主要优点:自然性追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用可复用性(可重用性)reusebility可扩展性可管理性,面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。,可复用性(可重用性),传统系统分析:面向功能,把系统看成一组功能OOA:把问题当作一组相互作用的实体,并确定实体间关系,(1)方法是对软件开发过程所有阶段进行综合考虑而得到的;(2)从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性;(3)将OOA、OOD、OOP集成到生存期的相应阶段。,面向对象技术的特点,OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。,OO方法的开发过程,类的生存期模型,类的规格说明,从废弃型开发,既存类的复用,渐增式的实现,渐增式的测试,求精和维护,测试用例和测试的开发,实现,从既存类演变,类的规格说明指导对存放现存类的软件库进行查找现存类提供当前应用所需功能三种可能利用现存类的方向:现存类的复用从现存类进行演变从废弃类进行开发,类的设计与实现,对象之间的联系与对象模型,面向对象方法开发软件通常建立的三种形式的模型描述系统数据结构的对象模型描述系统控制结构的动态模型描述系统功能的功能模型三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。,对象模型表示静态的、结构的系统数据的性质。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。,对象模型,分类关系(归纳关系、一般与特殊的关系)组成关系(组合关系、整体/部分的关系)对象属性之间的静态的联系对象行为的动态联系,类及对象间常见的联系,分类关系(一般与特殊的关系)示例,学生,本科生,研究生,组成关系(整体与部分的关系)示例,学科部,办公室,学院,实验室,对象模型中表现上述联系的结构和连接,分类是对象抽象的基础分类结构表现的是事物的一般与特殊的关系,即“is-a”关系。面向对象术语中常把一般与特殊的关系称为泛化(Generalization)与特化(Specialization)联系,(1)分类结构(一般/特殊结构),存户,一般/特殊结构举例,一般类(父类、基类、超类),特殊类(子类、具体类),继承,一个特殊类中的所有对象可继承一般类中的属性、服务、关系,账号姓名余额,存款取款,支票存户,储蓄存户,利息率,组装结构表示对象类之间的组成关系,即整体与部分的关系。整体对于部分是“has-a”关系。(部分对于整体是“a-part-of”关系)组装结构体现了面向对象方法的聚合(也叫聚集Aggregation)原则。,(2)组装结构(整体/部分结构),1+,电源,主机箱,键盘,监视器,鼠标,内存,CPU,硬盘,o,微机,整体/部分结构表示法举例,实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之间的依赖关系。面向对象术语中把对象之间的实例连接称为链接(Link),把类之间的实例连接称为关联(Association)。,(3)实例连接(InstanceConnection),教师,指导论文0,m1,学生,教师为学生指导论文:,教师,教学0,m0,n,学生,教师为学生授课:,实例连接示例及表示,允许实例连接带有一组属性,这些属性通过关联来描述,关联关系(链属性)的表示,为之工作,工资职务,雇主,雇员,个人名字身份证号,公司名字地址,题目答辩时间成绩,教师,学生,指导论文0,m1,关联关系(链属性),对象之间的通信联系。一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对象响应消息,触发所要求的服务操作。消息连接体现了对象行为的动态联系。,(4)消息连接(MessageConnection),一家公司的对象模型(OMT)示例,为之工作,管理0,1,姓名身份证号码地址,员工,名字电话号码主要产品地址,公司,职务,雇用解雇,项目名预算优先级,项目,产品名成本重量,产品,工人,经理,部门,部门名,主持,参加,1+,1+,1+,1+,1+,生产,方法论是如何对复杂系统进行“抽象”的工作,以及如何建立抽象模型。,面向对象的方法论,面向对象分析方法确实不同于结构化分析方法吗?Fichman,R.GandC.F.Kemerer,在“Object-orientedConventionalAnalysisandDesignMethodologies”中阐述:我们的结论是面向对象分析方法表现了相对面向过程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性质,从而导致了和面向对象的三个基本原理相正交的问题域模型。,二.面向对象分析建模(OOA),面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。,面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。,建立分析模型5个基本原则:(1)建模信息域;(2)描述模块功能;(3)表示模型行为;(4)分解以模型显示更多细节;(5)早期模型表示问题的本质,而后期模型提供实现细节。,是定义所有和被求解的问题相关的类(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:(1)必须在客户和软件工程师之间沟通了解基本的用户需求;(2)必须标识类(定义属性和方法);(3)必须刻划类层次;(4)表示对象对象关系(对象连接);(5)必须建模对象行为;(6)(1)到(5)递进地反复使用,直至完成建模,OOA的意图,面向对象分析方法相似步骤:(1)使用基本需求作为指南选择类和对象;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)建造对象-关系模型的;(5)建造对象-行为模型。,由Rumbaugh、Booch、Jacobson提出的统一建模语言(UnifyModeingLanguage简称UML),UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言。,统一的OOA方法,对象模型技术(OMT,ObjectModelTech.),对象模型,动态模型,功能模型,基本模型:,三个模型分别从不同角度分析系统,对象模型:描述静态结构,定义做事情的实体功能模型:描述处理(数据变换),指明系统应“做什么”动态模型:描述交互过程,规定什么时候做,分析模型,OMT模型系统分析和设计过程概观图,产生需求,结构及对象设计,建立模型,问题描述,对象模型、动态模型、功能模型,详细的对象模型详细的动态模型详细的功能模型,分析阶段,设计阶段,设置:由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。,实例:饮料自动售货机系统,(1)找出对象及其关联(2)赋予类及关联的属性数据(3)组织类的结构,OMT的对象图,步骤:,设置:一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。,找出饮料自动售货机系统中的对象,描述系统内部对象结构,包括对象本身的定义、对象的属性、操作,以及对象与其它对象之间的关系。对象模型是OMT方法论中最重要的部分,动态模型、功能模型都将依次而建立对象模型以对象图形式呈现,对象图由类构成。,对象模型,饮料自动售货机系统对象图,贩卖机,饮料号码价格,投币金额显示按纽退币售完显示,存量计算器,饮料号码存量,递减售完显示重置,选择钮,选择钮状态,灯亮灯熄售完灯亮按钮,顾客,姓名硬币,投币-置入拿取饮料,退币杆,退币杆状态,拉动,金额计算器,金额,累加找零重置,购买,选取,被拉动,属于,属于,属于,属于,为所有模型实体准备一个数据字典,精确描述每一个对象类,包括:成员约束关联、属性、操作,建立数据字典,动态模型,用来描述系统与时间相关的动态行为即系统的控制逻辑,表现对象彼此间经过相互作用后,随时间改变的不同运算顺序。动态模型以“事件”(Events)和“状态”(States)为其模型的主要概念。动态模型以状态图形式呈现。,瞬时发生的行为;引起对象状态转换的控制信息。事件类和属性举例:飞机起飞(航线、航班号、城市)按动鼠标按钮(按钮、位置).,事件,脚本和事件踪迹脚本是系统某一次特定运行时期内发生的事件序列。(脚本也叫场景)事件追踪图侧重说明发生于系统执行过程中的一个特定“场景(scenarios)”。,通话脚本(只包括影响电话线的事件),状态:闹铃响描述:闹铃响表示预定时间到产生本状态的事件序列:设置闹钟(预定时间)不包括清除闹铃的任何后续操作当前时间=预定时间表征本状态的条件:闹铃=开,从预定时间起没有按键的情况下,目标时间当前时间目标时间=20秒本状态接受的各种时间:事件动作下一个状态当前时间=目标时间+20重新设置闹钟正常按下按钮(任意按钮)重新设置闹钟正常,状态:对象属性和对象关联的抽象形式,动态模型表示方法,状态图状态和事件的网络,侧重描述每一类对象的动态行为。,状态图,状态1,Do:活动1,状态2,.,事件1条件1/动作1,结束事件,初始事件,空闲,可视菜单,左边按钮按下/显示弹出菜单,左边按钮弹起/擦除弹出菜单,光标移动/高亮菜单项,弹出菜单动作,事件追踪图举例:打电话的事件追踪图,挂断电话,电话切断,挂断电话,通话,通话,停止振铃,停止振铃,响应电话,电话振铃,铃声,拨号(3),拨号(7,拨号(3),拨号(2),电话忙音结束,拨号(8),电话忙音开始,拿起听筒,电话线,接电话者,打电话者,存量为零,找零,扣减存量,灯亮,余额,饮料,结算,选择键#,选择按纽,灯亮,金额总够,显示总额,总额,累加,投入硬币,金额计算器,存量计算器,顾客,售货机,选择键,举例:饮料自动售货机系统的事件追踪图,售完灯,用来描述系统中数据的变换。传统DFD+控制流,对象A,对象B,过程1,过程2,数据存储区,控制流,数据流,3.功能模型,需求陈述对象建模动态建模功能建模添加操作反复建模,基于三个模型的分析步骤,1.分析阶段理解应用问题,建立对象模型、动态模型和功能模型,说明对象关联、控制流及数据变换。2.系统设计阶段确定系统框架,考虑并发任务、通讯机制和数据存储策略。3.对象设计阶段从实现的角度细化分析对象模型、动态模型和功能模型,OMT支持整个软件生命周期,OMT方法的特点,开发重点在分析阶段强调数据结构而不是功能形式化描述能力强开发步骤的衔接良好重复性的开发过程,以类与对象图及对象状态图为辅助工具,建立问题域的五层模型.OOA模型被划分为五个层次(五个视图),Yourdon的OOA方法,OOA的结构,类的边界,Class根据问题域结构可提取候选的类及对象;例:银行储蓄管理系统,与系统发生作用的其它系统和必要的设备可作为候选的类及对象;如:打印机等(分析阶段可不把与实现有关的计算机部件作为候选的类及对象),系统必须观测、记忆的与时间有关的事件可作为候选的类及对象;如:建立帐户的日期打开一个帐户等与系统发生交互的人及系统必须保留其信息的人,可作为候选的类及对象;如:柜员、储户等这些人所属的组织单位,可作为候选的类及对象;如:总行、分行等,系统必须记忆、且不在问题域约束中的顺序操作过程(为了指导人机交互)可作为候选的类及对象;如:柜员事务、远程事务等。其中属性是操作过程名,操作特权及操作步骤的描述;系统需了解掌握的物理位置、办公地点等可作为候选的类及对象;如:ATM机器、帐户等,舍弃无用的类对象的精简只有一个属性的对象只有一个服务的对象推迟到OOD考虑的对象,(2)审查和筛选,超市销售管理系统(对象层),定义属性定义服务对象的状态与状态转换图例:栈的状态/服务对照表,步骤2:定义属性与服务,例:栈状态转换图,空,半满,满,创建,压入(未满)弹出(未空),压入(报错),弹出(报错),弹出(已空),压入,弹出,压入(已满),对象行为分类发现服务的策略审查与调整识别对象的主动行为服务的详细说明(服务解释、消息协议、消息发送、约束条件、服务流程图),定义服务,帐册,前班节余销售事件表收入累计上交款本班节余,接班计帐报帐交班,上级系统接口,帐目目册,消息发送查帐报帐价格更新种类增删,供货员,缺货登记表,缺货登记供货,销售事件,收款人购物清单应收款,销售计划入帐,商品,编号名称单价架上数量下限,售出补充价格更新,特价商品,开始日期结束日期,计量商品,*单价计量单位计价方式,*售出*补充*价格更新,收款机,本班收款员开始时间结束时间,登录售货结帐,商品一览表,商品目录,检索种类增删,超市销售管理系统(特征层),为所有模型实体准备一个数据字典,精确描述每一个对象类,包括:成员约束关联、属性、操作,建立数据字典,类名父类提供的服务需要的服务帐户ATM银行出纳员,对象字典举例:,初步确定关联对应于描述性动词或动词短语需求陈述中隐含根据问题域知识得出筛选完善分析标识对象之间的关系对象之间的分类关系:一般-特殊结构对象之间的组成关系:整体-部分结构对象之间的静态联系:实例连接对象之间的动态关系:消息连接,步骤3:定义结构与连接,从一般类发现特殊类,公司职员,股东,姓名身分证号码,股份,职员,工资,公司职员,姓名身分证号码股份工资,?,?,从特殊类发现一般类,公司职员,股东,姓名身分证号码,股份,职员,工资,股东,姓名身分证号码股份,职员,姓名身分证号码工资,?,收款机,ABC,现钞收款机,DEF,现钞收款机,ABCDEF,XYZ,Z,XY,为支持复用建立结构,收款机类成为可供本领域其它系统复用的领域构件,取消没有特殊属性的特殊类,大学生,研究生,研究方向指导教师,学生,姓名学号班级,研究生,研究方向指导教师,学生,姓名学号班级,通过增加属性简化一般-特殊结构,人员,男人,女人,美国人,日本人,人员,性别国籍,中国人,两种结构的变通,冷藏车,汽车,制冷设备,冷藏车,汽车,制冷设备,仅用一般-特殊结构,两种结构同用,冷藏车,汽车,制冷设备,仅用整体-部分结构,用整体-部分结构实现复用,车床,机床,刨床,起重机,电动机,钻床,送料车,筛选:删除下列关联已删去的类间的关联无关或实现关联瞬时事件三元关联派生关联,中央计算机,总行,通信,银行代码,ATM,拥有,分行计算机,出纳工作站,远程业务,现金卡,分行,帐户,储户,出纳员,出纳业务,通信,授权,存取,拥有,拥有,持有,组成,拥有,拥有,雇佣,进入,被进入,修改,修改,进入,ATM系统的初始对象图,步骤4:定义服务及消息连接分析和认识对象之间在行为上的往来关系。,顺序系统中的消息传递,主动对象A,a,被动对象B,b,被动对象C,c,被动对象D,d1,d2,运行开始,运行结束,服务执行,消息发送,控制点返回示意,消息连接是OOA(或OOD)模型中对对象之间行为依赖关系的表示识别和表示的主要问题:对象之间是否存在消息?消息是同一线程内部的还是不同线程之间的?每一种消息是从发送者哪个服务发出的?由接收者哪个服务响应处理的?消息是同步还是异步?发送者是否等待消息的处理结果?,OOA对消息的表示消息连接,步骤4:标识主题(主体)Coad/Yourdon方法中主题的概念:主题是把一组具有较强联系的类组织在一起而得到的类的集合。,主题层是在OOA基本模型(类图)之上建立一个能帮助人们从不同的认识层次来理解系统的补充模型;主题一种比类和对象抽象层次更高、粒度更大的概念,用以建立系统的高层抽象视图;主题有助于指导系统设计者或用户等理解一个大的系统模型,有助于组织一个大项目的工作。,主题概念及其用途,是由一组类构成的集合一个主题内部的对象类应具有某种意义上的内在联系描述系统中相对独立的组成部分(如一个子系统)描述系统中某一方面的事物(如人员、设备)解决系统中某一方面的问题(如输入输出)主题的划分有一定的灵活性和随意性,主题概念的特点,把每个结构作为一个主题;(选取结构中最上层的类作为一主题)通过实例连接互相联系的类可划分到一个主题;把不属于任何结构,也没有实例连接的类作为一个主题。,如何划分主题,从问题域和接口复杂性两方面入手:使用问题域精练主题,即用整体/部分结构对问题域进行划分,而不是按功能分解方法划分.按高内聚低偶合原则,通过使主题间依赖性和交互性最小原则保留能反映子问题域的主题.主题数目7个左右,则进一步精练主题.,如何精练主题,依赖于模型自身复杂性小系统:不需引入主题;中等系统:先标识类及对象,然后引入主题;大系统:先标识主题,对问题域进行划分,分给不同的任务组;,何时引入主题,中小型系统可只设一层主题,最多不超过两层;大型系统可只设两层主题,最多不超过三层。,主题层次的控制,中央计算机,总行,通信,银行代码,ATM,拥有,分行计算机,出纳工作站,远程业务,现金卡,分行,帐户,储户,出纳员,出纳业务,通信,授权,存取,拥有,拥有,持有,组成,拥有,拥有,雇佣,进入,被进入,修改,修改,进入,把ATM系统划分为三个主题,2,3,1,1,1,1,2,2,2,3,3,3,3,帐册,前班节余销售事件表收入累计上交款本班节余,接班计帐报帐交班,上级系统接口,帐目目册,消息发送查帐报帐价格更新种类增删,供货员,缺货登记表,缺货登记供货,销售事件,收款人购物清单应收款,销售计划入帐,商品,编号名称单价架上数量下限,售出补充价格更新,特价商品,开始日期结束日期,计量商品,*单价计量单位计价方式,*售出*补充*价格更新,1,m,商品一览表,商品目录,检索种类增删,1,m,(关系层,完整的类图),收款机,本班收款员开始时间结束时间,登录售货结帐,1,1,1,1,3,3,3,3,2,2,2,2,移动电话系

温馨提示

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

评论

0/150

提交评论