วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2552

UML (Unified Modeling Language)



UML ประกอบด้วย 3 ส่วนหลักคือ Things, Relationships และ Diagrams

- ส่วน Things แบ่ง 4 ประเภท คือ Structural things, Behavioral things, Group things และ An notational things

- ส่วน Relationships แบ่ง 3 ประเภท คือ Meaning, Structural และ Generalized/Specialized

- ส่วน Diagrams แบ่ง 6 ประเภท คือ Use case, Static structure, Interaction, State, Activity และ Implementation

What is uml?
UML คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP(Object oriented programming) รูปแบบของภาษา UML จะมี Notation ซึ่งเป็นสัญลักษณ์ที่นำไปใช้ใน Model ต่างๆ UMLจะมีข้อกำหนดกฎระเบียบต่างๆ ในการโปรแกรม โดยกฎระเบียบต่างๆ จะมีความหมายต่อการเขียนโปรแกรม(Coding) ดังนั้นการใช้ UML จะต้องทราบความหมายของ Notation ต่างๆ เช่น Generalize, association dependency class และ package สิ่งเหล่านี้มีความจำเป็นอย่างยิ่งต่อการตีความของการออกแบบและ Design ระบบ ก่อนนำไป Implement ระบบงานจริง ในปัจจุบันมีเครื่องมือมากมายที่สามารถแปลง Model UML เป็น Coding ภาษาต่างๆ เช่น Java, Power builder และ VB เป็นต้น

ประโยชน์ของยูเอ็มแอล (UML Advantage)

1. วงจรการพัฒนาที่สั้นที่สุด (Shortest Development life cycle)

2. เพิ่มผลผลิต (Increase productivity)

3. ปรับปรุงคุณภาพซอฟต์แวร์ (Improve software quality)

4. สนับสนุนระบบสืบทอดมรดก (Support legacy system)

5. ปรับปรุงการเชื่อมต่อทีมงาน (Improve team connectivity)


Brief history of UML
เกิดจากการรวมเอาข้อดีของ 3 แนวคิดมารวมกัน กล่าวคือ
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 นี้ จะถูกใช้ตลอดทุกระยะในการพัฒนาระบบงาน

Why UML
1. UML สามารถแสดงส่วนประกอบในการสร้างโปรเจคในรูปของโอโอพี (OOP)
2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้รหัสเชิงวัตถุ (Object Oriented Code)
3. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็นภาษาคอมพิวเตอร์ (Computer Language)

Use case Driven
กระบวนการการพัฒนาโครงการใดๆ นั้นมีวัตถุประสงค์เพื่อทำการสนับสนุนการทำงานของ User เป็นหลัก หรือ สนับสนุนความต้องการของผู้ใช้ ทั้งนี้ User ไม่ได้หมายถึงคนเพียงอย่างเดียว อาจจะหมายถึง ระบบอื่นที่อยู่ภายนอกระบบก็ได้ (Some one or something such as other system out side the system) User จะมีการกระทำกิจกรรมใดๆ ต่อ ระบบ เช่น การสอดบัตรพลาสติกลงในเครื่องอ่านบัตร การกดปุ่มตอบสนองต่อหน้าจอที่ปรากฏต่อผู้ใช้ การใช้งานเครื่อง Automatic Teller Machine (ATM) และ การรับเงินที่เครื่องส่งออกมา โดย ATM หรือระบบจะมีการสร้างลำดับของงานขึ้นมาก่อน จากนั้นจึงส่งผลลัพธ์ให้ User หรือผู้ใช้

วัตถุประสงค์ของ Analysis model
1. ต้องการแยกการวิเคราะห์ระบบ
2. ต้องการภาพรวมของระบบ(Integrated part)
3. ต้องการทราบวิธีการอื่น(ถ้ามี) (Alternative Solution)
4. ศึกษาเพื่อสร้างระบบที่เกี่ยวข้องกับระบบ หรือสิ่งที่มีอยู่แล้ว( Legacy system)



5 มุมมองหลักของ UML
• Use-case view : หน้าที่การทำงานของระบบซอฟต์แวร์ โดยพิจารณาจากมุมมองของผู้ใช้ภายนอก หรือ ระบบภายนอก use-case diagram
• Logical view : หน้าที่การทำงานของระบบมีโครงสร้างอย่างไร มองในรูปของ static structure และdynamic behavior class diagram, object diagram, state, sequence, collaboration, activity diagrams
• Component view : องค์ประกอบย่อยในการ implement ที่ประกอบเป็นระบบ และ dependency ระหว่างองค์ประกอบเหล่านั้น component diagram
• Concurrency view: การแบ่งแยก process และ processors โดยพิจารณาทั้ง communication และ synchronization dynamic diagrams (state, sequence, collaboration activity) implementation diagrams(component และ deployment)
• Deployment view : โครงสร้างทางกายภาพเกี่ยวกับ การติดตั้ง และใช้งานระบบ deployment diagram

แหล่งที่มา : http://www.thaiall.com/uml/indexo.html

: http://guru.sanook.com/pedia/topic/UML_(Unified_Modeling_Language)/

พีรพันธ์(ดิว)

2 ความคิดเห็น:

  1. ความรู้ใหม่ ...

    แต่ว่า เราจำเป็นจะต้องใช้ UML กับงานของเราไหม หรือว่าเราจะใช้ภาษาอะไรในการทำงานของเราดีนะ เราจะต้องพิจารณาอะไรอย่างไรบ้าง ในกสารเลือกภาษาที่เราจะนำมาใช้น่ะ

    ตอบลบ
  2. นั่นนะสิ

    ตอนที่จะทำโปรเจค

    ยังเลือกไม่ถูกเลย

    ระหว่าง asp กับ php

    ไม่รู้จะใช้อย่างไหน

    พี่ซายน์(พี่รหัส) บอกว่า

    ตอนแรกจะใช้อีกอย่าง

    แต่ทำไปทำมามันใช้ไม่ได้เลยต้องไปใช้อีกอย่างแทน

    แล้วอะไรมันเป็นตัวสินละว่าต้องใช้อะไรทำ

    เฮ้อ

    อาทิตย์(หมี)

    ตอบลบ