CHAPTER 2 กระบวนการผลติ ซอฟตแ์ วร์ อาจารย์ผสู้ อน อ.รตั ตกิ านต์ วิบูลย์พานิช อาจารยป์ ระจาสาขาวิชาวศิ วกรรมซอฟต์แวร์SWE202 Introduction to Software Engineering
หวั ข้อวนั นี้กระบวนการผลติ ซอฟตแ์ วร์ความสมั พันธร์ ะหว่างกระบวนการผลติ ซอฟตแ์ วร์และ กระบวนการวศิ วกรรมซอฟต์แวร์แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์เครอ่ื งมือและระเบียบวิธีท่ีใชใ้ นวิศวกรรมซอฟตแ์ วร์
กระบวนการผลิตซอฟต์แวร์
กระบวนการผลิตซอฟต์แวร์ภาพรวมการผลติ ซอฟต์แวร์ อดีต : ระบบงานเล็ก ไม่ซับซ้อน มีนักเขียนโปรแกรมคนเดียวพฒั นาทลี ะระบบ ปัจจุบัน : ระบบงานใหญ่ ซับซ้อน บูรณาการระบบสารสนเทศเข้าด้วยกัน ใช้ทีมงานวิศวกรซอฟต์แวร์ พัฒนาตามระเบียบวิธีด้านวิศวกรรมซอฟต์แวร์ เช่น การพฒั นาระบบงานธนาคาร เปน็ ต้น
กระบวนการผลติ ซอฟต์แวร์กระบวนการ (Process) คือ กลุ่มของขั้นตอนการทางาน ที่ประกอบไปด้วยกิจกรรมข้อจากัด และทรัพยากรท่ีจะใช้ผลิตเป็นผลลัพธ์บางชนิดตามต้องการ ซ่ึงกระบวนการทวั่ ไปมลี กั ษณะ ดังนี้ 1. กระบวนการจะตอ้ งระบุกิจกรรมทั้งหมดอยา่ งชดั เจน 2. กระบวนการจะใช้ทรัพยากรภายใต้ข้อจากัดต่าง ๆ เช่นระยะเวลา งบประมาณ และความต้องการของตลาด เปน็ ตน้ 3. ภายใตก้ ระบวนการจะมีกจิ กรรมย่อยท่ีมคี วามสัมพนั ธก์ ัน 4.ทุกกิจกรรมในกระบวนการจะต้องมีวันเริ่มต้นและวันส้ินสุดที่ชดั เจน
กระบวนการผลิตซอฟตแ์ วร์กระบวนการ (Process) (ตอ่ ) 5.ทุกข้ันตอนและทุกกิจกรรมของกระบวนการจะต้องมีเป้าหมายอยา่ งชัดเจน เชน่ การจดั ทาตารางระยะเวลาการดาเนินงาน (Gantt Chart)
กระบวนการผลติ ซอฟตแ์ วร์กระบวนการซอฟตแ์ วร์ (Software Process) คือ กลุ่มของกิจกรรมและผลลัพธ์ของแต่ละกิจกรรม เพื่อการผลิตเป็นผลิตภัณฑ์ เรยี กวา่ “ซอฟตแ์ วร”์ โดยประกอบดว้ ย 4 กิจกรรม ได้แก่ Software Software Design Software SoftwareSpecification and Validation Evolution Implementation
กระบวนการผลิตซอฟตแ์ วร์บทสรุป กระบวนการซอฟต์แวร์ (Software Process) สามารถเรียกอีกอยา่ งว่า “วัฏจักรชวี ิตของซอฟตแ์ วร์ (Software Life Cycle)”
กระบวนการผลติ ซอฟตแ์ วร์บทสรุป วฏั จักรชีวิตของซอฟต์แวร์ (Software Life Cycle) แบง่ เป็น 6 ชว่ ง คือ 1. ชว่ งการพัฒนาเทคโนโลยี (Technology Development): A 2. ช่วงการปลอ่ ยผลผลติ ทางเทคโนโลยี (Application Launch): B 3. ช่วงการเติบโตของผลผลติ (Application Growth): C 4. ช่วงการอม่ิ ตัวของเทคโนโลยี (Mature Technology): D 5. ช่วงหาเทคโนโลยีใหมๆ่ เข้ามาแทนที่ (Technology Substitution): E 6. ชว่ งหมดยคุ ของเทคโนโลยเี ดมิ (Technology Obsolescence): F
กระบวนการผลติ ซอฟตแ์ วร์ตวั อย่างความกา้ วหน้าของ e-CommerceRetail e-Commerce revenues have grown exponentially since 1995 andhave only recently “slowed” to a very rapid 16 percent annual increase,which is projected to remain the same until 2010.
ความสมั พนั ธ์ระหวา่ งกระบวนการผลิตซอฟตแ์ วร์ และกระบวนการวิศวกรรมซอฟตแ์ วร์
ความสัมพนั ธ์ระหวา่ งกระบวนการผลิตซอฟตแ์ วร์และ กระบวนการวศิ วกรรมซอฟต์แวร์กระบวนการผลติ ซอฟตแ์ วร์ (Software Process) เป็นกรอบการดาเนินงานผลิตซอฟต์แวร์ท่ีตอ้ งดูแลจากวิศวกรซอฟต์แวร์เพื่อให้ได้ซอฟตแ์ วรท์ ่ีมคี ุณภาพกระบวนการวศิ วกรรมซอฟตแ์ วร์ (Software Engineering Process) เป็นก าร ค วบคุมดูแ ล ขั้น ตอน กา รผ ลิ ต ร วม ไปถึ ง การ ส ร้ า ง(Implementation) ประเมิน (Assessment) การวัดผล (Measurement)การจัดการ (Management) การเปล่ียนแปลง (Change) และการปรับปรุงกระบวนการผลติ ซอฟตแ์ วร์ (Improvement)
ความสมั พนั ธร์ ะหวา่ งกระบวนการผลติ ซอฟตแ์ วรแ์ ละ กระบวนการวศิ วกรรมซอฟต์แวร์เทคโนโลยีแบบเลเยอรข์ องวิศวกรรมซอฟตแ์ วร์ เคร่ืองมือ (Tools) ระเบียบวธิ ี (Methods) กระบวนการ (Process) คุณภาพ (Quality)
ความสมั พันธร์ ะหว่างกระบวนการผลิตซอฟต์แวรแ์ ละ กระบวนการวิศวกรรมซอฟต์แวร์เทคโนโลยีแบบเลเยอรข์ องวศิ วกรรมซอฟต์แวร์ 1. กระบวนการ (Process) เป็นการกาหนดกิจกรรมพ้ืนฐานในการผลิตซอฟต์แวร์ ภายใต้ขอ้ จากดั ดา้ นเวลา เงนิ ทนุ และความต้องการของตลาด 2. ระเบยี บวิธี (Methods) ประกอบดว้ ยข้ันตอนการวเิ คราะห์ ออกแบบเขียนโปรแกรม และทดสอบซอฟตแ์ วร์ 3. เคร่ืองมือ (Tools) เป็นการเลือกเครื่องมือในการพฒั นาซอฟต์แวร์ให้เหมาะสมกับกระบวนการและระเบียบวธิ ี 4. คุณภาพ (Quality) ซอฟตแ์ วร์ที่พัฒนาเสร็จเรียบร้อยจะต้องไดร้ ับการตรวจสอบ และมคี ุณภาพตามกระบวนการวิศวกรรมซอฟตแ์ วร์
แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์
แบบจาลองกระบวนการผลิตซอฟต์แวร์แบบจาลองกระบวนการผลิตซอฟต์แวร์ (Software Process Model) หมายถึง การจาลองภาพของกระบวนการผลิตซอฟต์แวร์ เพื่อให้เห็นถึงการจดั โครงสรา้ งลาดับขนั้ ตอนของกระบวนการในรปู แบบทแ่ี ตกต่างกันออกไป พ้ืนฐานของแบบจาลองกระบวนการผลติ ซอฟต์แวร์ มี 2 รปู แบบ ได้แก่ 1. Waterfall Model 2. Evolution Model (Iterative) *** ปัจจุบนั มมี ากกว่า 2 รปู แบบ ***
แบบจาลองกระบวนการผลิตซอฟต์แวร์แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์ (Software Process Model) 1. Waterfall Model
แบบจาลองกระบวนการผลิตซอฟตแ์ วร์แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์ (Software Process Model) 2. Evolution Model (Iterative) ทางานลักษณะแบบวนซ้า (Iteration) ประกอบไปดว้ ย 4 ขนั้ ตอนคือ 1. วเิ คราะหค์ วามตอ้ งการ 2. การออกแบบระบบ 3. การเขียนและทดสอบโปรแกรม 4. การประเมนิ ระบบ
แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์แบบจาลองกระบวนการผลติ ซอฟต์แวร์ (Software Process Model) อืน่ ๆ วงจรการวเิ คราะหแ์ ละออกแบบระบบ (SDLC) เป็นวงจรที่นิยมสาหรับใช้ในการวิเคราะห์และออกแบบระบบโดย SDLC ย่อมาจาก System Development Life Cycle
แบบจาลองกระบวนการผลิตซอฟตแ์ วร์แบบจาลองกระบวนการผลติ ซอฟต์แวร์ (Software Process Model) อนื่ ๆ แบบจาลองลาดับเชิงเสน้ (Linear Sequential Model : LSM) เปน็ แบบจาลองที่ต้องมีข้อกาหนดความตอ้ งการที่ชดั เจน และไม่มกี ารเปลย่ี นแปลงใด ๆ เกิดข้ึนRequirement Design Coding Test Quality Analysis
แบบจาลองกระบวนการผลติ ซอฟตแ์ วร์แบบจาลองกระบวนการผลิตซอฟตแ์ วร์ (Software Process Model) อนื่ ๆ Rational Unified Process (RUP) เป็นแบบจาลองกระบวนการผลิตที่เกิดจากการผสมผสานแบบจาลองรูปแบบอื่น ๆ โดยมีการทางานออกเป็นเฟส (Phase) ท้ังหมด 4 เฟสได้แก่ 1. Inception : ระยะเร่มิ ตน้ การดาเนนิ การ 2. Elaboration : ระยะทาความเข้าใจในปญั หาของระบบ 3. Construction : ระยะออกแบบ เขียนโปรแกรม ทดสอบ 4. Transition : ระยะส่งมอบระบบให้กบั ลูกค้า
แบบจาลองกระบวนการผลิตซอฟต์แวร์ แบบจาลองกระบวนการผลิตซอฟตแ์ วร์ (Software Process Model) อื่น ๆ Ration Unified Process (RUP)Core Process WorkflowsCore Supporting Workflows
เคร่อื งมอื และระเบยี บวธิ ีที่ใชใ้ น วศิ วกรรมซอฟต์แวร์
เคร่ืองมอื และระเบียบวธิ ที ใี่ ช้ในวศิ วกรรมซอฟตแ์ วร์เครอื่ งมอื (Tools) เป็นซอฟตแ์ วร์ที่มีวัตถุประสงค์เพื่อช่วยให้การทางานในกระบวนการผลิตซอฟตแ์ วร์สะดวกมากขน้ึ อาทิ
เครือ่ งมือและระเบยี บวิธที ใี่ ชใ้ นวิศวกรรมซอฟต์แวร์CASE Tools ย่อมาจาก Computer-Aided Software Engineering เป็นซอฟต์แวร์ท่ีเป็นเคร่ืองมือท่ีมีส่วนช่วยสนับสนุนการทางานในกิจกรรมต่าง ๆ ของงานวิศวกรรมซอฟตแ์ วร์ ประกอบด้วย 1. Design Editor : หน้าต่างออกแบบโปรแกรม 2. Data Dictionary : พจนานกุ รมขอ้ มลู 3. Compiler : คอมไพเลอร์ 4. Debugger : ดีบกั เกอร์
เคร่อื งมอื และระเบยี บวิธีที่ใชใ้ นวศิ วกรรมซอฟตแ์ วร์CASE Tools (ตอ่ ) สามารถจาแนกประเภทไดด้ ังน้ี 1. จาแนกตามหน้าท่ี (Functional Perspective) 2. จาแนกตามกระบวนการทางาน (Process Perspective) 3. จาแนกตามการประสานเข้ากับ CASE Tools อ่นื ๆ (IntegrationPerspective)
เครื่องมือและระเบียบวธิ ีทีใ่ ช้ในวิศวกรรมซอฟต์แวร์CASE Tools (ตอ่ ) สามารถแบง่ CASE Tools ออกเป็น 8 กลุ่ม ไดด้ งั นี้ 1 . เค ร่ื องมื อ ส าห รั บก าร วิ เค ร าะ ห์ ค วา ม ต้องก าร ( SoftwareRequirement Tools) แบ่งออกเป็น 2 กลมุ่ คอื 1.1 เครื่องมือสร้างแบบจาลองความต้องการ (RequirementModeling Tools) ในการดึงความต้องการ วิเคราะห์ กาหนด และตรวจสอบความตอ้ งการ 1.2เ ค รื่ อ ง มื อ ติ ด ต า ม ค ว า ม ต้ อ ง ก า ร ( RequirementTraceability Tools) ทาการตดิ ตามความต้องการที่เปลีย่ นแปลงอยูต่ ลอดเวลา
เครอ่ื งมอื และระเบยี บวิธที ่ใี ชใ้ นวิศวกรรมซอฟต์แวร์CASE Tools (ต่อ) 2. เครอ่ื งมอื ออกแบบซอฟตแ์ วร์ (Software Design Tools) เป็นเคร่ืองมือที่ใช้สร้างและตรวจสอบงานออกแบบซอฟต์แวร์เช่น Microsoft VISIO เป็นต้น
เครอื่ งมือและระเบียบวธิ ที ่ใี ชใ้ นวิศวกรรมซอฟต์แวร์CASE Tools (ต่อ) 3. เครื่องมือสร้างซอฟต์แวร์ (Software Construction Tools) เป็นกลุ่มเครื่องมือที่สนับสนุนงานในการสร้างซอฟต์แวร์ท้ังหมดไดแ้ ก่ Program Editor, Compiler, Interpreter และ Debugger ยกตวั อย่างเช่น Eclipse, EditPlus และ .NET Studio เปน็ ต้น
เคร่อื งมือและระเบยี บวธิ ีที่ใช้ในวศิ วกรรมซอฟต์แวร์CASE Tools (ตอ่ ) 4. เคร่ืองมอื ทดสอบซอฟต์แวร์ (Software Testing Tools) เ ป็ น ก ลุ่ ม เ ค รื่ อ ง มื อ ท่ี ใ ช้ ใ น ก า ร ท ด ส อ บ ซ อ ฟ ต์ แ ว ร์ ภ า ย ใ ต้สภาพแวดล้อมต่าง ๆ พร้อมท้ังใช้ในการประเมินผลการทดสอบว่าซอฟต์แวร์ที่ได้เป็นไปตามท่คี าดหวังไว้หรอื ไม่ 5. เครอื่ งมอื บารุงรักษาซอฟต์แวร์ (Software Maintenance Tools) เปน็ เครื่องมอื ท่ีใชบ้ ารงุ รกั ษาซอฟตแ์ วรท์ มี่ ีอยแู่ ลว้ ให้ยงั คงสภาพท่ีใชก้ ารไดอ้ ย่างดี รวมถึงการปรับรอื้ ระบบใหม่ (Reengineering Tools)
เครอ่ื งมอื และระเบียบวิธีทีใ่ ชใ้ นวิศวกรรมซอฟตแ์ วร์CASE Tools (ต่อ) 6. เคร่ืองมือจัดการโครงแบบ (Software Configuration ManagementTools) เป็นเคร่ืองมือท่ีใช้ติดตามการเปล่ียนแปลงของทุกองค์ประกอบของซอฟต์แวร์ อาทิ จดั การรุน่ ของซอฟตแ์ วร์ และการวางจาหน่ายซอฟตแ์ วร์ 7. เคร่ืองมือบริหารงานวิศวกรรมซอฟต์แวร์ (Software EngineeringManagement Tools) เป็นเคร่ืองมือท่ีใช้ในการวางแผนติดตามโครงการ การจัดการความเส่ียง และการวดั ผลโครงการ
เครื่องมือและระเบียบวธิ ีทใ่ี ช้ในวิศวกรรมซอฟต์แวร์CASE Tools (ต่อ) 8. เครอ่ื งมอื คณุ ภาพซอฟต์แวร์ (Software Quality Tools) เป็นเครอ่ื งทช่ี ่วยในการตรวจสอบคุณภาพ และวิเคราะห์คุณภาพของซอฟต์แวร์
เครอื่ งมอื และระเบียบวิธที ใ่ี ช้ในวศิ วกรรมซอฟตแ์ วร์ระเบยี บวธิ ี (Methodologies) ระเบียบวิธปี ฏิบัติงานวิศวกรรมซอฟต์แวร์มี 2 วิธี ไดแ้ ก่ 1. ระเบยี บวิธีเชิงโครงสรา้ ง (Structured Approach) -, - -, RSS Code - - - - - -- - - -- - RSS Code -- - - RSS Code - - - - - 0 -- - -- - RSS -- - -- -, -- - - RSS Code- -- - -- - - -- -- -- - RSS Code- -, RSS Code -, - - - - - - - -
เคร่ืองมอื และระเบียบวธิ ที ่ีใชใ้ นวิศวกรรมซอฟตแ์ วร์ระเบียบวธิ ี (Methodologies) 2. ระเบยี บวิธีเชิงวตั ถุ (Object-oriented Approach)
เครอ่ื งมือและระเบยี บวธิ ีทีใ่ ช้ในวิศวกรรมซอฟตแ์ วร์ระเบียบวิธี (Methodologies) อ่นื ๆ (ต่อ) 1. Heuristic Methodology เป็นระเบยี บวิธที ี่ไม่เป็นแบบแผน (Informal Method) โดยไม่นาวิธกี ารทางคณติ ศาสตร์เขา้ ใชใ้ นข้นั ตอนต่าง ๆ ประกอบดว้ ย 1.1 Structured Methodology : มุ่งเน้นที่หน้าท่ีการทางานของโปรแกรม 1.2 Data-oriented Methodology : มุ่งเน้นท่ีข้อมูลที่โปรแกรมจะตอ้ งเขา้ ไปดาเนินการ 1.3 Object-oriented Methodology : พิจารณาทั้งข้อมูลและหน้าทกี่ ารทางานไปพร้อม ๆ กนั
เคร่ืองมือและระเบยี บวธิ ีทใี่ ช้ในวศิ วกรรมซอฟต์แวร์ระเบยี บวิธี (Methodologies) อน่ื ๆ (ต่อ) 2. Formal Methodology มี 2 ชนดิ ได้แก่ - การระบุข้อกาหนดอย่างมีแบบแผน (Formal Specification)เป็นวิธีการอธิบายข้อกาหนดด้วนภาษาชนิดใดชนิดหนึ่ง เช่น พีชคณิต และแบบจาลองทางคณิตศาสตร์ เปน็ ตน้ - การทดสอบอย่างมีแบบแผน (Formal Verification) เป็นวธิ ีการทดสอบโดยใช้การพสิ จู น์ทางตรรกะ เพอ่ื ให้ซอฟต์แวรท์ ่มี ปี ระสิทธิภาพ
แบบฝึกหดั ท่ี 21. หากนักศึกษาต้องทาการตั้งทีมงานสาหรับพัฒนาซอฟต์แวร์ ควรมีบุคคลท่ีดารงตาแหน่งใดบา้ งอยู่ในทมี ใหร้ ะบตุ าแหน่งพรอ้ มอธิบายหน้าที่2. ใหน้ กั ศกึ ษาสืบคน้ ขอ้ มูลแบบจาลองกระบวนการผลติ ซอฟต์แวร์ต่าง ๆ ดังนี้ 2.1 แบบจาลองตน้ แบบ (Prototype Model : PRM) 2.2 แบบจาลองเร่งรัด (Rapid Application Development Model: RAD) 2.3 แบบจาลองทาเพมิ่ (Incremental Model : INM) 2.4 แบบจาลองวงเวียน (Boehm Spiral Model : BSM) โดยใหน้ กั ศกึ ษาอธิบายหนา้ ท่ีพอสงั เขป พรอ้ มวาดรูปแต่ละแบบจาลองใสใ่ นสมดุ
Search
Read the Text Version
- 1 - 37
Pages: