需求分析与建模PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《需求分析与建模PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 需求 分析 建模 PPT 课件
- 资源描述:
-
1、.1 1l需求分析需求分析必要性必要性l结构化分析结构化分析l面向对象分析面向对象分析l需求用例分析需求用例分析.2 2 神父之牛的故事神父之牛的故事l有个神父在教堂为一个人忏悔。l那人说:“神父,我偷了别人一头牛,我该怎么办?我把牛给你好不好?”l神父回答:“我不要。你应该把那头牛送还给失主才对。”l那人说:“但是他说他不要。”l神父说:“那你就自己收下吧。”l结果,当天晚上神父回到家后,发觉他的牛不见了。需求分析的必要性:需求分析的必要性:.3 3l 95 折 = 95%l 9 折 = 9% ? (9 折 = 90% )需求分析的必要性:需求分析的必要性:.4l需求分析与软件分析需求分析与
2、软件分析l结构化分析结构化分析l面向对象的分析面向对象的分析l需求用例求分析需求用例求分析.5l结构化分析(SA)方法是一种面向过程的需求分析方法,主要对数据 (流) 进行分析,基本思想是将系统抽取出“数据”和“控制”两部分,再分别进行抽象和处理。 l数据流图(DFD)、数据字典(DD)和流程图是结构化分析最常用的工具。l数据流图用来描述数据流从输入到输出的变换流程。l数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。.6.7l结构化分析(SA)方法的特点简单高效适合需求分析非常清楚的系统.8l需求分析与软件分析l结构化分析l面向对象的分析l需求用例需求用例分析.9
3、1面向对象面向对象(Object Oriented,OO )Object Oriented,OO )的基本思想的基本思想l模拟人类认识和解决问题的方式模拟人类认识和解决问题的方式遇到问题遇到问题认识个体认识个体对问题空间(问题域)进行划分对问题空间(问题域)进行划分归类归类找出每个类中的基本特征找出每个类中的基本特征抽象抽象找出实现的解法(求解域)找出实现的解法(求解域)见见“第第5章补充章补充-面向对象的思想、方法和应用面向对象的思想、方法和应用”基本思想基本思想.10面向对象的开发方法可描述为:面向对象的开发方法可描述为: (1)客观事物都是由对象()客观事物都是由对象(object)组成
4、的)组成的 对象是在客观事物基础上抽象的结果,任何复杂对象是在客观事物基础上抽象的结果,任何复杂的事物都可以通过对象的某种组合构成。的事物都可以通过对象的某种组合构成。 (2)对象由属性和方法组成)对象由属性和方法组成 属性(属性(attribute)反映对象的信息特征。如:)反映对象的信息特征。如:特点、值、状态等。特点、值、状态等。 方法(方法(method)则用)则用 来定义改来定义改变对象属性状态的各种操作方式。变对象属性状态的各种操作方式。(3) 对象之间的联系通过传递消息来实现对象之间的联系通过传递消息来实现传递消息(传递消息(message)的方式是通过消息模式)的方式是通过消息
5、模式(message pattern)和方法所定义的操作过程来完成)和方法所定义的操作过程来完成的。的。(4) 对象可按其属性进行归类对象可按其属性进行归类 类(类(class)有一定的结构,类可以有超类()有一定的结构,类可以有超类(super class)这种对象或类之间的层次结构是靠继承关系维)这种对象或类之间的层次结构是靠继承关系维系的系的。 (5)对象是被封装的实体,类可以有子类)对象是被封装的实体,类可以有子类(subclass) 所谓封装(所谓封装(encapsulation),即指严格的模块化。),即指严格的模块化。这种封装的对象满足软件工程的要求,而且可以直接被这种封装的对象
6、满足软件工程的要求,而且可以直接被面向对象的程序设计语言所接受。面向对象的程序设计语言所接受。.112结构化方法与结构化方法与OOOO方法的比较方法的比较l结构化方法依赖基本的数据结构,直接附加语义结构化方法依赖基本的数据结构,直接附加语义协议,处理信息协议,处理信息.122结构化方法与结构化方法与OOOO方法的比较方法的比较lOOOO方法利用数据结构的多重性,层层变换,最后方法利用数据结构的多重性,层层变换,最后在最上层附加语义协议在最上层附加语义协议.132OOOO方法与结构化方法的比较方法与结构化方法的比较l结构化方法:基于变换结构化方法:基于变换( (输入输入输出输出) ),数据与指令
7、分开,数据与指令分开lOOOO方法:基于分解,数据与指令放在一起方法:基于分解,数据与指令放在一起l结构化方法从一开始就将系统结构化方法从一开始就将系统拆分成拆分成“数据数据”和和“控制控制”两部分,再分别进行抽象和处理两部分,再分别进行抽象和处理lOOOO方法将任务分解为若干较小的子任务,最后才进行方法将任务分解为若干较小的子任务,最后才进行“数数据据”和和“控制控制”的拆分的拆分l把功能与信息混合的的系统把功能与信息混合的的系统“拆解拆解”为数据和控制,是系为数据和控制,是系统分析与设计过程中最大的风险统分析与设计过程中最大的风险lOOOO方法将此风险推后,在一系列小系统上方法将此风险推后
8、,在一系列小系统上“拆解拆解”,更为,更为安全可靠安全可靠.14l如果你的分析习惯是在调研需求时先弄清楚有多少业务流程,再画出业 务流程图,然后顺藤摸瓜,找出业务流程中每一步骤的参与部门或岗位,弄清楚在这一步参与者所做的事情和填写表单的结果,并关心用户是如何把这份表单传给到 下一个环节的。那么很不幸,你还在做面向过程的事情。l如果你的分析习惯是在调研需求时最先弄清楚有多少部门,多少岗位,然后找到每一个岗位的业务代表,问他们类似的问题:你平时都做什么?这件事是谁交办的?做完了你需要通知或传达给谁吗?做这件事情你都需要填写些什么表格吗?.那么恭喜你,你已经OO啦!闲话:今天你OO了吗?.153、面
9、向对象技术的基本概念、面向对象技术的基本概念:对象和实例对象和实例(object&instance)类类(class)封装封装(encapsulation)继承继承(inheritance)多态多态(polymorphism)消息消息(message)基本概念基本概念.16l对象模型基本元素的标识对象模型基本元素的标识1)类、属性、方法)类、属性、方法 类类是具有相同属性和操作的对象集合的总称。它是面向是具有相同属性和操作的对象集合的总称。它是面向对象的一个基本概念,类封装了客观世界中对象实体的特征对象的一个基本概念,类封装了客观世界中对象实体的特征与行为,即与行为,即属性属性与与方法方法。其
10、表示法是一个矩形,由带有类名、。其表示法是一个矩形,由带有类名、属性和方法(操作)的分格框组成。如下图所示。属性和方法(操作)的分格框组成。如下图所示。基本概念基本概念.17l属性属性 属性属性是指类的特性,它是指类的特性,它描述类所具有的一系列特性描述类所具有的一系列特性值。一个类可以有多个属性,值。一个类可以有多个属性,也可以没有属性。在类图中也可以没有属性。在类图中属性只要写上名字就可以了。属性只要写上名字就可以了。如右上图如右上图. 也可以在属性名后跟上也可以在属性名后跟上类型甚至缺省取值,如右下类型甚至缺省取值,如右下图:图:基本概念基本概念.18l方法方法 方法方法是指类所能提供的
11、服务或可执行是指类所能提供的服务或可执行的操作。它表现类的动态特征。的操作。它表现类的动态特征。基本概念基本概念.192)继承)继承 继承继承,也称,也称泛化泛化,它是面,它是面向对象描述类之间相似性的一向对象描述类之间相似性的一个重要机制。面向对象利用继个重要机制。面向对象利用继承来表达这种相似性,这使得承来表达这种相似性,这使得可以利用继承来管理类,同时可以利用继承来管理类,同时也使得在定义一个相似类时能也使得在定义一个相似类时能简化类的定义工作。简化类的定义工作。基本概念基本概念.20继承(泛化)关系基本概念基本概念.213)超类、父类、子类)超类、父类、子类 一个类可以继承其他类的属性
12、和方法。继承了其它类属性一个类可以继承其他类的属性和方法。继承了其它类属性和方法的类称为和方法的类称为子类子类,被继承的类称为,被继承的类称为父类父类或或超类超类。它们的关。它们的关系如下图所示。子类复用父类属性和方法的过程,称为系如下图所示。子类复用父类属性和方法的过程,称为继承继承或或泛化泛化。 没有父类的类被称为没有父类的类被称为基类基类或或根类根类;没有子类的类被称为;没有子类的类被称为叶叶类类。 如果一个类恰好只有一个父类,这样的继承关系叫如果一个类恰好只有一个父类,这样的继承关系叫单继承单继承。如果一个类有多个父类,这样的继承就是如果一个类有多个父类,这样的继承就是多继承多继承。基
13、本概念基本概念.224)抽象类)抽象类 抽象类抽象类(Abstract Class)是一种不能直接)是一种不能直接产生实例的类,它的作产生实例的类,它的作用仅仅是为了其他的非用仅仅是为了其他的非抽象类继承和重用。抽象类继承和重用。基本概念基本概念.23 类类“Window”包含有两个方法的名称包含有两个方法的名称“toFront()”和和“toBack()”,但是没,但是没有方法实现。类有方法实现。类“Window”本身不能有实例,但它有两个特化的子类本身不能有实例,但它有两个特化的子类“Windows Window”和和“Mac Window”,它们包含了方法,它们包含了方法“ toFron
14、t()()”和和“toBack()()”在不同平台上的实现。在本例中,在不同平台上的实现。在本例中,类类“ Window”的作用是作为文本编辑器类的作用是作为文本编辑器类“ Text Editor”的一个接口的一个接口。基本概念基本概念 此图表示了抽象类的应用。其中此图表示了抽象类的应用。其中文本编辑器独立于平台,为此定文本编辑器独立于平台,为此定义了一个独立于平台的窗口对象义了一个独立于平台的窗口对象类类“Window”,它是一个抽象类,它是一个抽象类,在类名在类名“Window”下标有约束下标有约束abstract。.245)多态)多态l多态多态是指子类对象可以像父类对象那样使用,同是指子
15、类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子样的消息既可以发送给父类对象也可以发送给子类对象。类对象。l 即在类等级的不同层次中可以共享(公用)一个即在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,不同层次中的每个类各自行为(方法)的名字,不同层次中的每个类各自按自己的需要来实现这个行为。当对象接收到发按自己的需要来实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类动态选送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。用在该类中定义的实现算法。 基本概念基本概念.255)多态)多态 在不同类中具有相同名称的方法(操作)
16、。在不同类中具有相同名称的方法(操作)。基本概念基本概念.26l6)重载)重载(Overloading) l 有两种重载:有两种重载:函数重载函数重载指同一个函数名可以对应指同一个函数名可以对应着多个函数的实现,每种实现对应着一个函数体,这着多个函数的实现,每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。些函数的名字相同,但是函数的参数的类型不同。运运算符重载算符重载是指同一个操作符可以施加于不同的操作是指同一个操作符可以施加于不同的操作数。数。l 重载进一步提高了面向对象系统的灵活性和可重载进一步提高了面向对象系统的灵活性和可读性。读性。基本概念基本概念.277)依赖
17、)依赖(dependency) 依赖依赖是指是指一个类中的元素使用了另一个类一个类中的元素使用了另一个类。依赖关系描述类之间的依赖关系描述类之间的使用关系使用关系。基本概念基本概念.288)关联)关联 关联(关联(Association)是指对象类之间具有的是指对象类之间具有的语义联系。其基本表示如下。语义联系。其基本表示如下。应用于关联的应用于关联的4种修饰:种修饰:关联名关联名角色名角色名多重性多重性限定符与约束符限定符与约束符基本概念基本概念.299)聚合与组合)聚合与组合 聚合(聚合(Aggregation)是一种描述类之间的整体是一种描述类之间的整体与部分的组成关系。与部分的组成关系
18、。基本概念基本概念.30 组合(组合(Composition)是一种特殊的聚合,是一种特殊的聚合,它的每个部分体都是必须的。如下图所示。它的每个部分体都是必须的。如下图所示。基本概念基本概念.3110)类图)类图类图表达了一组类和它们之间的联系。类图表达了一组类和它们之间的联系。类图示意类图示意基本概念基本概念.3211)对象)对象 对象对象是类的具体实例,即类在某时刻的一个快是类的具体实例,即类在某时刻的一个快照。照。基本概念基本概念.33类图示意类图示意11)对象图)对象图 对象图对象图是类图是类图的一个实例,它表的一个实例,它表示在某一时刻系统对示在某一时刻系统对象的状态、对象之象的状态
19、、对象之间的联系状态。间的联系状态。基本概念基本概念.34对象图示意基本概念基本概念.3512)消息)消息 消息消息是从一个对象(发送者)向另一个或几个其是从一个对象(发送者)向另一个或几个其他对象(接收者)发送的信号,或由一个对象(发送他对象(接收者)发送的信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。者或调用者)调用另一个对象(接收者)的操作。基本概念基本概念.3613)接口)接口(Interface) 接口接口 是是一组外部可访问的操作方法一组外部可访问的操作方法,它用于一,它用于一个类为其他类提供服务。接口可以看作为一种特殊的个类为其他类提供服务。接口可以看作为一
20、种特殊的抽象类,抽象类,它不含属性,只有方法它不含属性,只有方法。接口代表系统中的。接口代表系统中的接缝,接口两端的对象或组件可以独立变更,只要它接缝,接口两端的对象或组件可以独立变更,只要它们遵守和实现接口的规定,通过接口相联系即可。们遵守和实现接口的规定,通过接口相联系即可。基本概念基本概念.37l建立功能模型l建立对象模型l建立动态模型分析方法分析方法确定类与对象 确定结构与关联定义属性定义服务准备典型的交互行为的脚本提取事件,确定事件的动作及目标对象排列事件顺序,确定状态及状态间关系用例图描述.3838l需求分析与软件分析l结构化分析l面向对象的分析l需求用例分析需求用例分析.3939
21、l需求用例分析需求用例分析(基于用例的需求分析) 用户、业务用例和业务场景 用例实现、用例场景和领域模型 用例规约的编写-业务规则和实体描述 编写UML需求规格说明书 .40用例就是与使用者(actor)交互的,并且给使用者提供可观测的有意义的结果的一系列活动的集合。系列活动是相对独立的系列活动是相对独立的。这意味着它不需要与其它用例交互而独自完成参与者的目的。也就是说从“功能”上说是完备的。(有人可能会想到,用例之间不是也有关联关系吗?比如扩展/实现/包含。解释:用例间关系是分析过程的产物,而且这种关系一般的产生在概念层用例阶段和系统层用例阶段。对于业务用例,独立性特征是很明显的。)比如在A
22、TM取钱的场景中:取钱,读卡,验证账号,打印回执单等都是可能的用例.41执行结果对参与者来说是可观测的和有意义的执行结果对参与者来说是可观测的和有意义的。(例如,系统会监控参与者在系统里的操作,并在参与者删除数据之前备份。虽然它是系统的一个必需组成部分,但它在需求阶段却不应该 作为用例出现。因为这是一个后台进程,对参与者来说是不可观测的,它应该在系统用例分析阶段定义。)(又比如说,登录系统是一个有效的用例,但输入密码却不是。这是因为登录系统对参与者是有意义的,这样他可以获得身份认证和授权,但输入密码却是没有意义的,输入完了呢?有什么结果吗? ).42用例必须由一个参与者发起用例必须由一个参与者
23、发起。不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。用例总是由一个参与者发起,并且满足特征2。例如从ATM 取钱是一个有效的用例,ATM吐钞却不是。(因为ATM是不会无缘无故吐钞的)。.43必然是以动宾短语形式出现的必然是以动宾短语形式出现的。即,必须有一个动作和动作的受体。例如,喝水是一个有效的用例,而“喝”和“水”却不是。(虽然生活常识告诉我们,在没有水的情况下 人是不会做出喝这个动作的,水也必然是喝进去的,而不是滑进去的,但是笔者所见的很多用例中类似“计算”,“统计”,“报表”,“输出”,“录入”之类的 并不在少数。).44需求分析阶段用例以参与者为中心需求分析
24、阶段用例以参与者为中心(区别于以计算机 系统为中心),从参与者的角度来描述他要做的日常工作(区别于以业务流程描述的方式),并分析这些日常工作之间是如何交互的(区别于数据流的描述方式)。 换句话说,用例分析的首要目标不是要弄清楚某项业务是如何一步一步完成的,而是要弄清楚有多少参与者?每个参与者都做什么?业务流程分析则是后续的工作 了。.45用例就是功能的划分和描述,认为一个用例就是一个功能点错!.4646l比如学生管理系统中:成绩管理、成绩录入、成绩修改、成绩删除、成绩保存等都是可能的用例l成绩管理包含了后续的其它用例,成绩管理粒度更大一些,其它用例的粒度则要小一些l是一个大的用例合适,还是分解
展开阅读全文