ก
คำนำ
เอกสารการสอนวิชาการวิเคราะห์และออกแบบเชิงวัตถุ
เรียบเรียงข้ึนเพื่อใช้ในการสอนหลังสูตรประกาศนียบัตรวิชาชีพช้ันสูง
สาขาวิชาเทคโนโลยีสารสนเทศ สานักงานคณะกรรมการอาชีวศึกษา
โดยมวี ัตถปุ ระสงคเ์ พื่อใหม้ คี วามเข้าใจหลักการวิเคราะห์และออกแบบ
เชิงวัตถุ เพ่ือให้สามารถปฏิบัติการวิเคราะห์และออกแบบเชิงวัตถุ
และเพื่อให้มีกิจนิสัยในการทางานด้วยความประณีต รอบคอบและ
ปลอดภัย ตระหนกั ถงึ คุณภาพของงานและมจี รยิ ธรรมในงานอาชีพ
เนื้อหาเรียบเรียงข้ึนประกอบด้วยกับ
การศึกษาและปฏิบัติเกี่ยวกับข้ันตอนการพัฒนาระบบสารสนเทศ
หลักการพื้นฐานและแนวคิดเชิงวัตถุ โมเดลท่ีใช้ในการออกแบบเชิง
วัตถุ ซ่ึงผู้เรียบเรียงได้วิเคราะห์หลักสูตรรายวิชาจัดวางเน้ือหาให้เป็น
ลาดับจากง่ายไปหายาก ทั้งนี้เพ่ือให้ผู้เรียนสามารถทาการศึกษาและ
ทาความเขา้ ใจสามารถนาไปเป็นแนวทางนาไปประยุกต์ใชง้ านตอ่ ไป
ขอขอบคุณผู้เขียนหนังสือและเว็บไซต์ต่างๆ ท่ีผู้เรียบ
เรียงได้ศึกษาค้นคว้าเพ่ือเป็นข้อมูลในการเรียบเรียงและอ้างถึง ขอ
มอบความดีของเอกสารการสอนน้ีเปน็ วทิ ยาทานแกผ่ เู้ รยี นทกุ คน หาก
อกสารการสอนนี้มีข้อผิดพลาดหรือบกพร่องประการใด ผู้เรียบเรียง
ขอน้อมรับข้อผิดพลาดหรือข้อบกพร่องเหล่านั้นแต่เพียงผู้เดียว และ
จะได้นาไปปรับปรงุ ให้ดีข้นึ ในโอกาสต่อไป
สำรบัญ
หนำ้
คานา ก
บทที่ 1 ศึกษาและปฏบิ ตั เิ ก่ยี วกับขั้นตอนการพฒั นา
ระบบสารสนเทศ 2
บทที่ 2 หลกั การพ้ืนฐานและแนวคิดเชงิ วัตถุ 15
บทที่ 3 กระบวนการวิเคราะหแ์ ละออกแบบ
โปรแกรมเชงิ วตั ถุ 23
ที่ 4 หลกั การของ UML Modeling และองคป์ ระกอบ
ของ UML - Things Relation และ Diagram
36
บทที่ 5 การเขียน Structure things, Behavioral
things,Group things และ Annotational things
44
1
จุดประสงคร์ ายวิชา
1. เพือ่ ใหม้ ีความเขา้ ใจหลักการวเิ คราะห์และออกแบบเชิง
วตั ถุ
2. เพ่อื ให้สามารถปฏบิ ัตกิ ารวเิ คราะห์และออกแบบเชงิ วัตถุ
3. เพือ่ ให้มีกจิ นิสยั ในการทางานดว้ ยความประณตี
รอบคอบและปลอดภัย ตระหนกั ถึงคุณ ภาพของ
งานและมจี รยิ ธรรมในงานอาชพี
มาตรฐานรายวิชา
1. วเิ คราะห์และออกแบบเชงิ วตั ถุ
2. ปฏบิ ัตกิ ารออกแบบและวเิ คราะห์เชงิ วตั ถุ
คาอธิบายรายวิชา
ศึกษาและปฏบิ ัติ Application Development Process,
Basic Principle of Object Orientation, Data
Type, Encapsulation, Polymorphism, Inheritance,
Object Life Cycle Process Analysis, Design and
Testing
2
บทที่ ๑ การพคฒั ำนานระำบบสารสนเทศ
การพฒั นาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศเป็นกระบวนการท่ีใช้
เทคนิค การศึกษา วิเคราะห์ และการออกแบบ
สารสนเทศขององคก์ ร ให้สามารถดาเนินงานอย่างมี
ประสิทธิภาพ (ไพบูลย์ เกียรติโกมล 2551, น. 87)
โดยจะเรียกวิธีการดาเนินในลักษณะนี้ว่า การ
วิเคราะห์และออกแบบระบบ (system analysis
and design) เนื่องจากมีการศึกษาและวิเคราะห์
กระแส ข้อมูล ความสัมพันธ์ระหว่างข้อมูลรับเข้า
กระบวนการ ข้อมูล ส่งออก การพัฒนาโปรแกรม
การติดต้ัง และการบารุงรักษา ตลอดจนกาหนด
แนวทางในการพัฒนาระบบในอนาคต
3
หลักการพฒั นาระบบสารสนเทคศ ำนำ
ค ว า ม ห ม า ย ข อ ง ก า ร พั ฒ น า ร ะ บ บ ส า ร ส น เ ท ศ เ ป็ น
กระบวนการสร้างระบบงานใหม่หรือปรับเปลี่ยนระบบงาน
เดิมท่ี มีอยู่แล้วเพ่ือใช้แก้ปัญหา หรือสร้างมูลค่าเพิ่มให้กับ
หน่วยงาน และให้การทางานมีประสิทธิภาพตอบสนองตอ
ความตอ้ งการ ของผู้ใช้งานโดยอาจนาระบบคอมพิวเตอร์มา
ช่วยในการดาเนินงาน คือการประมวลผลเรียบเรียง จัดเก็บ
ขอ้ มลู เปลี่ยนแปลง ที่ถูกตอ้ งครบถ้วน
สิ่งสาคัญที่ต้องปฏิบัติในการพัฒนาระบบสารสนเทศเพ่ือให้
ระบบมปี ระสทิ ธภิ าพ คอื
1.คานึงถึงเจา้ ของระบบและผ้ใู ช้ระบบ
2. พยายามเขา้ ถึงปญั หาใหต้ รงจุด
3. กาหนดขนั้ ตอนหรอื กจิ กรรมในการทางาน
4. แตกระบบใหญ่ให้เป็นระบบยอ่ ย
5. กาหนดมาตรฐานในระหว่างการพัฒนาระบบและจัดทา
เอกสารประกอบในทกุ ข้นั ตอน
6. เตรียมความพร้อมหากแผนงานหรือโครงการต้อง ถูก
ยกเลิกหรอื ตอ้ งทบทวนใหม่
7. ออกแบบระบบเพ่ือรองรบการเติบโตและการ
เปลี่ยนแปลงในอนาคต
4
คำนำปจั จัยท่สี ง่ ผลต่อการพฒั นาระบบ
ปัจจัยท่ีส่งผลต่อการพัฒนาระบบใหม่เกิดจากปัจจัยท่ี
เก่ียวข้องกับกระบวนการทางาน และผู้ใช้ทีมีความ
หลากหลาย ดงั น้นั การ ท่ี
จะพฒั นาระบบใหส้ าเร็จตอ้ งพิจารณาปจั จยั ดงั ต่อไปนี้
1. ผู้ใช้ต้องการให้ปรับปรุงหรือต้องการระบบใหม่ เพราะ
เป็นผู้ที่เจอปญั หาทีเ่ กิดขนึ้ ในการทางานโดยตรง
2. ผู้บริหาร หรือเจ้าของระบบต้องการให้มีระบบใหม่
เพราะ เห็นความสาคัญของการทางานในองค์กรเพื่อความ
ทนั สมยั และสามารถ ช่วยในการตัดสินใจในการบริหารงาน
ได้
3. ระบบปัจจุบันล้าสมัย มีข้อผิดพลาดหรือมีปัญหาไม่รอง
รบ การทางานได้เนื่องจากเกิดการเปล่ียนแปลงด้าน
นโยบาย องค์กร กฎหมาย หรือระเบียบใหม่มีการขยายตัว
ขององคก์ รมกี ารเปลี่ยนแปลงทางสภาพแวดล้อมอ่ืน ๆ
4. มีการพัฒนาทางด้านเทคโนโลยีใหม่อย่างรวดเร็ว การ
เตบิ โตของระบบการสือ่ สารโทรคมนาคม เทคโนโลยที ีใช้ อยู่
ปจั จุบนั ล้าสมัย ค่าใช้จ่ายในการบารุงรักษาระบบมี ราคาสูง
จึงจาเป็นต้องมีการปรับเปลี่ยนระบบด้วยการนาเทคโนโลยี
ใหม่ ๆ มาใช้ในการดาเนินการ เพ่ือการทางานมี
ประสทิ ธภิ าพอานวยความสะดวก ทันสมัยมาก ยงิ่ ข้นึ
5
คำนำ
5. เจ้าหน้าทีสารสนเทศในหน่วยงานแนะนาให้มีการ
ปรับปรุง ระบบเพื่อต้องการให้ระบบมีความทันสมัยรองรับ
การเติบโตของเทคโนโลยี เช่น การขยายเครือข่ายทีมี
ความเรว็ และประสทิ ธิภาพสูงกว่า
วธิ กี ารพฒั นาระบบ
การใชง้ านของระบบสารสนเทศในแต่ละองค์กรมีวิธีการใช้ที
แตกตางกน เพราะมีการดาเนินธุรกิจที่มีลักษณะเฉพาะงาน
โอภาส เอียมสิริวงศ์ (2555, น. 61) ได้แบ่งวิธีการพัฒนา
ระบบสารสนเทศออกเปน็ 2 วิธีหลัก ๆ ไดแ้ ก่
1. การพัฒนาระบบเชิงโครงสร้าง (structured system
development)
2. การพัฒนาระบบเชิงวัตถุ (object-oriented system
development)
6
คำนำ
วัฏจกั รพัฒนาระบบสารสนเทศ
วัฏจักรการพัฒนาระบบ (system development life
cycle : SDLC) เป็นการแสดงให้เห็นถึงกิจกรรมตาง ๆ
ตั้งแต่เริมต้น จนถึงสิ้นสดโครงการ รูปแบบวัฏจักรการ
พัฒนาระบบจะมีความ หลากหลายตามการคิดค้นและ
พัฒนา จึงมีความแตกต่างใน รูปแบบ ปัจจุบันมีรูปแบบอยู่
มากมายขน้ึ อย่กู บั การนาไปใชง้ าน
1.ทฤษฎีการวิเคราะห์และออกแบบระบบ การวิเคราะห์
ระบบ (System Analysis) เป็นการศึกษา วิเคราะห์ และ
แยกแยะถึงปัญหาที่เกิดขึ้นในระบบ พร้อมท้ังเสนอแนวทาง
เสนอแนวทางแก้ไขตา มค วามต้อง กา รของผู้ ใช้ง าน read
more
2.วัฎจักรการพัฒนาระบบงาน (System development
Life Cycle : SDLC
SDLCเป็นตัวย่อมาจากSystems Development Life
Cycle ในการพฒั นาระบบสารสนเทศในองค์กรจะตอ้ งมีการ
วิเคราะห์กระบวนการทางานของ องค์กร เราเรียกว่า
System development Life Cycle(SDLC) read more
ทฤษฎีการวเิ คราะห์และออกแบบระบบ 7
คำนำการวิเคราะห์ระบบ (System Analysis)เป็นการศึกษา
วเิ คราะห์ และแยกแยะถงึ ปัญหาที่เกิดข้ึนในระบบ พร้อมทั้ง
เสนอแนวทางเสนอแนวทางแก้ไขตามความต้องการของ
ผู้ใช้งานและความเหมาะสมต่อสถานะทางการเงินของ
องค์กร การออกแบบระบบ (System Design)คือ การสร้าง
แบบพิมพ์เขียวของระบบใหม่ตามความต้องการในเอกสาร
ความต้องการระบบ กาหนดส่ิงที่จาเป็น เช่น อินพุท
เอ้าท์พุท ส่วนต่อประสานผู้ใช้และการประมวลผล เพ่ือ
ประกันความน่าเชื่อถือ ความถูกต้องแม่นยา การ
บารุงรักษาได้ และความปลอดภัยของระบบ นอกจากนั้น
การออกแบบระบบเป็นวิธีการออกแบบ และกาหนด
คุณสมบตั ทิ างเทคนคิ โดยนาระบบคอมพิวเตอร์มาประยคุ ใช้
ขั้นตอนการวิเคราะห์และออกแบบระบบออกเป็น2ระดับ
คอื ข้นั ต้น และ ขน้ั สงู
วงจรการพัฒนาระบบ
วงจรการพัฒนาระบบ (System Development Life
Cycle : SDLC) คือ กระบวนการทาง ความคิด (Logical
Process) ใน การพัฒนาระบบสารสนเทศเพื่อแก้ปัญหาทาง
ธุรกิจและตอบสนองความต้องการของผู้ ใช้ได้ โดยระบบที่
จะพัฒนานั้น อาจเริ่มด้วยการพัฒนาระบบใหม่เลยหรือนา
ระบบเดมิ ท่ีมอี ย่แู ลว้ มาปรับเปลยี่ น ให้ดี
8
ยิ่งขึ้น ภายในวงจรนี้จะแบ่งกระบวนการพัฒนาออกเป็น
ระยะ (Phases) ได้แก่ ระยะการวางแผน (Planning
Phase) ระยะการวิเคราะห์ (Analysis Phase) ระยะการ
ออกแบบ (Design Phase) และระยะการสร้างและพัฒนา
(Implementation Phase) โดยแต่ละระยะจะประกอบไป
ด้วยข้ันตอน (Steps) ต่างๆ แตกต่างกันไปตาม
Methodology ที่นักวิเคราะหน์ ามาใช้ เพื่อให้เหมาะสมกับ
สถานะทางการเงินและความพรอ้ มขององคก์ รในขณะนั้น
ขนั้ ตอนในวงจรพัฒนาระบบ ช่วยให้นักวเิ คราะหร์ ะบบ
สามารถดาเนนิ การไดอ้ ยา่ งมีแนวทางและเปน็ ขัน้ ตอน ทาให้
สามารถควบคมุ ระยะเวลาและงบประมาณในการ
ปฏิบตั งิ านของโครงการพฒั นาระบบได้ เปน็ ระบบท่ีใช้งาน
ได้ ซงึ่ นักวเิ คราะหร์ ะบบตอ้ งทาความเข้าใจใหด้ วี า่ ในแตล่ ะ
ข้ันตอนจะตอ้ งทาอะไร และทาอยา่ งไร ขนั้ ตอนการพัฒนา
ระบบมอี ยูด่ ว้ ยกัน 7 ขนั้ ดว้ ยกัน คือ
1. เขา้ ใจปัญหา (Problem Recognition)
หน้าท่ี : ตระหนักวา่ มีปญั หาในระบบ
ผลลัพธ์ : อนมุ ัตกิ ารศึกษาความเป็นไปได้
เครอ่ื งมือ : ไม่มี
9
บุคลากรและหน้าท่ีความรับผิดชอบ : ผู้ใช้หรือผู้บริหาร
ชี้แจงปัญหาตอ่ นักวเิ คราะห์ระบบ
2. ศึกษาความเปน็ ไปได้ (Feasibility Study)
หน้าท่ี : กาหนดปัญหา และศึกษาว่าเป็นไปได้หรือไม่ท่ีจะ
เปล่ียนแปลงระบบ
ผลลพั ธ์ : รายงานความเปน็ ไปได้
เคร่ืองมอื : เก็บรวบรวมขอ้ มูลของระบบและคาดคะเนความ
ตอ้ งการของระบบ
บคุ ลากรและหนา้ ท่ีความรับผดิ ชอบ : ผู้ใช้จะมบี ทบาท
สาคญั ในการศกึ ษารวบรวมขอ้ มูลท้ังหมดทจ่ี าเปน็ ทง้ั หมด
เก่ยี วกบั ปัญหาและคาดคะเนความต้องการของระบบและ
แนวทางการแกป้ ญั หา
3. วเิ คราะห์ (Analysis)
หนา้ ท่ี : กาหนดความตอ้ งการของระบบใหม่ (ระบบใหม่
ทัง้ หมดหรือแก้ไขระบบเดิม)
ผลลพั ธ์ : รายงานข้อมูลเฉพาะของปัญหา
เครอ่ื งมอื : เทคนคิ การเกบ็ รวบรวมขอ้ มูล, Data
Dictionary, Data Flow Diagram, Process
Specification, Data Model, System Model,
Prototype, system Flowcharts
10
บคุ ลากรและหน้าทร่ี บั ผิดชอบ : ผใู้ ช้จะตอ้ งให้ความร่วมมือ
เป็นอย่างดีวเิ คราะหร์ ะบบ ศกึ ษาเอกสารทมี่ ีอยู่ และศึกษา
ระบบเดมิ เพื่อใหเ้ ข้าใจถึงขั้นตอนการทางานและทราบวา่
จุดสาคญั ของระบบอยู่ท่ีไหนและเตรยี มรายงานความ
ต้องการของระบบใหม่
4. ออกแบบ (Design)
หนา้ ที่ : ออกแบบระบบใหม่เพอ่ื ใหส้ อดคล้องกบั ความ
ต้องการของผใู้ ชแ้ ละฝา่ ยบรหิ าร
ผลลพั ธ์ : ข้อมลู เฉพาะของการออกแบบ(System Design
Specification)
เครื่องมอื : พจนานกุ รมข้อมลู Data Dictionary, แผนภาพ
การไหลของขอ้ มลู (Data Flow Diagram), ข้อมูลเฉพาะ
การประมวลผล (Process Specification ), รูปแบบข้อมูล
(Data Model), รปู แบบระบบ (System Model), ผงั งาน
ระบบ (System Flow Charts), ผังงานโครงสรา้ ง
(Structure Charts), ผังงาน HIPO (HIPO Chart),
แบบฟอร์มขอ้ มูลขาเขา้ และรายงาน
บุคลากรและหนา้ ท่ี :นกั วิเคราะหร์ ะบบ ตัดสินใจเลือก
คอมพิวเตอรฮ์ ารด์ แวรแ์ ละซอฟตแ์ วรแ์ ละออกแบบความ
ปลอดภัยของระบบ
11
5. สร้างหรือพัฒนาระบบ (Construction)
หน้าที่ : เขยี นและทดสอบโปรแกรม
ผลลัพธ์ : โปรแกรมที่ทดสอบเรียบร้อยแล้ว เอกสารคู่มือ
การใช้ และการฝกึ อบรม
เคร่ืองมือ : เคร่ืองมือของโปรแกรมเมอร์ทั้งหลาย Editor,
compiler,Structure Walkthrough,วิธีการทดสอบ
โปรแกรม การเขียนเอกสารประกอบการใชง้ าน
บุคลากรและหน้าท่ี :นักวิเคราะห์ระบบ วางแผนและดูแล
การเขียนโปรแกรมหรือแก้ไขโปรแกรม ถ้าซื้อโปรแกรม
สาเร็จรูป
6. การปรับเปลี่ยน (Conversion)
เป็นขั้นตอนในการนาข้อมูลเฉพาะเพื่อให้เป็นไปตาม
คุณลักษณะและรูปแบบต่าง ๆ ที่ได้กาหนดไว้หลังจากเขียน
โปรแกรมเรียบร้อยแล้ว องทาการทดสอบโปรแกรม
ตรวจสอบหาข้อผิดพลาดของโปรแกรมที่พัฒนาขึ้นมา และ
สุดท้ายคือการติดต้ังระบบ โดยทาการติดตั้งตัวโปรแกรม
ติดต้ังอุปกรณ์ พร้อมทั้งจัดทาคู่มือและจัดเตรียมหลักสูตร
ฝึกอบรมผู้ใช้งานท่ีเก่ียวข้อง เพ่ือให้ระบบใหม่สามารถใช้
งานได้
12
7. บารุงรักษา (Maintenance) เป็นขั้นตอนสุดท้ายของ
วงจรพัฒนา
ระบบ (SDLC) หลังจากระบบใหม่ได้เริ่มดาเนินการ การ
บารุงรักษาได้แก่ การแก้ไขโปรแกรมหลังจากการใช้งาน
สาเหตุท่ีต้องแก้ไขระบบส่วนใหญ่มี 2 ข้อ คือ 1. มีปัญหาใน
โปรแกรม (Bug) และ 2. การดาเนินงานในองค์กรหรือธุรกิจ
เปล่ียนไป
รปู แบบวงจรการพฒั นาระบบ
มกี ารคิดคน้ และพัฒนาขนึ้ อย่างหลากหลาย (ศรไี พร ศักดร์ิ ุ่ง
พงศากลุ , 2549 : 308-320 ; ณัฎฐพันธ์ เขจรนนั ทน์, 2551
: 68-72 ; พรรณี สวนเพลง, 2552 : 303-308) ได้อธิบายถงึ
รปู แบบวงจรการพฒั นาระบบบางรปู แบบ ไวด้ ังต่อไปน้ี
1. รปู แบบน้าตก (Waterfall Model) เป็นรูปแบบท่ีนยิ มมา
นานต้งั แต่อดีตจนถึงปัจจบุ ัน มหี ลกั การเสมอื นกับนา้ ตกซ่ึง
ไหลจากทีส่ ูงลงที่ต่า เมื่อในอดีตในแตล่ ะข้ันตอนไม่สามารถ
ยอ้ นกลับไดจ้ งึ เป็นจุดออ่ น จนปจั จุบันขั้นตอนการทางาน
สามารถทจ่ี ะวนหรือย้อนกลับ (Iteration) ไปแกไ้ ขได้ หรือ
ทเ่ี รยี กวา่ Adapted Waterfall Model
13
2.รูปแบบวิวัฒนาการ (Evolutionary Model) วงจรการ
พัฒนาระบบในรูปแบบวิวัฒนาการมีแนวความคิดที่เกิดมา
จากทฤษฎีวิวัฒนาการ โดยจะพัฒนาระบบจนเสร็จส้ิน
สมบูรณ์ในเวอร์ช่ัน (Version) แรกก่อน จากนั้นจึงพิจารณา
ข้อดีและข้อเสียของระบบ หาข้อผิดพลาดโดยการทดสอบ
และประเมินระบบ จากน้ันมีการเริ่มกระบวนการพัฒนา
ระบบใหม่จนได้ระบบงานในเวอร์ชั่นท่ี 2 เวอร์ช่ันท่ี 3 เวอร์
ช่ันท่ี 4 และเวอร์ชั่นต่อๆ ไป จนกว่าจะได้ระบบที่สมบูรณ์
ที่สุด แต่ต้องมีการวางแผนกาหนดต้ังแต่เร่ิมโครงการพัฒนา
ระบบใหช้ ดั เจน
3.รูปแบบค่อยเป็นค่อยไป (Incremental Model) วงจร
การพัฒนาระบบในรูปแบบค่อยเป็นค่อยไปมีลักษณะ
คล้ายคลึงกับรูปแบบวิวัฒนาการ แต่มีข้อแตกต่างกันตรงที่
ระบบที่ได้ในแต่ละช่วง เน่ืองจากระบบท่ีเกิดขึ้นในการ
พัฒนาขั้นแรกน้ันจะยังไม่ใช่ระบบท่ีสมบูรณ์ แต่เป็นระบบ
เพียงส่วนแรกเท่านั้นจากระบบท่ีต้องการท้ังหมด จนเม่ือมี
การพัฒนาในข้ันตอนที่ 2 จึงได้ระบบที่มีส่วนท่ี 2 เพ่ิมเติม
เข้าไป และจะมีการเพ่ิมส่วนอ่ืนๆ เข้าไปจนครบทุกส่วน จน
กลายเป็นระบบที่สมบูรณ์ทสี่ ุด
14
4.รูปแบบเกลียว (Spiral Model) วงจรการพัฒนาระบบใน
รู ป แ บ บ เ ก ลี ย ว จ ะ มี ลั ก ษ ณ ะ ที่ ก ร ะ บ ว น ก า ร วิ เ ค ร า ะ ห์
ออกแบบ และพัฒนา จะวนกลบั มาในแนวทางเช่นเดมิ เชน่ น้ี
ไปเร่ือยๆ จนกระท่ังได้ระบบที่สมบูรณ์ การพัฒนา
ระบบงานด้วยวงจรการพัฒนาในรูปแบบนี้มีความยืดหยุ่น
มากท่ีสุด เนื่องจากกระบวนการทางานใน 1 รอบไม่
จาเป็นต้องได้ระบบ และระยะเวลาแต่ละขั้นตอนในแต่ละ
รอบน้ันจะใช้เวลาเท่าใดก็ได้ ไม่จาเป็นต้องเท่ากันในทุกๆ
รอบ และถ้าหากไม่มีความจาเป็น บางขั้นตอนอาจจะถูก
ขา้ มไปก็ได้
15
บทที่ 2 หลกั การพื้นฐานและแนวคดิ เชิงวัตถุ
OOP (Object Oriented Programming) เป็นวิธีการเขียน
โ ป ร แ ก ร ม โ ด ย อ า ศั ย แ น ว คิ ด ข อ ง วั ต ถุ ช้ิ น ห น่ึ ง มี
ความสามารถในการปกป้องข้อมูล และการสืบทอด
คุณสมบัติ ซึ่งทาให้แนวโน้มของ OOP ได้รับการยอมรับ
แ ล ะ พั ฒ น า ม า ใ ช้ ใน ร ะ บ บ ต่ า ง ๆ ม า ก ม า ย เ ช่ น
ระบบปฏบิ ัติการ วินโดวส์ เปน็ ต้น
ในที่น้ีจะกล่าวถึงความเป็นมา และความหมายของ
แนวคิดการเขียนโปรแกรมเชิงวัตถุ ข้อควรรู้เก่ียวกับ
หลักการเขียนโปรแกรมเชิงวัตถุ ตลอดจนความสาคัญของ
การเขียนและออกแบบระบบงานก่อนเขียนโปรแกรม
รวมถึงประโยชน์ของการเขียนโปรแกรมเชิงวัตถุซ่ึงจะทาให้
ผู้เขียนได้เข้าใจถึงหลักการเบ้ืองต้นของแนวความคิดเชิง
วัตถนุ ไ้ี ด้
ความเปน็ มาของแนวคดิ แบบ OOP
แนวความคิดดั้งเดิมของการเขียนโปรแกรม ก็คือ การ
แก้ปัญหาโดยใช้คอมพิวเตอร์เป็นเครื่องมือ คล้ายกับการใช้
เคร่อื งคิดเลขในการแก้ปัญหาทางคณติ ศาสตร์
16
แนวความคิดแบบใหม่ท่ีใช้ในการเขียนโปรแกรม ก็คือ การ
เน้นถึงปัญหาและองค์ประกอบของปัญหา (เพ่ือแก้ปัญหา)
การเน้นท่ีปัญหาและองค์ประกอบของปัญหา (Problem
Space) จะคล้ายกับแก้ไขปัญหาและชีวิตความเป็นอยู่ของ
มนุษย์ท่ีจะต้องมี คน สัตว์ ส่ิงของ เพื่อแก้ปัญหา (มีหน้าที่
แก้ปัญหา) มากกว่าจะมองท่ีวิธีการแก้ปัญหาน้ัน ๆ หรือ
ข้นั ตอนในการแก้ปัญหา
(Solution Space) ซงึ่ เป็นวิธีการเขียนโปรแกรมแบบเก่า
นน่ั เอง
อาลัน เคย์ (Alan Kay) ได้เสนอกฎ 5 ข้อ ที่เป็น
แนวทางของภาษาคอมพิวเตอร์เชิงวัตถุ หรือท่ีเรียกว่า
Object-Oriented Programming (OOP) ไวด้ งั น้ี
ทกุ ๆ ส่ิงเป็นวัตถุ (Everything is an Object)
โปรแกรม ก็คือ กลุ่มของวัตถุที่ส่งข่าวสารบอกกันและกันให้
ทางาน (A Program is a Bunch of Object Telling
Each Other What to do by Sending Messages)
ในวัตถุแต่ละวัตถุจะต้องมีหน่วยความจาและประกอบไป
ด้วยวัตถุอ่ืน ๆ (Each Object has Its Own Memory
Made Up of Other Objects)
17
วตั ถทุ ุกชนดิ จะตอ้ งจัดอยใู่ นประเภทใดประเภทหน่ึง (Every
Object has a Type)
วัตถุที่จัดอยู่ในประเภทเดียวกันยอ่ มได้รับข่าวสารเสมือนกัน
(All Object of a Particular Type Can Receive the
Same Messages)
แนวคดิ แบบ OOP
OOP ก็คือ “ธรรมชาติของวัตถุ” หมายความว่า
OOP จะมองสิ่งแต่ละสิ่งถือเป็น “วัตถุชิ้นหนึ่ง” (Object)
มันจะมีสีแดงหรือสีเขียว ยาวหรือส้ัน มันก็คือวัตถุช้ินหน่ึง
เหมือนกัน นอกจากน้ี เมื่อ OOP มองทุกสิ่งถือเป็นวัตถุช้ิน
หนึ่งแล้ว ยังสามารถคิดต่อไปอีกว่า “วัตถุแต่ละอย่างน้ัน
ต่างก็มีลักษณะและวิธีการใช้งานเป็นของตัวเอง ”
หมายความว่า วัตถุแต่ละชนิดหรือแต่ละชิ้นต่างก็มีรูปร่าง
ลักษณะ และการใช้งาน (การกระทา) ที่แตกต่างกันออกไป
เราจะเรียกคุณลักษณะของวัตถุว่า แอตทริบิวต์(Attribute)
และจะเรียกวิธีการใช้งานวัตถุว่า เมธทอด (Method)
ตัวอย่างเช่น “ดินสอเป็นวัตถุที่มีลักษณะเรียวยาว ภายใน
เป็นไส้ถ่านใช้สาหรับเขียน การใช้ดินสอทาได้โดยใช้มือจับ
และเขียนลงบนวัสดุรองรับ”
18
จากขอ้ ความขา้ งตน้ สามารถจบั ใจความได้ว่า คุณลักษณะ
ของวัตถุ (Attribute) ก็คือ “ยาวเรียว ภายในเป็นไส้ถ่าน”
ส่วนการใช้งาน (Method) ก็คือ “ใช้มือจับและเขียนลงบน
วสั ดุรองรับ”
จะเห็นไดว้ ่าแนวคดิ ของ OOP นัน้ จะมีลักษณะท่ีคล้าย
กับธรรมชาติของสิ่งหนึ่งซึ่งสามารถแบ่งแยกสิ่งต่าง ๆ
ออกเป็นแต่ละประเภทได้ ถ้านาเอาแนวคิดของ OOP มาใช้
ในการเขียนโปรแกรมและการจัดการข้อมูล จะพบว่า
โปรแกรมหรือฟงั กช์ ันจะมีความเป็นอิสระแก่กันอย่างเห็นได้
ชัด ก็คือ โปรแกรมหรือฟังก์ชันแต่ละตัวถึงแม้จะมาจากที่
เดียวกันแต่สามารถทางานในคนละหน้าท่ี เก็บข้อมูลคนละ
คา่ ได้ โดยจะไม่มาย่งุ เก่ียวกันแต่อย่างใด
ขอ้ ความรู้เก่ยี วกับ OOP
เนื่องจากหลักการเขียนโปรแกรมเชิงวัตถุเป็นแนวคิด
แบบใหม่ ดังน้ัน การทางานหลาย ๆ ส่วนของการเขียน
โปรแกรมแบบนี้อาจจะยังไม่เป็นที่คุ้นเคยมากนัก จึงจาเป็น
ที่ผู้ศึกษาต้องทาความเข้าใจการทางานของแนวคิดนี้ได้ดี
ยิง่ ขึ้น ขอ้ ควรรเู้ บอื้ งต้นเกี่ยวกับ OOP มดี ังน้ี
19
การเชอื่ มต่อ (Interface)
อินเตอร์เฟส (Interface) หมายถึง การเช่ือมต่อ ถ้า
เป็นการเช่ือมต่อระหว่างผู้ใช้กับคอมพิวเตอร์ จะเรียกการ
เช่ือมต่อนั้นว่า ยสู เซอร์อินเตอร์เฟส (User Interface) แต่
ในการเขียนโปรแกรมเชิงวัตถุ การเชื่อมต่อยังรวมไปถึงวัตถุ
(Object) เพราะในวัตถุจะต้องมีอินเตอร์เฟส อันเป็นส่วนท่ี
วัตถุนั้น ๆ จะให้บริการหรือเป็นส่วนท่ีบอกว่าวัตถุนั้น ๆ
สามารถทาอะไรได้บ้าง ซึ่งบางครั้งเรียกว่า เมธทอด
(Method)
ข้อดีของการมีอินเตอร์เฟส ก็คือ การเปลี่ยนแปลงท่ี
เกิดขึ้นภายในวัตถุจะไม่กระทบต่ออินเตอร์เฟส ดังน้ัน
ภายในวัตถุผู้เขียนคาส่ังสามารถดัดแปลง แก้ไข หรือ
เพิ่มเติมได้ตลอดเวลา ส่วนประกอบของวัตถุตาม
แนวความคดิ การเขียนโปรแกรมเชิงวัตถุ จะต้องประกอบไป
ด้วยสองส่วนเป็นอย่างน้อย คือ ส่วนของคุณสมบัติใช้เก็บ
ข้อมูลรายละเอียด สถานะ โอยใช้ตัวแปรเก็บค่าต่าง ๆ ไว้
และส่วนของเมธทอดทีเป็นตัวเชื่อมการทางานของวัตถุน้ัน
ๆ โดยผู้ใช้จะไม่สามารถติดต่อใช้งานกับตัวแปรที่อยู่ข้างใน
ได้ ในภาษา C++ จะใช้คา Public,Private และ
Protected เขา้ มาช่วยกาหนดขอบเขตการใช้
20
การนาวัตถุมาใชใ้ หม่ (Reuse the Object)
จุดประสงค์ใหญ่ของการเขียนโปรแกรมเชิงวัตถุ ก็คือ
การนาส่วนต่าง ๆ ของวัตถุที่สร้างขึ้นกลับมาใช้ใหม่หรือท่ี
เรียกในภาษาอังกฤษว่า “Reuse” เม่ือผู้เขียนโปรแกรม
สร้างวัตถุมีจานวนมากพอก็สามารถนาวัตถุท่ีสร้างขึ้นมา
ประกอบเป็นวัตถุใหม่ หรือที่เรียกว่าคอมโพ สิตช่ัน
“Composition”
นอกจากวิธีการคอมโพสิตแล้ว ผู้ใช้ยงั สามารถ Reuse
ส่ ว น ข อ ง วั ต ถุ โ ด ย ก า ร ใ ช้ ก า ร สื บ ท อ ด คุ ณ ส ม บั ติ
(Inheritance) จากคลาส ลักษณะเช่นนี้ คือ เป็นการนา
ส่วนของวัตถุทั้งหมดมาใช้ ซ่ึงปกติแล้ววัตถุท่ีนามาใช้ใน
ลักษณะนี้จะมีขนาดใหญ่ ถ้าเป็นการคอมโพสิตจะประกอบ
ข้ึนจากส่วนของวัตถุที่มีขนาดเล็กกว่า อย่างไรก็ตาม ขนาด
ของวัตถุมิได้เป็นตัวกาหนดทแ่ี นน่ อนตายตัวเสมอไป
การพ้องรปู (Polymorphism)
รากฐานของการพ้องรูป (Polymorphism) ก็คือ การ
ถ่ายทอดคุณสมบัติ เพราะถ้าไม่มีการถ่ายทอดคุณสมบัติก็
จะไม่เกิดสภาวะการพ้องรูป การถ่ายทอดคุณสมบัติเป็น
เครื่องมือยืนยันได้ว่าคลาสลูกท่ีเกิดจากคลาสแม่เดียวกัน
ยอ่ มมีคุณสมบัตเิ หมือนกนั
21
ประโยชนข์ องการโปรแกรมแบบ OOP
เทคโนโลยีของออบเจ็กต์โอเรียนเท็ดได้นาประโยชนา
ของการพัฒนาซอฟตแ์ วร์มาให้ ดังน้ี
ความสามารถในการเรียกใช้ได้หลายคร้ัง ออบเจ็กต์ได้ถูก
ออกแบบตามหลักการท่ีว่าสามารถเรียกใช้งานได้หลาย ๆ
คร้ัง ในหลักการน้ีทาให้ Application ของ OOP ตัวแรก
อาจจะทาได้ยาก แต่ว่าโปรแกรมแอปพลิเคชันท่ีเขียน
ภายหลังจะสร้างง่ายเพราะสามารถเรียกใช้ออบเจ็กต์ท่ีถูก
สรา้ งไวต้ งั้ แตโ่ ครงงานแรกได้
ความเชื่อถือได้ โปรแกรมแอปพลิเคชันของ OOP จะมี
ความเชื่อถือได้สูงเพราะจะรวมเอาส่วนย่อยท่ีทดสอบจนได้
มาตรฐานแล้วมารวมเข้าไว้ด้วยกัน รหัส (Code) ท่ีเขียน
ขึ้นมาใหม่ในแต่ละแอพลิเคชั่นจะมีไม่มากนัก เน่ืองจากรหัส
ส่วนใหญ่จะถูกดึงมาจากไลบรารีที่มีความเชื่อถือได้สูงอยู่
แล้ว และในการโปรแกรมภาษา C++ ยงั มีคุณประโยชน์อื่น
อกี
22
ความต่อเนื่องกัน การพัฒนาซอฟต์แวร์แบบ OOP ใน C++
จะเปลย่ี นไปตามฝีมอื และจานวนนักเขียนโปรแกรมภาษา C
นักโปรแกรมภาษา C ท่ีชานาญสามารถเรียนรู้หลักการของ
OOP ได้ภายในเวลาไม่นาน และสามารถเข้าใจเนื้อหาได้ไม่
ยาก อีกท้ังสามารถ แปลงโปรแกรมแอพพลิเคช่ันของ C
เป็น C++ ได้
23
บทที่ 3 กระบวนการวิเคราะห์และออกแบบ
โปรแกรมเชงิ วตั ถุ
การวิเคราะห์และออกแบบระบบเชิงวัตถุ จะพิจารณาระบบ
เป็นกลุ่มของวัตถุโดยประกอบด้วย ข้อมูล ฟังชัน ตัว
ดาเนินการ ทาให้สามารถโยกยา้ ยปรับเปล่ียนแต่ละวัตถุโดย
ไม่กระทบส่วนอ่ืน ทาใ้ไสามารถนาแต่ละวัตถุไปใช้กับ
โครงการอ่ืนได้
แนวคดิ เชิงวตั ถุ (Object oriented)
คือหน่ึงในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้
ความสาคัญกับ วัตถุ ซ่ึงสามารถนามาประกอบกันและ
นามาทางานรวมกนั ได้ โดยมีความสมั พันธก์ ันในแตล่ ะส่วน
24
Unified Modeling Language Model (UML)
UML คือ เป็นภาษาสัญลักษณ์รูปภาพมาตรฐาน สาหรับใช้
ในการสร้างแบบจาลองเชิงวัตถุ โดย UML จะใช้สัญลักษณ์
ต่างๆ เพ่ือแทนสิ่งต่างๆได้แก่ความสัมพันธ์ องค์ประกอบ
ภาวะที่มหี ลายรปู แบบ การห่อหมุ้ คราสการผึงพา
ความสัมพันธ์ (Aggregation) เป็นความสัมพันธ์ระหว่าง
คราสแบบต่างระดับ ในลักษะณะของการเป็นองค์ประกอบ
ต่างๆเรียกว่า “คราสบางส่วน (Part class)” ส่วนคราสที่
เกิดจากการร่วมกันขององค์ประกอบต่างๆเรียกว่า “คราส
ทั้งหมด(Whole class)” ความสัมพันธ์ชนิดน้ีคือคราส
บางส่วนมีอิสระ ไม่ข้ึนกับคราสทั้งหมดถึงแแม้ว่าคราส
ท้ังหมดจะถกู ทาลาย
องค์ประกอบ (Composition) เป็นความสัมพันธ์ระหว่าง
วัตถุหรือคราสแบบข้ึนต่อกันและมีความเก่ียวข้องกันเสมอ
โดยจะมีคราสซึ่งเป็นองค์ประกอบของคราสที่ใหญ่กว่า เม่ือ
คราสท่ีใหญ่กว่าถูกทาลายคราสท่ีเป็นองค์ประกอบก็จะถูก
ทาลายดว้ ย
25
ลักษณะท่ัวไป (generalization) เป็นการสืบทอดคุณสมบัติ
จากคราสหญ(่ Super class)ไปยังคราสยอ่ ย (sub class)
การสืบทอดคุณสมบัติ (inheritance) คือการสืบทอด
โครงสร้างข้อมูลและการดาเนินการ
พอลิมอร์ฟิซมึ (polymorphism) คือ การท่ีวัตถุที่ต่างกันมี
ปฎกิ ิริยาตอบสนองตอ่ ฟังก์ชัน/ขอ้ ความท่ตี ่างกัน
การห่อห้มุ (encapsulation) คือการจากัดการเข้าถึงข้อมูล
บ้างอย่างที่ไม่ต้องการให้ส่วนอื่นรับรู้แต่ให้เข้าถึงผ่านส่วน
ประสาน(Interface hiding
การออกแบบระบบโดยใช้ UML model
การออกแบบระบบโดยใช้ UML model เราจะวาดรูป
อ ง ค์ ป ร ะ ก อ บ ข อ ง ซ อ ฟ แ ว ร์ ใ ห้ อ ยู่ ใ น ไ ด อ ะ แ ก ร ม
เปรียบเสมือนการร่างแบบที่สถาปนิกใช้ในการออกแบบ
สิ่งก่อสร้างซ่ึงไดอะแกรมออกท่ีใช้กันมีอยู่ 9 ชนิดคือ Use
case diagram ใช้เพื่ออธิบายชุดของการกระทาว่าระบบ
ควรหรือสามารถทางานร่วมกับผู้ใช้ภายนอกของระบบ ช่วย
ใหท้ ีมพัฒนาทราบถงึ ความสามารถของรบบ และง่ายต่อการ
สือ่ สารระหวา่ งทีมพฒั นากับลกู ค้า
26
27
Class diagram คือ แผนภาพท่ีใช้แสดง Class และ
ความสัมพันธ์ระหว่างคราสของระบบท่ีเราสนใจ โดยมี
องค์ประกอบดงั น้ี
1. Class Name คอื ชอ่ื ของ Class
2. Attributes คือ คณุ ลกั ษณะของ Class
3. Operations หรือ Methods คือ กิจกรรมที่สามารถ
กระทากับ Object น้ันๆได้
4. Cardinality ratioใช้แสดงถึงอัตราส่วนของความสัมพันธ์
ใช้แสดงถึงอัตราส่วนของความสัมพันธ์ แทนท่ีด้วยตัวเลข 1,
M และ N โดย1 : 1 แทนความสัมพันธ์แบบหนึ่งต่อหน่ึง 1 :
N แทนความสัมพันธ์แบบหนึ่งต่อหลายM : N แทน
ความสัมพันธ์แบบหลายต่อหลาย
หลักการในการออกแบบ Class diagram
1. กาหนดขอบเขตของปัญหาให้ชดั เจน
2. วเิ คราะห์ Tangible objects ให้ครบทกุ ตัว
3. วเิ คราะห์ Intangible objects ใหค้ รบทกุ ตวั
4. วเิ คราะห์ Classification abstraction เพื่อแยกแยะและ
สร้างครางจาก object ทมี่ อี ยู่
5. วเิ คราะห์ Aggregation abstraction โดยพจิ ารณาคราส
ทไี่ ดจ้ าก Classification abstraction ว่ามีความสัมพนั ธ์กนั
แบบ 1:Nหรือ N:N
28
6. วเิ คราะหห์ า generalization โดยพจิ ารณาคราสต่างๆ
ในคราสไดอะแกรม
7. การวเิ คราะหค์ วามสัมพนั ธ์ (association)โดยพิจารณา
คราสตา่ งๆ ในคราสไดอะแกรม เพิ่มเติมสญั ลกั ษณะของ
ความสมั พนั ธล์ งในคราสไดอะแกรม
29
Object diagram จะมีลักษณะคลา้ ยกบั Class Diagram
แต่จะมองสงิ่ ตา่ ง ๆ เป็นวัตถุแทน โดยประกอบด้วย
คุณสมบตั ิ (Properties) กบั พฤตกิ รรม (Behavior)
วธิ กี ารออกแบบ Object diagram
1. วิเคราะหร์ ะบบ พิจารณาข้อมูลและความสัมพนั ธ์ที่สาคัญ
2. พิจารณาขอ้ มูลทีม่ ีหนา้ ทช่ี ัดเจน
3. เพมิ่ ประสทิ ธภิ าพใหก้ ับข้อมูล
30
ก่อนที่จะวาดแผนภาพวัตถุส่ิงต่อไปนี้ควรจะจาได้และ
เข้าใจไดอ้ ย่างชดั เจน:
1. แผนภาพวัตถุจะประกอบดว้ ยวตั ถุ
2. การเชือ่ มโยงในแผนภาพวตั ถุที่ใชใ้ นการเช่ือมต่อวัตถุ
3. วัตถุและการเชื่อมโยงเป็นสององค์ประกอบที่ใช้ในการ
สร้างแผนภาพวัตถุ
ตอนน้ีหลังจากนี้ส่ิงต่อไปนี้จะต้องมีการตัดสินใจก่อนที่จะ
เริม่ การกอ่ สร้างของแผนภาพ:
1. แผนภาพวัตถุควรจะมีช่ือท่ีมีความหมายเพื่อบ่งชี้ถึง
จดุ ประสงค์ของมัน
2. องค์ประกอบท่สี าคญั ทสี่ ุดจะต้องมกี ารระบุ
3. สมาคมระหวา่ งวตั ถคุ วรจะชีแ้ จง
4. ค่าขององค์ประกอบที่แตกต่างกันจะต้องมีการจับจะรวม
ไว้ในแผนภาพวัตถุ
5. เพิม่ บนั ทึกท่ีเหมาะสมทจี่ ดุ ทช่ี ัดเจนมากข้นึ เปน็ ส่ิงจาเปน็
31
แผนภาพต่อไปนี้เป็นตัวอย่างของแผนภาพวัตถุ เพราะมัน
หมายถึงระบบการจัดการการส่ังซือ้ ท่ีเราได้กล่าวถึงในคลาส
ไดอะแกรมแผนภาพต่อไปน้ีเป็นตัวอยา่ งของระบบที่เวลาใด
เวลาหน่งึ ของการซื้อ มันมีวัตถุตอ่ ไปน้ี
1. ลกู คา้
2. คาสั่ง
3. SpecialOrder
4. NormalOrder
ตอนนว้ี ัตถลุ กู ค้า © มีความเก่ียวข้องกับวัตถุสามคาสั่ง (O1,
O2 และ O3) เพ่ือวัตถุเหล่าน้ีมีความเกี่ยวข้องกับคาส่ัง
พิเศษและวัตถุเพื่อปกติ (S1, S2 และ N1)ลูกค้าจะมี
ดังต่อไปนี้คาสั่งซื้อท่ีมีตัวเลขที่แตกต่างกัน (12, 32 และ
40) เวลาโดยเฉพาะอย่างยิ่งการพจิ ารณา
32
Sequence diagram คือแผนภาพUML ที่ใช้กันมากท่ีสุด
โดย แสดงให้เห็นถึงการมีปฏิสัมพันธ์ระหว่างวัตถุในลาดับ
ตามลาดับคือลาดับที่การโต้ตอบเหล่านี้เกิดข้ึน นอกจากนี้
เรายังสามารถใช้Sequence diagram แสดงเหตุการณ์
ข้อตกลงหรือสถานการณ์เหตุการณ์เพื่ออ้างถึงSequence
diagram อธิบายวิธีและลาดับของวัตถุในฟังก์ช่ันระบบ
แผนภาพเหล่านี้ถูกใช้อย่างกว้างขวางโดยนักธุรกิจและ
นักพัฒนาซอฟต์แวร์เพื่อจัดทาเอกสารและทาความเข้าใจ
ขอ้ กาหนดสาหรับระบบใหมแ่ ละทมี่ ีอยู่
1. Actorsใช้เพอื่ อธิบายบทบาท
ตา่ ง ๆ รวมถึงผู้ใช้ที่เป็นมนษุ ย์
และสง่ิ อน่ื ๆ ภายนอก โดยใช้
สญั กรณ์คน
33
2. massage แสดงถึง การติดต่อท่ีส่งจากอ็อบเจกต์หน่ึงไป
ยงั ออ็ บเจกต์หนงึ่
3. timeเปน็ การแสดงเวลาของเป็นลักษะณะแนวต้ัง
34
Activity diagram เป็นแผนภาพแสดงขน้ั ตอนของกจิ กรรม
ในการปฏบิ ัติงาน (Work flow) สามารถแสดงทางเลอื กท่ี
เกดิ ขึ้นได้ ประกอบไปดว้ ยสถานะต่างๆ ท่ีเกิดขนึ้ ระหวา่ ง
การทางานและผลจากการทางานในขน้ั ตอนต่างๆ
ขั้นตอนในการเขยี น Activity diagram
1. วิเคราะหก์ จิ กรรมต่างๆที่จะทาการออกแบบ
2. พิจารณากิจกรรมย่อยทเ่ี กิดขน้ึ ภายใต้เงอื นไขหรือกรณี
ต่างๆทเ่ี กิดขึน้ เม่ือเป็นไปตามเงือนไข
35
3. จดั เรียงลาดับกิจกรรมที่เกดิ ข้ึนกอ่ นหลัง
4. เขยี นกจิ กรรมย่อยด้วยสญั ลกั ษณแ์ สดงกจิ กรรม
5. เขียนจุดเริ่มต้น จากนั้นจึงเขียนกิจกรรมตามลาดับ
ก่อนหลงั
บทที่ 4 หลักการของ UML Modeling และ 36
องค์ประกอบของ UML - Things Relation และ
Diagram
UML ย่อมาจาก “Unified Modeling Language” ซงึ่ เป็น
ภาษาเพื่อใช้อธิบายตัวแบบ หรือ โมเดล (Model) ต่างๆ
โดยท่ีมีการใช้ภาษาหรือตัวแทนท่ีเป็นภาพสัญลักษณ์ หรือ
กราฟิก (Graphics) UML ไม่ใช่ภาษาคอมพิวเตอร์ แต่เป็น
เครื่องมือในการสร้างตัวแบบ(Template) สาหรับการ
พัฒนาระบบงานครอบคลุมตั้งแต่การออกแบบ การเขียน
โปรแกรม การติดต้ัง และการจัดทาเอกสารอ้างอิง และ
แสดงความหมายและความสัมพันธ์ในรูปแบบแผนภาพ เพ่ือ
ใช้ในการวิเคราะห์ และออกแบบ เชิงวัตถุโดยจะมี View
หรือมุมมองของปัญหาท่ีแตกต่างกันออกไป ในแต่ละ
Model และเม่ือนามาประกอบเข้าด้วยกัน ก็จะสามารถ
วิเคราะห์ เพื่อให้การออกแบบซอฟต์แวร์ที่แทนระบบการ
ทางานจริงนั้นทาได้โดยง่าย และปรับปรุงวิธีการทางานท่ีมี
อยู่เดิมให้ดีย่ิงขึ้น ยูเอ็มแอลมักใช้เป็นการอธิบายและ
นาเสนอแนวความคิดของการเขียนโปรแกรมเชิง วัตถุ ก่อน
นาไปเขยี นโปรแกรมจริง เพือ่ นาไปพฒั นาระบบสารสนเทศ
37
ประวัติความเป็นมาของ UML( Unified Modeling
Language )
UML ได้ถือกาเนิดขึ้นมา ในแวดวงอุตสาหกรรม ซอฟแวร์
เมื่อปี คศ.1994 โดย Jim Rumbaugh และทีมวิจัย จาก
บริษัท General Electric พัฒนาแนวคิดเรื่อง Object
Modeling Technique (OMT) และ ไอวาร์ จาคอบสัน
(Ivar Jacobson ) จากบริษัท Ericsson ได้นาเสนอ
แนวความคิดในเร่ืองของ Use case เป็นคนแรก ซึ่งช่วงน้ัน
มีระเบียบวิธีท่ีมีลักษณะคล้ายคลึงกันดังกล่าวเกิดข้ึน
มากมาย และในขณะเดียวกันก็มีรายละเอียดปลีกย่อยที่
แตกต่างกันออกไป แนวความคิดพ้ืนฐาน ท่ีเหมือนกันถูก
แสดงด้วยสัญลักษณ์ท่ีต่างกัน ซ่ึงทาให้เกิดความสับสนใน
การส่ือความหมาย องค์การ OMG พยายามท่ีจะสร้าง
มาตรฐานขึ้นมา เกรดี บูช (Grady Booch) พยายาม
ประสานงานอย่างไม่เป็นทางการ ซึ่งก็ไม่ประสบผลสาเร็จ
แต่อย่างใด ต่อมามีการประชุม OOPSLA ในปี 1994 โดยมี
การประกาศว่า Jim Rumbuagh ไดร้ ่วมกับ Grady Booch
ท่ี Rational Software เพ่ือร่วมกันพัฒนาระเบียบวิธีของที่
ต่างคนตา่ งคิดข้ึนดว้ ยกัน ในการประชุม OOPSLA
38
ปี คศ.1997 โดย บรษิ ัท Rational Software
Cooperation โดยได้ทาการรวบรวมแนวคามคิด การ
พัฒนา ซอฟแวร์ โดยมแี นวความคดิ ที่วา่ การพฒั นา
ซอฟแวร์ เป็นงานศลิ ปะประเภทหนึ่ง ทม่ี คี วามละเอยี ดออ่ น
ต้องการความพถิ พี ิถนั ในทกุ ขน้ั ตอนนบั ตง้ั แต่ การวิเคราะห์
ขอ้ มลู จนกระทง่ั การพัฒนาข้ึนมาจนสามารถใชง้ านไดอ้ ยา่ ง
มปี ระสิทธภิ าพ โดยใช้ UML เป็นเคร่ืองมือในการพฒั นา ใน
รปู แบบของ Object กลุ่มบริษทั ทไ่ี ด้มีสว่ นร่วมในการ
พฒั นา ทใี่ หญ่ ได้แก่ Microsoft , IBM , Compaq ,
Oracle ซงึ่ ลว้ นแตเ่ ป็น บริษัทฯ ยกั ษใ์ หญ่ ในแวดวง
อุตสาหกรรมซอฟแวร์
ประวตั ขิ องการพฒั นา UML
ปี 1998 พัฒา UML Version 1.2
ปี 1999 พัฒา UML Version 1.3
ปี 2000 พฒั า UML Version 1.4
ปี 2001 พัฒา UML Version 2.0 และ เปน็ Version ลา
สุดของ UML ปจั จุบนั
39
UML ภาษามาตรฐานสาหรับการจาลองระบบสารสนเทศ
ด้วยภาพการวาดแผนภาพจาลองเพื่อจุดประสงค์ 4
ประการ
- จาลองดว้ ยภาพ (visualizing)
- แสดงข้อกาหนด (specifying)
- ช่วยสร้างระบบ (constructing)
- ช่วยบันทึก (documenting)
ทาไมต้องยเู อม็ แอล (Why UML?)
1. UML สามารถแสดงส่วนประกอบในการสร้างโปรเจคใน
รูปของโอโอพี (OOP)
2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้รหัสเชิงวัตถุ
(Object Oriented Code)
3. ง่ายต่อการทาความเข้าใจและสามารถแปลงเป็น
ภาษาคอมพวิ เตอร์ (Computer Language)
UMLประกอบด้วย 3 ส่วนหลักคือ Things, Relationships 40
และ 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
ประโยชนข์ องยเู อ็มแอล (UML Advantage)
1. วงจรการพัฒนาท่ีส้ันที่สุด (Shortest Development
life cycle)
2. เพิ่มผลผลิต (Increase productivity)
3. ปรับปรุงคุณภาพซอฟต์แวร์ (Improve software
quality)
4. สนับสนุนระบบสืบทอดมรดก (Support legacy
system)
5. ปรับปรุงการเชื่อมต่อทีมงาน (Improve team
connectivity)
41
ใช้ UML ทาอะไร?
• เป็น Modeling Language ในการสร้างแบบจาลองของ
ระบบ ใหเ้ ข้าใจถึงระบบ องคป์ ระกอบ และ สิง่ ที่เก่ยี วข้อง
• UMLใช้แผนภาพ (Diagram) ในการอธิบายระบบ ทาให้
เราสามารถมองเห็นภาพการทางานของระบบก่อนที่จะ
สร้างจริง
• UML ใช้สร้าง Specification ของระบบ บอกความ
ต้องการของระบบ (วเิ คราะห์) และออกแบบระบ
• UML ใช้เป็นเอกสารของระบบ เก็บความรู้เก่ียวกับระบบ
ทุกขั้นตอน
กลไกของ UML
ในการวิเคราะห์ และออกแบบ ระบบ โดยใช้ UML เป็น
เครื่องมือ ในการดาเนินงานโครงการ มีกลไก ของ Model
มาตราฐาน ( Standard Model ) เพ่ือเป็นเคร่ืองมือ ใน
การวเิ คราะหแ์ ละออกแบบ ดังน้ี
1. Use case Diagram แสดงการใช้งานระบบ จาก
มุมมองของ User
2. Sequence Diagram แสดงลาดับข้ันตอน การทางาน
ภายใน ของ Use case Diagram
42
3. Class Diagram แสดงถึง Class และความสัมพันธ์ ของ
ข้อมูล และ กิจกรรมท่มี ผี ลกับขอ้ มลู ในแตล่ ะ Class
4. Activity Diagram แสดงถึง กระแส การไหล ของการ
ทางานในระบบ ( Work Flow )
5. Collaboration Diagram แสดงถึง การติดต่อส่ือสาร
และความสัมพันธ์ ระหว่าง Object
6. Component Diagram แสดงถึง โครงสร้างทาง
กายภาพของ Component ต่างๆ ในระบบ
7. Deployment Diagram แสดงถึง สถาปัตยกรรมของ
ระบบ Hardware/Software
8. Object Diagram แสดงถึงความสัมพันธ์ และ Instance
ของ Class และ Object
9. State Diagram แสดงถึง สถานภาพ และ พฤติกรรม
ของ Object
43
สรุปการออกแบบเชิงวตั ถุดว้ ย UML
UML (Unified Modeling Language) เป็นเคร่ืองมือใหม่ท่ี
ได้รับการยอมรับเพ่ิมข้ึนตลอดเวลา เร่ิมประยุกต์ใช้กับ
ระบบงานมากข้ึน เพราะเป็นเครื่องมือท่ีมีความหลากหลาย
ในการแสดงแบบซอฟต์แวร์ เป็นโมเดลมาตรฐานที่ใช้
หลักการออกแบบ OOP (Object Oriented
Programming) รูปแบบของภาษามี Notation เป็น
สัญลักษณ์สาหรับส่ือความหมาย มีกฎระเบียบที่มี
ความหมายต่อการเขียนโปรแกรม (Coding) ดังน้ันการใช้
UML จะต้องทราบความหมายของ Notation เช่น
generalize, association, dependency, class และ
package กับ กลไกของ UML ส่ิงเหล่านี้มีความจาเป็นต่อ
ก า ร ตี ค ว า ม ก า ร อ อ ก แ บ บ ก่ อ น น า ไ ป Implement
ระบบงานจริง
44
หนวยท่ี 5 การเขียน
Structurethings,Behavioral things, Group
things และ Annotationalthings
Things คือ สัญลกั ษณห์ รือสิ่งตา่ งๆ ทีน่ ามาใชส้ ร้าง
Diagram UML
แบง่ ออกเปน็ 4 หมวด คอื
1. Structural Things หรือ หมวดโครงสร้าง
2. Bahavioral Things หรอื หมวดพฤติกรรม
3. Grouping Things หรือ หมวดการจดั กล่มุ หมู่
4. Annotation Things หรือ หมวดคาอธบิ าย
45
1. Structural Things หรือ หมวดโครงสร้าง เป็นคานาม
เพื่อแทน อีลิเมนต์ (Element) ต่างๆ ท้ังที่เป็นนามธรรม
(Logical thing) และรูปธรรม (Physical things) ส่วนใหญ่
จะเป็นส่วน static
Logical Things ประกอบดว้ ย
Class หมายถึงส่ิงท่ีเราใช้อธิบายกลุ่มของวัตถุท่ีมีคุณสมบัติ
การทางาน และความสัมพันธ์บางอย่างเหมอื นกัน
• ช่ือ class คือ Window ซึง่ เป็นการสร้างหน้าต่าง
ขึ้นมาเพอื่ ใช้งาน
• Attribute คือ Origin หมายถึงจุดเริ่มต้นของ
หน้าต่าง และ Size หมายถึงขนาดของหน้าต่างท่ีจะสร้าง
ข้นึ
• Operation คือ open() เป็นฟังก์ช่ันในการจองเนื้อ
ท่ีในหน่วยความจาและเตรียมสภาพแวดล้อมสาหรับการ
เปิดหน้าต่าง close() เป็นฟังก์ชั่นในการคืนพื้นท่ีใน
หน่วยความจาและลบหน้าต่าง และ display() เป็นฟังก์ชั่น
ในการแสดงหน้าต่างบนจอภาพ open() close()
display()
46
Interface เป็นการนาเอา Operation ต่างๆ มาจัดกลุ่ม
เป็น collection โดย interface จะเป็นตัวกาหนด ว่า
operation ตา่ งๆ จะใชง้ านอยา่ งไร
Collaboration ใช้กาหนดบทบาทและปฏิสัมพันธ์ท่ีมี
Element ต่อกัน เป็นการหาพฤติกรรมในภาพรวมของ
กลุ่ม Element ซึ่ง Class หน่ึงๆ อาจจะมีได้หลาย
Collaboration ก็ได้
Use case ใช้อธิบาย Action ต่างๆ ที่เกิดข้ึน โดยผู้ที่
กระทา Action เหลา่ น้ันจะเรยี กวา่ Actor
47
Active class เปน็ Class ท่ี Object มีกระบวนการทางาน
มากกวา่ 1 กระบวนการทางาน(processหรอื thread)
EventManager+suspend()+flush()
Physical Things ประกอบด้วย
Component เป็นส่วนประกอบของระบบซ่ึงมีตัวตนจริงๆ
เช่น COM+ หรือ Java Beans เป็นต้นซึ่ง component
จะอย่ใู นรูป Library ท่สี ามารถเรยี กมาใช้งานได้