วัตถุประสงค
                                                               เพื่อใหนักศึกษาสามารถ
                                                                 อธิบายลักษณะของระบบซอฟตแวรได
                                                                 อธิบายวงจรชีวิตการพัฒนาระบบได
                                                                 อธิบายลักษณะของซอฟตแวรคุณภาพได
                                                                 อธิบายปญหาในการพัฒนาระบบได

 หนวยที่ 1: ความรูพื้นฐานเกียวกับการ
                              ่
       พัฒนาระบบซอฟตแวร
          (Introduction to Software Systems Development)
OOAD 1/2551 ภาคปกติ         ดร.สุขสถิต มีสถิตย            1    OOAD 1/2551 ภาคปกติ        ดร.สุขสถิต มีสถิตย   2




                 ระบบซอฟตแวร (Software                                         ระบบซอฟตแวร (Software
                 System)                                                         System)
ระบบ (System)                                                    ระบบทีอิงกับสวนของซอฟตแวรในระบบคอมพิวเตอร
                                                                       ่
     ดํารงอยูในสภาพแวดลอม (Environment)                        ซอฟตแวร, โปรแกรมประยุกต (application)
     มีขอบเขต (Boundary)                                         การพัฒนาระบบซอฟตแวร (Software system) เปน
     มีอินพุทและเอาทพุต                                         อุตสาหกรรม
     แปลงอินพุท (input) เพื่อสรางเอาทพุต (output)
                                                                 การพัฒนาระบบซอฟตแวรที่มีประสิทธิภาพใหประสบ
     มีอินเตอรเฟส (interface) เพื่อการสื่อสารระหวางระบบ
                                                                 ความสําเร็จตองการ
     อาจมีระบบยอย (subsystem) ระบบยอยก็เปนระบบเชนกัน และ
                                                                     ระเบียบวิธีการผลิต (methodology)
     อาจมีระบบยอยของตัวเองลงไปอีก
                                                                     เครื่องมือ (tool)
     มีการควบคุมภายในระบบ
     อาศัยผลตอบกลับ (feedback) ในการทํางาน
     มีคุณสมบัติองครวม (emergent properties)
OOAD 1/2551 ภาคปกติ         ดร.สุขสถิต มีสถิตย            3    OOAD 1/2551 ภาคปกติ        ดร.สุขสถิต มีสถิตย   4




                                                                                                                     1
ขั้นการวิเคราะห (Analysis Phase)                            ขั้นการออกแบบ (Design Phase)

กระบวนการในการทําความเขาใจการใชระบบ                        การกําหนดวาระบบจะทํางานอยางไร?
ขั้นตอน                                                      ขั้นตอน
    รวบรวมขอมูล                                                 กําหนดนโยบายการสราง
    กําหนดความตองการ                                            ออกแบบสถาปตยกรรม (ฮารดแวรและซอฟตแวร)
    ระบุขอมูลและกระบวนทํางานในระบบใหม
                                                                ออกแบบสวนติดตอผูใช
ผลงาน                                                            ออกแบบฐานขอมูลและแฟมขอมูล
    แบบเสนอระบบ (system proposal)                                ออกแบบโปรแกรม
          ขอกําหนดความตองการ
                                                             ผลงาน
          แบบจําลองการวิเคราะห
                                                                 ขอกําหนดของระบบ (system specification)
OOAD 1/2551 ภาคปกติ               ดร.สุขสถิต มีสถิตย   9    OOAD 1/2551 ภาคปกติ        ดร.สุขสถิต มีสถิตย     10




                 ขั้นการทําใหเกิดผล
                                                                              ประเภทของซอฟตแวร
                 (Implementation Phase)
เพื่อสงมอบระบบ                                              ซอฟตแวรเฉพาะ (custom software)
ขั้นตอน                                                           พัฒนาเพื่อตอบสนองความตองการที่เจาะจงของลูกคาผู
     การสราง (construction)                                      หนึ่ง
          เขียนโปรแกรม
          ทดสอบ
                                                             ซอฟตแวรทั่วไป (general software)
  การติดตั้ง (installation)                                       สรางเพื่อขายใหกับผูใชทั่วไป
  การใชงาน (operation)                                      ซอฟตแวรฝงตัว (embedded software)
  การบํารุงรักษา (maintainance)
                                                                  ควบคุมอุปกรณเฉพาะ
ผลงาน
  ระบบ
                                                                  ติดตั้งมากับอุปกรณ (hardware) เมื่อซื้อ
  แผนสนับสนุน (support plan)
OOAD 1/2551 ภาคปกติ               ดร.สุขสถิต มีสถิตย   11   OOAD 1/2551 ภาคปกติ        ดร.สุขสถิต มีสถิตย     12




                                                                                                                      3
วิศวกรรมซอฟตแวร (Software
                      ประเภทของซอฟตแวร
                                                                              Engineering)
     ซอฟตแวรทํางานแบบทันที (real time software)            วิศวกรรมซอฟตแวรเปนศาสตรที่สําคัญในการ
          ทํางานตอบสนองทันที                                 พัฒนาระบบซอฟตแวร
          มักเกี่ยวกับความปลอดภัย                            วิศวกรรมซอฟตแวรคือกระบวนการแกปญหาของ
                                                             ลูกคาดวยการพัฒนาและวิวัฒนาการอยางเปนระบบ
     ซอฟตแวรประมวลผลขอมูล (data processing                ของระบบซอฟตแวรขนาดใหญ คุณภาพสูง ภายใน
     software)                                               ตนทุน เวลา และขอกําหนดอื่นๆ
          ในดําเนินธุรกิจ                                    การวิเคราะหและออกแบบเชิงวัตถุ (object-
          ความแมนยําและความปลอดภัยของขอมูลเปนสิ่งสําคัญ   oriented analysis and design) เปนสวนหนึ่งของ
     ซอฟตแวรบางตัวมีลักษณะทั้งสองอยาง                     วิศวกรรมซอฟตแวรเชิงวัตถุ (object-oriented
                                                             software engineering)
     OOAD 1/2551 ภาคปกติ      ดร.สุขสถิต มีสถิตย      13    OOAD 1/2551 ภาคปกติ           ดร.สุขสถิต มีสถิตย               14




                      ผูเกี่ยวของในโครงการพัฒนา                             คุณภาพของระบบ (Software
                      ระบบซอฟตแวร                                           Quality)
1.   ผูใช (user)                                            งายตอการใชงาน (usability)
                                                                   ผูใชเรียนรูไดรวดเร็ว และสามารถทํางานใหเสร็จไดงาย
            บุคคลที่ใชระบบ                                   มีประสิทธิภาพ (Efficiency)
2.   ลูกคา (client/customer)                                      ไมใชทรัพยากรเปลือง เชน เวลาซีพียู และหนวยความจํา
            บุคคลที่จายคาระบบซอฟตแวร                      มีความนาเชื่อถือ (reliability)
                                                                   ทําสิ่งที่ตองปฏิบัติไดโดยไมมีการผิดพลาด
3.   นักพัฒนาระบบ (Software developers)                       งายตอการบํารุงรักษา (maintainability)
            บุคคลที่พัฒนาและบํารุงรักษาซอฟตแวร                   เปลี่ยนแปลงไดงาย
                                                              ใชงานซ้ําได (reusability)
4.   ผูบริหารการพัฒนา (Development Managers)                      สวนของซอฟตแวรสามารถนําไปใชในโครงการอื่นได ทําใหไม
            ผูบริหารองคกรที่พัฒนาซอฟตแวร                       ตองเขียนโปรแกรมซ้ํา

ทั้งสี่บทบาทนี้อาจกระทําโดยบุคคลเดียวกัน
     OOAD 1/2551 ภาคปกติ      ดร.สุขสถิต มีสถิตย      15    OOAD 1/2551 ภาคปกติ           ดร.สุขสถิต มีสถิตย               16




                                                                                                                                  4
คุณภาพของระบบ และ                                                                    คุณภาพของระบบ: ความขัดแยง
                 ผูเกี่ยวของ                                                                        และวัตถุประสงค
                                                    ผูใช                           คุณภาพในแตละดานขัดแยงกันได
          ลูกคา
          แกปญหาในตนทุนที่ยอมรับได
                                                    เรียนรูงาย                          การเพิ่มประสิทธิภาพ (efficiency) อาจทําใหความงาย
                                                    มีประสิทธิภาพในการใชงาน
          ในเชิงของเงินงบประมาณและ
                                                    ชวยในการทํางานใหสําเร็จ
                                                                                          ตอการบํารุงรักษาและความนาเชื่อถือ (reliability)
          ทรัพยากรที่ใช
                                                                                          ลดลง
                               ซอฟตแวร                                                  การเพิ่มความงายในการใชงานอาจลดประสิทธิภาพ
                                คุณภาพ                                                    (efficiency)
                                                                                     การกําหนดวัตถุประสงคหลักดานคุณภาพเปน
             นักพัฒนา                               ผูบริหารการพัฒนา
             ออกแบบงาย                             ขายไดมากและทําใหลูกคาพอใจ     กิจกรรมสําคัญ
             บํารุงรักษางาย                        ขณะที่ตนทุนในการผลิตและ              ออกแบบใหไดตามวัตถุประสงค
                                                    บํารุงรักษาต่ํา
             ใชซ้ํางานงาย
                                                                                          หลีกเลี่ยงการกระทําเกินจําเปน
OOAD 1/2551 ภาคปกติ               ดร.สุขสถิต มีสถิตย                           17   OOAD 1/2551 ภาคปกติ          ดร.สุขสถิต มีสถิตย              18




                 ประเภทของโครงการพัฒนาระบบ                                                            ประเภทของโครงการพัฒนาระบบ
                 ซอฟตแวร                                                                            ซอฟตแวร
โครงการเชิงวิวัฒนาการ (evolutionary project)                                                   โครงการปรับโครงสรางใหม(re-engineering project) หรือ
                                                                                               โครงการปรับสมบูรณ (perfective project): เปลี่ยนแปลง
     หรือการบํารุงรักษา (maintenance project)                                                  ภายในระบบเพื่อใหบํารุงรักษางายขึ้น
     เกี่ยวกับการเปลี่ยนแปลงระบบที่มีอยู                                            โครงการใหม (Green field project)
     แบงเปนประเภทดังนี้                                                                 การพัฒนาระบบใหม
          โครงการแกไข (corrective project): แกไขขอบกพรอง
          โครงการปรับเปลี่ยน (Adaptive project): เปลี่ยนแปลงระบบ
          เพื่อตอบสนองกับความเปลี่ยนแปลงของสภาพแวดลอม
          (เทคโนโลยี หรือนโยบาย เปนตน)
          โครงการขยาย (enhancement project): เพิ่มความสามารถ
          ใหมเพื่อผูใช

OOAD 1/2551 ภาคปกติ               ดร.สุขสถิต มีสถิตย                           19   OOAD 1/2551 ภาคปกติ          ดร.สุขสถิต มีสถิตย              20




                                                                                                                                                        5
ประเภทของโครงการพัฒนาระบบ                                 อุปสรรคและความเสี่ยงในการ
                 ซอฟตแวร                                                 พัฒนาระบบซอฟตแวร
โครงการสรางซอฟตแวรจากองคประกอบสําเร็จ                 ความซับซอน และรายละเอียดปริมาณมาก
     เกี่ยวกับการประกอบองคประกอบที่พัฒนาไวแลว ซึ่งมี   ความไมแนนอนดานเทคโนโลยี
     ความสามารถที่เปนประโยชนอยางสําคัญ
                                                          ความไมแนนอนดานความตองการ
     เฟรมเวิรค (Framework) หรือ คอมโพเน็นต
     (component) คือระบบซอฟตแวรที่ออกแบบมาเพื่อให      ความไมแนนอนดานทักษะวิศวกรรมซอฟตแวร
     ใชซ้ําในการพัฒนาระบบที่แตกตางกัน                   การเปลี่ยนแปลงตลอดเวลา
     ไดรับประโยชนการจากใชซอฟตแวรที่เชื่อถือไดซ้ํา   การเสื่อมของการออกแบบซอฟตแวร
     แตยังคงอิสระในการสรางสรรค                         ความเสี่ยงเชิงการเมือง (political risks)

OOAD 1/2551 ภาคปกติ     ดร.สุขสถิต มีสถิตย          21   OOAD 1/2551 ภาคปกติ     ดร.สุขสถิต มีสถิตย   22




                                                                                                             6

Unit01

  • 1.
    วัตถุประสงค เพื่อใหนักศึกษาสามารถ อธิบายลักษณะของระบบซอฟตแวรได อธิบายวงจรชีวิตการพัฒนาระบบได อธิบายลักษณะของซอฟตแวรคุณภาพได อธิบายปญหาในการพัฒนาระบบได หนวยที่ 1: ความรูพื้นฐานเกียวกับการ ่ พัฒนาระบบซอฟตแวร (Introduction to Software Systems Development) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 1 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 2 ระบบซอฟตแวร (Software ระบบซอฟตแวร (Software System) System) ระบบ (System) ระบบทีอิงกับสวนของซอฟตแวรในระบบคอมพิวเตอร ่ ดํารงอยูในสภาพแวดลอม (Environment) ซอฟตแวร, โปรแกรมประยุกต (application) มีขอบเขต (Boundary) การพัฒนาระบบซอฟตแวร (Software system) เปน มีอินพุทและเอาทพุต อุตสาหกรรม แปลงอินพุท (input) เพื่อสรางเอาทพุต (output) การพัฒนาระบบซอฟตแวรที่มีประสิทธิภาพใหประสบ มีอินเตอรเฟส (interface) เพื่อการสื่อสารระหวางระบบ ความสําเร็จตองการ อาจมีระบบยอย (subsystem) ระบบยอยก็เปนระบบเชนกัน และ ระเบียบวิธีการผลิต (methodology) อาจมีระบบยอยของตัวเองลงไปอีก เครื่องมือ (tool) มีการควบคุมภายในระบบ อาศัยผลตอบกลับ (feedback) ในการทํางาน มีคุณสมบัติองครวม (emergent properties) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 3 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 4 1
  • 3.
    ขั้นการวิเคราะห (Analysis Phase) ขั้นการออกแบบ (Design Phase) กระบวนการในการทําความเขาใจการใชระบบ การกําหนดวาระบบจะทํางานอยางไร? ขั้นตอน ขั้นตอน รวบรวมขอมูล กําหนดนโยบายการสราง กําหนดความตองการ ออกแบบสถาปตยกรรม (ฮารดแวรและซอฟตแวร) ระบุขอมูลและกระบวนทํางานในระบบใหม  ออกแบบสวนติดตอผูใช ผลงาน ออกแบบฐานขอมูลและแฟมขอมูล แบบเสนอระบบ (system proposal) ออกแบบโปรแกรม ขอกําหนดความตองการ ผลงาน แบบจําลองการวิเคราะห ขอกําหนดของระบบ (system specification) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 9 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 10 ขั้นการทําใหเกิดผล ประเภทของซอฟตแวร (Implementation Phase) เพื่อสงมอบระบบ ซอฟตแวรเฉพาะ (custom software) ขั้นตอน พัฒนาเพื่อตอบสนองความตองการที่เจาะจงของลูกคาผู การสราง (construction) หนึ่ง เขียนโปรแกรม ทดสอบ ซอฟตแวรทั่วไป (general software) การติดตั้ง (installation) สรางเพื่อขายใหกับผูใชทั่วไป การใชงาน (operation) ซอฟตแวรฝงตัว (embedded software) การบํารุงรักษา (maintainance) ควบคุมอุปกรณเฉพาะ ผลงาน ระบบ ติดตั้งมากับอุปกรณ (hardware) เมื่อซื้อ แผนสนับสนุน (support plan) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 11 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 12 3
  • 4.
    วิศวกรรมซอฟตแวร (Software ประเภทของซอฟตแวร Engineering) ซอฟตแวรทํางานแบบทันที (real time software) วิศวกรรมซอฟตแวรเปนศาสตรที่สําคัญในการ ทํางานตอบสนองทันที พัฒนาระบบซอฟตแวร มักเกี่ยวกับความปลอดภัย วิศวกรรมซอฟตแวรคือกระบวนการแกปญหาของ ลูกคาดวยการพัฒนาและวิวัฒนาการอยางเปนระบบ ซอฟตแวรประมวลผลขอมูล (data processing ของระบบซอฟตแวรขนาดใหญ คุณภาพสูง ภายใน software) ตนทุน เวลา และขอกําหนดอื่นๆ ในดําเนินธุรกิจ การวิเคราะหและออกแบบเชิงวัตถุ (object- ความแมนยําและความปลอดภัยของขอมูลเปนสิ่งสําคัญ oriented analysis and design) เปนสวนหนึ่งของ ซอฟตแวรบางตัวมีลักษณะทั้งสองอยาง วิศวกรรมซอฟตแวรเชิงวัตถุ (object-oriented software engineering) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 13 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 14 ผูเกี่ยวของในโครงการพัฒนา คุณภาพของระบบ (Software ระบบซอฟตแวร Quality) 1. ผูใช (user) งายตอการใชงาน (usability) ผูใชเรียนรูไดรวดเร็ว และสามารถทํางานใหเสร็จไดงาย บุคคลที่ใชระบบ มีประสิทธิภาพ (Efficiency) 2. ลูกคา (client/customer) ไมใชทรัพยากรเปลือง เชน เวลาซีพียู และหนวยความจํา บุคคลที่จายคาระบบซอฟตแวร มีความนาเชื่อถือ (reliability) ทําสิ่งที่ตองปฏิบัติไดโดยไมมีการผิดพลาด 3. นักพัฒนาระบบ (Software developers) งายตอการบํารุงรักษา (maintainability) บุคคลที่พัฒนาและบํารุงรักษาซอฟตแวร เปลี่ยนแปลงไดงาย ใชงานซ้ําได (reusability) 4. ผูบริหารการพัฒนา (Development Managers) สวนของซอฟตแวรสามารถนําไปใชในโครงการอื่นได ทําใหไม ผูบริหารองคกรที่พัฒนาซอฟตแวร ตองเขียนโปรแกรมซ้ํา ทั้งสี่บทบาทนี้อาจกระทําโดยบุคคลเดียวกัน OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 15 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 16 4
  • 5.
    คุณภาพของระบบ และ คุณภาพของระบบ: ความขัดแยง ผูเกี่ยวของ และวัตถุประสงค ผูใช คุณภาพในแตละดานขัดแยงกันได ลูกคา แกปญหาในตนทุนที่ยอมรับได เรียนรูงาย การเพิ่มประสิทธิภาพ (efficiency) อาจทําใหความงาย มีประสิทธิภาพในการใชงาน ในเชิงของเงินงบประมาณและ ชวยในการทํางานใหสําเร็จ ตอการบํารุงรักษาและความนาเชื่อถือ (reliability) ทรัพยากรที่ใช ลดลง ซอฟตแวร การเพิ่มความงายในการใชงานอาจลดประสิทธิภาพ คุณภาพ (efficiency) การกําหนดวัตถุประสงคหลักดานคุณภาพเปน นักพัฒนา ผูบริหารการพัฒนา ออกแบบงาย ขายไดมากและทําใหลูกคาพอใจ กิจกรรมสําคัญ บํารุงรักษางาย ขณะที่ตนทุนในการผลิตและ ออกแบบใหไดตามวัตถุประสงค บํารุงรักษาต่ํา ใชซ้ํางานงาย หลีกเลี่ยงการกระทําเกินจําเปน OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 17 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 18 ประเภทของโครงการพัฒนาระบบ ประเภทของโครงการพัฒนาระบบ ซอฟตแวร ซอฟตแวร โครงการเชิงวิวัฒนาการ (evolutionary project) โครงการปรับโครงสรางใหม(re-engineering project) หรือ โครงการปรับสมบูรณ (perfective project): เปลี่ยนแปลง หรือการบํารุงรักษา (maintenance project) ภายในระบบเพื่อใหบํารุงรักษางายขึ้น เกี่ยวกับการเปลี่ยนแปลงระบบที่มีอยู โครงการใหม (Green field project) แบงเปนประเภทดังนี้ การพัฒนาระบบใหม โครงการแกไข (corrective project): แกไขขอบกพรอง โครงการปรับเปลี่ยน (Adaptive project): เปลี่ยนแปลงระบบ เพื่อตอบสนองกับความเปลี่ยนแปลงของสภาพแวดลอม (เทคโนโลยี หรือนโยบาย เปนตน) โครงการขยาย (enhancement project): เพิ่มความสามารถ ใหมเพื่อผูใช OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 19 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 20 5
  • 6.
    ประเภทของโครงการพัฒนาระบบ อุปสรรคและความเสี่ยงในการ ซอฟตแวร พัฒนาระบบซอฟตแวร โครงการสรางซอฟตแวรจากองคประกอบสําเร็จ ความซับซอน และรายละเอียดปริมาณมาก เกี่ยวกับการประกอบองคประกอบที่พัฒนาไวแลว ซึ่งมี ความไมแนนอนดานเทคโนโลยี ความสามารถที่เปนประโยชนอยางสําคัญ ความไมแนนอนดานความตองการ เฟรมเวิรค (Framework) หรือ คอมโพเน็นต (component) คือระบบซอฟตแวรที่ออกแบบมาเพื่อให ความไมแนนอนดานทักษะวิศวกรรมซอฟตแวร ใชซ้ําในการพัฒนาระบบที่แตกตางกัน การเปลี่ยนแปลงตลอดเวลา ไดรับประโยชนการจากใชซอฟตแวรที่เชื่อถือไดซ้ํา การเสื่อมของการออกแบบซอฟตแวร แตยังคงอิสระในการสรางสรรค ความเสี่ยงเชิงการเมือง (political risks) OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 21 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 22 6