UML from techweb.com or wiki An object-oriented analysis and design language from the Object Management Group (OMG).
Many design methodologies for describing object-oriented systems were developed in the late 1980s. UML standardizes several Diagramming methods, including Grady Booch's work at Rational Software, Rumbaugh's Object Modeling Technique and Ivar Jacobson's work on use cases. There are nine kinds of Diagrams that are supported under UML.
Brief history of UML (ทั้ง 3 คน ทำงานใน Rational Rose Corporation)
1. Grady Booch ซึ่งเป็นผู้นำแนวคิดแบบ Booch method ซึ่งเป็นวิธีการที่มีชื่อเสียงมาก มี Diagram จำนวนมากสำหรับใช้งาน แต่มีข้อเสียคือมีมากเกินความจำเป็น และยุ่งยากมากในการวาด digram ด้วยมือ แนวความคิดของ Booch จะทำการวิเคราะห์ทั้งแบบ Micro - และ Micro Development และอยู่บนพื้นฐานของการพัฒนาระบบงานแบบ Iteration and Incremental Process
2. Jame Rumbaugh Object modeling Techniques(OMT) แนวความคิดนี้ถูกพัฒนาขึ้นที่ General Eletric ซึ่งเป็นที่ทำงานเดิมของ Jame Rumbaugh ประกอบด้วยโมเดลจำนวนมาก ครอบคลุมถึง Object Model, Dynamic Model, Functional Model, Use-case Model
3. Ivar Jacobson Object Oriented Software Engineer(OOSE) เป็นรูปแบบวิธีการทำงานที่เน้น Requirement ด้วย มีพื้นฐานการทำงานอยู่บน Use-Case Model ซึ่ง Use-Case Model นี้ จะถูกใช้ตลอดทุกระยะในการพัฒนาระบบงาน
1.9 Thing : State machine
:: สถานะของลำดับและวัตถุ
:: A sequence of states that an object goes through.
เป็นพฤติกรรมที่บอกให้ทราบลำดับขั้นตอนของ state ที่ object ตอบสนองต่อเหตุการณ์ต่าง ๆ
1.10 Thing : Package
:: กลุ่มก้อนที่ห่อรวมกันอย่างมีโครงสร้างและพฤติกรรม
:: A general-purpose mechanism for bundling (การห่อ) together structural, behavioral or other packages.
Grouping things คือการนำส่วนประกอบต่าง ๆ มารวมกันภายใต้เงื่อนไขบางประการ โดยเรียกกลุ่ม ๆ นี้ว่า Package
1.11 Thing : Note หรือ Page
:: ส่วนอธิบาย หรือหมายเหตุ
:: Explain the model, comments, constraints, page, server page, etc.
เป็นส่วนอธิบายรายละเอียดของ UML ซึ่งเป็นหมายเหตุ เพื่อใช้อธิบาย element อื่น ๆ ใน model
สามารถใช้ Note กับ Model ใด ๆ ก็ได้ หรือใช้แสดงความสัมพันธ์ของ page ตัวอย่างข้างล่างนี้เป็นการใช้ note อธิบาย Class และใช้แสดงความสัมพันธ์ของ page
2.1 Relationship : Dependency
:: Change to one thing will affect the other.
:: ความสัมพันธ์เชิงความหมาย สนใจเรื่อง ความสัมพันธ์ของความหมาย
เมื่อ thing หนึ่งเกิดการเปลี่ยนแปลงจะส่งผลกระทบต่ออีก thing หนึ่ง
เช่น ความสัมพันธ์ของการรับคำสั่งซื้อของลูกค้า และการจัดซื้อวัตถุดิบ เป็นต้น
2.2 Relationship : Realization
:: A specification of a constract between two entities.
:: ความสัมพันธ์เชิงความหมาย ระหว่าง interfaces กับ class เป็นต้น
interface k00 {
public int setvar();
}
class boy implements k00 {
public static void main (String args[]) {
}
}
2.3 Relationship : Association
:: Set of links between objects.
:: ความสัมพันธ์เชิงโครงสร้าง อธิบายการเชื่อมโยงระหว่างวัตถุ อาจใช้กำหนดความสัมพันธ์ แบบ one to many หรือ one to one เป็นต้น หรืออาจใช้เพื่อแสดงความเชื่อมโยงวัตถุเท่านั้น
ความสัมพันธ์อีกอย่างคือ Aggregation ใช้อธิบายความสัมพันธ์ของวัตถุทั้งหมด กับวัตถุบางส่วน เช่นความสัมพันธ์ของลูกค้ากับใบสั่งซื้อ แบบ one to many [ตย.]
2.4 Relationship : Generalization
:: Used for inheritance
:: ความสัมพันธ์เชิงสืบทอด ซึ่งเป็นความสัมพันธ์ของแม่กับลูก อาจสืบทอดพฤติกรรม หรือโครงสร้างของแม่ มาใช้ในลูก
class Jojo {
public static void printnum() {
}
}
class Boy extends Jojo {
public static void main (String args[]) {
printnum();
}
}
3.1 Use case Diagram
Use case Diagram เป็น Diagram ที่ทำหน้าที่ Capture requirement
1. เป็นเทคนิคในการสร้างแบบจำลอง เพื่อใช้อธิบายหน้าที่ของระบบใหม่ หรือระบบปัจจุบัน
2. กระบวนการสร้าง Use case เป็นแบบวนซ้ำ (Iteration)
3. องค์ประกอบมี Use case, Actor, Use case Relation และ System
4. ความต้องการของระบบจะได้จาก ลูกค้า ผู้ใช้ + ผู้พัฒนาระบบ
Case Study of Bank Open Account, Perform Task On Account, Close Account, Deposit Money, Withdraw Money, Transfer Money, Get Balance, Send-Out Monthly Statements
กระบวนการการพัฒนาโครงการ มีวัตถุประสงค์เพื่อสนับสนุนการทำงาน หรือความต้องการของ User เป็นหลัก และ User ไม่ได้หมายถึงคนเพียงอย่างเดียว อาจหมายถึงระบบอื่นที่อยู่ภายนอกระบบ (Some one or something such as other system out side the system)
User จะมีการกระทำ หรือกิจกรรมต่อระบบ เช่น การสอดบัตรพลาสติกลงในเครื่องอ่านบัตร การกดปุ่มที่ตอบสนองทางหน้าจอ ของเครื่องเอทีเอ็ม (ATM = Automatic Teller Machine) และ การรับเงินที่เครื่องส่งออกมา
Class Diagram ประกอยด้วย Class และความสัมพันธ์ระหว่าง Class เช่น Dependency, Generalization, Association เป็นต้น Class Diagram สามารถแสดงรายละเอียดว่ามี Method และ Attribute อย่างไร
Java Sample
public class regist48 {
public regist() { }
public add() { }
public drop() { }
}
public class regist49 extends regist48 {
public scholar() { }
}