面向对象的分析.

Slides:



Advertisements
Similar presentations
第九章 冷与热的应用 漳县职业中专 09 护理一班 何琴. 1 、描述冷、热疗法的效应 2 、描述冷、热疗法作用 3 、复述影响冷、热疗法效果的因素 4 、掌握应用冷、热疗法的禁忌 5 、能够运用局部冷疗法和全身冷疗法 6 、能够运用干热疗法和湿热疗法 教学目标.
Advertisements

好孕 : 好孕 : 懷孕前就要做 對的 3 件事! 女醫師助孕筆 記大公開! 準備好了嗎? 一起翻開筆記吧! 一起翻開筆記吧! 
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
認識大學:校系介紹 介紹校系:逢甲大學-電機 工程學系 班級 :406 座號 :09 姓名 : 邱柏淵 指導老師 : 黃素珍 老師.
Case1 患者,男, 57 岁,以 “ 反复咳嗽、痰中带血 3 月余 ” 为主诉入院。缘于入院前 3 月 余明显诱因出现咳嗽、咳痰,呈阵发性,伴有痰中带血,量不多,偶有胸闷、 气促感,活动后加剧,休息后缓解,无畏寒、发热,无盗汗,无消瘦,午后低 热,无胸痛、心悸,无恶心、呕吐,无腹胀、腹泻等不适,未予重视,未行诊.
旅 糾 紛 遊 與緊急事件處理 11 Chapter 旅遊費用.
漫畫風雲.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
恐龙灭绝之因 制作:人影11-20号 视频.
任务二:面向对象的建模 3 需求分析阶段的用例建模 用例图 活动图.
我們的心得與感謝 郭至中 陳奕叡 黃澤璽 陳劭濬 賴士杰 張文源 向恩霖 史瑞晨 鄭賢杰 王翎 曠 耘 黃誼欣 張語倢 鍾巧薇 徐培芝
我征服了黃山 林達的黃山之旅 2006春.
第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型
外科部-特殊病例討論會(Case Conference)
旅 糾 紛 遊 與緊急事件處理 16 Chapter 飯店問題.
我們這組訪談的對象,為前西屋副總何文奇先生,由於他們目前是以合夥方式前進大陸,並非以公司的名義
案例写作漫谈 胡 红
增值税转型 2008年12月.
需求分析 情境三:需求分析 主讲:李 欢.
外科部-特殊病例討論會(Case Conference)
游戏设计(策划)文档 李裴.
第二章 餐饮组织结构设计.
战争结束了 年11月,听到停战的消息,巴黎街头人们欣喜若狂。法国总理克里孟梭说:“吻我的姑娘有500多个了。”
商管群校本課程規劃與實務 ~以日本商業教育為借鑑
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
資料庫 (Database) SQL Server 2008實作
第10章 面向对象的设计方法 教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。
An Introduction to European Culture
綜合活動科 教學資源研發成果發表 「學生自治會活動」 理念與實例 報告人:國立台中一中黃俊奇、廖財固.
河南工业大学 网络学习空间培训 主讲人:黄巧会 日 期:2015年11月02日.
12月四六级冲刺备考讲座 建昆老师.
第六讲 面向对象分析(6学时) 了解面向对象分析的概念 了解面向对象分析的发展 理解面向对象的基本概念 理解面向对象分析的过程、内容
《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系.
企业经营管理基础 模块一 企业组织结构概述 模块二 采购管理 模块三 生产管理 模块四 销售管理 模块五 仓储管理 模块六 人力资源管理
第6章 系统分析 6.1 概述 6.2 逻辑模型 6.3 逻辑结构分析 6.4 用例分析 6.5 概念类分析.
第七章 组 织.
第十章 使用個案塑模.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
第八章 分析與設計階段 – 物件導向設計(OOD)
需求擷取.
軟體工程 -物件導向程式設計與UML系統分析實作
Microsoft Visio 2003 電機四 羅安然.
第10章 使用個案塑模.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
软件建模精要 面向对象软件建模技术.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
软件建模与UML.
中三學生不環保.
UML介绍.
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
Advanced Basic Key Terms Dependency Actor Generation association
UML语言.
使用VHDL設計—4位元ALU電路 通訊一甲 B 楊穎穆.
实验6 面向对象分析与设计实验.
“ ” Intro. To Program Timetable Information 芝浦工业大学人机器人主题短期课程
第6章 使用案例圖 6-1 使用案例圖的基礎 6-2 使用案例圖的符號 6-3 動作者與使用案例的關係 6-4 繪製使用案例圖
用例.
用例图.
第6章 面向对象开发的 分析与设计.
「戲劇夢飛行」 學生普通話戲劇推廣大使培育計劃 專題培訓講座(一) (2017年12月2日)
软件需求工程.
欢迎我家的房子 Welcome to my « crib »
6-1 燃油系統工作原理 6-2 汽油濾清器更換 6-3 汽油泵檢查與更換
AWS Educate帳號 申請流程介紹.
Advanced Basic Key Terms Dependency Generalization Actor Stereotype
UML ISKM Lab.
I、使用個案塑模-使用個案圖 行為者(Actor) 使用個案(Use Case) 連接線 系統邊界 使用個案間之關係
第十一章、互動圖.
UML建模语言及工具.
第十章 面向对象 (2).
Presentation transcript:

面向对象的分析

面向对象分析的任务 着重分析问题域和系统责任,确定问题的解决方案,暂时忽略与系统实现有关的问题,建立独立于实现的系统分析模型。 系统分析模型包括系统的静态结构模型和动态行为模型、必要的需求分析说明书、系统分析说明书等。

面向对象分析的过程 问题域分析 发现和定义对象与类 识别对象的外部联系 建立系统的静态结构模型 建立系统的动态结构模型 分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责任、范围和边界,确定系统的需求。 着重对系统与外部的用户和其他系统的交互进行分析,确定交互的内容、步骤和顺序。 发现和定义对象与类 识别对象和类,确定它们的内部特征,即属性和操作。 识别对象的外部联系 同时识别对象与类、类与类之间的各种外部联系,即结构性的静态联系和行为性的动态联系,包括一般与特殊、整体与部分、实例连接、消息连接等联系。 建立系统的静态结构模型 分析系统的行为,建立系统的静态结构模型,并将其用图形和文字说明表示出来。 建立系统的动态结构模型 分析系统的行为,建立系统的动态行为模型,并将其用图形和文字说明表示出来。

建立用例模型:为何建立? 客户使用它,详细说明系统应有的功能,并描述系统的使用方法; 开发人员使用它,有助于理解系统的需求,为后续阶段的工作(如分析、设计和实现)奠定基础; 系统集成和测试人员使用它,验证最终实现的系统是否与用例模型说明的功能一致; 文档人员使用它,为编写用户手册提供参考。

建立用例模型:如何建立? 找出系统边界以外的角色(actor),角色是与系统进行交互的外部实体,可以是与系统交互的人员、与系统相连并交换信息的设备和其他系统; 从这些角色如何与系统进行交互的角度,使用用例(use case)来描述角色怎样使用系统以及系统向角色提供什么功能,用例所表示的是从外部用户角度观察的系统功能; 绘制用例图,并编写详细的用例描述。 用例图只能宏观地描述系统的功能,但却不能提供用例模型所必需的所有信息,每个功能的含义和具体实现步骤则以文本方式描述。

建立用例模型示例:学生课程注册系统

建立用例模型示例:发现角色1 角色是与系统交互(发送、接收、交换消息)的人或事。 谁使用系统的功能? 谁需要借助系统完成日常工作? 谁来维护和管理系统,以保证系统正常工作? 系统控制的硬件设备有哪些? 系统需要与其他哪些系统交互? 谁对系统产生的结果感兴趣?

建立用例模型示例:发现角色2

建立用例模型示例:发现用例1 用例总是由角色初始化,为角色提供值,只有最终产生了返回角色的结果,用例的执行才能完毕。 角色需要从系统中获得什么功能?角色需要做什么? 角色需要读取、产生、删除、修改或存储系统的某些信息吗? 系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗? 系统需要的输入/输出信息是什么?这些信息从哪儿来到哪儿去? 采用什么实现方法满足某些特殊要求?

建立用例模型示例:发现用例2

建立用例模型示例:用例之间的关系 用例之间具有包含和扩展的关系。 包含(<<include>>):将独立的用例分解成更加简单的用例。 扩展(<<extend>>):在一个用例中加入一些新的动作来构成另一个用例。

建立用例模型示例:描述用例 使用文字描述那些不能反映在图形上的信息,要求清晰明确,没有二义性。 描述用例时,应该只注重外部能力,不涉及内部细节。

建立用例模型示例:用例描述内容1 目标:简要描述用例的最终任务和结果。 事件流 说明用例是怎样启动的,即哪些角色在什么情况下启动执行用例。 说明角色和用例之间的信息处理过程,如哪些信息是通知对方的,怎样修改和检索信息的,系统使用和修改了哪些实体等。 说明用例在不同的条件下,可以选择执行的多种方案。 说明用例在什么情况下才能被视作完成,完成时结果应传给角色。

建立用例模型示例:用例描述内容2

建立用例模型示例:用例描述内容3 特殊需求:说明此用例的特殊要求。 前提条件:说明此用例开始执行的前提条件,如角色登录成功等。 后置条件:说明此用例执行结束后,结果应传给什么角色。

用例描述示例:登记成绩

发现和定义对象类 在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。 实体类<<entity>> :表示系统存储和管理的永久信息。 边界类<<boundary>>:表示角色与系统之间的交互。 控制类<<control>>:表示由系统支持和用户执行的任务。

发现和定义对象类:识别实体类 人员:由系统保存和管理其信息的人员。 组织:在系统中发挥一定作用的组织机构。 物品:需要由系统管理的物品,可以是有形或无形的。 设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设备、仪表、机器、运输工具等。 事件:需要由系统长期记忆的事件。 表格:可以是各种业务报表、统计表、申请表、身份证、商品订单、帐目、学生成绩单等。 注意不要将原始的表格进行简单对应,应该是分析和整理后形成的映射一些现实事物的表格。

识别实体类 :学生课程注册系统 实体类 说明 Professor 学校中讲课的教师 Student 学校中注册课程的学生 Schedule 学生在新学期选择登记的课程列表 CourseCatalog 学校所有课程的目录 Course 课程的基本信息 CourseOffering 新学期课程的开设信息,如讲课教师、时间、地点等信息

发现和定义对象类:识别边界类 根据角色的不同类型,边界类可以是用户接口、系统接口和设备接口。 用户接口:集中描述了用户与系统的交互信息,而不是描述用户接口的显示形式; 系统接口和设备接口:集中描述所定义的通信或交换协议,而不是说明协议如何实现的。

识别边界类 :学生课程注册系统 边界类 说明 LoginForm 为教师、学生和注册管理员提供登录的操作 RegisterCoursesForm 为学生提供选课注册的操作 ViewReportForm 为学生提供成绩查询的操作 SelectTeachCoursesForm 为教师提供查看学生选课情况的操作 SubmitGradesForm 为教师提供登记成绩的操作 MaintainProfessorsForm 为注册管理员提供维护教师信息的操作 MaintainStudentsForm 为注册管理员提供维护学生信息的操作 MaintainCoursesForm 为注册管理员提供维护课程信息的操作 CloseRegistrationForm 为注册管理员提供关闭注册的操作 BillingSystemNotice 提供与收费系统的信息交换接口

发现和定义对象类:识别控制类 控制类负责协调边界类和实体类,通常在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。 控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消。 一般来说,一个用例对应一个控制类。

识别控制类 :学生课程注册系统 控制类 说明 RegisterCoursesControl 负责新学期学生的选课登记 ViewReportControl 负责学生成绩的查询 SelectTeachCoursesControl 负责新学期课程的学生选择情况 SubmitGradesControl 负责学生成绩的登记 CloseRegistrationControl 负责关闭课程注册

发现和定义对象类:将用例行为分配到对象类1 时序图表示完成某项行为的对象类和这些对象类之间传递消息的时间顺序。

时序图:注册课程

发现和定义对象类:将用例行为分配到对象类2 协作图包含一组对象和以消息交换为纽带的关联,用于描述系统的行为是如何由系统的成分合作实现的。 协作图与时序图是同构的,二者表示的都是同样的系统交互活动,只是各自的侧重点不同而已。 通过对用例建立交互图,实现了将系统责任分配到对象类中,即交互图中的每一个消息就是消息接收对象的一个服务。

协作图:注册课程

发现和定义对象类:定义属性 初步发现 整理和筛选 按照一般常识,找出对象的某些属性,如人员的姓名、性别、年龄、地址等; 认真研究问题域,找出对象的某些属性,如商品的条形码、学生的学号等; 根据系统责任的要求,找出对象的某些属性; 考虑对象需要系统保存和管理的信息,找出对象的相应属性,如“课程”需要保存和管理的信息; 对象为了在服务中实现其功能,需要增设一些属性; 识别对象需要区别的状态,考虑是否需要增加一个属性来区别这些状态; 确定属性表示整体与部分结构和实例连接。 整理和筛选 检查这些属性是否系统使用的特征、是否描述了对象本身的特征、是否可以通过继承得到、是否可以从其他属性直接导出等。

识别对象的外部联系 对象之间的分类关系,即泛化关系; 对象之间的组成关系,即聚合关系; 对象之间的静态关系,即关联关系; 对象之间的动态关系,即依赖关系。

识别对象的外部联系:发现泛化关系 查看一个类的属性与服务是否适合这个类的全部对象,如果某些属性或服务只适合该类的一部分对象,说明应该从这个类中划分出一部分特殊类,建立泛化关系; 检查是否某些类具有相同的属性和服务,如果把这些相同的属性和服务提取出来,能否在概念上构成这些类的父类,形成泛化关系。

识别对象的外部联系:发现聚合关系 物理上的整体事物和组成部分,如设备与零部件的关系; 组织机构及其下级组织,如学校和系的关系; 团体(组织)与成员,如学校和教师的关系; 抽象事物的整体与部分,如法律与法律条文; 具体事物及其某个抽象方面,如人员与身份。

识别对象的外部联系:发现关联关系 认识对象之间的静态联系,如“学生”与“课程”之间存在选课关系,那么这两个类存在关联关系; 认识关联的属性和操作,如在“学生”和“课程”的连接中,需要给出开课学期、讲课教师等属性信息; 分析关联的多重性,如“学生”和“课程”是多对多的连接; 对于多元关联,需要增加一个对象类,使之转化为二元关联; 对于多对多的关联,需要增加一个对象类,使之转化为两个一对多的关联。

识别对象的外部联系:发现依赖关系 通过消息模拟和跟踪对象服务的执行过程,考虑当该对象执行时是否需要请求其它对象提供服务、是否需要向其他对象提供或索取某些数据等问题,从而建立依赖关系。