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

下载本文档

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

文档简介

软件需求分析计算机世界现实世界影射第2页,共114页,2024年2月25日,星期天计算机世界现实世界结构化开发方法结构化分析结构化设计结构化编程OOAOODOOP面向对象开发方法第3页,共114页,2024年2月25日,星期天

§3.4.2面向对象分析方法软件开发中为什么要使用面向对象方法?面向对象分析方法与结构化分析方法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全突破,还是“换汤不换药”?第4页,共114页,2024年2月25日,星期天对象(object)

现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。

对象具有的含义:在现实世界中:是客观世界中的一个实体在面向对象程序中:表达成计算机可理解、可操纵、具有一定属性和行为的对象在计算机世界中:是一个可标识的存储区域第5页,共114页,2024年2月25日,星期天

面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。面向对象=对象+类+继承+消息通信面向对象的主要特征:封闭性(Encapsulation)

继承性(Inheritance)

多态性(Polymorphism)第6页,共114页,2024年2月25日,星期天类(class)具有共同属性和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例类对象第7页,共114页,2024年2月25日,星期天对象、实体与类对象实体类抽象数据类计算机世界现实世界计算机逻辑的实现影射抽象实例化抽象概念世界第8页,共114页,2024年2月25日,星期天封装封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽)第9页,共114页,2024年2月25日,星期天传统方法数据与过程是分离的过程1输入输出过程2过程3数据实体第10页,共114页,2024年2月25日,星期天属于该对象的数据对象处理数据的方法消息消息对象把数据和处理数据的方法封状成一个单元第11页,共114页,2024年2月25日,星期天传统方法和面向对象方法的比较传统方法系统是过程的集合过程与数据实体交互过程接受输入产生输出面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息第12页,共114页,2024年2月25日,星期天继承(继承性inheritance)继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承

子类继承部分增加部分父类共性部分第13页,共114页,2024年2月25日,星期天继承性作用使软件系统具有开放性更好地进行抽象与分类增强代码的重用率第14页,共114页,2024年2月25日,星期天多态(多态性polymorphism)不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态多态的效果

用户发送一个通用的消息,而实现的细节则由接收对象自行决定第15页,共114页,2024年2月25日,星期天多态性的作用增强了操作的透明性,可理解性和可扩展性增强了软件的灵活性和重用性第16页,共114页,2024年2月25日,星期天消息(message)消息

对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容

通常包含接收方及请求接收方完成的功能信息发送方

发出消息,请求接收方响应接收方

收到消息后,经过解释,激活方法,予以响应第17页,共114页,2024年2月25日,星期天为什么对面向对象方法感兴趣?面向对象方法的主要优点:自然性追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用

可复用性(可重用性)reusebility可扩展性可管理性第18页,共114页,2024年2月25日,星期天

面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。

可复用性(可重用性)第19页,共114页,2024年2月25日,星期天

传统系统分析:面向功能,把系统看成一组功能OOA:

把问题当作一组相互作用的实体,并确定实体间关系第20页,共114页,2024年2月25日,星期天(1)方法是对软件开发过程所有阶段进行综合考虑而得到的;(2)从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性;(3)将OOA、OOD、OOP集成到生存期的相应阶段。面向对象技术的特点第21页,共114页,2024年2月25日,星期天

OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。

OO方法的开发过程第22页,共114页,2024年2月25日,星期天类的生存期模型类的规格说明从废弃型开发既存类的复用渐增式的实现渐增式的测试求精和维护

测试用例和测试的开发实现从既存类演变第23页,共114页,2024年2月25日,星期天类的规格说明指导对存放现存类的软件库进行查找现存类提供当前应用所需功能三种可能利用现存类的方向:

现存类的复用

从现存类进行演变

从废弃类进行开发

类的设计与实现第24页,共114页,2024年2月25日,星期天对象之间的联系与对象模型第25页,共114页,2024年2月25日,星期天面向对象方法开发软件通常建立的三种形式的模型

描述系统数据结构的对象模型描述系统控制结构的动态模型描述系统功能的功能模型

三种模型从三个不同但由密切相关的角度模拟目标系统。

对象模型是最重要、最基本、最核心的。第26页,共114页,2024年2月25日,星期天对象模型表示静态的、结构的系统数据的性质。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。

OO方法强调围绕对象而不是功能来构造系统。对象模型第27页,共114页,2024年2月25日,星期天分类关系(归纳关系、一般与特殊的关系)组成关系(组合关系、整体/部分的关系)对象属性之间的静态的联系对象行为的动态联系

类及对象间常见的联系第28页,共114页,2024年2月25日,星期天分类关系(一般与特殊的关系)示例学生本科生研究生第29页,共114页,2024年2月25日,星期天组成关系(整体与部分的关系)示例学科部办公室学院实验室第30页,共114页,2024年2月25日,星期天对象模型中表现

上述联系的结构和连接第31页,共114页,2024年2月25日,星期天分类是对象抽象的基础

分类结构表现的是事物的一般与特殊的关系,即“is-a”关系。面向对象术语中常把一般与特殊的关系称为泛化(Generalization)与特化(Specialization)联系(1)分类结构(一般/特殊结构)第32页,共114页,2024年2月25日,星期天

存户一般/特殊结构举例一般类(父类、基类、超类)特殊类(子类、具体类)继承一个特殊类中的所有对象可继承一般类中的属性、服务、关系.账号姓名余额存款取款支票存户储蓄存户利息率第33页,共114页,2024年2月25日,星期天

组装结构表示对象类之间的组成关系,即整体与部分的关系。整体对于部分是“has-a”关系。(部分对于整体是“a-part-of”关系)

组装结构体现了面向对象方法的

聚合(也叫聚集Aggregation)原则。(2)

组装结构(整体/部分结构)第34页,共114页,2024年2月25日,星期天1+电源主机箱键盘监视器鼠标内存CPU硬盘o

微机整体/部分结构表示法举例第35页,共114页,2024年2月25日,星期天实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之间的依赖关系。面向对象术语中把对象之间的实例连接称为链接(Link),把类之间的实例连接称为关联(Association)。(3)实例连接(InstanceConnection)第36页,共114页,2024年2月25日,星期天

教师指导论文0,m1学生教师为学生指导论文:教师教学0,m0,n学生教师为学生授课:实例连接示例及表示第37页,共114页,2024年2月25日,星期天

允许实例连接带有一组属性,这些属性通过关联来描述

类1连接名称mn类1连接属性关联关系(链属性)的表示第38页,共114页,2024年2月25日,星期天为之工作工资职务雇主雇员个人名字身份证号公司名字地址题目答辩时间成绩教师学生指导论文0,m1关联关系(链属性)第39页,共114页,2024年2月25日,星期天对象之间的通信联系。一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对象响应消息,触发所要求的服务操作。消息连接体现了对象行为的动态联系。(4)消息连接(MessageConnection)第40页,共114页,2024年2月25日,星期天一家公司的对象模型(OMT)示例为之工作管理0,1姓名身份证号码地址员工名字电话号码主要产品地址公司职务雇用解雇项目名预算优先级项目产品名成本重量产品工人经理部门部门名主持参加1+1+1+1+1+生产第41页,共114页,2024年2月25日,星期天

方法论是如何对复杂系统进行“抽象”的工作,以及如何建立抽象模型。面向对象的方法论第42页,共114页,2024年2月25日,星期天面向对象分析方法确实不同于结构化分析方法吗?

Fichman,R.GandC.F.Kemerer,

在“Object-orientedConventionalAnalysisandDesignMethodologies”

中阐述:我们的结论是面向对象分析方法表现了相对面向过程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性质,从而导致了和面向对象的三个基本原理相正交的问题域模型。二.面向对象分析建模(OOA)第43页,共114页,2024年2月25日,星期天

面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。第44页,共114页,2024年2月25日,星期天

面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。建立分析模型5个基本原则:(1)建模信息域;(2)描述模块功能;(3)表示模型行为;(4)分解以模型显示更多细节;(5)早期模型表示问题的本质,而后期模型提供实现细节。第45页,共114页,2024年2月25日,星期天是定义所有和被求解的问题相关的类(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:(1)必须在客户和软件工程师之间沟通了解基本的用户需求;(2)必须标识类(定义属性和方法);(3)必须刻划类层次;(4)表示对象对象关系(对象连接);(5)必须建模对象行为;(6)(1)到(5)递进地反复使用,直至完成建模OOA的意图第46页,共114页,2024年2月25日,星期天面向对象分析方法相似步骤:(1)使用基本需求作为指南选择类和对象;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)建造对象-关系模型的;(5)建造对象-行为模型。第47页,共114页,2024年2月25日,星期天由Rumbaugh、Booch、Jacobson提出的统一建模语言(UnifyModeingLanguage简称UML)

UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言。统一的OOA方法第48页,共114页,2024年2月25日,星期天

对象模型技术

(OMT,ObjectModelTech.)对象模型动态模型功能模型基本模型:三个模型分别从不同角度分析系统第49页,共114页,2024年2月25日,星期天对象模型:描述静态结构,定义做事情的实体功能模型:描述处理(数据变换),指明系统应“做什么”动态模型:描述交互过程,规定什么时候做分析模型第50页,共114页,2024年2月25日,星期天OMT模型系统分析和设计过程概观图产生需求结构及对象设计建立模型问题描述对象模型、动态模型、功能模型详细的对象模型详细的动态模型详细的功能模型分析阶段设计阶段第51页,共114页,2024年2月25日,星期天设置:由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。实例:饮料自动售货机系统第52页,共114页,2024年2月25日,星期天(1)找出对象及其关联(2)赋予类及关联的属性数据(3)组织类的结构OMT的对象图步骤:第53页,共114页,2024年2月25日,星期天设置:一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售:

顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易:顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。找出饮料自动售货机系统中的对象第54页,共114页,2024年2月25日,星期天描述系统内部对象结构,包括对象本身的定义、对象的属性、操作,以及对象与其它对象之间的关系。

对象模型是OMT方法论中最重要的部分,动态模型、功能模型都将依次而建立对象模型以对象图形式呈现,对象图由类构成。对象模型第55页,共114页,2024年2月25日,星期天饮料自动售货机系统对象图贩卖机饮料号码价格投币金额显示按纽退币售完显示存量计算器饮料号码存量递减售完显示重置选择钮选择钮状态灯亮灯熄售完灯亮按钮顾客姓名硬币投币-置入拿取饮料退币杆退币杆状态拉动金额计算器金额累加找零重置购买选取被拉动属于属于属于属于第56页,共114页,2024年2月25日,星期天为所有模型实体准备一个数据字典,精确描述每一个对象类,包括:

成员约束关联、属性、操作建立数据字典第57页,共114页,2024年2月25日,星期天动态模型用来描述系统与时间相关的动态行为即系统的控制逻辑,表现对象彼此间经过相互作用后,随时间改变的不同运算顺序。

动态模型以“事件”(Events)和“状态”(States)为其模型的主要概念。动态模型以状态图形式呈现。第58页,共114页,2024年2月25日,星期天

瞬时发生的行为;

引起对象状态转换的控制信息。事件类和属性举例:飞机起飞(航线、航班号、城市)按动鼠标按钮(按钮、位置)……..事件第59页,共114页,2024年2月25日,星期天

脚本和事件踪迹脚本是系统某一次特定运行时期内发生的事件序列。(脚本也叫场景)事件追踪图

侧重说明发生于系统执行过程中的一个特定“场景(scenarios)”。第60页,共114页,2024年2月25日,星期天

通话脚本(只包括影响电话线的事件)17.打电话者挂断电话16.电话切断15.接电话者挂断电话14.通电话12.接电话者电话停止振铃13.铃声在打电话者端消失11.接电话者回答10.铃声在打电话者电话传出9.接电话者的电话开始振铃8.打电话者拨数字(3)7.打电话者拨数字(7)6.打电话者拨数字(3)5.打电话者拨数字(2)4.电话忙音结束3.打电话者拨数字(8)2.电话忙音开始1.打电话者拿起听筒第61页,共114页,2024年2月25日,星期天状态:闹铃响描述:闹铃响表示预定时间到产生本状态的事件序列:设置闹钟(预定时间)不包括清除闹铃的任何后续操作当前时间=预定时间表征本状态的条件:闹铃=开,从预定时间起没有按键的情况下,目标时间当前时间目标时间=20秒本状态接受的各种时间:

事件动作下一个状态当前时间=目标时间+20重新设置闹钟正常按下按钮(任意按钮)重新设置闹钟正常状态:对象属性和对象关联的抽象形式第62页,共114页,2024年2月25日,星期天

动态模型表示方法

状态图状态和事件的网络,侧重描述每一类对象的动态行为。第63页,共114页,2024年2月25日,星期天

状态图

状态1Do:活动1状态2.…...事件1[条件1]/动作1结束事件初始事件空闲可视菜单左边按钮按下/显示弹出菜单左边按钮弹起/擦除弹出菜单光标移动/高亮菜单项弹出菜单动作第64页,共114页,2024年2月25日,星期天

事件追踪图举例:打电话的事件追踪图挂断电话电话切断挂断电话通话通话停止振铃停止振铃响应电话电话振铃铃声拨号(3)拨号(7拨号(3)拨号(2)电话忙音结束拨号(8)电话忙音开始拿起听筒电话线接电话者打电话者第65页,共114页,2024年2月25日,星期天

存量为零找零扣减存量灯亮余额饮料结算选择键#选择按纽灯亮金额总够显示总额总额累加投入硬币金额计算器存量计算器顾客售货机选择键举例:饮料自动售货机系统的事件追踪图售完灯第66页,共114页,2024年2月25日,星期天用来描述系统中数据的变换。传统DFD+控制流对象A对象B过程1过程2数据存储区控制流数据流

3.功能模型第67页,共114页,2024年2月25日,星期天需求陈述对象建模动态建模功能建模添加操作反复建模基于三个模型的分析步骤第68页,共114页,2024年2月25日,星期天1.分析阶段理解应用问题,建立对象模型、动态模型和功能模型,说明对象关联、控制流及数据变换。2.系统设计阶段

确定系统框架,考虑并发任务、通讯机制和数据存储策略。3.对象设计阶段

从实现的角度细化分析对象模型、动态模型和功能模型OMT支持整个软件生命周期第69页,共114页,2024年2月25日,星期天OMT方法的特点开发重点在分析阶段强调数据结构而不是功能形式化描述能力强开发步骤的衔接良好

重复性的开发过程第70页,共114页,2024年2月25日,星期天以类与对象图及对象状态图为辅助工具,建立问题域的五层模型.OOA模型被划分为五个层次

(五个视图)Yourdon的OOA方法第71页,共114页,2024年2月25日,星期天OOA的结构

类的边界Class&objectlayer(类及对象层)Attributelayer(属性层)Servicelayer(服务层)Structurelayer(结构层)Subjectlayer(主题层)实例的边界实例连接消息连接主题服务属性第72页,共114页,2024年2月25日,星期天(1)标识类及对象(2)标识结构(3)标识主题(4)定义属性及实例连接(5)定义服务及消息连接五个步骤常根据需要交叉进行分析阶段由五个活动组成第73页,共114页,2024年2月25日,星期天(1)发现对象,主要策略:

考虑问题域人员组织物品设备事件表格结构考虑系统边界人员设备外系统考虑系统责任步骤1:识别类与对象第74页,共114页,2024年2月25日,星期天

问题域描述中的名词,往往是候选的对象;根据问题域结构可提取候选的类及对象;例:银行储蓄管理系统第75页,共114页,2024年2月25日,星期天与系统发生作用的其它系统和必要的设备可作为候选的类及对象;

如:打印机等

(分析阶段可不把与实现有关的计算机部件作为候选的类及对象)第76页,共114页,2024年2月25日,星期天系统必须观测、记忆的与时间有关的事件可作为候选的类及对象;

如:建立帐户的日期打开一个帐户等与系统发生交互的人及系统必须保留其信息的人,可作为候选的类及对象;

如:柜员、储户等这些人所属的组织单位,可作为候选的类及对象;

如:总行、分行等第77页,共114页,2024年2月25日,星期天系统必须记忆、且不在问题域约束中的顺序操作过程(为了指导人机交互)可作为候选的类及对象;

如:柜员事务、远程事务等。

其中属性是操作过程名,操作特权及操作步骤的描述;系统需了解掌握的物理位置、办公

地点等可作为候选的类及对象;

如:ATM机器、帐户等第78页,共114页,2024年2月25日,星期天舍弃无用的类对象的精简只有一个属性的对象只有一个服务的对象推迟到OOD考虑的对象

(2)审查和筛选第79页,共114页,2024年2月25日,星期天帐册@上级系统接口供货员销售事件商品特价商品计量商品@收款机商品一览表超市销售管理系统(对象层)第80页,共114页,2024年2月25日,星期天定义属性定义服务对象的状态与状态转换图例:栈的状态/服务对照表空半满满压入可执行可执行不可执行弹出不可执行可执行可执行步骤2:定义属性与服务第81页,共114页,2024年2月25日,星期天例:栈状态转换图空半满满创建压入(未满)弹出(未空)压入

(报错)弹出(报错)弹出(已空)压入弹出压入(已满)第82页,共114页,2024年2月25日,星期天对象行为分类发现服务的策略审查与调整识别对象的主动行为服务的详细说明(服务解释、消息协议、消息发送、约束条件、服务流程图)定义服务第83页,共114页,2024年2月25日,星期天帐册前班节余销售事件表收入累计上交款本班节余接班计帐报帐交班@上级系统接口帐目目册@消息发送查帐报帐价格更新种类增删供货员缺货登记表缺货登记供货销售事件收款人购物清单应收款……销售计划入帐商品编号名称单价架上数量下限售出补充价格更新特价商品开始日期结束日期计量商品*单价计量单位计价方式*售出*补充*价格更新@收款机本班收款员开始时间结束时间@登录售货结帐商品一览表商品目录检索种类增删超市销售管理系统(特征层)第84页,共114页,2024年2月25日,星期天

为所有模型实体准备一个数据字典,精确描述每一个对象类,包括:成员约束关联、属性、操作建立数据字典第85页,共114页,2024年2月25日,星期天类名父类提供的服务需要的服务帐户……

……

……ATM……

……

……银行……

……

……出纳员……

……

……

……

……

……

……对象字典举例:第86页,共114页,2024年2月25日,星期天初步确定关联对应于描述性动词或动词短语需求陈述中隐含根据问题域知识得出筛选完善分析标识对象之间的关系对象之间的分类关系:一般-特殊结构对象之间的组成关系:整体-部分结构对象之间的静态联系:实例连接对象之间的动态关系:消息连接步骤3:定义结构与连接第87页,共114页,2024年2月25日,星期天从一般类发现特殊类公司职员股东姓名身分证号码……股份……职员工资……公司职员姓名身分证号码股份工资…………………………??第88页,共114页,2024年2月25日,星期天从特殊类发现一般类公司职员股东姓名身分证号码……股份……职员工资……………………股东姓名身分证号码股份…………职员姓名身分证号码工资…………?第89页,共114页,2024年2月25日,星期天收款机ABC现钞收款机DEF现钞收款机ABCDEFXYZZXY为支持复用建立结构收款机类成为可供本领域其它系统复用的领域构件第90页,共114页,2024年2月25日,星期天

取消没有特殊属性的特殊类大学生研究生研究方向指导教师……学生姓名学号班级…………研究生研究方向指导教师……学生姓名学号班级…………第91页,共114页,2024年2月25日,星期天通过增加属性简化一般-特殊结构人员…………男人…………女人……………………美国人…………日本人…………人员性别国籍…………中国人第92页,共114页,2024年2月25日,星期天两种结构的变通冷藏车…………汽车…………制冷设备…………冷藏车…………汽车…………制冷设备…………仅用一般-特殊结构两种结构同用冷藏车…………汽车…………制冷设备…………仅用整体-部分结构第93页,共114页,2024年2月25日,星期天用整体-部分结构实现复用车床…………机床…………刨床…………起重机…………电动机…………钻床…………送料车…………第94页,共114页,2024年2月25日,星期天筛选:删除下列关联已删去的类间的关联无关或实现关联瞬时事件三元关联派生关联

第95页,共114页,2024年2月25日,星期天中央计算机总行通信银行代码ATM拥有分行计算机出纳工作站远程业务现金卡分行帐户储户出纳员出纳业务

通信授权存取拥有拥有持有组成拥有拥有雇佣进入被进入修改修改进入ATM系统的初始对象图第96页,共114页,2024年2月25日,星期天步骤4:定义服务及消息连接分析和认识对象之间在行为上的往来关系。第97页,共114页,2024年2月25日,星期天顺序系统中的消息传递主动对象Aa被动对象Bb被动对象Cc被动对象Dd1d2运行开始运行结束服务执行消息发送控制点返回示意第98页,共114页,2024年2月25日,星期天消息连接是OOA(或OOD)模型中对对象之间行为依赖关系的表示识别和表示的主要问题:对象之间是否存在消息?消息是同一线程内部的还是不同线程之间的?每一种消息是从发送者哪个服务发出的?由接收者哪个服务响应处理的?消息是同步还是异步?发送者是否等待消息的处理结果?OOA对消息的表示—消息连接第99页,共114页,2024年2月25日,星期天步骤4:标识主题(主体)

Coad/Yourdon方法中主题的概念:主题是把一组具有较强联系的类组织在一起而得到的类的集合。

第100页,共114页,2024年2月25日,星期天主题层是在OOA基本模型(类图)之上建立一个能帮助人们从不同的认识层次来理解系统的补充模型;主题一种比类和对象抽象层次更高、粒度更大的概念,用以建立系统的高层抽象视图;主题有助于指导系统设计者或用户等理解一个大的系统模型,有助于组织一个大项目的工作。主题概念及其用途第101页,共114页,2024年2月25日,星期天是由一组类构成的集合一个主题内部的对象类应具有某种意义上的内在联系描述系统中相对独立的组成部分(如一个子系统)描述系统中某一方面的事物(如人员、设备)解决系统中某一方面的问题(如输入输出)主题的划分有一定的灵活性和随意性主题概念的特点第102页,共114页,2024年2月25日,星期天把每个结构作为一个主题;

(选取结构中最上层的类作为一主题)通过实例连接互相联系的类可划分到一个主题;把不属于任何结构,也没有实例连接的类作为一个主题。如何划分主题第103页,共114页,2024年2月25日,星期天从问题域和接口复杂性两方面入手:使用问题域精练主题,即用整体/部分结构对问题域进行划分,而不是按功能分解方法划分.按高内聚低偶合原则,通过使主题间依赖性和交互性最小原则保留能反映子问题域的主题.主题数目>7个左右,则进一步精练主题.如何精练主题第104页,共114页,2024年2月25日,星期天依赖于模型自身复杂性小系统:不需引入主题;中等系统:先标识类及对象,

然后引入主题;大系统:先标识主题,对问题域进行划分,分给不同的任务组;何时引入主题第105页,共114页,2024年2月25日,星期天中小型系统可只设一层主题,最多不超过两层;大型系统可只设两层主题,最多不超过三层。主题层次的控制第106页,共114页,2024年2月25日,星期天中央计算机总行通信银行代码ATM拥有分行计算机出纳工作站远程业务现金卡分行帐户储户出纳员出纳业务

通信授权存取拥有拥有持有组成拥有拥有雇佣进入被进入修改修改进入把ATM系统划分为三个主题2311112223333第107页,共

温馨提示

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

评论

0/150

提交评论