school of Information communication Tecnology, chatper 1 introduction & Object-oriented software development processes with UML Wattanapong suttapak, Software Engineering, school of Information communication Tecnology, university of phayao
จุดประสงค์การเรียนรู้ ทบทวนความหมายของคลาสและวัตถุ ในนิยามของการเขียนโปรแกรมเชิงวัตถุ เข้าใจความแตกต่างระหว่างคลาสและวัตถุ เข้าใจถึงความสัมพันธ์ระหว่างวัตถุในรูปแบบ association และ aggregation
Object-oriented concept วิธีการมองสิ่งต่างๆ ให้มีลักษณะแบบวัตถุ โดยวัตถุจะต้องมีองค์ประกอบคือ วัตถุ เช่น นักเรียน คุณสมบัติ เช่น สีผม ส่วนสูง น้ำหนัก ระดับไอคิว ระดับอีคิว เป็นต้น พฤติกรรม เช่น เปลี่ยนสีผม กำหนดส่วนสูง เปลี่ยนน้ำหนัก เพิ่มไอคิว เพิ่มอีคิว เป็นต้น
Object-oriented concept obj : student properties hair color height weight IQ EQ method get hair color set hair color get height set height get weight set weight
Object-oriented concept 2. Relation between object class and object ใน 1 คลาสอาจมีมากกว่า 1 วัตถุ หรือแต่ละคลาสอาจมี 1 วัตถุ optimum 1 คลาส มี 1 วัตถุ relation ระหว่างวัตถุสามารถมีความสัมพันธ์เชื่อมโยงกัน เรียกว่า Association ความสัมพันธ์ระหว่างวัตถุในกรณีเป็นความสัมพันธ์แบบส่วนประกอบ เรียกว่า Aggregation
Object-oriented concept 2. Relation between object association aggregation
Association 1 Student สามารถลงได้มากกว่า 1 Course และ 1 Course สามารถมีมากกว่า 1 Student
Aggregation 1 Student มีองค์ประกอบหลายประเภท เช่น ที่อยู่ นั่นคือ Address เป็นส่วนประกอบของ Student หรือสามารถสรุปได้ว่า aggregation เป็นส่วนหนึ่งของ association
Object-oriented software development processes กระบวนการพัฒนาซอฟต์แวร์เชิงวัตถุ สิ่งที่ต้องรู้เกี่ยวกับกระบวนการนี้ 1. วงจรการพัฒนาระบบ(SDLC : System Development Life Cycle) 2. พื้นฐาน OOP 3. UML
SDLC water fall model spiral model agile development
SDLC 1. water fall model เป็นการทำงานแบบขั้นตอน โดยมีลำดับดังต่อไปนี้ Requirements specification (Requirements analysis) Software design Implementation and Integration Testing (or Validation) Deployment (or Installation) Maintenance
SDLC 2. Spiral model รูปแบบการพัฒนาเป็นแบบก้นหอย จุดประสงค์เพื่อลดความเสี่ยงในการพัฒนา รูปแบบจากในสู่นอก Requirement ConOps Re-plan Design Code Integration Test Implementation reRequirement Verify&Validate Dev-plan Draft Verify&Validate Test-plan
SDLC 3. Agile รูปแบบการพัฒนาเป็นแบบวนซ้ำ โดยมีวัตถุประสงค์เพื่อ รับความเปลี่ยนแปลงในการพัฒนา มีการพัฒนาแบบขยายขอบเขต(Incremental Development) จนเกิดวิวัฒนาการของระบบ(Evolution Development) วิวัฒนาการของระบบ พัฒนาจากผลของระบบในรอบก่อนหน้า (Feedback in Iteration) แล้วนำไปปรับระบบในรอบต่อไป(Adaptive) จนได้ระบบที่ดีที่สุด
SDLC 3. Agile ข้อดี ทราบถึงความเสี่ยงของระบบในระยะต้นๆ ของการพัฒนา มองเห็นพัฒนาการของระบบได้ชัด ปรับการเปลี่ยนแปลงตรงตามความต้องการของผู้ใช้อยู่เสมอ ทีมพัฒนาเดิมสามารถพัฒนาระบบต่อไปได้เร็วขึ้น ข้อเสีย ศักยภาพของการพัฒนาขึ้นกับประสบการณ์ทีมพัฒนา ต้องใช้ความเป็นทีมเวิร์คและทุกคนสามารถทำงานแทนงานคนอื่นๆ ได้ ระบบเสร็จล่าช้าหรือล้มเหลว เมื่อมีอย่างน้อย 1 คนในทีมยกเลิก
Unified process Unified Process(UP) เป็น กระบวนการพัฒนาระบบเชิงวัตถุแบบหนึ่ง โดยสร้างขึ้นสำหรับการพัฒนาแบบเป็นรอบ(Iteration Development) นำเสนอโดย Larman(2005) พัฒนาด้วยเครื่องมือ Unified Modeling Language(UML) ข้อสำคัญในการพัฒนา คือ เวลาในแต่ละรอบและจำนวนทีมย่อย ซึ่งเป็นตัวเลขที่ไม่สามารถระบุได้ชัดเจน แนวทางการใช้ UP จัดการความเสี่ยงสูงหรือคุณค่าสูงก่อนในรอบต้นๆ ของการพัฒนาระบบ มีการประเมิน แสดงข้อเสนอแนะ ปรับปรุงความต้องการ อย่างต่อเนื่อง การสร้างสถาปัตยกรรมระบบ(Software Achitecture) ในรอบต้นๆ การใช้ use case สร้างแบบจำลองที่เห็นภาพทั้งระบบ ให้ความสำคัญกับการจัดการความต้องการอย่างสูง การจัดการกับความเปลี่ยนแปลงและการจัดการปรับสภาพระบบ
Unified process กระบวนการใน UP UP ในแต่ละรอบย่อย เป็นการพัฒนาตาม SDLC (Requirement Analytic Design Implement … Deploy ) กระบวนการใน UP Business Modeling เข้าใจถึงกระบวนการ และขอบเขตทางธุรกิจของระบบ Domain Modeling รูปแบบของระบบที่จะสร้างขึ้น โดยเน้นทางการใช้งาน ขั้นตอนการพัฒนา ความเสถียรของระบบ เป็นต้น Requirement วิเคราะห์ความต้องการ Analysis and Design วิเคราะห์และออกแบบ Implementation พัฒนาระบบ Testing ทดสอบระบบ Deployment ติดตั้งระบบ 3 ระบบเพิ่มเติม(Ambler,2006) Configuration and Change Management Project Management Environment
phase of UP แบ่งเป็น 4 ขั้นตอน Inception Phase เฟสเริ่มต้น เพื่อให้การพัฒนาอยู่ในขอบเขตของระบบ วิสัยทัศน์ของระบบ กระบวนการทางธุรกิจ ขอบเขตของระบบ Elaboration Phase วิเคราะห์ความต้องการของระบบและออกแบบระบบ Construction Phase พัฒนาระบบไปจนถึงทดสอบระบบตั้งแต่ Unit Test ไปจน Integration Test Transition Phase การติดตั้ง การทดสอบการติดตั้ง ข้อผิดพลาดและการปรับปรุง แก้ไข
Relation of phase software process UP Phase Inception Elaboration Construction Transition Business Modeling s r Requirement Analysis & Design Implementation Testing Project Management Environment s(start) เริ่มต้น r(refined) ทำต่อไป
Unified Modeling LanguagE Unified Modeling Language(UML) เป็นภาษาสำหรับ กำหนด สร้างภาพ พัฒนาและอ้างอิงสำหรับการพัฒนาซอฟต์แวร์ และบางกรณีใช้อ้างอิงเป็นข้อตกลงทางธุรกิจ ถูกพัฒนาโดย Booch และ Rumbaugh[1994] สร้างขึ้นมา 2 แผนภาพ ปี 1997 OMG(Object Management Group) สถาบันกลางสร้างมาตรฐานวิธีการเชิงวัตถุ ปี 2005 OMG พัฒนา UML2 โดยประกอบไปด้วย 13 แผนภาพ แบ่งเป็น 2 กลุ่มใหญ่ ประเภทของแผนภาพ แผนภาพตามโครงสร้างของระบบ(Structural Model) แผนภาพตามพฤติกรรมของระบบ(Behavior Model)
UML2 Behavior model Structural model Class Diagram คลาส ส่วนประกอบคลาส ความสัมพันธ์ Object Diagram ความสัมพันธ์ระหว่างวัตถุ ตาม class diagram Package Diagram แสดงกลุ่มของแพคเกจและการขึ้นต่อกันของแพคเกจ Composite Structure Diagram แผนภาพภายในของ component diagram หรือ use case Component Diagram แผนภาพขององค์ประกอบระบบ(self) โดยแสดงความสัมพันธ์ และส่วนต่อประสาน Deployment Diagram แผนภาพระบบ hardware & software เชื่อมต่อกัน Use Case Diagram แสดงการใช้งานและความสัมพันธ์ของผู้ใช้ระบบ(actor) และการใช้งาน Activity Diagram แสดงการทำงานของข้อมูลทั้งระบบ State Or Statechart Diagram แสดงสถานะของวัตถุเมื่อมีเหตุการณ์(event) เกิดขึ้น Sequence Diagram แสดงการโต้ตอบหรือการตอบสนองต่อผู้ใช้ Communication Diagram(Collaboration Diagram UML1.x) แสดงการโต้ตอบหรือการตอบสนองระหว่างวัตถุ Timing Diagram แสดงการเปลี่ยนสถานะหรือเงื่อนไขขององค์ประกอบต่างๆ ตามเวลา Interaction Overview Diagram แสดงภาพรวมตามกระบวนการธุรกิจ ตามการทำงานของระบบ
จบบทที่ 1
Problem ร้านเช่าภาพยนตร์แห่งหนึ่งต้องการสร้างระบบสำหรับควบคุมสินค้าให้เช่าภายในร้าน สินค้าที่ให้เช่ามี 2 ประเภทคือ dvd และ blu-ray แยกประเภทตามเนื้อหาภาพยนตร์ เช่น thriller, musical, comedy เป็นต้น เจ้าของกิจการ ต้องการบันทึก วันที่สินค้าเข้ามาในร้าน จำนวนที่มี ราคาต่อหน่วย ความยาว(นาที) ค่าเช่า การคิดค่าเช่าทั้ง DVD และ Blu-ray มี 3 แบบคือ ปกติ และสมาชิก โดยค่าเช่าขึ้นกับความต้องการ เช่น ออกใหม่คิดค่าเช่าเท่ากับ ราคาหารด้วย 10 และถ้ามีคนเช่าน้อยกว่า 3 ครั้งต่อเรื่องคิดค่าเช่า 10 บาท กรณีเป็นสมาชิก(VIP) สามารถเช่า DVD 3 ฟรี DVD 1 และ Blu-ray 2 ฟรี DVD 1 หรือ Blu-ray 4 ฟรี Blu-ray 1 ข้อมูลลูกค้าที่ต้องเก็บคือ วันที่เช่า รหัสสินค้า รหัสสมาชิก(ครั้งแรกที่เช่าเก็บชื่อ รหัสบัตรประชาชน เบอร์โทรศัพท์ สถานะ VIP) จงอธิบายสิ่งที่เกิดขึ้นจากความต้องการด้านบน ตามสิ่งต่อไปนี้ Class – Instance Association และ Aggregation Encapsulation Inheritance