การโปรแกรมเชิงวัตถุ และยูเอ็มแอล (UML - Unified Modeling Language) | ||
เว็บไซต์เกี่ยวกับ UML - itmelody.com - omg.org - rational.com - agilemodeling.com การเขียนโปรแกรมด้วย JAVA - thaiall.com/class (OOP) |
UML from techweb.com
Brief history of UML (ทั้ง 3 คน ทำงานใน Rational Rose Corporation) 1. Grady Booch 2. Jame Rumbaugh 3. Ivar Jacobson UML เป็นเรื่องใหม่ มีหนังสือให้ศึกษาไม่น้อย 1. การเขียนโปรแกรมเชิงวัตถุ :ผศ.ธวัชชัย งามสันติวงศ์ 2. พัฒนาโมเดลยุคใหม่ UML :สุทริน วงศ์ศิริกุล |
What is uml? โดย http://www.itmelody.com/tu/uml1.htm
ได้รับคำแนะนำโปรแกรม Dia จาก Thaiopensource.org ใน CD จันทรา ประโยชน์ของยูเอ็มแอล (UML Advantage) 1. วงจรการพัฒนาที่สั้นที่สุด (Shortest Development life cycle) 2. เพิ่มผลผลิต (Increase productivity) 3. ปรับปรุงคุณภาพซอฟต์แวร์ (Improve software quality) 4. สนับสนุนระบบสืบทอดมรดก (Support legacy system) 5. ปรับปรุงการเชื่อมต่อทีมงาน (Improve team connectivity) ทำไมต้องยูเอ็มแอล (Why UML?) 1. UML สามารถแสดงส่วนประกอบในการสร้างโปรเจคในรูปของโอโอพี (OOP) 2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้รหัสเชิงวัตถุ (Object Oriented Code) 3. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็นภาษาคอมพิวเตอร์ (Computer Language) |
UML ประกอบด้วย 3 ส่วนหลักคือ Things, Relationships และ Diagrams
- ส่วน Things แบ่ง 4 ประเภท คือ Structural things, Behavioral things, Group things และ Annotational things - ส่วน Relationships แบ่ง 3 ประเภท คือ Meaning, Structural และ Generalized/Specialized - ส่วน Diagrams แบ่ง 6 ประเภท คือ Use case, Static strucure, Interaction, State, Activity และ Implementation |
หางาน ::
เครื่องมือวัดทางไฟฟ้า ::
LampThai.com :: until 560731 |
ยินดีรับ ผู้สนับสนุน เว็บไซต์ด้านการศึกษา
กลุ่มเว็บไซต์นี้ เริ่มพัฒนา พ.ศ.2542 โดยบุคลากรทางการศึกษาด้านคอมพิวเตอร์ โทร. 081-9927223 (ผมเป็นคนลำปางหนา) ปล. ขอไม่รับ work at home / อาหารเสริม |
Thinks และ Relationships
วิชา Principles of Object Oriented Modeling and Design จาก New York University Powerpoint เตรียมสอนเรื่อง UML ที่ http://www.cs.nyu.edu/courses/summer99/G22.3033-001/Lecture1/week1.htm
1.1 Thing : Class | :: อธิบายกลุ่มของวัตถุ :: A common description of a set of objects. class Student { private static int nextavailid = 1; public static int getnextavailid() { // } }<< คำอธิบายลักษณะวัตถุ >> ช่วยอธิบายลักษณะเฉพาะของวัตถุ (Object) เช่น utility, redirect, build, link, target link, include, communicate
|
1.2 Thing : Interface | :: รวบรวมชื่อปฏิบัติการเป็นองค์ประกอบของคลาส :: A collection of operations provided by a class of a component.
|
1.3 Thing : Collaboration | :: การรวมเป็นกลุ่มขององค์ประกอบย่อยที่สัมพันธ์ :: A collection of structural elements and behavioral elements.
|
1.4 Thing : Use case | :: ลำดับการปฏิบัติการของผู้กระทำ :: A sequence actions. A structure superimposed (วางซ้อน) on top of behavioral things.
|
1.5 Thing : Active class | :: คลาสที่สามารถเริ่ม thread หรือ process :: A class whose objects can initiate a thread or a process
|
1.6 Thing : Component | :: แพกเกจของคลาสอาจมาในรูปคลาส อินเทอร์เพส หรือคลอราโบเรชั่น :: A physical packaging of classes, interfaces and collaborations.
|
1.7 Thing : Node | :: องค์ประกอบขณะประมวลผล :: A physical element with memory and processing power.
|
1.8 Thing : Interaction | :: กริยาของข่าวสารระหว่างวัตถุ :: The "verbs" of the models. A set of messages exchanged among a set of objects.
|
1.9 Thing : State machine | :: สถานะของลำดับและวัตถุ :: A sequence of states that an object goes through.
|
1.10 Thing : Package | :: กลุ่มก้อนที่ห่อรวมกันอย่างมีโครงสร้างและพฤติกรรม :: A general-purpose mechanism for bundling (การห่อ) together structural, behavioral or other packages.
|
1.11 Thing : Note หรือ Page | :: ส่วนอธิบาย หรือหมายเหตุ :: Explain the model, comments, constraints, page, server page, etc.
|
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 เป็นต้น
|
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 :: ความสัมพันธ์เชิงสืบทอด ซึ่งเป็นความสัมพันธ์ของแม่กับลูก อาจสืบทอดพฤติกรรม หรือโครงสร้างของแม่ มาใช้ในลูก
| |
3.1 Use case Diagram | |
คลิ๊กเพื่อขยาย | กรณีศึกษาระบบทะเบียน casereg use_case01.gif |
3.2 Class Diagram | |||
คลิ๊กเพื่อขยาย | |
โปรแกรม dia คือ โปรแกรมช่วยเขียนแผนภูมิแบบต่าง ๆ เช่น แผนภูมิคลาส แล้วสามารถ export เป็นแฟ้ม .java แยกตาม diagram อัตโนมัติ ตัวอย่างนี้มี class ชื่อ parent และ child ก็จะได้ source code เป็นภาษา java 2 แฟ้ม
Download : dia installer |
3.3 Object Diagram | |||||
http://www.xml.com
| |
3.4 Sequence Diagram | |||
ตัวอย่างระบบประกันคุณภาพ : sequence1.xls ภาพตัวอย่างใน Google.com : http://images.google.co.th/images?q=sequence.gif+uml
คลิ๊กเพื่อขยาย | |
3.5 Collaboration Diagram (ร่วมมือ ช่วยเหลือ รวบรวม) | |
เส้นลูกศรครึ่งเดียว คือ ติดต่อแบบไม่รอคำตอบที่กลับมา
คลิ๊กเพื่อขยาย
| Online Ordering |
3.6 State Diagram | |
คลิ๊กเพื่อขยาย | |
3.7 Activity Diagram | |
คลิ๊กเพื่อขยาย | |
3.8 Component Diagram | |
| |
3.9 Deployment Diagram | |
คลิ๊กเพื่อขยาย | |
Download : collaboration02.dia Download : use_case03.dia |
Dia - Diagram Drawing ใน ซีดีจันทรา (Download : Dia + GTK)
|
แนะนำเว็บไซต์ (Web guides) |
|