310313 software engineering - wordpress.com · 310313 -3...
TRANSCRIPT
1
310313 Software Engineering วศวกรรมซอฟตแวร
ภาคปลาย ปการศกษา 2550
310313 -2
ค าอธบายรายวชา
วฏจกรซอฟตแวร
การใชหลกการวศวกรรมในการพฒนาซอฟตแวร
ความซบซอนของซอฟตแวร
การวางแผนการพฒนาซอฟตแวร
เทคนคการออกแบบซอฟตแวร
การใชงานและการบ ารงรกษาซอฟตแวร
310313 -3
จดมงหมายของวชา
เพอใหนสตเหนความส าคญและเขาใจหลกการของวศวกรรมซอฟตแวรและสามารถน าไปใชได
สามารถพฒนาซอฟตแวรอยางมระบบมากขน
สามารถพฒนาซอฟตแวรทมคณภาพมากขน
เขาใจหลกการของการบรหารโครงงานวศวกรรมซอฟตแวรพอสมควร
สามารถพฒนาระบบงานโดยใชเทคโนโลยเชงวตถได
310313 -4
เอกสารประกอบการเรยน
หนงสอประกอบ
Pressman, R. S ,Sofware Engineering : a practioner's approach 5th ed., McGraw-Hill, 2001.
Fowler, Scott ,UML Distilled 2nd ed., - (Addison Wesley)
Stephen R. Schach: Classical and Object-Oriented Software Engineering With UML and Java, McGraw Hill, 1999
G. Booch, J. Rumbaugh, I. Jacobson The Unified Modeling Language User Guide - (Addison Wesley)
310313 -5
สงทคาดวาผเรยนจะไดรบ
ความเขาใจในการพฒนาซอฟตแวร
ความเขาใจเบองตนในการบรหารโครงงานวศวกรรมซอฟตแวร
สามารถพฒนาซอฟตแวรโดยใชเทคโนโลยเชงวตถได
ผเรยนนาจะน าหลกการตางๆ ทเรยนไปในวชาน ไปใชในการจดท าโครงงานคอมพวเตอรในภาคการศกษาหนาได
310313 -6
Project Grade
Task Task name Value Date out
Due date
0 Group Formation, Group Management and Personal Time-log
10% June Weekly
1 Initial System Prototype Development 15%
2 System Requirements Specification 15%
3 System Analysis & User Interface Specification 30%
4 System Design Specification & Implementation 30%
310313 -7
วกฤตการณซอฟตแวร
ท าไมซอฟตแวรท ใชจงมปญหามากมาย
โอย! มบกอกแลว
ผมไมพฒนาโปรแกรมตอจากเขาหรอก.. เขยนใหมสะดวกกวา
โครงงานนไปไมรอดแลว ท ายงไงกเสรจไมทน
ท าเสรจจนได .. บกนดบกหนอย คนอนเอาไปพฒนาตอไมได กคงไมเปนไรหรอก ท าทนเวลากพอ
สวนของผมเสรจแลว ทท าไมเสรจนะสวนของเคา งานไมส าเรจไมเกยวกบผม
310313 -8
วกฤตการณชดค าส ง(ตอ)
คาใชจายในการพฒนาโปรแกรมปจจบนมแนวโนมสงขน ตวเงน เวลา ก าลงคน
ผใชยงไมพอใจในโปรแกรมทใชอย แนวทางในการพฒนาชดค าส งมใหเลอกหลายทาง
ความตองการโปรแกรมเพอใชประยกตงานมการขยายจ านวนมาก การตอบสนองในการพฒนาไมทน
โปรแกรมทใชอยแลวผใชมกปรบเปลยนอยเสมอ
310313 -9
ผลเสยของการพฒนาชดค าส งทไมตรงกบความตองการ
คาใชจายทเกดกบผใชโดยตรง
คาใชจายทเกดจากการปรบปรงแกไขโปรแกรม
310313 -10
ซอฟตแวร(Software)
A Program
A Programming Product
A Programming System
A Programming System Product
Brooks, F. P. Jr, The Mythical Man-Month, 1975
310313 -11
A Program
สงทผเขยน(นกโปรแกรม)เขยนขน เพอใชงานเอง
สามารถพฒนาใหเปนสงทมประโยชนมากกวา แตใชคาใชจายมากกวาได
มสองแนวทางในการปรบเปลยน
Programming Product
Programming System Product
310313 -12
A Program
A Program
A Programming
System
A Programming
Product
A Programming
Systems Product
(Interfaces, System Interaction)
(Generalization, Testing Documentation Maintenance)
X 3
X 3
310313 -13
A Programming Product
เปนโปรแกรมทใครกได สามารถน าไปใชงาน ทดสอบ แกไข และ เพมเตมความสามารถได
โปรแกรมจะตองเขยนในรปท วไป, ตองผานการทดสอบ, และมเอกสารประกอบอยางละเอยด
Brooks ประมาณวาจะตองใชตนทนมากกวาโปรแกรมทผานการตรวจสอบแลวประมาณ 3 เทา
310313 -14
A Programming System
ระบบของโปรแกรมทท างานประสานกน
จะตองมการตดตอระหวางโปรแกรม
โปรแกรมจะตองไดรบการพฒนาเพอใชขอมล Input
และ Output สอดคลองตามรปแบบทไดก าหนดไว
โปรแกรมจะตองใชทรพยากรภายในขอบเขตท
ก าหนด
โปรแกรมจะตองถกทดสอบกบสวนประกอบอนๆใน
ระบบ
Brooks ประมาณวาจะตองใชตนทนมากกวาโปรแกรม
เดยวๆ (a stand-alone program) ประมาณ 3 เทา
310313 -15
A Programming Systems Product
ใชความพยายามในการพฒนามากกวาเดม 9 เทา
แตเปนสงทมประโยชนใชสอยอยางแทจรง และเปนเปาหมายของการพฒนาโปรแกรมอยางแทจรง
310313 -16
ซอฟตแวร
ชดค าส งทกระท างานทตองการ
เอกสารทแสดงวธการใช
310313 -17
ลกษณะเฉพาะของซอฟตแวร
ซอฟตแวรมลกษณะเปนองคประกอบทางตรรก (logical)
ซอฟตแวรตองผานการพฒนา (developed) ไมใชการผานการผลต ตามความรสกท วไป
ซอฟตแวรไมมการเสอมสภาพ
Pressman R. S., Software Engineering Apractitioner’s Approach 5th Edition, 2001
310313 -18
การเสอมสภาพ
กราฟแสดงความถของความผดพลาดของ Hardware
เวลา
เสอมสภาพ
310313 -19
การเสอมสภาพ
กราฟแสดงความถของความผดพลาดของ Software (อดมคต)
เวลา
คงทจนกระท งลาสมย
310313 -20
การเสอมสภาพ
กราฟแสดงความถของความผดพลาดของ Software (ความเปนจรง)
เวลา
310313 -21
ลกษณะของซอฟตแวรท ด
บ ารงรกษาไดงาย (maintainability)
เชอถอได (dependability)
มประสทธภาพ (efficiency)
น าไปใชงานได (usability)
310313 -22
ท าไมตองวศวกรรมซอฟตแวร?
...to get away from ad hoc and unpredictable software development towards a systematic, understood one...
310313 -23
Management myths
State-of-the-art tools are the solution
“A fool with a tool is still a fool”
Getting behind schedule resolved by hiring additional programmers
“adding people to a late software project makes it later”
310313 -24
310313 -25
สาเหตส าคญของวกฤตการณของชดค าส ง
ชองวางระหวาง users และ programmers
การเปลยนแปลง(change) การพฒนาฮารดแวรท มประสทธภาพมาก ท าใหซอฟตแวรท ตองใช มความซบซอนมากตามไปดวย
การตอบสนองตอวกฤตการณ The responses
to the crisis : วศวกรรมซอฟตแวร
paradigmsใหมส าหรบ decomposition ของซอฟตแวรและการออกแบบและวเคราะหปญหา
310313 -26
วศวกรรมซอฟตแวร
illustration of software engineering rationale
Testing
Maintenance
Implementation Design
Implementation
Maintenance
Testing
310313 -27
วศวกรรมซอฟตแวร
“art of computer programming” แบบเดมถกแทนดวย engineering design และ planning techniques เพอใชในการพฒนาโปรแกรม สนบสนนโดยซอฟตแวร CASE (Computer Aided Software
Engineering)
Early software engineering ไมใหเกดการเปลยนแปลงโดยพยายามใชการหา
requirementsและ design
สนบสนนการใช re-use of components (programs, functions, objects)
management of complexity of software (decomposition)
310313 -28
วศวกรรมซอฟตแวร
OO software engineering Plan for change, ease change
reuse of higher level components
new ways of decomposition
310313 -29
ผลกระทบทเกดจาการเปลยนแปลง
Definition
1 x
Development
1.5 - 6 x
After release
60 - 100 x
Cost
to c
han
ge
310313 -30
ความหมายของ วศวกรรมซอฟตแวร
Fritz Bauerr
“การพฒนาชดค าส งโดยใชหลกการของวศวกรรม เพอใหไดชดค าส งทท าไดอยางประหยด มความหนาเชอถอและใหผลงานอยางมประสทธภาพจากเครองมอเครองใช”
ป 1984 หนงสอ Software Engineering Concepts ของ R. Fairley
“ดวยหลกเทคนคและการจดการอยางเปนระบบ พฒนาชดค าส งใหใชไดในเวลาและอยในคาใชจายทประมาณไว”
310313 -31
ความหมายของวศวกรรมซอฟตแวร
เปนเรองทเก ยวของกบการพฒนา การด าเนนการ การบ ารงรกษา และการยกเลกใช
ชดค าส งอยางมคณภาพ
เปนเรองเกยวกบการท างานเปนทมอยางมประสทธภาพของนกเขยนโปรแกรมทพฒนาไดทนเวลาและอยในคาใชจายทก าหนด
ใชหลกการของวศวกรรม คอหลกการทางสรางและการควบคมตามกระบวนการทางวทยาศาสตร
310313 -32
สรปความหมาย
Software Engineering คอ การน าหลกการทางวทยาศาสตรและคณตศาสตรมาชวยพฒนาชดค าส ง ในเรองสามประการคอ
ความถกตองเชอถอไดของชดค าส ง
การจดการเกยวกบชดค าส งอยางมคณภาพ
การเพมผลผลตใหกบนกพฒนาชดค าส ง
310313 -33
วศวกรรมซอฟตแวร
การน าหลกการทางวศวกรรมมาใชในการพฒนาซอฟตแวร
การพฒนาซอฟตแวรอยางมระบบ
310313 -34
พฒนา
วศวกรรมซอฟตแวร
ใชงาน
บ ารงรกษา
ปลดระวาง
310313 -35
ความส าคญของวศวกรรมซอฟตแวร
การพฒนาซอฟตแวรขนาดใหญจะกระท าไดล าบาก ถาไมมการพฒนาอยางมระบบ
310313 -36
วศวกรซอฟตแวร
ผท น าความรเก ยวกบการพฒนาซอฟตแวรมาใชในการพฒนาซอฟตแวรอยางมระบบ
310313 -37
Three P’s
Processes Products
People
310313 -38
People, processes, products
People
education
skills
communication
style
.....
• Products
– requirements
– design
– source code
– executable
– user
documentation
– test cases
– test results
– change request
– ....
• Processes
– planning
– coordination
– management
– measuring
– analysing
– designing
– coding
– .....
310313 -39
บคลากรทเกยวของกบการพฒนาซอฟตแวร
Project Manager System Analyst Programmer Software Engineer
310313 -40
ผจดการโครงงาน (Project Manager)
เปนผท ใชความรในดานการบรหารและการจดการ เพอทจะท าใหโครงงานน นส าเรจ
หนาท
วางแผนโครงงาน
จดการเกยวกบบคลากร
ควบคมและตรวจสอบการด าเนนงาน
310313 -41
นกวเคราะหระบบ (System Analyst)
เปนผวเคราะหความตองการของลกคา และออกแบบระบบเพอสนองความตองการของลกคา
หนาท
วเคราะหความตองการ (Requirement Analysis)
ออกแบบระบบทตอบสนองความตองการของลกคา
310313 -42
นกโปรแกรม (Programmer)
เปนผพฒนาโปรแกรม โดยอาศยความรทางเทคนค
หนาท
ออกแบบ และ เขยนโปรแกรม
310313 -43
วศวกรซอฟตแวร (Software Engineer)
เปนงานทรวมบทบาทของบคลากรท งสามกลม
Software Engineer