UML
(Unified Modeling Language) 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 ได้ เรียกการ generate code และ การ import กลับเข้ามาอยู่ใน Model UML ว่า round trip engineer กระบวนการนี้มีประโยชน์มากในการ update model และ code ให้ตรงกันเสมอ ซึ่งจะต้องมีการควบคุมให้ดี เนื่องจากจะเป็นการทำงานร่วมกันระหว่างนักออกแบบระบบ(UML) และ Developer(Coding)
........ UML อาจใช้โปรแกรมสำหรับการวาดรูปต่างๆ เช่น Paint, Photoshop, Power point, Visio หรือ โปรแกรมอะไรก็ตามที่สามารถวาดรูปได้ นอกจากการใช้โปรแกรมแล้วการวาดรูป ลงบนกระดาษ ก็สามารถใช้ได้เช่นเดียวกัน อย่างไรก็ตามวิธีการต่างๆ เหล่านี้ จะไม่มีเครื่องอำนวยความสะดวก ในการทำงานให้ ดังนั้น จึงมีผู้ผลิต Software หลายค่ายได้ทำการสร้างเครื่องมือสำหรับการทำงานกับ UML โดยเฉพาะ อาทิ Rational Rose,Borland Together , Visual UML โดยเครื่องมือเหล่านี้จะสามารถทำการออกแบบ UML Diagram ต่างๆ และทำการ Generate Code หรือ เอกสารสำหรับออกรายงาน หรือ ส่งลูกค้าได้ นอกจากนี้เครื่องมือเหล่านี้ยังสามารถทำการ import code กลับเข้ามาเพื่อให้อยู่ในรูป Model ได้ เรียกการ generate code และ การ import กลับเข้ามาอยู่ใน Model UML ว่า round trip engineer กระบวนการนี้มีประโยชน์มากในการ update model และ code ให้ตรงกันเสมอ ซึ่งจะต้องมีการควบคุมให้ดี เนื่องจากจะเป็นการทำงานร่วมกันระหว่างนักออกแบบระบบ(UML) และ Developer(Coding)
Rational Rose
Screen Short
Together
Screen Short
Visual Modeling :
Uml เป็น Visual Modeling ซึ่งจะทำหน้าที่ในการแสดงโครงสร้าง การทำงานของ Software ให้ออกมาใน model ที่สามารถมองเห็นได้ โดยการสื่อให้ออกมาในรูปของ Diagram รูปภาพ ด้วยวิธีการแบบนี้จะทำให้ Model, Implement, Coding มีความสอดคล้อง เป็นไปในแนวทางเดียวกัน
*** Visual Modeling is modeling using standard graphical notations
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 Mode
Uml เป็น Visual Modeling ซึ่งจะทำหน้าที่ในการแสดงโครงสร้าง การทำงานของ Software ให้ออกมาใน model ที่สามารถมองเห็นได้ โดยการสื่อให้ออกมาในรูปของ Diagram รูปภาพ ด้วยวิธีการแบบนี้จะทำให้ Model, Implement, Coding มีความสอดคล้อง เป็นไปในแนวทางเดียวกัน
*** Visual Modeling is modeling using standard graphical notations
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 Mode
3.
Ivar Jacobson - Object Oriented Software Engineer(OOSE) เป็นรูปแบบวิธีการทำงานที่เน้น
Requirement ด้วย มีพื้นฐานการทำงานอยู่บน Use-Case
Model ซึ่ง Use-Case Model นี้
จะถูกใช้ตลอดทุกระยะในการพัฒนาระบบงาน
เริ่มต้นแนวคิดของ UML ถูกริเริ่มโดย Grady Booch และ Jame Rumbaugh ภายหลัง Ivar Jacobson จึงเข้ามาร่วมทีมด้วย ดังภาพด้านล่างนี้
เริ่มต้นแนวคิดของ UML ถูกริเริ่มโดย Grady Booch และ Jame Rumbaugh ภายหลัง Ivar Jacobson จึงเข้ามาร่วมทีมด้วย ดังภาพด้านล่างนี้
UML History
Why UML : ทำไมต้อง UML
1. UML สามารถแสดงส่วนประกอบในการสร้างโปรเจคในรูปของ OOP
2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้ Object Oriented Code
3. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็น Code program ได้
1. UML สามารถแสดงส่วนประกอบในการสร้างโปรเจคในรูปของ OOP
2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้ Object Oriented Code
3. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็น Code program ได้
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)
กระบวนการการพัฒนาโครงการใดๆ นั้นมีวัตถุประสงค์เพื่อทำการสนับสนุนการทำงานของ 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) +
ในโลกแห่งความเป็นจริงการทำงานไม่สามารถทำให้เสร็จสมบูรณ์ได้ในขั้นตอนเดียว และวิธีการทำงาน
โดย 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) +
Risk Profile
of an Iterative Development
Use case Analysis Model :
วัตถุประสงค์ของ Analysis model
1. ต้องการแยกการวิเคราะห์ระบบ
2. ต้องการภาพรวมของระบบ(Integrated part)
3. ต้องการทราบวิธีการอื่น(ถ้ามี) (Alternative Solution)
4. ศึกษาเพื่อสร้างระบบที่เกี่ยวข้องกับระบบ หรือสิ่งที่มีอยู่แล้ว( Legacy system)
วัตถุประสงค์ของ 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.)
1. สิ่งต่างๆ ที่มีอยู่ในโลกแห่งความเป็นจริง
2. สิ่งต่างๆ ที่สัมผัสได้ เช่น รถของนาย ก
3. กระบวนการต่างๆ เช่น การจองห้องพัก การทดสอบรถยนต์
4. ความสัมพันธ์ต่างๆ เช่น สัญญาฉบับหนึ่ง
5. คำนามต่างๆ ซึ่งสามารถกำหนดนิยามได้
6. Cyberspace (Electronic money, cash etc.)
องค์ประกอบของ Object
1. ชื่อของ Object
2. ข้อมูล Static structure เช่น ยี่ห้อ รุ่น
1. ชื่อของ Object
2. ข้อมูล Static structure เช่น ยี่ห้อ รุ่น
3. พฤติกรรมของวัตถุ
Class Definition
กลุ่มของ Object ซึ่งมีข้อมูล และมีพฤติกรรมเหมือนกัน เช่น Class ของรถยนต์ ประกอบด้วยรุ่น ยี่ห้อ เป็นต้น
Object Orientation
1. แนวความคิดพื้นฐานในการสร้างระบบ หรือ Software โดยพิจารณาปัญหาในโลกแห่งความเป็นจริง ว่าประกอบไปด้วยวัตถุ(Object) ต่างๆ มาทำงานร่วมกัน
2. การเข้าถึงข้อมูลของ Object ใดๆ จะต้องกระทำผ่านทางพฤติกรรมของ Object นั้นเท่านั้น
3. การกำหนดประเภทพฤติกรรม/ข้อมูลของObject จะทำให้สามารถควบคุมการเข้าถึงข้อมูลจากภายนอก Object ได้
Class Definition
กลุ่มของ Object ซึ่งมีข้อมูล และมีพฤติกรรมเหมือนกัน เช่น Class ของรถยนต์ ประกอบด้วยรุ่น ยี่ห้อ เป็นต้น
Object Orientation
1. แนวความคิดพื้นฐานในการสร้างระบบ หรือ Software โดยพิจารณาปัญหาในโลกแห่งความเป็นจริง ว่าประกอบไปด้วยวัตถุ(Object) ต่างๆ มาทำงานร่วมกัน
2. การเข้าถึงข้อมูลของ Object ใดๆ จะต้องกระทำผ่านทางพฤติกรรมของ Object นั้นเท่านั้น
3. การกำหนดประเภทพฤติกรรม/ข้อมูลของObject จะทำให้สามารถควบคุมการเข้าถึงข้อมูลจากภายนอก Object ได้
Symbol in
Analysis model
Symbol
in Analysis model
1. Boundary Class (ส่วนติดต่อผู้ใช้)
2. Control class(ส่วนควบคุม)
3. Entity Class(ใช้เก็บข้อมูล)
2. Control class(ส่วนควบคุม)
3. Entity Class(ใช้เก็บข้อมูล)
Building Blocks of the
UML
UML สามารถแบ่งองค์ประกอบออกเป็น 3 กลุ่ม ดังนี้
1. Things คือ สัญลักษณ์หรือสิ่งต่างๆ ที่นำมาใช้สร้าง Diagram UML แบ่งออกเป็น 4 หมวด คือ
... 1.1. Structural Things หรือ หมวดโครงสร้าง เป็นคำนามใช้สำหรับ uml ส่วนใหญ่จะเป็นส่วน static ของ ได้ แก่ Use case , Interface , Class ,Collaboration , ...Component , Node
UML สามารถแบ่งองค์ประกอบออกเป็น 3 กลุ่ม ดังนี้
1. Things คือ สัญลักษณ์หรือสิ่งต่างๆ ที่นำมาใช้สร้าง Diagram UML แบ่งออกเป็น 4 หมวด คือ
... 1.1. Structural Things หรือ หมวดโครงสร้าง เป็นคำนามใช้สำหรับ uml ส่วนใหญ่จะเป็นส่วน static ของ ได้ แก่ Use case , Interface , Class ,Collaboration , ...Component , Node
... 1.2. Bahavioral Things หรือ
หมวดพฤติกรรม ได้แก่ส่วนที่เป็น dynamic แสดงถึงพฤติกรรมของระบบ
ประกอบด้วย 2 ส่วนใหญ่ๆ คือ
........ . - Interaction
......... - state machine
... 1.3. Grouping Things หรือ หมวดการจัดกลุ่มหมู่ ได้แก่ package
......... - package
.. .1.4. Annotation Things หรือ หมวดคำอธิบาย ได้แก่ note
......... - note
2. Relationships ความสัมพันธ์ใน UML ประกอบไปด้วย
.. .2.1. Dependency หรือ ความขึ้นอยู่ต่อกันจะให้ความหมายว่าเมื่อเกิดการเปลี่ยนแปลงที่ส่วนหนึ่งแล้วจะส่งผลกระทบถึงอีกส่วนหนึ่งที่ลากเส้นมาสัมพันธ์กัน เช่น การเปลี่ยนแปลงของโรงเรียนจะมีผลกระทบของนักเรียนเป็นต้น
........ . - Interaction
......... - state machine
... 1.3. Grouping Things หรือ หมวดการจัดกลุ่มหมู่ ได้แก่ package
......... - package
.. .1.4. Annotation Things หรือ หมวดคำอธิบาย ได้แก่ note
......... - note
2. Relationships ความสัมพันธ์ใน UML ประกอบไปด้วย
.. .2.1. Dependency หรือ ความขึ้นอยู่ต่อกันจะให้ความหมายว่าเมื่อเกิดการเปลี่ยนแปลงที่ส่วนหนึ่งแล้วจะส่งผลกระทบถึงอีกส่วนหนึ่งที่ลากเส้นมาสัมพันธ์กัน เช่น การเปลี่ยนแปลงของโรงเรียนจะมีผลกระทบของนักเรียนเป็นต้น
... 2.2. Association หรือ
ความสัมพันธ์จะแสดงถึงความสัมพันธ์ระหว่าง Object ความสัมพันธ์ยังสามารถแยกออกเป็นความสัมพันธ์แบบธรรมดา
ความสัมพันธ์แบบ.Aggregration, Composite,ทิศทางความสัมพันธ์
นอกจากนั้นยังสามารถกำหนด multiplicity ให้กับความสัมพันธ์ได้อีกด้วย
... 2.3. Generalization หรือ
การสืบทอดคุณสมบัติ หรือ Inheritance นั่นเอง
... 2.4. Realization หรือ
การทำให้ทำงานได้จริง เช่น Interface ถูก Realize โดย Class , Use case ถูก Realize โดย Collaboration
2. Sequence Diagram
ตัวอย่าง Sequence Diagram ในขั้นตอนของการ Analysis
ตัวอย่าง Sequence Diagram ในขั้นตอนของการ Design
Sequence diagram เป็น Diagram ซึ่งแสดงปฏิสัมพันธ์(Interaction) ระหว่าง Object ตามลำดับของเหตุการณ์ที่เกิดขึ้น ณ เวลาที่กำหนด message ที่เกิดขึ้นระหว่าง class จะสามารถนำไปสู่การสร้าง method ใน class ที่เกี่ยวข้องได้ จากตัวอย่าง Sequence ข้างต้นจะทำการ Design สำหรับการทำรายการบัญชีการเงินของธนาคาร โดยจะเริ่มจากหน้าจอ JSP ซึ่งถือเป็น User Interface(UI) ประเภทหนึ่ง จะทำหน้าที่ติดต่อกับผู้ใช้ เพื่อรับข้อมูลจากการใช้งานโดย User จากนั้น เมื่อกดปุ่มส่งคำสั่งใดๆ ผ่านหน้าจอ JSP ก็จะทำการเรียกใช้ Servlet โดยเรียกผ่าน Method doPost ของ Account Servlet และทำการส่งค่าและเรียกใช้ Class ต่างๆ ที่เกี่ยวข้องเพื่อทำการประมวลผลตาม business process ต่อไป Servlet และ Class ที่ทำการประมวลผลต่างๆ จึงเป็นตัวควบคุมการทำงาน หรือ Controller นั่นเอง ส่วน Class ที่ทำหน้าที่เก็บข้อมูลต่างๆ จะเรียกว่า Entity Class
3. Collaboration Diagram
ประกอบด้วย
State ต่างๆ
ของ Object และเหตุการณ์ต่างๆ ที่ทำให้สถานะของ Object
เปลี่ยนและการกระทำที่เกิดขึ้นเมื่อสถานะของระบบเปลี่ยนไป
สามารถบอกสถานะของ Object ได้ โดยจะให้ความสนใจว่า ณ เวลาใดๆ
Object นั้นมี status เป็นแบบใด
ตัวอย่าง State diagram ที่สร้างจาก visual
uml
|
แสดงลำดับ กิจกรรมของการทำงาน(flow) สามารถแสดงทางเลือกที่เกิดขึ้นได้
Activity diagram จะแสดงขั้นตอนการทำงานในการปฏิบัติการ
โดยประกอบไปด้วยสถานะต่างๆ ที่เกิดขึ้นระหว่างการทำงาน
และผลจากการทำงานในขั้นตอนต่างๆ
ตัวอย่าง Activity diagram ที่สร้างจาก visual
uml
|
ประกอยด้วย
Class และความสัมพันธ์ต่างๆ
ระหว่าง Class เช่น Dependency, generalization,
association เป็นต้น Class Diagram ยังสามารถทำการแสดงรายละเอียดภายใน
Class แต่ละ Class ได้ว่ามี Method
อะไรบ้าง Field และ Attribute เป็นอย่างไร
จากแผนภาพตัวอย่างข้างต้นหมายความว่า
Class Process Control ทำการ Extends หรือ Generalize มาจาก Class API ซึ่งจะมีผลทำให้ Class
ProcessControl มีคุณสมบัติของ Class API นั่นคือมี
Attribute และ method ของ Class
API อยู่ใน Class ProcessControl สามารถเรียกใช้งานได้ทันที
โดยไม่ต้องเขียน attribute และ method เพิ่มใน class ProcessControl ซ้ำอีก
ตัวอย่าง Class diagram ที่สร้างจาก visual
uml
|
ประกอบด้วย
Object และ
Relation ระหว่าง Object โดยแต่ละ Object
จะแสดง Instance oของแต่ละ class ที่มีในระบบ และความสัมพันธ์ต่างๆ ระหว่าง Class เช่น
Dependency, generalization, association จะมีลักษณะเช่นเดียวกับใน
Class diagram
จะเห็นว่า
Object diagram จะเป็น Instance ของ Class ซึ่งจะมีชื่อและ
ข้อมูลเก็บอยู่ในขณะที่ Class จะเป็นเพียงตัวแบบที่ยังไม่มีการสร้าง
Object หรือ Instance
8. Component Diagram
8. Component Diagram
เป็น
Diagram ซึ่งแสดงโครงสร้างทางกายภาพของ
Software โดยจะประกอบด้วยองค์ประกอบซึ่งอยู่ในรูปต่างๆ เช่น Binary,
text และ executeable ภายใน Component
Diagram ก็จะมีความสัมพันธ์แสดงอยู่เช่นเดียวกับ Class
diagram, Object diagram
เป็นสิ่งที่สามารถทำการแสดงระบบสถาปัตยกรรมของ
Hardware/Software ตลอดจนความสัมพันธ์ระหว่าง hardware/software
ประโยชน์ของยูเอ็มแอล (UML
Advantage)
1. วงจรการพัฒนาที่สั้นที่สุด (Shortest Development life cycle)
2. เพิ่มผลผลิต (Increase productivity)
3. ปรับปรุงคุณภาพซอฟต์แวร์ (Improve software quality)
4. สนับสนุนระบบสืบทอดมรดก (Support legacy system)
5. ปรับปรุงการเชื่อมต่อทีมงาน (Improve team connectivity)
1. วงจรการพัฒนาที่สั้นที่สุด (Shortest Development life cycle)
2. เพิ่มผลผลิต (Increase productivity)
3. ปรับปรุงคุณภาพซอฟต์แวร์ (Improve software quality)
4. สนับสนุนระบบสืบทอดมรดก (Support legacy system)
5. ปรับปรุงการเชื่อมต่อทีมงาน (Improve team connectivity)
*** แหล่งข้อมูลเพิ่มเติมสำหรับ
UML