UML


UML

การจำลองแบบเชิงวัตถุ UML คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP(Object oriented programming) รูปแบบของภาษา UML จะมี Notation ซึ่งเป็นสัญลักษณ์ที่นำไปใช้ใน Model ต่างๆ UMLจะมีข้อกำหนดกฏระเบียบต่างๆ ในการโปรแกรม โดยกฎระเบียบต่างๆ จะมีความหมายต่อการเขียนโปรแกรม(Coding) ดังนั้นการใช้ UML จะต้องทราบความหมายของ Notation ต่างๆ เช่น Generalize, association dependency class และ package สิ่งเหล่านี้มีความจำเป็นอย่างยิ่งต่อการตีความของการออกแบบและ Design ระบบ ก่อนนำไป Implement ระบบงานจริง ในปัจจุบันมีเครื่องมือมากมายที่สามารถแปลง Model UML เป็น Code ภาษาต่างๆ ยกตัวอย่าง เช่น ภาษา Java, Power builder และ VB เป็นต้น เครื่อมือในการเขียน UML : ........ UML อาจใช้โปรแกรมสำหรับการวาดรูปต่างๆ เช่น Paint, Photoshop, Power point, Visio หรือ โปรแกรมอะไรก็ตามที่สามารถวาดรูปได้ นอกจากการใช้โปรแกรมแล้วการวาดรูป ลงบนกระดาษ ก็สามารถใช้ได้เช่นเดียวกัน อย่างไรก็ตามวิธีการต่างๆ เหล่านี้ จะไม่มีเครื่องอำนวยความสะดวก ในการทำงานให้ ดังนั้น จึงมีผู้ผลิต Software หลายค่ายได้ทำการสร้างเครื่องมือสำหรับการทำงานกับ UML โดยเฉพาะ อาทิ Rational Rose, Borland Together , Visual UML โดยเครื่องมือเหล่านี้จะสามารถทำการออกแบบ UML Diagram ต่างๆ และทำการ Generate Code หรือ เอกสารสำหรับออกรายงาน หรือ ส่งลูกค้าได้ นอกจากนี้เครื่องมือเหล่านี้ยังสามารถทำการ import code กลับเข้ามาเพื่อให้อยู่ในรูป Model ได้ เรียกการ generaye code และ การ import กลับเข้ามาอยู่ใน Model UML ว่า round trip engineer กระบวนการนี้มีประโยชน์มากในการ update model และ code ให้ตรงกันเสมอ ซึ่งจะต้องมีการควบคุมให้ดี เนื่องจากจะเป็นการทำงานร่วมกันระหว่างนักออกแบบระบบ(UML) และ Developer(Coding) Visual Modeling : Uml เป็น Visual Modeling ซึ่งจะทำหน้าที่ในการแสดงโครงสร้าง การทำงานของ Software ให้ออกมาใน model ที่สามารถมองเห็นได้ โดยการสื่อให้ออกมาในรูปของ Diagram รูปภาพ ด้วยวิธีการแบบนี้จะทำให้ Model, Implement, Coding มีความสอดคล้อง เป็นไปในแนวทางเดียวกัน Software Performance : UML ถูกนำมาใช้ในการพัฒนา software อย่างกว้างขวาง และทำให้การทำงานมีคุณภาพ กล่าว คือ

 1. ช่วยลดระยะเวลาในการพัฒนาระบบงาน(Shortest Development life cycle)

2. ช่วยเพิ่มความสามารถในการทำงาน(Increase productivity)

 3. ช่วยเพิ่มคุณภาพของระบบงาน (Improve software quality)

4. รองรับระบบงานเดิม(Support legacy system)

5. ช่วยในการสื่อสารระหว่างทีมผู้พัฒนาระบบงาน(Improve team connectivity)

 Brief history of UML : เนื่องจากมีแนวความคิดเกี่ยวกับการสร้าง Model แสดงการทำงาน และ โครงสร้างของการพัฒนา Software แบบ Object-Oriented Programming จำนวนมาก แต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกัน ยุคแรกๆ ของการใช้ Model สำหรับการออกแบบระบบงาน จะมี Model และ Diagram ต่างๆ เกิดขึ้นจำนวนมาก และความสับสนในการใช้งานขึ้น(Model war) ภายหลังจึงมรแนวความคิดในการนำเอาวิธีการสร้าง Model ต่างๆ ที่มีชื่อเสียง และเป็นที่ยอมรับมากำหนดเป็น Model ใหม่ ขึ้นมา การนำเอาหลายๆ แนวคิดมารวมกันจึงเรียกว่า Unified Modeling Langauge โดยกลุ่มผู้เริ่มต้นร่วมกันกำหนด UML ขึ้นมา Grady Booch และ Jame Rumbaugh ร่วมกันทำงานที่ Rational Software Coporation เพื่อสร้าง UMLขึ้นมา โดยเริ่มต้นพัฒนาเมื่อปี 1994 ได้แก่

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. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็น Code program ได้ RUP Methodology : RUP (Rational Unified Process) เป็น Methodology ที่เหมาะกับองค์กรหรือระบบงานที่มีขนาดใหญ่ โดยเฉพาะอย่างยิ่งองค์กรที่ทำธุรกิจผลิต และจำหน่ายซอฟต์แวร์ RUP Methodology ถูกพัฒนาโดยบริษัท Rational Software Corporation จากการเก็บรวบรวมประสบการณ์ในการพัฒนาระบบเชิงวัตถุจากผู้เชี่ยวชาญจำนวนมาก ทำให้กระบวนการพัฒนาระบบของ RUP มีลักษณะของการบริหารโครงการ และควบคุมคุณภาพของซอฟท์แวร์รวมอยู่ด้วย จึงเรียกได้อีกชื่อหนึ่งว่า “Unified Process” RUP Methodology นิยมนำไปใช้ในการพัฒนาซอฟท์แวร์ (Software Development )  จึงถือได้ว่า RUP คือ กระบวนการทางวิศวกรรมซอฟท์แวร์อย่างหนึ่ง ซึ่งทำให้องค์กรที่นำ RUP ไปใช้งานประสบความสำเร็จเป็นอย่างมาก เนื่องจาก RUP มีลักษณะหลายอย่างที่ช่วยให้การปฏิบัติงานมีประสิทธิภาพ ได้แก่ Use case Driven : กระบวนการการพัฒนาโครงการใดๆ นั้นมีวัตถุประสงค์เพื่อทำการสนับสนุนการทำงานของ User เป็นหลัก หรือ สนับสนุนความต้องการของผู้ใช้ ทั้งนี้ User ไม่ได้หมายถึงคนเพียงอย่างเดียว อาจจะหมายถึง ระบบอื่นที่อยู่ภายนอกระบบก็ได้ (Some one or something such as other system out side the system) User จะมีการกระทำกิจกรรมใดๆ ต่อ ระบบ เช่น การสอดบัตรพลาสติกลงในเครื่องอ่านบัตร การกดปุ่มตอบสนองต่อหน้าจอที่ปรากฏต่อผู้ใช้ การใช้งานเครื่อง Automatic Teller Machine (ATM) และ การรับเงินที่เครื่องส่งออกมา โดย ATM หรือระบบจะมีการสร้างลำดับของงานขึ้นมาก่อน จากนั้นจึงส่งผลลัพธ์ให้ User หรือผู้ใช้ กระบวนการตอบสนองของระบบอย่างมีลำดับ(Sequence) เพื่อให้ได้งานตามต้องการในลักษณะนี้เรียกว่า Use case Use case จึงเป็น Function การทำงานของระบบที่ทำหน้าที่ให้ผลลัพธ์ หรืองานตามที่ user ต้องการ(Capture functional requirement) นักพัฒนาระบบจะนำเอา Use case มาสร้างเป็น Model ที่สามารถอธิบาย function การทำงานที่สมบูรณ์ของระบบต่อไป อย่างไรก็ตาม Use case ไม่ได้เป็นแค่เพียงสิ่งที่บอกถึงความต้องการของระบบเท่านั้น(Specification requirement) แต่มันยังมีความสำคัญอย่างมากต่อการ Design, Implementation, Test และ การติดตั้งใช้งานระบบ(Deployment) จาก Use case model ที่เกิดขึ้น Developer จะทำการสร้างลำดับของการออกแบบและพัฒนาระบบ, การแตกรายละเอียด use case เพื่อให้สามารถพัฒนาโครงการได้ โดยอาศัย Use case เป็นแกนหรือตัวขับ หรือ Use case driven ดังนั้น Use case driven จึงหมายถึงกระบวนการการพัฒนาระบบโดยมีการไหลของงานเกิดจากการใช้ use case (Derive from use case) เป็นตัวกำหนด Use case และดำเนินไปเป็นวงจร(Development Life cycle) Iterative and Incremental Development : ในโลกแห่งความเป็นจริงการทำงานไม่สามารถทำให้เสร็จสมบูรณ์ได้ในขั้นตอนเดียว และวิธีการทำงาน โดย Water fall model ซึ่งเป็นวิธีการทำงานแบบดั้งเดิมจะต้องทำงานให้เสร็จในรอบเดียว นับว่าเป็นความเสี่ยงอย่างยิ่งต่อความล้มเหลวของโครงการ เนื่องจากการทำงานในยุคปัจจุบันมักมีการเปลี่ยนแปลง Environment ต่างๆ เกิดขึ้นเสมอ เช่น Requirement change, Technology change เป็นต้น ดังนั้นจะเห็นว่าในสภาพการทำงานจริงๆ มักจะมีการทำงานแบบแก้ไขใหม่วนซ้ำเรื่อยๆ ซึ่งก็คือ Iteration นั่นเอง(การวนทำซ้ำใหม่เมื่อพบข้อผิดพลาดหรือบกพร่อง) วิธีการนี้จึงมีความสำคัญมาก นอกจากนี้ยังพบว่าการทำงานโดยการค่อยๆ เพิ่มงานเข้าไปในงานเดิมที่ทำเสร็จแล้วเรื่อยๆ จนหมดทั้งโครงการก็จะเป็นการลดความเสี่ยงงานได้ด้วย เนื่องจาก ทำงานเสร็จเป็นช่วงๆ โดยทำการแบ่งซอยงานใหญ่ๆ ออกเป็นงานย่อยๆ เมื่อเกิดข้อผิดพลาดขึ้นจะมีผลกระทบต่องานเพียงส่วนย่อยที่กำลังดำเนินการอยู่เท่านั้น ไม่ใช่กระทบหมดทั้งโครงการ วิธีการทำงานเช่นนี้เรียกการทำงานแบบ Incremental จะเห็นว่าการทำงานแบบ Incremental & Iteration จะให้ผลดีกว่าการทำงานแบบดั้งเดิมหรือ Water fall model(มีความเสี่ยงมากกว่าเนื่องจากหากพบข้อผิดพลาดขึ้น จะมีผลกระทบกับโครงการมากกว่า) ดังนั้นในยุคปัจจุบันจึงนิยมที่จะทำงานโดยอาศัยหลัก Incremental & Iteration Incremental & Iteration บ่อยๆ ครั้งที่นำมาใช้ร่วมกันอย่างสับสน แต่มันมีข้อแตกต่างกันกล่าวคือ Incremental จะเป็นการทำงานโดยอาศัยการเพิ่มเติมส่วนงานเข้าไปในงานเดิมเรื่อยๆ เพื่อให้มีความสมบูรณ์มากขึ้น เช่นการสร้างบ้านที่ค่อยๆ มีการต่อเติมส่วนประกอบย่อยเข้าไปหลังจากทำงานส่วนหนึ่งเสร็จไปแล้ว เช่นสร้างห้องน้ำ ต่อด้วยห้องนอน ประตูเป็นต้น การทำงานในปัจจุบันมักพบว่าโปรเจคต่างๆ จะมีขนาดใหญ่ ดังนั้นจึงนิยมทำการแบ่งงานออกเป็นโปรเจคย่อยๆ หลายๆ ส่วน(Slice or minimize project) แต่ละส่วนก็จะมีการทำการวนทำซ้ำ(Iteration) และการเพิ่มเติมเข้าไปรายละเอียดหรืองานเข้าไปในงานเดิม (Incremental) การแบ่งส่วนงานออกเป็นงานย่อยจะส่งผลดี คือ 1. การแบ่งส่วนงานจะสามารถทำงานร่วมกับ use case จำนวนมากได้ 2. ลดความเสี่ยงในการทำงาน(Deal with important risk) Use case Analysis Model : วัตถุประสงค์ของ Analysis model 1. ต้องการแยกการวิเคราะห์ระบบ 2. ต้องการภาพรวมของระบบ(Integrated part) 3. ต้องการทราบวิธีการอื่น(ถ้ามี) (Alternative Solution) 4. ศึกษาเพื่อสร้างระบบที่เกี่ยวข้องกับระบบ หรือสิ่งที่มีอยู่แล้ว( Legacy system) UML จะประกอบไปด้วย Object ต่างๆ มากมาย ดังนั้นจึงจะอธิบายความหมายของ Object ก่อน

Object Definition :

1. สิ่งต่างๆ ที่มีอยู่ในโลกแห่งความเป็นจริง

2. สิ่งต่างๆ ที่สัมผัสได้ เช่น รถของนาย ก

3. กระบวนการต่างๆ เช่น การจองห้องพัก การทดสอบรถยนต์

4. ความสัมพันธ์ต่างๆ เช่น สัญญาฉบับหนึ่ง

5. คำนามต่างๆ ซึ่งสามารถกำหนดนิยามได้

6. Cyberspace (Electronic money, cash etc.)

องค์ประกอบของ Object :

1. ชื่อของ Object

 2. ข้อมูล Static structure เช่น ยี่ห้อ รุ่น

3. พฤติกรรมของวัตถุ Class Definition : กลุ่มของ Object ซึ่งมีข้อมูล และมีพฤติกรรมเหมือนกัน เช่น Class ของรถยนต์ ประกอบด้วยรุ่น ยี่ห้อ เป็นต้น

Object Orientation :

1. แนวความคิดพื้นฐานในการสร้างระบบ หรือ Software โดยพิจารณาปัญหาในโลกแห่งความเป็นจริง ว่าประกอบไปด้วยวัตถุ(Object) ต่างๆ มาทำงานร่วมกัน

2. การเข้าถึงข้อมูลของ Object ใดๆ จะต้องกระทำผ่านทางพฤติกรรมของ Object นั้นเท่านั้น

3. การกำหนดประเภทพฤติกรรม/ข้อมูลของObject จะทำให้สามารถควบคุมการเข้าถึงข้อมูลจากภายนอก Object ได้

คำสำคัญ (Tags): #uml#oop#oo#qit
หมายเลขบันทึก: 134204เขียนเมื่อ 2 ตุลาคม 2007 18:12 น. ()แก้ไขเมื่อ 30 พฤษภาคม 2012 14:40 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)

ครับขอบคุณมากๆๆครับ น่าจะมีภาพเกี่ยวข้องกับองค์ประกอบ ของ Uml ด้วยน่ะคับ ผม ขอบคุณมากๆๆครับ

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท