310313 software engineering - wordpress.com · 310313 -3...

43
1 310313 Software Engineering วิศวกรรมซอฟต์แวร์ ภาคปลาย ปีการศ กษา 2550

Upload: others

Post on 22-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

1

310313 Software Engineering วศวกรรมซอฟตแวร

ภาคปลาย ปการศกษา 2550

Page 2: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -2

ค าอธบายรายวชา

วฏจกรซอฟตแวร

การใชหลกการวศวกรรมในการพฒนาซอฟตแวร

ความซบซอนของซอฟตแวร

การวางแผนการพฒนาซอฟตแวร

เทคนคการออกแบบซอฟตแวร

การใชงานและการบ ารงรกษาซอฟตแวร

Page 3: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -3

จดมงหมายของวชา

เพอใหนสตเหนความส าคญและเขาใจหลกการของวศวกรรมซอฟตแวรและสามารถน าไปใชได

สามารถพฒนาซอฟตแวรอยางมระบบมากขน

สามารถพฒนาซอฟตแวรทมคณภาพมากขน

เขาใจหลกการของการบรหารโครงงานวศวกรรมซอฟตแวรพอสมควร

สามารถพฒนาระบบงานโดยใชเทคโนโลยเชงวตถได

Page 4: 310313 Software Engineering - WordPress.com · 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)

Page 5: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -5

สงทคาดวาผเรยนจะไดรบ

ความเขาใจในการพฒนาซอฟตแวร

ความเขาใจเบองตนในการบรหารโครงงานวศวกรรมซอฟตแวร

สามารถพฒนาซอฟตแวรโดยใชเทคโนโลยเชงวตถได

ผเรยนนาจะน าหลกการตางๆ ทเรยนไปในวชาน ไปใชในการจดท าโครงงานคอมพวเตอรในภาคการศกษาหนาได

Page 6: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

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%

Page 7: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -7

วกฤตการณซอฟตแวร

ท าไมซอฟตแวรท ใชจงมปญหามากมาย

โอย! มบกอกแลว

ผมไมพฒนาโปรแกรมตอจากเขาหรอก.. เขยนใหมสะดวกกวา

โครงงานนไปไมรอดแลว ท ายงไงกเสรจไมทน

ท าเสรจจนได .. บกนดบกหนอย คนอนเอาไปพฒนาตอไมได กคงไมเปนไรหรอก ท าทนเวลากพอ

สวนของผมเสรจแลว ทท าไมเสรจนะสวนของเคา งานไมส าเรจไมเกยวกบผม

Page 8: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -8

วกฤตการณชดค าส ง(ตอ)

คาใชจายในการพฒนาโปรแกรมปจจบนมแนวโนมสงขน ตวเงน เวลา ก าลงคน

ผใชยงไมพอใจในโปรแกรมทใชอย แนวทางในการพฒนาชดค าส งมใหเลอกหลายทาง

ความตองการโปรแกรมเพอใชประยกตงานมการขยายจ านวนมาก การตอบสนองในการพฒนาไมทน

โปรแกรมทใชอยแลวผใชมกปรบเปลยนอยเสมอ

Page 9: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -9

ผลเสยของการพฒนาชดค าส งทไมตรงกบความตองการ

คาใชจายทเกดกบผใชโดยตรง

คาใชจายทเกดจากการปรบปรงแกไขโปรแกรม

Page 10: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -10

ซอฟตแวร(Software)

A Program

A Programming Product

A Programming System

A Programming System Product

Brooks, F. P. Jr, The Mythical Man-Month, 1975

Page 11: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -11

A Program

สงทผเขยน(นกโปรแกรม)เขยนขน เพอใชงานเอง

สามารถพฒนาใหเปนสงทมประโยชนมากกวา แตใชคาใชจายมากกวาได

มสองแนวทางในการปรบเปลยน

Programming Product

Programming System Product

Page 12: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

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

Page 13: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -13

A Programming Product

เปนโปรแกรมทใครกได สามารถน าไปใชงาน ทดสอบ แกไข และ เพมเตมความสามารถได

โปรแกรมจะตองเขยนในรปท วไป, ตองผานการทดสอบ, และมเอกสารประกอบอยางละเอยด

Brooks ประมาณวาจะตองใชตนทนมากกวาโปรแกรมทผานการตรวจสอบแลวประมาณ 3 เทา

Page 14: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -14

A Programming System

ระบบของโปรแกรมทท างานประสานกน

จะตองมการตดตอระหวางโปรแกรม

โปรแกรมจะตองไดรบการพฒนาเพอใชขอมล Input

และ Output สอดคลองตามรปแบบทไดก าหนดไว

โปรแกรมจะตองใชทรพยากรภายในขอบเขตท

ก าหนด

โปรแกรมจะตองถกทดสอบกบสวนประกอบอนๆใน

ระบบ

Brooks ประมาณวาจะตองใชตนทนมากกวาโปรแกรม

เดยวๆ (a stand-alone program) ประมาณ 3 เทา

Page 15: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -15

A Programming Systems Product

ใชความพยายามในการพฒนามากกวาเดม 9 เทา

แตเปนสงทมประโยชนใชสอยอยางแทจรง และเปนเปาหมายของการพฒนาโปรแกรมอยางแทจรง

Page 16: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -16

ซอฟตแวร

ชดค าส งทกระท างานทตองการ

เอกสารทแสดงวธการใช

Page 17: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -17

ลกษณะเฉพาะของซอฟตแวร

ซอฟตแวรมลกษณะเปนองคประกอบทางตรรก (logical)

ซอฟตแวรตองผานการพฒนา (developed) ไมใชการผานการผลต ตามความรสกท วไป

ซอฟตแวรไมมการเสอมสภาพ

Pressman R. S., Software Engineering Apractitioner’s Approach 5th Edition, 2001

Page 18: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -18

การเสอมสภาพ

กราฟแสดงความถของความผดพลาดของ Hardware

เวลา

เสอมสภาพ

Page 19: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -19

การเสอมสภาพ

กราฟแสดงความถของความผดพลาดของ Software (อดมคต)

เวลา

คงทจนกระท งลาสมย

Page 20: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -20

การเสอมสภาพ

กราฟแสดงความถของความผดพลาดของ Software (ความเปนจรง)

เวลา

Page 21: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -21

ลกษณะของซอฟตแวรท ด

บ ารงรกษาไดงาย (maintainability)

เชอถอได (dependability)

มประสทธภาพ (efficiency)

น าไปใชงานได (usability)

Page 22: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -22

ท าไมตองวศวกรรมซอฟตแวร?

...to get away from ad hoc and unpredictable software development towards a systematic, understood one...

Page 23: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

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”

Page 24: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -24

Page 25: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -25

สาเหตส าคญของวกฤตการณของชดค าส ง

ชองวางระหวาง users และ programmers

การเปลยนแปลง(change) การพฒนาฮารดแวรท มประสทธภาพมาก ท าใหซอฟตแวรท ตองใช มความซบซอนมากตามไปดวย

การตอบสนองตอวกฤตการณ The responses

to the crisis : วศวกรรมซอฟตแวร

paradigmsใหมส าหรบ decomposition ของซอฟตแวรและการออกแบบและวเคราะหปญหา

Page 26: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -26

วศวกรรมซอฟตแวร

illustration of software engineering rationale

Testing

Maintenance

Implementation Design

Implementation

Maintenance

Testing

Page 27: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

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)

Page 28: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -28

วศวกรรมซอฟตแวร

OO software engineering Plan for change, ease change

reuse of higher level components

new ways of decomposition

Page 29: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -29

ผลกระทบทเกดจาการเปลยนแปลง

Definition

1 x

Development

1.5 - 6 x

After release

60 - 100 x

Cost

to c

han

ge

Page 30: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -30

ความหมายของ วศวกรรมซอฟตแวร

Fritz Bauerr

“การพฒนาชดค าส งโดยใชหลกการของวศวกรรม เพอใหไดชดค าส งทท าไดอยางประหยด มความหนาเชอถอและใหผลงานอยางมประสทธภาพจากเครองมอเครองใช”

ป 1984 หนงสอ Software Engineering Concepts ของ R. Fairley

“ดวยหลกเทคนคและการจดการอยางเปนระบบ พฒนาชดค าส งใหใชไดในเวลาและอยในคาใชจายทประมาณไว”

Page 31: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -31

ความหมายของวศวกรรมซอฟตแวร

เปนเรองทเก ยวของกบการพฒนา การด าเนนการ การบ ารงรกษา และการยกเลกใช

ชดค าส งอยางมคณภาพ

เปนเรองเกยวกบการท างานเปนทมอยางมประสทธภาพของนกเขยนโปรแกรมทพฒนาไดทนเวลาและอยในคาใชจายทก าหนด

ใชหลกการของวศวกรรม คอหลกการทางสรางและการควบคมตามกระบวนการทางวทยาศาสตร

Page 32: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -32

สรปความหมาย

Software Engineering คอ การน าหลกการทางวทยาศาสตรและคณตศาสตรมาชวยพฒนาชดค าส ง ในเรองสามประการคอ

ความถกตองเชอถอไดของชดค าส ง

การจดการเกยวกบชดค าส งอยางมคณภาพ

การเพมผลผลตใหกบนกพฒนาชดค าส ง

Page 33: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -33

วศวกรรมซอฟตแวร

การน าหลกการทางวศวกรรมมาใชในการพฒนาซอฟตแวร

การพฒนาซอฟตแวรอยางมระบบ

Page 34: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -34

พฒนา

วศวกรรมซอฟตแวร

ใชงาน

บ ารงรกษา

ปลดระวาง

Page 35: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -35

ความส าคญของวศวกรรมซอฟตแวร

การพฒนาซอฟตแวรขนาดใหญจะกระท าไดล าบาก ถาไมมการพฒนาอยางมระบบ

Page 36: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -36

วศวกรซอฟตแวร

ผท น าความรเก ยวกบการพฒนาซอฟตแวรมาใชในการพฒนาซอฟตแวรอยางมระบบ

Page 37: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -37

Three P’s

Processes Products

People

Page 38: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

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

– .....

Page 39: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -39

บคลากรทเกยวของกบการพฒนาซอฟตแวร

Project Manager System Analyst Programmer Software Engineer

Page 40: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -40

ผจดการโครงงาน (Project Manager)

เปนผท ใชความรในดานการบรหารและการจดการ เพอทจะท าใหโครงงานน นส าเรจ

หนาท

วางแผนโครงงาน

จดการเกยวกบบคลากร

ควบคมและตรวจสอบการด าเนนงาน

Page 41: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -41

นกวเคราะหระบบ (System Analyst)

เปนผวเคราะหความตองการของลกคา และออกแบบระบบเพอสนองความตองการของลกคา

หนาท

วเคราะหความตองการ (Requirement Analysis)

ออกแบบระบบทตอบสนองความตองการของลกคา

Page 42: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -42

นกโปรแกรม (Programmer)

เปนผพฒนาโปรแกรม โดยอาศยความรทางเทคนค

หนาท

ออกแบบ และ เขยนโปรแกรม

Page 43: 310313 Software Engineering - WordPress.com · 310313 -3 จุดม่งหมายของวิชา เพอื่ใหน้ิสติเห็นความสาคัญและเขา้ใจหลักการของ

310313 -43

วศวกรซอฟตแวร (Software Engineer)

เปนงานทรวมบทบาทของบคลากรท งสามกลม

Software Engineer