Software Development Methodology
โดย ผศ.ดร.อไร ทองหวไผ
เนอหา
วศวกรรมซอฟตแวร
การวางแผนโครงงาน
การวเคราะหความตองการ
การออกแบบระบบ
การออกแบบโปรแกรม
เนอหา
การพฒนาโปรแกรม
การทดสอบโปรแกรม
การทดสอบระบบ
การสงมอบระบบ
การบ ารงรกษาระบบ
ความผดพลาดในการพฒนาระบบ
ครงท 1
วศวกรรมซอฟตแวรคออะไร?
วศวกรรมซอฟตแวรคออะไร การพฒนาระบบงานทประสบผลส าเรจโดยใชความรทางดานคอมพวเตอรและการประมวลผล ซงตองเขาใจถงธรรมชาตของปญหา และเลอกใชเทคโนโลย เชนเครองมอ (tools)ทเหมาะสม รวมทงเทคนคตางๆ เพอชวยในการแกปญหา
วศวกรรมซอฟตแวร คอกระบวนการสรางสรรคโปรแกรมโดยใชหลกทางวศวกรรมเขามาชวยในการด าเนนการสราง
อ.สมหมาย สขค า
Software Engineering Definition
Software Engineering Definition
“Software Engineering is systematic approach to the development operation , maintenance , retirement of software”
“การน าเอาหลกการทางวศวกรรมมาใชในการพฒนาซอฟตแวรใหเปนไปอยางมระบบ”
IEEE 83
Software Engineering Definition
การพฒนาซอฟทแวรใหไดผลลพธใกลเคยงเปาหมาย หรอ บรรลเปาหมายของการพฒนาอนไดแก
@ ซอฟทแวรทมคณภาพ
@ สามารถสงมอบไดตรงเวลา
@ อยภายใตงบประมาณทคาดการณ
@ มคณสมบตตรงตามความตองการของผใช
ผศ.ดร.สมนก ครโต
Software Engineering Definition
“วชาการวาดวยการออกแบบโปรแกรมคอมพวเตอร ตลอดจนการบรหารงานการพฒนาเพอทจะไดมาซง ผลตผลซอฟตแวรทมคณภาพสง ราคาถก และภายในเวลาทก าหนดให”
สชาย ธนวเสถยร
จากหนงสอ Software Project Development
ลกษณะของวศวกรรมซอฟตแวร
1. เกยวของกบการสรางโปรแกรมขนาดใหญ
2. สามารถจดการเกยวกบความซ าซอนได
3. เนนการท างานรวมกนของบคลากร
4. สามารถเปลยนแปลงไดงายเมอจ าเปน
5. เนนการพฒนาใหมประสทธภาพ
6. สนองความตองการของผใช
การแกปญหา
โปรเซสทมการแบงโครงสรางขนาดใหญใหเปนสวนยอยๆ
การแกปญหา
การน าปญหายอยๆมารวมเขาดวยกนเปนโครงสรางทใหญ
วธการแกปญหา
เครองมอ(tools)
เครองพมพดด เครองคอมพวเตอร แกปญหาซงใหความสะดวก ความ
รวดเรว มคณภาพสง และเพมผลผลตไดมากขน
เทคนค(techniques)
ประสบการณในการท างานหรอเปนพรสวรรคของแตละบคคล
แมครว procedure or method
ขนตอนการพฒนาซอฟตแวรทมคณภาพ
Need Requirement Design Software
Correctness
Verification
Validation
Verification คอ การตรวจสอบความถกตองหลงจากการยอมรบในรายละเอยด (Specification)
Validation คอ การตรวจสอบความถกตองโดยการพจารณาจากความตองการของผใชงาน
คณสมบตของซอฟตแวรทมคณภาพ มความถกตอง (Correctness) มความนาเชอถอ (Reliability) ใชงานงาย (User Friendliness) มความงายตอการปรบเปลยน (Adaptability) สามารถน ากลบมาใชงานใหมได (Reusability) มความเขากนไดกบระบบทแตกตาง (Interoperability) มประสทธภาพ (Efficiency) มความสะดวกในการเคลอนยาย (Portability) มความปลอดภย (Security)
ซอฟตแวรทมคณภาพ
สามารถท างานตามทผใชตองการใหกระท าไดอยางถกตอง
ใชทรพยากรคอมพวเตอรอยางถกตองและมประสทธภาพ
งายตอการเรยนร และใชงาน ผพฒนาซอฟตแวร สามารถออกแบบ ถอดรหส
ทดสอบ และ บ ารงรกษาระบบไดงาย
การผลตซอฟตแวรทมคณภาพ
งานและความรบผดชอบ การพฒนาโครงงานซอฟตแวร
ระบบประกอบดวย กจกรรม(activities) หมายถง
เหตการณตางๆทเกดขนในระบบ อาจเปนกจกรรมการเคลอนยายขอมล
(move)จากทหนงไปอกทหนง
กจกรรมหนงๆนนประกอบดวยสมาชกทเกยวพนธกน เรยกวา ออฟเจก(objects) หรอ เอนตต(entities) เชนกจกรรมการพมพระเบยนนกศกษาทเกรดเฉลยนอยกวา 2.0
ขอบเขต(boundary)ของระบบ
ระบบ Paycheck
ระบบนเรมตนดวยการรบอนพตซงเปนเอนตต PAY INFORMATION เขาสระบบตอจากนนมกจกรรมการตรวจสอบวนท ตอดวย กจกรรมการค านวณ และกจกรรมการพมพ ซงความสมพนธของแตละเอนตตและกจกรรมเปนการท างานตามล าดบ จดจบหรอผลลพธของระบบคอPAYCHECKS ทสงไปยง mail
room
Water Monitoring System
แสดงถงการแบงระดบของ Water
Monitoring System ซงในแตละระดบระบหนาทการท างานของระบบอยางชดเจน โดยสเหลยมแตละอนจะแทนขอบเขตของการท างานของระบบนน ในทนสเหลยมทอยในสดจะเปนระบบทเลกทสด ออฟเจกหรอกจกรรมของสวนนมความสมพนธกบสเหลยมในระดบนอก และมความสมพนธกนเกยวโยงกนเปนล าดบ จนไดผลลพธทตองการ
ผใชทไมมความรทางดานคอมพวเตอร ตอตานไมยอมรบระบบใหม
การเปลยนระบบ A ไปเปนระบบ B ซงการพฒนาจะคอยๆเปลยนแปลงจาก A
เปน A’ และ เปน B
ตามล าดบ
ขนตอนการพฒนาซอฟตแวรประกอบดวย
การก าหนดและวเคราะหความตองการ
การออกแบบระบบ การออกแบบโปรแกรม การเขยนโปรแกรม
การทดสอบโมดล การทดสอบรวม การทดสอบระบบ การสงมอบระบบ การบ ารงรกษาระบบ
ทมงานในการพฒนาระบบ
ปญหาในการพฒนาซอฟตแวร Changing Constraints and Requirement
Phased Development System
Interaction with Other Systems
The Nature of Computer System Themselves
Phased Development System
ชนดของโครงงานซอฟตแวร
ระดบความยากงายของโครงงานนโดยเปรยบเทยบกบขอมล
สรป
คาของความซบซอนอยใน ระดบต า(L) 5 คณลกษณะ ระดบกลาง(M) 11 คณลกษณะ ระดบสง(H) 5 คณลกษณะ
สามารถสรปไดวาโครงงานนระดบความยากงาย ในระดบปานกลาง