LOGO Chapter 2 es Aj.AMPHOL KONGKEAW Software Engineering, Faculty of Science and Technology North-Chiang Mai University Objectives เพ อให น กศ กษาเข าใจกระบวนการผล ตซอฟต แวร เพ อให น กศ กษาม ความร เก ยวก บแบบจาลองกระบวนการผล ต เพ อให น กศ กษาร จ กเคร องม อและระเบ ยบว ธ ท ใช ในการ ว ศวกรรมซอฟต แวร เพ อให น กศ กษาเข าใจองค ประกอบของระบบ 16-301 Chapter 2 # 2 1
กระบวนการผล ตซอฟต แวร เหม อนก บการผล ตส นค าท วไป แต กระบวนการผล ตซอฟต แวร ท าทายกว า ว ตถ ด บของการผล ตซอฟต แวร เป นนามธรรม จ บต องไม ได การควบค มการผล ตทาได ยาก กระบวนการผล ตจ งเป นส งท นามาควบค มการผล ตซอฟต แวร กระบวนการผล ตท ด ผลล พธ ด ด วย กระบวนการผล ตซอฟต แวร ม หลายแบบ โดยม ก จกรรมพ นฐาน เหม อนก น แต ม ล าด บข นตอนต างก น เพ อให เหมาะก บระบบท ต างก น และแต ละแบบม ข อด ข อเส ยต างก น 16-301 Chapter 2 # 3 Process (กระบวนการ) กล มของข นตอนการท างาน ท ประกอบด วยช ดก จกรรม ข อจาก ด และ ทร พยากรท ใช ผล ตเป นผลล พธ ตามต องการ ทร พยากร (คน, อ ปกรณ ) ข อจาก ด (เวลา,งบประมาณ) จ ดลาด บการทางาน ผล ตภ ณฑ (ตามต องการ) ช ดก จกรรม (ระบบย อยต างๆ) 16-301 Chapter 2 # 4 2
ว ศวกรรมซอฟต แวร เป นเทคโนโลย ท นามาใช ในการผล ต ซอฟต แวร เคร องม อ (Tools) ระเบ ยบว ธ (Methods) กระบวนการ (Process) ค ณภาพ (Quality) เทคโนโลย แบบ Layer ของว ศวกรรมซอฟต แวร 16-301 Chapter 2 # 5 แบบจาลองกระบวนการผล ตซอฟต แวร การจาลองภาพของกระบวนการผล ตซอฟต แวร เพ อให เห นถ งการจ ด โครงสร าง ลาด บข นตอนของกระบวนการผล ต ในร ปแบบท แตกต างก น ออกไป แต ม พ นฐานก จกรรมเหม อนก น แบบจาลองพ นฐาน 1. Waterfall Model ข นตอนการทางานเร ยงต อก นเป นลาด บ 2. Evolution Model/Spiral Model ทาก จกรรมในล กษณะวนซ า 16-301 Chapter 2 # 6 3
1. Waterfall Model ข นตอนการทางานเร ยงต อก นเป นลาด บ ข นตอนถ ดไปจะต องรอข นตอน ก อนหน าเสร จก อน Requirements Analysis Design Coding Testing Maintenance 16-301 Chapter 2 # 7 1. Waterfall Model ป ญหา 1. ความย งยากท จะเปล ยนแปลงหล งจากเร มกระบวนการแล ว 2. ม ธ รก จน อยรายท ม ความต องการค อนข างน ง 3. ล กค าต องอดทน เน องจากกว าจะเห นผลล พธ จะใช เวลานาน 16-301 Chapter 2 # 8 4
2. Evolution Model / Spiral Model ทาก จกรรมล กษณะวนซ า นาเสนอต อล กค าเป นระยะ เพ อนาคาแนะนาของล กค ามาปร บปร ง Requirement Analysis System Design Assessment Coding & Unit Testing 16-301 Chapter 2 # 9 2. Evolution Model ป ญหา 1. ขาดความช ดเจนของกระบวนการ 2. การวางโครงสร างของระบบไม ด พอ 3. ต องการความชานาญพ เศษ 16-301 Chapter 2 # 10 5
ป จจ บ นได ม การปร บกระบวนการให ม ประส ทธ ภาพมากข นอย เสมอ จ งทาให แบบจาลองม ร ปแบบแตกต างก นออกไปจานวน มาก ต วอย างเช น 1. Incremental Model :INM 2. Rapid Application Development Model : RAD 3. Prototype Model : PRM 4. Component- Base Development 5. Agile Process 6. ฯลฯ 16-301 Chapter 2 # 11 1. Incremental Model :INM การต อเต มตามความต องการท สล บซ บซ อนหร อเพ มมากข นเร อยๆ หร อการ พ ฒนา Version โดยแต ละ Version จะม การเพ มการทางานท ซ บซ อนมากข น ล กค าได ร บซอฟต แวร เร วข น และสามารถปร บเพ มความต องการได ตลอด 16-301 Chapter 2 # 12 6
2. Rapid Application Development Model : RAD แยกช นงานออกเป นส วนๆ แล วแบ งช นงานให ก บท มงานหลายๆ ท ม พ ฒนาพร อมก น แล วนาช นงานแต ละส วนมาประกอบก น ว ธ การน ใช บ คลากรจานวนมาก 16-301 Chapter 2 # 13 3. Prototype Model : PRM จ ดสร างต นแบบเพ อย นย นความต องการของล กค า เน องจากว ศวกรซอฟต แวร ย งไม ทราบความต องการท แน ช ด 16-301 Chapter 2 # 14 7
4. Component- Base Development : CBSE เป นการนา component ท สร างไว แล ว มาประกอบเป นซอฟต แวร ใหม ท ต องการ ด วย หล กการ Reusable ท งในส วนของ Code และ Architecture 16-301 Chapter 2 # 15 5. Agile Process เป นการเปล ยนว ธ การทางานใหม ม งเน นทางานร วมก บล กค าโดยตรง ม หล กการ คล องแคล ว ฉลาด ฉ บไว โดยใช บ คลากรในการพ ฒนาจานวนน อย และให เวลาก บ การเข ยนโปรแกรมมากกว าการทาเอกสารต างๆ แก ไขงานท นท ท ม การเปล ยนแปลง มากกว าวางแผนก อนลงม อทางาน 16-301 Chapter 2 # 16 8
ปร บปร งกระบวนการผล ตซอฟต แวร ด วย CMM ในการผล ตซอฟต แวร กระบวนการผล ต เป นส งสาค ญท จะทาให ได ซอฟต แวร ท ม ค ณภาพ ด งน น องค กรต องม กลย ทธ ใน การปร บปร งกระบวนการ (Process Improvement) เพ อช วยให กระบวนการผล ตซอฟต แวร ม ค ณภาพ แบบจาลองว ฒ ภาวะความสามารถ (Capability Maturity Model : CMM) เป นแบบจ าลองท น ามาใช เพ อปร บปร งกระบวนการผล ต ซอฟต แวร ไปส ค ณภาพ ท น ยมใช 16-301 Chapter 2 # 17 ปร บปร งกระบวนการผล ตซอฟต แวร ด วย CMM องค กรแห งการเร ยนร กาหนดมาตรฐานและปร บปร งอย างต อเน อง จ ดทาเอกสารกาหนดน ยามท กๆ ข นตอน ม ระเบ ยบแบบแผนในการพ ฒนาระบบช ดเจน ไม ม ระเบ ยบแบบแผนในการพ ฒนาระบบเลย 16-301 Chapter 2 # 18 9
ระเบ ยบว ธ (Methodologies) กรรมว ธ ในการปฏ บ ต งานว ศวกรรมซอฟต แวร จะกาหนดน ยามของ ก จกรรมต างๆ ข นตอนการด าเน นก จกรรม และข อแนะนาการตรวจสอบ การทางาน ได แก 1. ว ธ เช งโครงสร าง (Structured Approach) 2. ว ธ เช งว ตถ (Object-oriented Approach) 16-301 Chapter 2 # 19 ระเบ ยบว ธ (Methodologies) 1. ว ธ เช งโครงสร าง (Structured Approach) 16-301 Chapter 2 # 20 10
ระเบ ยบว ธ (Methodologies) 2. ว ธ เช งว ตถ (Object-oriented Approach) 16-301 Chapter 2 # 21 เคร องม อ (Tools) ซอฟต แวร คอมพ วเตอร ท ม ว ตถ ประสงค เพ อช วยให การท างานใน กระบวนการผล ตซอฟต แวร สะดวกข น ถ กออกแบบมาให เหมาะก บ ระเบ ยบว ธ (Method) ท แตกต างก นไป ต วอย างเช น Project Management Application (MS-Project) Word Processing (MS-Word) Drawing/Graphics Application (Star UML, Visio) Computer-Aided System Engineering : CASE Tools 16-301 Chapter 2 # 22 11
Microsoft Project 16-301 Chapter 2 # 23 Star UML 16-301 Chapter 2 # 24 12
เคร องม อ (Tools) Computer-Aided System Engineering : CASE Tools ซอฟต แวร ท เป นเคร องม อท ม ส วนช วยสน บสน นการทางานในก จกรรม ต างๆ ของงานว ศวกรรมซอฟต แวร องค ประกอบท สาค ญของ CASE ค อ Repository ซ งม ล กษณะเหม อน ฐานข อม ลจ ดเก บรายละเอ ยดต างๆ ได แก แผนภาพ แบบจาลอง CASE จาแนกตามกระบวนการทางานได 8 กล มด งน 16-301 Chapter 2 # 25 เคร องม อ (Tools) Computer-Aided System Engineering : CASE Tools 1. Software Requirement Tools : ว เคราะห ความต องการ 2. Software Design Tools : ออกแบบซอฟต แวร 3. Software Construction Tools : สร างซอฟต แวร 4. Software Testing Tools : ทดสอบซอฟต แวร 5. Software Maintenance Tools : บาร งร กษาซอฟต แวร 6. Software Configuration Management Tools : จ ดการโครงแบบ 7. Software Engineering Management Tools : บร หารงาน 8. Software Quality Tools : ค ณภาพซอฟต แวร 16-301 Chapter 2 # 26 13
Exercise 2: 1. จงเปร ยบเท ยบจ ดเด น จ ดด อยของระเบ ยบว ธ ปฏ บ ต ของว ศวกรรมซอฟต แวร ระหว างว ธ เช งโครงสร าง (Structured Approach) และว ธ เช งว ตถ (Object-Oriented Approach) 2. Waterfall Model แตกต างจาก Spiral Model อย างไร จงอธ บายตาม ความเข าใจของน กศ กษา 3. ในฐานะท น กศ กษาเป นน กว ศวกรซอฟต แวร ควรจะเล อกพ จารณาใช แบบจาลอง กระบวนการผล ตซอฟต แวร ( Model) แบบใด เพราะเหต ใด จงให เหต ผลประกอบการเล อก 16-301 Chapter 2 # 27 14