An overview of UML.

Slides:



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

allow v. wrong adj. What’s wrong? midnight n. look through guess v. deal n. big deal work out 允许;准许 有毛病;错误的 哪儿不舒服? 午夜;子夜 快速查看;浏览 猜测;估计 协议;交易 重要的事.
桂林市 2011 年高三第二次调研考 试质量分析暨备考教学建议 桂林市教育科学研究所 李陆桂. 二调平均分与一调、 2010 广西高考英语平均分的比较 科目 类别 英语 文科文科 2010 年广西 一调 二调 与 10 年广西相差
考研英语复试 口语准备 考研英语口语复试. 考研英语复试 口语准备 服装 谦虚、微笑、自信 态度积极 乐观沉稳.
A self-reflection of my teaching design Unit 1 New Friends New Faces 戴弘梧.
SanazM Compiled By: SanazM Here Are Some Tips That May Bring You A Beautiful Life! Music: 美麗人生 Angel ( 主題曲 ) Revised By: Henry 以下是一些能帶給你一個美麗人生的秘訣 中文註解:
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
軟體工程 -物件導向程式設計與UML系統分析實作
2014 年上学期 湖南长郡卫星远程学校 制作 13 Getting news from the Internet.
Section B Period Two.
增译法 作为翻译的一个普遍准则,译者不应当对原文的内容随意增减。不过,在实际翻译过程中,要准确地传达原文的信息,译者难免要对译文做一些增添或删减, 译者往往需要把原文中隐含的一些东西增补清楚,以便于读者理解。 例如: Success is often just an idea away. 原译:成功往往只是一个念头的距离。
专题八 书面表达.
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
2012 年下学期 湖南长郡卫星远程学校 制作 13 Unit 4 The next step 年下学期 湖南长郡卫星远程学校 制作 13 Discussion Which university do you want to study at? Have you thought carefully.
A Career Planning Project
How can we become good leamers
Java Programming Hygiene - for DIDC
2014年上海市中职校学业水平考试 英语学科总结报告
Chapter 29 English Learning Strategy Of High School Students
真题重现:广东高考中的不定式。 1 (2008年高考题)For example, the proverb,“ plucking up a crop _________(help) it grow ,” is based on the following story… 2 (2007年高考题)While.
Could you please tell me where the restrooms are? Unit 11.
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
欢迎各位 Nice to Meet U.
2012高考英语书面表达精品课件:话题作文6 计划与愿望.
初中进阶 (2346 期 ) 1 版. 1. What types of bullying do you know about? Physical hitting, tripping, stealing and hair pulling Social telling other kids.
第9章 面向对象方法学引论 9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型
摘要的开头: The passage mainly tells us sth.
Writing 促销英文信 促销的目的就是要卖出产品,那么怎样才能把促销信写得吸引人、让人一看就对产品感兴趣呢?下面就教你促销信的四步写法。
Homework 4 an innovative design process model TEAM 7
Unit 4 I used to be afraid of the dark.
Reading Do you remember what you were doing? 学习目标 1、了解几个重要历史事件。
Module 5 Shopping 第2课时.
Here Are Some Tips That May Bring You A Beautiful Life!
形式语言与网络 计算环境构建 1.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
軟體原型 (Software Prototyping)
HOW TO ACE -- THE IELTS SPEAKING TEST
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
创建型设计模式.
印度武术 ——卡拉里帕亚特之秘.
但是如果你把它发给最少两个朋友。。。你将会有3年的好运气!!!
This Is English 3 双向视频文稿.
Lesson 21:The Fable of the Woodcutter
Lesson 28 How Do I Learn English?
Lesson 44:Popular Sayings
Unit 1.
Unit 4.
基于课程标准的校本课程教学研究 乐清中学 赵海霞.
Connecting Education and Career through Learning
UML语言.
IBM SWG Overall Introduction
学习导航 学习导航.
Here Are Some Tips That May Bring You A Beautiful Life!
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
Here Are Some Tips That May Bring You A Beautiful Life!
Here Are Some Tips That May Bring You A Beautiful Life!
Guide to a successful PowerPoint design – simple is best
BORROWING SUBTRACTION WITHIN 20
第二章 資訊系統開發模式.
虚 拟 仪 器 virtual instrument
中央社新聞— <LTTC:台灣學生英語聽說提升 讀寫相對下降>
中考英语阅读理解 完成句子命题与备考 宝鸡市教育局教研室 任军利
徐迎晓 复旦大学软件学院 实现模型 徐迎晓 复旦大学软件学院.
高考应试作文写作训练 5. 正反观点对比.
关系代词.
Unit 1 How do you study for a test?
創造思考的開發與培養.
英语单项解题思路.
UML ISKM Lab.
Further Development Translation 来自 创思英语 Grammar.
Presentation transcript:

An overview of UML

The objectives of OOAD create codes in good architecture, easily maintainable create reusable codes (via inheritance) modeling software before building it (models can be validated, verified….) delay implementation stage and find any potential problems/design flaws before implementation change the way of software development OOAD documents are used as a blue print, serving as a guidelines for implementation. 減少摸石頭過河過程中錯誤所帶來的金錢與時間延遲 OOAD documents serve as a communication tool between managers/programmers

Why is UML important? Architects design buildings. Builders use the designs to create buildings. The more complicated the building, the more critical the communication between architect and builder. Blueprints are the standard graphical language that both architects and builders must learn as part of their trade.

OOAD standard language UML UML (Unified Modeling Language) It is intended to become the standard visual models for software engineering (千呼萬喚始出來的一種軟體工程語言) It is not only used in OOAD but can be used in other software applications where programs are not OO( 可視為軟體的工程圖標準(不見得只是對物件導向程式有用) 由物件導向學界的三位巨頭成果結合而成 3 amigos Grady Booch (Rational Software) Jim Rumbaugh (GE) Ivar Jacobson In practice, UML is gradually accepted as a standard visual models. Many researches show that it is useful in practice. (近年來的推廣,業界接受度很高,多項研究調查顯示UML在業界實用上有用) It is an informal language, but useful. Although it is called a LANGUAGE, actually it is a set of diagram (visual models) (雖然它稱為語言,事實上只是一組標準圖形表示方式)

UML’s goal In the past decade, the UML has emerged as the software blueprint language for analysts, designers, and programmers alike. It is now part of the software trade. The UML gives everyone from business analyst to designer to programmer a common vocabulary to talk about software design.

UML ─ A design and analysis language for communication Have you ever read other people’s source code? Have you ever need to understand an existing system? from source code -- a bad start from specification (規格書) -- 見林不見樹

NOTES UML is just a tool, like OOPL,not a methodology You understand UML X=> you know OOAD (知道UML語言,不代表你會OOAD) Just like a mechanic can understand a blueprint but does not mean he can design one. (正如同懂OOPL不代表你會寫出真正的OO程式) Now, writing OOP mostly use UML as a standard tool (但是進行OOAD現在都會用UML語言來做為工具(早期沒有標準化之前,各種圖示都有人使用) More UML diagrams are released for specific application domain (基本上UML含有OOAD必要的功能,但是它是一套適用任何類型軟體工程的語言,例如real time 系統。(有些功能正不斷的擴充中))

When to use it In a forward engineering, Specs-> modeling -> coding ->…. 在需求規格制訂後,採用UML工具進行建構一個model然後分析與設計。然後可以利用分析所得到的UML分析資料,輸入UML 工具,產生程式碼模版讓程式設計人員進行細節加工。分析過程中的UML文件可以視為工程藍圖,以及說明文件。 In a backward engineering (亡羊補牢) Code -> UML diagrams : use UML for documentation purpose (在程式寫出來之後,利用軟體工具或人工,將程式的UML架構圖繪製出來,補寫文字,作為說明文件,只是一個亡羊補牢的措施)

How to use it 在各式各樣的軟體工程工具裡面繪製UML圖,並產生程式碼模版 Other pure drawing tools Rational rose Borland together ArgoUML ……. Other pure drawing tools Visio ……

What is analysis and design? If you don’t feel learning something solid in the class, don’t blame me. Design can be hard ! analysis and design is a software engineering process aimed for large or project based software development. In small programs (involving one or two persons) -> understand -> think -> coding In large project, you are in big trouble if you think you are smart and you can remember and manage anything in your brain

The right time to get training of SE or OOAD many-year experienced programmers EMBA (enterprise Master of Being an Asshole) not ALL the MBA degree can attract business man. Typical MBA non-experience graduates Overwhelm the students with case studies learn valuable experience from case studies avoid mistakes from case studies However, no way this can replace in-field experience MSE degree in CMU Advanced OOA?

Is everything must be OO? Not quite true OOA is used to structure a system, not to derive algorithms to solve problems. Implementing algorithms/systems which are still in research object-orientedly could be waste of time Who knows what will come next? Component techniques? Software architecture?

UML history terms need to know OOPSLA (Object-oriented programming, systems, languages, and applications) OMG (object management group) Smalltalk

History of UML key methodologists protest standardization OOPSLA 94 Old joke: what is the difference bewteen a methodologist and a terrorist? Answer, you can negotiate with a terroist OOPSLA 94 Booch and Rumbaugh merge their method and declare “the method war is over – we won” other suggest anti-booch coalition 1996 UML 1.0 announced now UML 1.3

UML, a modeling language UML define a notation and a meta-model How strictly should you stick to the modeling language? CASE tool: more strict to get acceptable codes for communication purpose: you can have a little more leeway

Why you are using UML to do Analysis and Design Communication allow you to communicate certain concepts more clearly than the alternatives Natural language is too imprecise code is precise but too detailed You are suggested to use UML to highlight important details avoiding lose sight of the forest for the trees on a large project serving as a brief document of the system

Why you are using UML to do Analysis and Design learning OO Object languages allow advantages but don’t provide them. by Tom Hadfield Communicating wirh domain experts the biggest challenge of development build the right system (just like in exam, you answer the right answer)

 Jacobson’s Three Types Interface Objects, Advantages: Other Interfaces Outputs User Interface Object Behavior Object Attributes Object Classes

 Jacobson’s Three Types Control Objects: Sometimes we find a method (subroutine, function) that uses data, and calls other methods, from many different objects and classes. These methods don’t easily fit or don’t logically belong in any of our entity classes or interface classes.

5.2. Classes and Classification Additional Data-world Classes Abstract Classes Often added to take advantage of inheritance and polymorphism Sometimes we invent an “artificial” superclass To make use of some common attributes or behavior

Discussion 分析的目的是為了要讓程式碼寫出來能夠充分的應付未來的變化。讓程式能夠順利的演化 好的分析不容易,大規模的分析通常必須由有經驗的人為之(可以讓叫沒經驗的程式員自行進行負責的小模組內的分析) 壞的分析等於浪費時間,反而另程式開發時程蹉跎 有分析通常比沒分析來的好很多,因為分析的過程中逼迫主事者了解絕大部分的細節,考慮所有可能發生的狀況,就算分析隨著程式設計而修改可以將風險降到最小,而不致延遲到 implementation

Discussion 好的分析!=好的效能 通常具備好結構的軟體會具備有較差的效能,因為多了許許多多物件的新增,物件之間的呼叫。所以在 design 階段,有時候為了效能,又會合併class 要程式員寫乾淨,好的程式碼不容易。如果能先行分析,可以逼迫程式設計人員按照架構寫出乾淨好維護的程式碼 好的分析可以造就好的分工,teamwork 成功的分析就是要能夠嗅出未來軟體可能演化的部分與方向。 針對任何案子,沒有所謂完美的分析。好壞只是程度上的差別,純粹看主事者要應付程式演化的問題到什麼程度 好的分析一定要落實到程式碼,沒有大量實做經驗背景的人所做的分析可能無法達到

Discussion 在你的軟體發展過程中,你認為花在分析與設計的時間要多少? What type of software you build (what kind of market you are in)? e.g. there is no need for analysis for most research Is evolveability very important in your area? is technology changing very fast in your area? How long is your design/code typically out of date and thrown away? what is the scale of your software? what is the total cost of your software? Are documentation/process important in your company? Have your programmers high transition rate? How much quality you care? 6 month design/planning, 3 month coding, 3 month testing

An brief introduction of UML No single diagram are capable of describing software. ( 軟體工程幾十年的重要體認就是我們沒有辦法用單一種的圖像來表示軟體) There are several aspects of software. Must be dealt by several kind of diagrams. (軟體有許多面向,需要以不同的圖形表示方式來解決) Use case diagrams Class diagrams Object diagrams Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Component diagrams Deployment diagrams

Use Case Diagram

class diagram

Sequence diagram

Collaboration diagram

state chart

Activity diagram

package and object diagram

Component and deployment diagram