วิชา itsc2301 วิศวกรรมซอฟต์แวร์ · introduction...

32
อาจารย์ผู้สอน อ. ธนิต เกตุแก้ว วศ.ม. (Computer Engineering , International ) มหาวิทยาลัยเทคโนโลยีพระจอมเกล้า ธนบุรี วศ.บ. (วิศวกรรมคอมพิวเตอร์) มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี คลอง6 วิชา 04720303 วิศวกรรมซอฟต์แวร์ (Software Engineering)

Upload: others

Post on 22-May-2020

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

อาจารยผสอน

อ. ธนต เกตแกว

วศ.ม. (Computer Engineering , International)

มหาวทยาลยเทคโนโลยพระจอมเกลา ธนบร

วศ.บ. (วศวกรรมคอมพวเตอร)

มหาวทยาลยเทคโนโลยราชมงคลธญบร คลอง6

วชา 04720303

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

Page 2: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

แนะน ารายวชา

เนอหาวชาครอบคลมพนฐานทางวทยาศาสตรส าหรบวศวกรรมซอฟตแวรโดยเรยนรกระบวนการพฒนาบทบาท หนาทของวศวกรซอฟแวร; ววฒนาการของซอฟแวรและหลกของตวซอฟแวร, รปแบบลกษณะของวงจรการท างานของซอฟแวร, การเขาใจในเรองความ

ตองการ, รายละเอยดตางๆ, การออกแบบเพอน าไปสการน าไปใชงานของซอฟแวร, เทคนค

ตางๆทใช และความส าคญของการบ ารงรกษา, คณภาพของกระบวนการในแตละขนตอน

ของการพฒนาซอฟแวร, แนวคดของกระบวนการตางๆ , การเพมประสทธภาพใหกบ

กระบวนการตางๆ; ความส าคญของประโยชนทการน าเอาโคดกลบมาใชอกในทางปฏบต;

การเลอกใชเครองมอในการพฒนาตางๆ; โครงสรางของการท างานเปนทม; การท าการ

ปฏสมพนธกบมนษยในดานของวศวกรรมซอฟแวร; ความส าคญตางๆ ในเรองของกจกรรม

ทเกดข นในทางปฏบตรวมถงประสบการณของวศวกร.

Page 3: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ขอตกลงในชนเรยน

เวลาเขาเรยนไมต ากวารอยละ 80

ขาดไดไมเกน 3 ครง

มาสายกวาเวลาเรยนครงชวโมง 2 ครง ถอวาขาด 1 ครง

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

การแตงกาย ใหเปนไปตามระเบยบมหาวทยาลยก าหนด หากฝาฝนจะ

ไมไดรบอนญาตใหเขาชนเรยน

Page 4: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ขอตกลงในชนเรยน

หากนกศกษาผใดไมไดเขาสอบกลางภาค และมาตดตอผสอนหลงจาก

สปดาหท 12 ไปแลว จะไมไดรบอนญาตใหสอบกลางภาค ยกเวนกรณ

ปวย,ไดรบอบตเหต

มกจธระส าคญทางราชการ

โดยจะตองท าจดหมายลาหรอมหนงสอช แจงลวงหนา ทงนข นอยกบดลย

พนจของผสอน

Page 5: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ขอตกลงในการก าหนดคะแนน

ระหวางภาค (70%) แบงเปน

ความสนใจ (รวมทง รายงาน) 15%

งานกลมไดรบมอบหมาย 25%

สอบกลางภาค 30%

ปลายภาค (30%)

สอบปลายภาค 30%

Page 6: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ระดบการประเมนผล (องเกณฑ)

80-100 A

75-79 B+

70-74 B

65-69 C+

60-64 C

55-59 D+

50-54 D

0-49 E

Page 7: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

เรยนอะไรในวชา

บทน า-วศวกรรมซอฟตแวร (Introduction to Software Engineering)

ภาพรวมของกระบวนการ (A Generic View of Process)

แบบจ าลองกระบวนการพฒนาระบบ (Process Model)

การประมาณการซอฟตแวร (Software Estimation)

วศวกรรมความตองการ (Requirement Engineering)

การสรางแบบจ าลองการวเคราะห (Analysis Model)

การวเคราะหเชงวตถ (Object Oriented Analysis)

วศวกรรมการออกแบบ (Design Engineering)

การออกแบบสวนตอประสานผใช (User Interface Design)

การทดสอบซอฟตแวร (Testing)

สอบกลางภาค

สอบปลายภาค

Page 8: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

หนงสอทใชในการทบทวน

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

Roger S. Pressman แปลโดย ผศ.ดร.พรฤด เนตโสภากล

การวางแผนโครงการพฒนาซอฟตแวร (Software Project Planning)

เมสน นาคมณ

Page 9: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

Introduction

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

มมมองทางการศกษาในแงของสาขาวชา

ในป ค.ศ. 1968 ค าวา”วศวกรรมซอฟตแวร(software engineering)” ถกใชอยางแพรหลายเพอแสดงถงกจกรรมตางๆทรวมถงการเขยนโปรแกรม (programming) และการรหส(coding) [Macro, 1987]. กอนป ค.ศ. 1974 สาขาวชาวศวกรรมซอฟตแวรยงไมปรากฏ [Barnes, 1998]. สถาบนเทคโนโลยโรเชสเตอร (The Rochester Institute of Technology (RIT)) ในประเทศสหรฐอเมรกาไดอางวาเปนสถาบนแรกทแนะน าหลกสตรปรญญาตรสาขาวศวกรรมซอฟตแวร [Lutz, 1999].

Page 10: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

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

วศวกรรมซอฟตแวร คอกระบวนการสรางสรรคโปรแกรมโดยใชหลกทางวศวกรรมเขามาชวยในการด าเนนการสราง (อ.สมหมาย สขค า)

“Software Engineering is systematic approach to the development operation , maintenance , retirement of software” (IEEE 83b)

“วชาการวาดวยการออกแบบโปรแกรมคอมพวเตอร ตลอดจนการบรหารงานการพฒนาเพอทจะไดมาซง ผลตผลซอฟตแวรทมคณภาพสง ราคาถก และภายในเวลาทก าหนดให” (สชาย ธนวเสถยร)

Page 11: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

วทยาการคอมพวเตอรและวศวกรรมซอฟตแวร

วทยาการคอมพวเตอร (Computer Science)

อยบนรากฐานของวทยาศาสตร ซงเนนการท าความเขาใจและคนหาความจรงเกยวกบความรทางคอมพวเตอร เพอสรางแนวคด/ทฤษฎใหม หรอ ปฏเสธแนวคด/ทฤษฎเดม และขยายวงความรใหกวางขนจากแนวคด/ทฤษฎทมอย

* ผลงานถกพจารณา หรอ ตดสนโดยกลมนกวทยาศาสตร

Page 12: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

วทยาการคอมพวเตอรและวศวกรรมซอฟตแวร

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

อยบนรากฐานของวธการทางวศวกรรมศาสตร ซงประยกตแนวคด/ทฤษฎทางวทยาศาสตร คณตศาสตรและเทคโนโลยขณะนนในการสรางผลตภณฑทเปนประโยชนและปลอดภยตอสาธารณะ

* ผลงานถกพจารณา หรอ ตดสนโดยกลมผใช

Page 13: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ลกษณะของวศวกรรมซอฟตแวร

เกยวของกบการสรางโปรแกรมขนาดใหญ

สามารถจดการเกยวกบความซ าซอนได

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

สามารถเปลยนแปลงไดงายเมอจ าเปน

เนนการพฒนาใหมประสทธภาพ

สนองความตองการของผใช

Page 14: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

องคประกอบของการวศวกรรมซอฟตแวร

การวศวกรรมซอฟตแวรเปนกระบวนการผลต (production) ทประกอบดวยกจกรรมชวงตางๆ เพอสรางผลตภณฑซอฟตแวร (software products) การท ากจกรรมในแตละชวงอาศยเทคนคและเครองมอชวยตางๆ (support tools) ทนกวชาการคอมพวเตอรและนกวจยไดเสนอไว

Page 15: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

องคประกอบของการวศวกรรมซอฟตแวร

Software production processes

Software products

Support tools /Environments

Market places / users

Page 16: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

คณลกษณะของกระบวนการวศวกรรมซอฟตแวร

Understandability : มการนยามขอบเขตของกระบวนการทชดแจงและงายตอการเขาใจ

Visibility : ท าใหกจกรรมกระบวนการชดเจนทสดเพอสามารถมองเหนจากภายนอกไดชดเจน

Supportability : เครองมอชวยการวศวกรรมซอฟตแวร (CASE)สามารถชวยสนบสนนกจกรรมกระบวนการในขอบเขตใด

Page 17: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

คณลกษณะของกระบวนการวศวกรรมซอฟตแวร

Acceptability : กระบวนการทก าหนดสามารถยอมรบและใชโดยวศวกรซอฟตแวรในการผลตผลตภณฑซอฟตแวร

Reliability : กระบวนการถกออกแบบในแนวทางซงความผดพลาดของกระบวนการถกหลกเลยงกอนทจะสงผลตอความผดพลาดของผลตภณฑซอฟตแวร

Robustness : กระบวนการสามารถท างานตอไดแมนวามปญหาทไมคาดการณเกดขน

Page 18: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

คณลกษณะของกระบวนการวศวกรรมซอฟตแวร

Maintainability : กระบวนการสามารถววฒนาการเพอตอบสนองการเปลยนแปลงความตองการขององคกร

Rapidity : กระบวนการสามารถท าใหสงมอบผลตภณฑไดเรวนบจากทรปแบบคณลกษณะของซอฟตแวร(Software specifications) ถกก าหนด

Page 19: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

Introduction

ซอฟตแวร (software) หมายถงชดค าสงหรอโปรแกรมทใชส งงานใหคอมพวเตอรท างาน ซอฟตแวรจงหมายถงล าดบขนตอนการท างานทเขยนขนดวยค าสงของคอมพวเตอร ค าสงเหลานเรยงกนเปนโปรแกรมคอมพวเตอร

ซอฟตแวร หมายรวมถงโปรแกรมคอมพวเตอรทกประเภททท าให

คอมพวเตอรท างานได

Page 20: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

Introduction

คณสมบตของซอฟตแวร ซอฟตแวรถกพฒนาหรอจดการใหเกดขน

ซอฟตแวรไมสกหรอ

ถกสรางตามแบบทลกคาตองการ (Custom build)

Page 21: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

การเสอมสภาพของฮารดแวร

ความผดพลาด

เวลา

Page 22: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

การเสอมสภาพของซอฟตแวร (อดมคต)

ความผดพลาด

เวลา

Page 23: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

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

ความผดพลาด

เวลา

Page 24: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

ชนดของซอฟตแวร

หากแบงแยกชนดของซอฟตแวรตามสภาพการท างาน แบงแยกซอฟตแวรไดเปน 2 ประเภท คอ ซอฟตแวรระบบ (system software)

ซอฟตแวรประยกต (application software)

Page 25: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

ซอฟตแวรระบบ คอ ซอฟตแวรทบรษทผผลตสรางขนมาเพอใชจดการกบระบบ หนาทการท างานของซอฟตแวรระบบคอด าเนนงานพนฐานตาง ๆ ของระบบคอมพวเตอร เชน รบขอมลจากแผงแปนอกขระแลวแปลความหมายใหคอมพวเตอรเขาใจ น าขอมลไปแสดงผลบนจอภาพหรอน าออกไปยงเครองพมพ จดการขอมลในระบบแฟมขอมลบนหนวยความจ ารอง

Page 26: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

ซอฟตแวรประยกต เปนซอฟตแวรทใชกบงานดานตาง ๆ ตามความตองการของผใช ทสามารถน ามาใชประโยชนไดโดยตรง ปจจบนมผพฒนาซอฟตแวรใชงานทางดานตาง ๆ ออกจ าหนายมาก การประยกตงานคอมพวเตอรจงกวางขวางและแพรหลาย เราอาจแบงซอฟตแวรประยกตออกเปนสองกลมคอ ซอฟตแวรส าเรจ และซอฟตแวรทพฒนาขนใชงานเฉพาะ

Page 27: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

Page 28: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

ชนดของซอฟตแวร ในปจจบน สามารถแบงลกษณะของซอฟตแวรออกเปน 7 ประเภท ดงน

1. ซอฟตแวรระบบ (System Software)

2. ซอฟตแวรประยกต (Application Software)

3. ซอฟตแวรเชงวศวกรรม/วทยาศาสตร (Engineering/Scientific Software)

4. ซอฟตแวรฝงตว (Embedded Software)

Page 29: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ซอฟตแวร (software)

5. ซอฟตแวรสายการผลต (Product-line Software)

6. เวบแอพพลเคชน (Web-application)

7. ซอฟตแวรปญญาประดษฐ (Artificial Intelligence Softwear)

Page 30: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ววฒนาการของซอฟตแวร (Software Evolution)

กฎแหงการเปลยนแปลงอยางตอเนอง (Law of Continuing Change)

กฎแหงความซบซอนทเพมขน (Law of Increasing Complexity)

กฎแหงการวางระเบยบตวเอง (Law of Self-regulation)

กฎแหงอนรกษสภาพเสถยรการจดระเบยบ (Law of Conservation of Organizational Stability)

กฎการคงไวซงความคนเคย (Law of Conservation of Familiarity)

Page 31: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

ววฒนาการของซอฟตแวร (Software Evolution)

กฎแหงการเตบโตอยางตอเนอง (Law of Continuing Growth)

กฎแหงการลดลงซงคณภาพ (Law of Declining Quality)

กฎระบบยอนกลบ (Feedback System Law)

Page 32: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · Introduction วิศวกรรมซอฟต์แวร์(Software Engineering) มุมมองทางการศึกษาในแง่ของสาขาวิชา

THE END

นกศกษาสามารถดาวนโหลด เอกสารประกอบการเรยน ไดท

http://thanitcpe.wordpress.com

จะน า PowerPoint ประกอบการเรยนขนเวบภายในวนอาทตย