Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN

Slides:



Advertisements
Similar presentations
Which TV program is the video? 中国达人秀 China’s Got Talent 选秀节目 talent show talent n. 天资;天赋.
Advertisements

<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
任务二 面向对象的建模 4. UML静态建模 类图 对象图 包图 组件图.
軟體工程 -物件導向程式設計與UML系統分析實作
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
方案設計與評估.
管理信息系统-MIS 5 面向对象方法学 5.1 面向对象方法学的产生及其发展 传统的开发方法存在的问题:
Ch02物件導向程式設計 物件導向系統分析與設計.
第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型
第8章 组织中的人员配备 问题与思考: 海信集团使用“空降兵”,海尔集团与宝洁公司 则不使用空降兵。各自的道理何在?与器官移植 有哪些异同点? 在中低端饭店行业,何种绩效管理模式能使员工 的行为与企业的长远利益相一致?桃源大酒店、 城南往事和微山湖鱼馆的案例。 公司是不是员工的家?该不该是员工的家?
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
Java Programming Hygiene - for DIDC
自衛消防編組任務職責 講 義 This template can be used as a starter file for presenting training materials in a group setting. Sections Right-click on a slide to add.
新竹教育大學 數理教育研究所 蘇宏仁 中華民國 100 年 7 月 27 日 於竹市環境教育輔導小組
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
資料庫設計 Database Design.
第一章 面向对象程序设计.
第六讲 面向对象分析(6学时) 了解面向对象分析的概念 了解面向对象分析的发展 理解面向对象的基本概念 理解面向对象分析的过程、内容
第10章 考试系统的分析与设计 1.
第一章 軟體工程 (Software Engineering Introduction)
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
第八章 分析與設計階段 – 物件導向設計(OOD)
Excellence in Manufacturing 卓 越 制 造
形式语言与网络 计算环境构建 1.
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
Chapter 3 Case Studies.
軟體工程 -物件導向程式設計與UML系統分析實作
線上英檢測驗系統 Copyright © 2012 Cengage Learning Asia Pte. Ltd.,
物件導向系統分析與設計與UML.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
Decision Support System (靜宜資管楊子青)
创建型设计模式.
软件建模精要 面向对象软件建模技术.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
張新仁 教授兼學生事務長 國立高雄師範大學教育系
黄海波 & 陶万山 with contribution by 劳晖
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
软件建模与UML.
971研究方法課程第九次上課 認識、理解及選擇一項適當的研究策略
7-1 互 動 7-2 順序圖 7-3 合作圖 7-4 順序圖的個案說明 7-5 合作圖的個案說明
UML类设计工具 任课老师:黄武 上午2时50分 10.
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
设计题目(中文) 英文 姓名 单位 ___年___月___日.
Decision Support System (靜宜資管楊子青)
Advanced Basic Key Terms Dependency Actor Generation association
基于课程标准的校本课程教学研究 乐清中学 赵海霞.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
推动全球能源变革,以创造清洁、安全、繁荣的低碳未来。
UML语言.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
ER Model.
建築專題設計 吳可久副教授.
徐迎晓 复旦大学软件学院 实现模型 徐迎晓 复旦大学软件学院.
971研究方法課程第六次上課必讀教材導讀 如何提出一個論文題目或研究問題
第6章 面向对象开发的 分析与设计.
IEEM 5352 Enterprise Integration
Create and Use the Authorization Objects in ABAP
MODELING GENERALIZATION & REFINING THE DOMAIN MODEL
Chapter 14 系統保護 (System Protection)
Advanced Basic Key Terms Dependency Generalization Actor Stereotype
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
UML ISKM Lab.
OOA/OOD UML RUP Architecture Pattern MDA
Operating System Software School of SCU
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
二项式的分解因式 Factoring binomials
第十章 面向对象 (2).
Presentation transcript:

Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN

Objectives Describe the book goals and scope. Define object-oriented analysis and design(OOA/D). Illustrate a brief OOA/D example. Overview UML and visual agile modeling.

1.1 What Will You Learn? Is it Useful? 1.2 The Most Important Learning Goal 1.3 What is Analysis and Design? 1.4 What is Object-Oriented Analysis and Design? 1.5 A Short Example 1.6 What is the UML? 1.7 Visual Modeling is a Good Thing 1.8 History

1.1 What Will You Learn? Is it Useful? This book is a tool to help developers and students learn core skills in object-oriented analysis and design (OOA/D). These skills are essential for the creation of well-designed, robust, and maintainable software using OO technologies and languages such as Java or C#.

Figure 1.1 Topics and skills covered OOA/D Patterns UML notation Topics and Skills Principles and guidelines Requirements analysis Iterative Development with An agile Unified Process Figure 1.1 Topics and skills covered

In conclusion, this book helps a student or developer: Apply principles and patterns to create better object designs. Iteratively follow a set of common activities in analysis and design, based on an agile approach to the UP as an example. Create frequently used diagrams in the UML notation.

1.2 The Most Important Learning Goal A critical,fundamental ability in OOA/D is to skillfully assign responsibilities to software components. 在面向对象分析与设计中最重要的能力是能够熟练地为软件构件分配职责。 本书中给出了9个用于对象设计和职责分配的基本原则。它们在学习帮助中被称作GRASP模式。

1.3 What is Analysis and Design? Analysis emphasizes an investigation of the problem and requirements, rather than a solution. Design emphasizes a conceptual solution that fulfills the requirements, rather than its implementation.

1.4 What is Object-Oriented Analysis and Design? During object-oriented analysis,there is an emphasis on finding and describing the objects--or concepts--in the problem domain. During object-oriented design, there is an emphasis on defining software objects and how they collaborate to fulfill the requirements.

Figure 1.2 Object-orientation emphasizes representation of objects domain concept Book title visualization of domain concept public class Book { private String title; public Chapter getChapter(int) {…} } representation in an object-oriented programming language Figure 1.2 Object-orientation emphasizes representation of objects

图书馆信息系统 面向对象的分析/设计 结构化的分析/设计 按照对象或概念分解 按照功能或过程分解 System Catalog Librarian Book Borrower Record Loans Add Resource Report Fines

1.5 A Short Example Before diving into the details of requirements analysis and OOA/D, this section presents a birds-eye view of a few key steps and diagrams, using a simple example—a “dice game” in which a player rolls two die. If the total is seven, they win; otherwise, they lose.

Define use cases Define domain model Define interaction diagrams Define design Class diagrams

Define Use Cases Play a Dice Game A player picks up and rolls the dice. If the dice face value total seven, they win; otherwise, they lose. Player Play a Dice Game

Define a Domain Model Object-oriented analysis is concerned with creating a description of the domain from the perspective of objects. There is an identification of the concepts, attributes, and associations that are considered noteworthy. The result can be expressed in a domain model that shows the noteworthy domain concepts or objects.

Figure 1.3 Partial domain model of the dice game Player name Die faceValue Rolls 1 2 1 2 Plays 1 DiceGame 1 Includes Figure 1.3 Partial domain model of the dice game

Define Interaction Diagrams Object-oriented design is concerned with defining software objects and their collaborations. Sequence diagram shows the flow of messages between software objects, and thus the invocation of methods.

Figure 1.4 Sequence diagram illustrating messages :DiceGame die1:Die die2:Die play() roll() Player fv1:=getFaceValue() roll() Fv2:=getFaceValue() Figure 1.4 Sequence diagram illustrating messages between software objects

Define Design Class Diagrams Design class diagram illustrates the attributes and methods of the classes.

Figure 1.5 Partial design class diagram Die faceValue:int getFaceValue():int roll() DiceGame die1:Die die2:Die play() 1 2 Figure 1.5 Partial design class diagram

1.6 What is the UML? The Unified Modeling Language is a visual language for specifying, constructing and documenting the artifacts of systems .

概念类(conceptual class)—现实世界中的 概念或事物。在UP领域模型中包含概念 类。 软件类(software class)—表示软件构件在 规格说明或实现视点中的类。 实现类(implementation class)—特定OO 语言(如Java)中的类。

UML的九种图 用例图(Use Case Diagram) 类图(Class Diagram) 对象图(Object Diagram) 顺序图(Sequence Diagram) 协作图(Collaboration Diagram) 状态图(Statechart Diagram) 活动图(Activity Diagram) 组件图(Component Diagram) 部署图(Deployment Diagram)

上述九种图又可分为三个大类:静态图、动态图和结构图。 静态图:描述系统的结构和功能,包括用例图、类图和对象图; 动态图:描述系统支持的对象间相互作用的关系,包括顺序图、协作图、状态图和活动图; 结构图:把系统的实现描述成可执行的组件或描述系统的物理体系结构,包括组件图和部署图。

用例图(Use Case Diagram) 用例(Use Case)是从用户的观点对系统行为的一个描述。它从用户角度搜集系统需求,这样可靠而不易遗漏需求。 用UML用例图来描述洗衣过程如下图所示:   小人表示参与者(Actor),它代表拟建系统外部和系统进行交互的某类人或系统。椭圆代表用例。用例定义一组相关的由系统执行的动作序列。 Washing Machine User Wash Clothes

类图(Class Diagram) 一个类是一组具有类似属性和共同行为的事物。例如,属于洗衣机类的事物都有诸如品牌(brand name)、型号(model name)、序列号(serial number)和容量(capacity)等属性,它们的行为包括加衣物(add clothes)、加洗涤剂(add detergent)、取出衣物(remove clothes)等操作。

用UML表示要使用矩形方框,分为3个区域。最上面是类名,中间是属性,最下面是操作。类图是由这些类框和表明类之间如何关联的连线所组成。   说明:类的名称通常 首字母大写,属性和 操作通常首字母小写。 WashingMachine brandName modelName serialNumber capacity add-Clothes() add_Detergent() remove_Clothes()

对象图(Object Diagram) 对象是一个类的实例,是具有具体属性和行为的一个具体事物。如洗衣机品牌为海尔或小天鹅,一次最多洗涤重量为5公斤。 使用UML描述时和类图类似,但在对象名下要加下划线,对象名后加冒号加类名。 MyWasher:WashingMachine ……

顺序图(Sequence Diagram) 类图和对象图表达的是系统的静态结构,在一个运行的系统中,对象之间要发生交互,并且这些交互要经历一定的时间。UML顺序图所表达的正是这种基于时间的动态交互。

仍以洗衣机为例,洗衣机的构件包括一个注水的进水管(water pipe)、一个用来装衣物的洗涤缸(drum)和一个排水管(drain)。这些构件也是对象。 当“洗衣服”这个用例被执行时,假设已完成了“加衣物”、“加洗涤剂”和“开机”操作,那么应执行以下步骤: ⑴通过进水管向洗涤缸中注水; ⑵洗涤缸保持静止状态; ⑶水注满,停止注水;

⑷洗涤缸往返旋转15分钟; ⑸通过排水管排掉洗涤后的脏水; ⑹重新开始注水; ⑺洗涤缸继续往返旋转洗涤; ⑻停止向洗衣机中注水; ⑼通过排水管排掉漂洗衣物的水; ⑽洗涤缸加快速度单方向旋转5分钟; ⑾洗涤缸停止旋转,洗衣过程结束。

Rotate unidirectionally 用一个顺序图说明进水管、洗涤缸和排水管之间随时间变化所经历的交互过程。 :Drum :Drain :Water Pipe Send fresh water Remain stationary Stop Rotate back and forth Send fresh water Send soapy water Rotate back and forth Stop Send rinse water Rotate unidirectionally Stop

对象符号下方垂直的虚线,称为对象生存线。沿对象生存线上展开的细长矩形称为激活,表示该对象正在执行某个操作,矩形的长度表示执行操作的持续时间。 带箭头的水平实线表示发送消息,消息可以发往其他对象或自身对象。图中对象之间发送的消息有6个,发往自身的消息有5个。

协作图(Collaboration Diagram) 系统的工作目标是由系统中各组成元素相互协作完成的,建模语言必须具备这种协作关系的表达方式。仍以洗衣机为例,在洗衣机构件的类集中又增加了一个内部计时器(Internal timer)。在经过一段时间后,内部计时器控制进水管停止注水,然后启动洗涤缸往返旋转。图中的序号代表命令消息的发送顺序,内部计时器先向进水管对象发送停止注水消息,后向洗涤缸对象发送往返旋转消息。

:Internal Timer 1: Stop 2: Rotate back and forth :Water Pipe :Drum

状态图(Statechart Diagram) 在任一给定的时刻,一个对象总是处于某一特定的状态。一个人可以是新生儿、婴儿、儿童、少年、青年、中年或老年。一个电梯可以处于上升、下降或停止状态。一台洗衣机可处于浸泡(Soak)、洗涤(Wash)、漂洗(Rinse)、脱水(Spin)或关机(Off)状态。用UML状态图表示如下,说明洗衣机可以从一个状态转移到另一个状态。

状态在图中表述为圆角矩形, 有两种比较特殊的状态:初始 状态(实心圆点)和结束状态 (实心圆点外加一个圆圈)。 只能有一个初始状态,可能有 多种结束状态。

活动图(Activity Diagram) 活动图类似于流程图,用于描述用例中的事件流结构。下图显示按顺序的UML活动图。 步骤4 步骤5 步骤6

组件图(Component Diagram) 组件图和部署图不以洗衣机为例,因为它们和整个计算机系统密切相关。组件是软件系统的一个物理单元,例如数据表、可执行文件、动态链接库、文档等。组件的UML表示为: 《DLL》 《HTML》 《EXE》 组件X 组件Y 组件Z

部署图(Deployment Diagram) 部署图显示了基于计算机系统的物理体系结构。它可以描述计算机和设备,展示它们之间的连接,以及驻留在每台机器中的软件。每台计算机用一个立方体来表示,立方体之间的连线表示这些计算机之间的通信关系。

《Processor》 PC Windows 2000 《Device》 monitor printer

Rose模型的四个视图 Use Case 视图 Logical 视图 Component 视图 Deployment 视图

Use Case 视图 Use Case视图包括系统中的所有角色、Use Case和Use Case框图,还可能包括一些Sequence或Collaboration框图。 Use Case视图是系统中与实现无关的视图。 Use Case视图关注系统功能的高层形状,而不关注系统的具体实现方法。

Logical 视图 Logical视图关注系统如何实现Use Case中提出的功能。它提供系统的详细图形,描述组件间如何关联。除此之外, Logical视图还包括需要的特定类、Class框图和Statechart框图。利用这些细节元素,开发人员可以构造系统的详细设计。

Component 视图 Component视图包含模型代码库、可执行文件、运行库和其他组件的信息。组件是代码的实际模块。 Component视图包含一个或多个组件图,描述组件之间的依赖关系。

Deployment 视图 Deployment视图关注系统的实际部署,显示网络上的进程和设备及其相互间的实际连接。一个系统只能有一个Deployment图。