chapter 1 : introduction to software engineering

65
Chapter 1 : Introduction to Software Engineering Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University Email: [email protected] URL: http://dusithost.dusit.ac.th/~juthawut_cha/ home.htm

Upload: kennan-ferguson

Post on 01-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Chapter 1 : Introduction to Software Engineering. Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology , Suan Dusit University Email : jchantharamalee @ yahoo.com URL: http:// dusithost.dusit.ac.th /~ juthawut_cha /home.htm. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 1 : Introduction  to  Software Engineering

Chapter 1 : Introduction to Software Engineering

Juthawut Chantharamalee

Curriculum of Computer Science

Faculty of Science and Technology, Suan Dusit University

Email: [email protected]

URL: http://dusithost.dusit.ac.th/~juthawut_cha/home.htm

Page 2: Chapter 1 : Introduction  to  Software Engineering

2

Outline of this presentation

• ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่ง แลี่ะป�ญหาที่��พบ

• ว�ศวกร์ร์มซอฟแวร์�แลี่ะความสำ�าค ญ• องค�ปร์ะกอบของว�ศวกร์ร์มซอฟต์�แวร์�• ว�ว ฒนาการ์ของว�ศวกร์ร์มซอฟต์�แวร์�• ค#ณลี่ กษณะของซอฟต์�แวร์�ที่��ม�ค#ณภาพ• ร์ะเบ�ยบว�ธี�ปฏิ�บ ต์�ของว�ศวกร์ร์มซอฟต์�แวร์�

Page 3: Chapter 1 : Introduction  to  Software Engineering

3

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

• ว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering) ม#มมองที่างการ์ศ*กษาในแง,ของสำาขาว�ชา

ในป. ค.ศ. 1968 ค�าว,า”ว�ศวกร์ร์มซอฟต์�แวร์� (software engineering)” ถู0กใช1อย,างแพร์,หลี่าย เพ2�อแสำดงถู*งก�จกร์ร์มต์,างๆ ที่��ร์วมถู*งการ์เข�ยนโปร์แกร์ม (programming) แลี่ะการ์ร์ห สำ(coding) [Macro, 1987].

ก,อนป. ค.ศ. 1974 สำาขาว�ชาว�ศวกร์ร์มซอฟต์�แวร์�ย งไม,ปร์ากฏิ [Barnes, 1998].

สำถูาบ นเที่คโนโลี่ย�โร์เชสำเต์อร์� (The Rochester Institute of Technology (RIT)) ในปร์ะเที่ศสำหร์ ฐอเมร์�กาได1อ1างว,าเป9นสำถูาบ นแร์กที่��แนะน�าหลี่ กสำ0ต์ร์ปร์�ญญาต์ร์�สำาขาว�ศวกร์ร์มซอฟต์�แวร์� [Lutz, 1999].

Page 4: Chapter 1 : Introduction  to  Software Engineering

4

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• ว�ศวกร์ร์มซอฟต์�แวร์� ค2อกร์ะบวนการ์สำร์1างสำร์ร์ค�โปร์แกร์มโดยใช1หลี่ กที่างว�ศวกร์ร์มเข1ามาช,วยในการ์ด�าเน�นการ์สำร์1าง (อ.สำมหมาย สำ#ขค�า)

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

• “ว�ชาการ์ว,าด1วยการ์ออกแบบโปร์แกร์มคอมพ�วเต์อร์� ต์ลี่อดจนการ์บร์�หาร์งาน การ์พ ฒนาเพ2�อที่��จะได1มาซ*�ง ผลี่�ต์ผลี่ซอฟต์�แวร์�ที่��ม�ค#ณภาพสำ0ง ร์าคาถู0ก แลี่ะภายในเวลี่าที่��ก�าหนดให1 ” (สำ#ชาย ธีนวเสำถู�ยร์)

Page 5: Chapter 1 : Introduction  to  Software Engineering

5

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• การ์พ ฒนาซอฟที่�แวร์�ให1ได1ผลี่ลี่ พธี�ใกลี่1เค�ยงเป;าหมายหร์2อ บร์ร์ลี่#เป;าหมายของการ์พ ฒนา อ นได1แก, – ซอฟที่�แวร์�ที่��มี�คุ�ณภาพ– สามีาร์ถส"งมีอบได้%ต์ร์งเวลี่า– อย&"ภายใต์%งบปร์ะมีาณที่��คุาด้การ์ณ�– มี�คุ�ณสมีบ(ต์)ต์ร์งต์ามีคุวามีต์%องการ์ของผู้&%ใช้% (ผู้ศ.ด้ร์.สมีน.ก คุ�ร์�โต์)

Page 6: Chapter 1 : Introduction  to  Software Engineering

6

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• ว�ศวกร์ร์มซอฟต์�แวร์� (อ งกฤษ: software engineering) เป9นศาสำต์ร์� เก��ยวก บว�ศวกร์ร์มด1านซอฟต์�แวร์�ม�เน2=อหาเก��ยวข1องก บการ์ใช1กร์ะบวนการ์ที่างว�ศวกร์ร์มในการ์ด0แลี่การ์ผลี่�ต์ ต์ =งแต์,การ์เร์��มเก>บความต์1องการ์ การ์ต์ =งเป;าหมายของร์ะบบ การ์ออกแบบ กร์ะบวนการ์พ ฒนา การ์ต์ร์วจสำอบ การ์ปร์ะเม�นผลี่ การ์ต์�ดต์ามโคร์งการ์ การ์ปร์ะเม�นต์1นที่#น การ์ร์ กษาความปลี่อดภ ย ไปจนถู*งการ์ค�ดร์าคาซอฟต์�แวร์� เป9นต์1น

(ว�ก�พ�เด�ย)

Page 7: Chapter 1 : Introduction  to  Software Engineering

7

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• ว�ศวกร์ร์มซอฟต์�แวร์� หมายถู*ง การ์น�าแนวที่างที่��เป9นร์ะบบ ม�ร์ะเบ�ยบ กฎเกณฑ์� แลี่ะสำามาร์ถูว ดผลี่ในเช�งปร์�มาณได1 มาปร์ะย#กต์�ใช1ในการ์ พ ฒนา ปฏิ�บ ต์�การ์ แลี่ะบ�าร์#งร์ กษาซอฟต์�แวร์� ซ*�งก>ค2อ เพ2�องานด1าน ว�ศวกร์ร์มการ์ผลี่�ต์ซอฟต์�แวร์� หร์2อกลี่,าวอ�กน ยหน*�งค2อ เป9นการ์ศ*กษา ว�ธี�การ์ผลี่�ต์ซอฟต์�แวร์�น �นเอง [IEEE, 2004]

Page 8: Chapter 1 : Introduction  to  Software Engineering

8

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• ว�ศวกร์ร์มซอฟต์�แวร์� หมายถู*ง การ์ผสำมผสำานร์ะหว,างศาสำต์ร์�แลี่ะศ�ลี่ปA เพ2�อการ์ผลี่�ต์ซอฟต์�แวร์�เช�งพาณ�ชย� โดยเร์��มต์1นต์ =งแต์,การ์จ ดที่�าข1อก�าหนดค#ณสำมบ ต์�ของร์ะบบ ต์ลี่อดจนการ์บ�าร์#งร์ กษาร์ะบบให1เป9นปกต์� [Sommerville, 2007] โดยแบ,งน ยสำ�าค ญออกเป9น 2 ปร์ะเด>น ค2อ 1. สหว)ที่ยาการ์จั(ด้การ์ด้%านว)ศวกร์ร์มี

2. ผู้&%เช้��ยวช้าญด้%านการ์ผู้ลี่)ต์ซอฟต์�แวร์�

Page 9: Chapter 1 : Introduction  to  Software Engineering

9

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ความหมายว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering Definition)

• ว�ศวกร์ร์มซอฟต์�แวร์� หมายถู*งการ์น�าหลี่ กว�ชาการ์ด1านว�ศวกร์ร์มมาด0แลี่กร์ะบวนการ์ผลี่�ต์ซอฟต์�แวร์� ต์ =งแต์,ข =นต์อนแร์กจนถู*งข =นต์อนบ�าร์#งร์ กษาหลี่ งการ์ใช1งาน เพ2�อให1ซอฟต์�แวร์�ที่��ได1ม�ค#ณภาพสำ0งสำ#ดภายใต์1ข1อจ�าก ด ด1านเวลี่าแลี่ะต์1นที่#น (ก�ต์ต์� ภ กด�ว ฒนะก#ลี่)

Page 10: Chapter 1 : Introduction  to  Software Engineering

10

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

บที่บาที่ที่��เปลี่��ยนแปลี่งไปของซอฟต์�แวร์�• โปร์แกร์ม (Program)• ซอฟต์�แวร์� (Software)• แอปพลี่�เคช �นซอฟแวร์� (Application

Software)• Software Solution

ซอฟต์�แวร์� ค2อ ช#ดค�าสำ �งที่��เป9นต์ วสำ �งการ์ที่�างานของคอมพ�วเต์อร์�

Page 11: Chapter 1 : Introduction  to  Software Engineering

11

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามว ต์ถู#ปร์ะสำงค�การ์ใช1งานออกเป9น 7 กลี่#,ม ด งน�=1. ซอฟต์�แวร์�ร์ะบบ (System Software)

• เป9นซอฟต์�แวร์�ที่��ปร์ะกอบไปด1วยกลี่#,มของโปร์แกร์มย,อยที่��ถู0กเข�ยนข*=นมา เพ2�อให1บร์�การ์โปร์แกร์มอ2�น

2. ซอฟต์�แวร์�แอปพลี่�เคช �น (Application Software)• เป9นโปร์แกร์มแก1ป�ญหางานที่างธี#ร์ก�จโดยเฉพาะ

ที่�างานบนเคร์2�องคอมพ�วเต์อร์� แบบ Standalone แลี่ะบางคร์ =งสำามาร์ถูที่�างาน

แบบเวลี่าจร์�ง (Real-time)

Page 12: Chapter 1 : Introduction  to  Software Engineering

12

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามว ต์ถู#ปร์ะสำงค�การ์ใช1งานออกเป9น 7 กลี่#,ม ด งน�=3. ซอฟต์�แวร์�ด1านว�ที่ยาศาสำต์ร์�แลี่ะว�ศวกร์ร์ม

(Scientific Software/Engineering• เป9นซอฟต์�แวร์�ที่��ใช1เฉพาะงานด1านว�ที่ยาศาสำต์ร์�แลี่ะ

ว�ศวกร์ร์มศาสำต์ร์�4. ซอฟต์�แวร์�แบบฝั�ง (Embedded Software)

• เป9นซอฟต์�แวร์�ที่��ถู0กต์�ดต์ =งไว1ภายในอ#ปกร์ณ�อ�เลี่>กที่ร์อน�กสำ�ต์,าง ๆ หร์2อภายในร์ะบบงาน

Page 13: Chapter 1 : Introduction  to  Software Engineering

13

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามว ต์ถู#ปร์ะสำงค�การ์ใช1งานออกเป9น 7 กลี่#,ม ด งน�=5. ซอฟต์�แวร์�แบบสำายการ์ผลี่�ต์ (Product-Line

Software)• เป9นซอฟต์�แวร์�เฉพาะด1านที่��ลี่0กค1าหลี่ายกลี่#,มสำามาร์ถูน�า

ไปใช1งานได1เหม2อนก น หร์2ออาจเป9นกลี่#,มลี่0กค1าเฉพาะ แลี่ะลี่0กค1าต์ลี่าดใหญ,ที่��

เป9นผ01ใช1ที่ �วไป6. เว>บแอปพลี่�เคช �น (Web Application)

• กร์ณ�ที่��ซอฟต์�แวร์�แอปพลี่�เคช �นสำามาร์ถูที่�างานบนเว>บไซต์� เพ2�อจ ดการ์ข1อม0ลี่ในฐานข1อม0ลี่บนเว>บได1

Page 14: Chapter 1 : Introduction  to  Software Engineering

14

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามว ต์ถู#ปร์ะสำงค�การ์ใช1งานออกเป9น 7 กลี่#,ม ด งน�=7. ซอฟต์�แวร์�ป�ญญาปร์ะด�ษฐ� (Artificial

Intelligence Software)• เป9นซอฟต์�แวร์�ที่��ถู0กออกแบบให1ม�อ ลี่กอร์�ธี*มในการ์

ที่�างานที่��ซ บซ1อนเลี่�ยนแบบสำมองมน#ษย� เพ2�อแก1ป�ญหาที่��ม�ความซ บซ1อนสำ0งด1วยการ์ว�เคร์าะห�ต์ามหลี่ กของเหต์#แลี่ะผลี่

Page 15: Chapter 1 : Introduction  to  Software Engineering

15

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามอ#ต์สำาหกร์ร์มการ์ผลี่�ต์ซอฟต์�แวร์� ได1 2 ปร์ะเภที่ ด งน�=1. Generic Product

• เป9นผลี่�ต์ภ ณฑ์�ซอฟต์�แวร์�หร์2อร์ะบบที่��ถู0กผลี่�ต์ภ ณฑ์�ซอฟต์�แวร์�หร์2อร์ะบบที่��ถู0กผลี่�ต์ข*=นโดยผ01ผลี่�ต์ซอฟต์�แวร์�ร์ายใหญ, (Software Vendor) เพ2�อจ�าหน,ายให1ก บลี่0กค1าในต์ลี่าดซอฟต์�แวร์�ที่ �วไปที่��ต์1องการ์ซ2=อไปใช1งานต์ามความสำามาร์ถูของซอฟต์�แวร์�

Page 16: Chapter 1 : Introduction  to  Software Engineering

16

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ปร์ะเภที่ของซอฟต์�แวร์�- แบ,งต์ามอ#ต์สำาหกร์ร์มการ์ผลี่�ต์ซอฟต์�แวร์� ได1 2 ปร์ะเภที่ ด งน�=2. Customized Product

• เป9นผลี่�ต์ภ ณฑ์�ซอฟต์�แวร์�หร์2อร์ะบบ สำ�าหร์ บลี่0กค1าเฉพาะร์ายที่��ได1ต์กลี่ง ที่�าสำ ญญาว,าจ1าง

Page 17: Chapter 1 : Introduction  to  Software Engineering

17

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ข1อแต์กต์,าง Generic Product แลี่ะ Customized Product

Generic Product

Customized Product

ผู้ลี่)ต์ข.1นมีาโด้ยไมี"ย.ด้คุวามีต์%องการ์ของลี่&กคุ%า น(บเป2นการ์คุวบคุ�มีคุวามีต์%องการ์ของลี่&กคุ%า

ผู้ลี่)ต์ข.1นมีาต์ามีคุวามีต์%องการ์ ก3าหนด้ แลี่ะคุวบคุ�มีโด้ยลี่&กคุ%า

Page 18: Chapter 1 : Introduction  to  Software Engineering

18

ซอฟต์�แวร์� การ์เปลี่��ยนแปลี่งแลี่ะป�ญหาที่��พบ

ที่��มาของว�ศวกร์ร์มซอฟต์�แวร์�–ซอฟต์�แวร์�ได1ม�การ์เปลี่��ยนแปลี่งบที่บาที่

หน1าที่��–ฮาร์�ดแวร์�คอมพ�วเต์อร์�ม�ปร์ะสำ�ที่ธี�ภาพ

มากข*=นแลี่ะร์าคาถู0กลี่ง–ความซ บซ1อนที่��เพ��มมากข*=นของ

ซอฟต์�แวร์�–ซอฟต์�แวร์�ลี่1าสำม ยกลี่ายเป9นซอฟต์�แวร์�

เก,า (Legacy Software)

Page 19: Chapter 1 : Introduction  to  Software Engineering

19

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ

ปร์ะโยชน�ของว�ศวกร์ร์มซอฟต์�แวร์�–กร์ะบวนการ์ผลี่�ต์ซอฟต์�แวร์�ที่��ม�ปร์ะสำ�ที่ธี�ภาพ เป9น

ร์ะบบ–ม�มาต์ร์ฐานก�าหนดว�ธี�การ์ที่�างานอย,างช ดเจน–ม�การ์ต์ร์วจสำอบค#ณภาพของซอฟต์�แวร์�–ม�เอกสำาร์ควบค#มก�าก บการ์ที่�างานต์ลี่อดที่ =ง

กร์ะบวนการ์–ม�การ์ต์ร์วจสำอบแลี่ะปร์ะก นค#ณภาพของซอฟต์�แวร์�

ที่��ผลี่�ต์ก,อนสำ,งถู*งม2อผ01บร์�โภค–สำามาร์ถูที่�างานได1 ถู*งแม1ว,าจะเปลี่��ยนที่�มงาน

Page 20: Chapter 1 : Introduction  to  Software Engineering

20

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ

ร์0ปแสำดงป�จจ ยที่��ที่�าให1เก�ดการ์เปลี่��ยนแปลี่งไปสำ0,ว�ศวกร์ร์มซอฟต์�แวร์�

เที่คโนโลี่ย�เช�งว ต์ถู# เคร์2อข,าย

คอมพ�วเต์อร์�ร์ะยะเวลี่าเปEดต์ วผลี่�ต์ภ ณฑ์�

ป�ญหาที่��พบใน WaterFall Model

Graphic User Interface

เศร์ษฐก�จที่��เจร์�ญเต์�บโต์ข*=น

อ�านาจในการ์จ ดหาเคร์2�องคอมพ�วเต์อร์�มาใช1

การ์เปลี่��ยนแปลี่งในว�ศวกร์ร์มซอฟต์�แวร์�

Page 21: Chapter 1 : Introduction  to  Software Engineering

21

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ

ความสำ�าค ญของว�ศวกร์ร์มซอฟต์�แวร์� ป�จจ ยการ์เปลี่��ยนแปลี่งที่��ที่�าให1งานด1านว�ศวกร์ร์มซอฟต์�แวร์�ม�ความสำ�าค ญมากข*=น ด งน�=

– การ์เปลี่��ยนแปลี่งของร์ะยะเวลี่าการ์เปEดต์ วผลี่�ต์ภ ณฑ์�ที่��ร์วดเร์>วข*=น

– การ์เปลี่��ยนแปลี่งในอ#ต์สำาหกร์ร์มผลี่�ต์คอมพ�วเต์อร์�– บ#คคลี่ที่ �วไปหร์2อบร์�ษ ที่ขนาดเลี่>กม�อ�านาจซ2=อเคร์2�อง

คอมพ�วเต์อร์�มากข*=น– การ์แพร์,หลี่ายของการ์เช2�อมต์,อเคร์2อข,ายคอมพ�วเต์อร์�ที่ =ง

แบบที่1องถู��นแลี่ะแบบร์ะยะไกลี่– ความสำามาร์ถูในการ์ด ดแปลี่งใช1เที่คโนโลี่ย�เช�งว ต์ถู#เข1าก บ

ร์ะบบงานได1– การ์เปลี่��ยนแปลี่งของสำ,วนปร์ะสำานก บผ01ใช1ที่��ม�แบบเป9นกร์า

ฟEกมากข*=น– แบบจ�าลี่องของกร์ะบวนการ์ผลี่�ต์ซอฟต์�แวร์�แบบ

Waterfall ไม,สำามาร์ถูคาดการ์ณ�ความต์1องการ์ของผ01ใช1ได1อ�กต์,อไป

Page 22: Chapter 1 : Introduction  to  Software Engineering

22

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความแต์กต์,างของว�ศวกร์ร์มซอฟต์�แวร์�แลี่ะ

ว�ที่ยาการ์คอมพ�วเต์อร์�ว�ที่ยาการ์คอมพ�วเต์อร์� (Computer

Science)อย0,บนร์ากฐานของว�ที่ยาศาสำต์ร์� ซ*�งเน1นการ์ที่�าความเข1าใจแลี่ะค1นหาความจร์�งเก��ยวก บความร์01ที่างคอมพ�วเต์อร์� เพ2�อสำร์1างแนวค�ด/ที่ฤษฎ�ใหม, หร์2อ ปฏิ�เสำธีแนวค�ด/ที่ฤษฎ�เด�ม แลี่ะขยายวงความร์01ให1กว1างข*=นจากแนวค�ด/ที่ฤษฎ�ที่��ม�อย0,

* ผลี่งานถู0กพ�จาร์ณา หร์2อ ต์ ดสำ�นโดยกลี่#,มน กว�ที่ยาศาสำต์ร์�

Page 23: Chapter 1 : Introduction  to  Software Engineering

23

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ

ความแต์กต์,างของว�ศวกร์ร์มซอฟต์�แวร์�แลี่ะว�ที่ยาการ์คอมพ�วเต์อร์�

ว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering) อย0,บนร์ากฐานของว�ธี�การ์ที่างว�ศวกร์ร์มศาสำต์ร์� ซ*�งปร์ะย#กต์�แนวค�ด/ที่ฤษฎ�ที่างว�ที่ยาศาสำต์ร์� คณ�ต์ศาสำต์ร์�แลี่ะเที่คโนโลี่ย�ขณะน =นในการ์สำร์1างผลี่�ต์ภ ณฑ์�ที่��เป9นปร์ะโยชน�แลี่ะปลี่อดภ ยต์,อสำาธีาร์ณะ

* ผลี่งานถู0กพ�จาร์ณา หร์2อ ต์ ดสำ�นโดยกลี่#,มผ01ใช1

Page 24: Chapter 1 : Introduction  to  Software Engineering

24

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความสำ มพ นธี�ร์ะหว,างว�ศวกร์ร์มซอฟต์�แวร์�แลี่ะ

ว�ที่ยาการ์คอมพ�วเต์อร์�

ร์0ปแสำดงความสำ มพ นธี�ร์ะหว,างว�ที่ยาการ์คอมพ�วเต์อร์�แลี่ะว�ศวกร์ร์มซอฟต์�แวร์�

ว�ที่ยาการ์คอมพ�วเต์อร์�

(Computer Science)

ลี่0กค1า(Customer)

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

(Software Engineering)

ที่ฤษฏิ�(Theories

)

ว�ธี�การ์ที่างคอมพ�วเต์อร์�

(Computer Function)

ใช1เคร์2�องม2อแลี่ะเที่คน�คเพ2�อแก1ป�ญหา

ป�ญหา(Problem

)

Page 25: Chapter 1 : Introduction  to  Software Engineering

25

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความแต์กต์,างของว�ศวกร์ร์มซอฟต์�แวร์�แลี่ะ

ว�ศวกร์ร์มร์ะบบว�ศวกร์ร์มร์ะบบ (System Engineering)

เก��ยวข1องก บที่#ก ๆ ด1านของการ์พ ฒนาแลี่ะการ์เปลี่��ยนแปลี่งของร์ะบบที่��ม�ความซ บซ1อน โดยม�ซอฟต์�แวร์�เป9นแกนหลี่ กในการ์ที่�างานของร์ะบบ การ์ว�ศวกร์ร์มร์ะบบเป9นการ์กร์ะที่�าที่��ก,อให1เก�ดการ์ก�าหนดร์ะบบ ร์ะบ#ถู*งสำถูาป�ต์ยกร์ร์มที่ =งร์ะบบ แลี่1วน�าสำ,วนปร์ะกอบที่��แต์กต์,างก นมาปร์ะสำานเข1าด1วยก นจนกลี่ายเป9นร์ะบบ 1 ร์ะบบ

Page 26: Chapter 1 : Introduction  to  Software Engineering

26

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ ความสำ มพ นธี�ร์ะหว,างว�ศวกร์ร์มซอฟต์�แวร์�

แลี่ะว�ศวกร์ร์มร์ะบบ

–การ์ว)ศวกร์ร์มีร์ะบบเป2นศาสต์ร์�ที่��เก"าแก"กว"าว)ศวกร์ร์มีซอฟต์�แวร์�

–ซอฟต์�แวร์�เป2นแกนหลี่(กในการ์ที่3างานของร์ะบบ

Page 27: Chapter 1 : Introduction  to  Software Engineering

27

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความแต์กต์,างของว�ศวกร์ร์มซอฟต์�แวร์�ก บการ์

ว�เคร์าะห�แลี่ะออกแบบร์ะบบการ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบ (System

Analysis and Design)เป9นการ์ศ*กษา ว�เคร์าะห� แลี่ะแยกแยะป�ญหาที่��

เก�ดข*=นในร์ะบบ แลี่1วที่�าการ์ออกแบบ แลี่ะก�าหนดค#ณสำมบ ต์�ที่างเที่คน�ค โดยน�าร์ะบบคอมพ�วเต์อร์�มาปร์ะย#กต์�ใช1เพ2�อแก1ป�ญหาที่��ได1ที่�าการ์ว�เคร์าะห�มาแลี่1ว

ร์ะบบที่��ถู0กน�ามาว�เคร์าะห�แลี่ะออกแบบสำ,วนใหญ,เป9นร์ะบบสำาร์สำนเที่ศที่��จะน�ามาใช1ภายในองค�กร์ โดยม� “น กว�เคร์าะห�ร์ะบบ (System Analyst)” เป9นผ01ร์ บผ�ดชอบงานว�เคร์าะห�แลี่ะออกแบบโดยต์ร์ง

Page 28: Chapter 1 : Introduction  to  Software Engineering

28

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความแต์กต์,างของว�ศวกร์ร์มซอฟต์�แวร์�ก บการ์

ว�เคร์าะห�แลี่ะออกแบบร์ะบบว�ศวกร์ร์มซอฟต์�แวร์� (Software Engineering)

ขณะที่�� ว�ศวกร์ร์มซอฟต์�แวร์� “ ” จะที่�าหน1าที่��เก��ยวก บการ์ผลี่�ต์ซอฟต์�แวร์�เพ2�อการ์ค1า กร์ะบวนการ์ที่��น�ามาใช1พ ฒนาซอฟต์�แวร์�หร์2อร์ะบบจะคลี่1ายคลี่*งก น แต์,ข =นต์อนของว�ศวกร์ร์มซอฟต์�แวร์�ม�มากกว,าข =นต์อนของการ์ว�เคร์าะห�แลี่ะออกแบบ ข =นต์อนสำ�าค ญของการ์ว�เคร์าะห�แลี่ะออกแบบม�เพ�ยง การ์จ ดที่�าความต์1องการ์ (Requirement) การ์ว�เคร์าะห� (Analysis) แลี่ะออกแบบ (Design) เที่,าน =น

Page 29: Chapter 1 : Introduction  to  Software Engineering

29

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ• บ#คคลี่ที่��เก��ยวข1องก บงานว�ศวกร์ร์ม

ซอฟต์�แวร์�• ผ01ใช1 (User)

• ลี่0กค1า (Customer)

• น กพ ฒนา (Developer)

Page 30: Chapter 1 : Introduction  to  Software Engineering

30

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญความสำ มพ นธี�ร์ะหว,างกลี่#,มบ#คคลี่ที่��เก��ยวข1องก บ

งานว�ศวกร์ร์มซอฟต์�แวร์�ลี่0กค1า (Customer

)

น กพ ฒนา (Developer) ว�ศวกร์ซอฟต์�แวร์� (Software Engineer)

สำร์1างซอฟต์�แวร์�(ร์ะบบ)

ให1เง�นสำน บสำน#นการ์ผลี่�ต์ซอฟต์�แวร์�

ความต์1องการ์

ผ01ใช1 (User)

ความต์1องการ์

ซอฟต์�แวร์� (ร์ะบบ)

ใช1งานซอฟต์�แวร์� (ร์ะบบ)

ร์0ปแสำดงความสำ มพ นธี�ร์ะหว,างกลี่#,มบ#คคลี่ที่��เก��ยวข1องก บงานว�ศวกร์ร์มซอฟต์�แวร์�

Page 31: Chapter 1 : Introduction  to  Software Engineering

31

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ ค#ณสำมบ ต์�ของว�ศวกร์ซอฟต์�แวร์�

• ม�ความร์01ด1านการ์ผลี่�ต์ซอฟต์�แวร์�• ม�ความร์01ด1านการ์บร์�หาร์โคร์งการ์• ม�ความร์01ด1านการ์จ ดการ์• ม�ความร์01ด1านธี#ร์ก�จ• ม�ความร์01ด1านปร์ะชาสำ มพ นธี�• ม�ความน,าเช2�อถู2อ

Page 32: Chapter 1 : Introduction  to  Software Engineering

32

ว)ศวกร์ร์มีซอฟแวร์�แลี่ะคุวามีส3าคุ(ญ ค#ณสำมบ ต์�ของว�ศวกร์ซอฟต์�แวร์�

• ม�ความร์01สำ*กไว• ม�ความเป9นผ01น�า• ม�ความอดที่นต์,อภาวะความกดด น• ม�ความย2ดหย#,นสำ0ง• ม�ความร์ บผ�ดชอบ• ม�ความย#ต์�ธีร์ร์ม

Page 33: Chapter 1 : Introduction  to  Software Engineering

33

บ#คลี่ากร์ที่��เก��ยวข1องก บการ์พ ฒนาซอฟต์�แวร์�• Project

Manager

• System Analyst

• Programmer

• Software Engineer

Page 34: Chapter 1 : Introduction  to  Software Engineering

34

Project Manager• วางแผนโคร์งงาน

• จ ดการ์บ#คลี่ากร์• ควบค#ม ต์ร์วจสำอบ

Page 35: Chapter 1 : Introduction  to  Software Engineering

35

System Analyst• ว�เคร์าะห�ความต์1องการ์

• ออกแบบร์ะบบต์ามความต์1องการ์

Page 36: Chapter 1 : Introduction  to  Software Engineering

36

Programmer• ออกแบบ• เข�ยนโปร์แกร์ม

• ที่ดสำอบ , แก1ไข

Page 37: Chapter 1 : Introduction  to  Software Engineering

37

Software Engineer

Software Engineer

Project Manager

System Analyst Programmer

Page 38: Chapter 1 : Introduction  to  Software Engineering

38

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์�

องค�ปร์ะกอบว�ศวกร์ร์มซอฟต์�แวร์�แบ,งออกเป9น 2 สำ,วน ด งน�=สำ,วนที่�� 1 ว�ศวกร์ร์มร์ะบบ (System Engineering) หมายถู*ง กร์ะบวนการ์ศ*กษาแลี่ะว�เคร์าะห�ของร์ะบบที่��ม�ความสำลี่ บซ บซ1อน เพ2�อสำน บสำน#นการ์ที่�างานใน สำ,วนที่�� 2 ค2อ ว�ศวกร์ร์มการ์ผลี่�ต์ (Development Engineering) ซ*�งเป9นกร์ะบวนการ์แปร์สำภาพความต์1องการ์ของร์ะบบ (System Requirements) ให1กลี่ายเป9นซอฟต์�แวร์�อ นเป9นเป;าหมายสำ�าค ญที่างด1านว�ศวกร์ร์มซอฟต์�แวร์�

Page 39: Chapter 1 : Introduction  to  Software Engineering

39

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์�

• ร์0ปแสำดงองค�ปร์ะกอบของว�ศวกร์ร์มซอฟต์�แวร์�

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

(Software Engineering

)ว�ศวกร์ร์มร์ะบบ

(System Engineering

)

ว�ศวกร์ร์มการ์ผลี่�ต์(Development Engineering)ว�ศวกร์ร์มกร์ะบวนการ์ที่าง

ธี#ร์ก�จแบบจ�าลี่องกร์ะบวนการ์ที่างธี#ร์ก�จก�าหนดค#ณสำมบ ต์�แลี่ะฟ�งก�ช นงานก�าหนดหน1าที่��ของฟ�งก�ช น

งานให1ช ดเจนว�เคร์าะห�ร์ะบบเพ2�อหาความต์1องการ์ใหม,ก�าหนดขอบเขต์แลี่ะ

ออกแบบร์ะบบใหม,

ว�เคร์าะห�แลี่ะก�าหนดความต์1องการ์จ ดที่�าข1อก�าหนดค#ณสำมบ ต์�

ของซอฟต์�แวร์�ออกแบบซอฟต์�แวร์�พ ฒนาซอฟต์�แวร์�ที่ดสำอบร์ะบบย,อย

ปร์ะสำานร์ะบบย,อยแลี่ะที่ดสำอบร์ะบบร์วม

น�าไปใช1งานแลี่ะบ�าร์#งร์ กษา

Page 40: Chapter 1 : Introduction  to  Software Engineering

40

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์� ว�ศวกร์ร์มร์ะบบ ม�หน1าที่�� ด งน�=1. ก�าหนดว ต์ถู#ปร์ะสำงค�ของร์ะบบ2. ก�าหนดขอบเขต์ของร์ะบบ3. แบ,งร์ะบบออกเป9นสำ,วน ๆ ต์ามฟ�งก�ช นงานหร์2อค#ณสำมบ ต์�ของร์ะบบ4. พ�จาร์ณาความสำ มพ นธี�ของสำ,วนปร์ะกอบต์,าง ๆ ที่��เก��ยวข1องที่ =งหมด5. ก�าหนดความสำ มพ นธี�ของป�จจ ยน�าเข1า ปร์ะมวลี่ผลี่ แลี่ะผลี่ลี่ พธี�6. พ�จาร์ณาป�จจ ยที่��ม�สำ,วนเก��ยวข1องในร์ะบบ 7. ก�าหนดความต์1องการ์ในสำ,วนของปฏิ�บ ต์�การ์ (Operation) แลี่ะฟ�งก�ช นงาน (Function) ที่ =งร์ะบบ

Page 41: Chapter 1 : Introduction  to  Software Engineering

41

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์�8. สำร์1างแบบจ�าลี่องร์ะบบ (System Model) เพ2�อใช1ว�เคร์าะห�แลี่ะพ ฒนาให1สำอดคลี่1องก บแบบจ�าลี่องซอฟต์�แวร์� (Software Model) ที่��สำร์1างข*=น9. น�าเสำนอแลี่ะแลี่กเปลี่��ยนข1อค�ดเห>นก บผ01ที่��เก��ยวข1องก บร์ะบบ –ผ01ใช1ร์ะบบ– เจ1าของร์ะบบ–ผ01ที่��เก��ยวข1องก บผลี่ปร์ะโยชน�ที่��ม�ต์,อร์ะบบ

Page 42: Chapter 1 : Introduction  to  Software Engineering

42

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์�

ว�ศวกร์ร์มการ์ผลี่�ต์ ม�หน1าที่�� ด งน�=1. ก�าหนดความต์1องการ์แลี่ะจ ดที่�าข1อก�าหนดค#ณสำมบ ต์�2. ออกแบบแนวที่างแก1ป�ญหาให1สำอดคลี่1องก บความต์1องการ์3. พ�จาร์ณาสำถูาป�ต์ยกร์ร์มให1สำอดคลี่1องก บแนวที่างแก1ป�ญหา4. วางแผนโคร์งการ์ผลี่�ต์ซอฟต์�แวร์�5. ที่ดสำอบซอฟต์�แวร์�ในแต์,ลี่ะคอมโพเน1นที่�6. ผนวกคอมโพเน1นต์,าง ๆ ร์วมเป9นร์ะบบเด�ยวก น

Page 43: Chapter 1 : Introduction  to  Software Engineering

43

องคุ�ปร์ะกอบของว)ศวกร์ร์มีซอฟต์�แวร์�7. ที่ดสำอบการ์ผนวกร์วมร์ะบบ พร์1อมต์ร์วจสำอบความถู0กต์1อง

แลี่ะความสำอดคลี่1องก บความต์1องการ์ที่��ได1ก�าหนดไว1 8. พ�จาร์ณากลี่ย#ที่ธี�ในการ์น�าไปใช1งาน9. น�าไปใช1งาน10. ปร์ บเปลี่��ยนกร์ะบวนการ์จ ดการ์11. บ�าร์#งร์ กษาแลี่ะต์�ดต์ =งซอฟต์�แวร์�

Page 44: Chapter 1 : Introduction  to  Software Engineering

44

ว)ว(ฒนาการ์ของว)ศวกร์ร์มีซอฟต์�แวร์�

ว�ว ฒนาการ์แบ,งร์ะยะเวลี่าออกเป9น 3 ช,วง ด งน�=

1. ช,วงร์ะหว,างป. ค.ศ. 1945 ถู*ง 1965 : จ#ดเร์��มต์1นของว�ศวกร์ร์มซอฟต์�แวร์�

– น3าไปใช้%งานคุร์(1งแร์กร์าวป5 คุ.ศ. 1950 ถ.งต์%นป5 คุ.ศ. 1960 การ์ผู้ลี่)ต์ มี�"งเน%นที่��ซอฟต์�แวร์�เป2นส3าคุ(ญ– North Atlantic Treaty Organization (นาโต์ / NATO) จั(ด้ส(มีมีนาว)ศวกร์ร์มีซอฟต์�แวร์�สองคุร์(1ง คุร์(1งแร์กป5 คุ.ศ. 1968 แลี่ะป5 คุ.ศ. 1969 ณ ปร์ะเที่ศเยอร์มี(น ได้%ร์(บการ์ยอมีร์(บอย"างเป2นที่างการ์

Page 45: Chapter 1 : Introduction  to  Software Engineering

45

ว)ว(ฒนาการ์ของว)ศวกร์ร์มีซอฟต์�แวร์� 2. ช,วงร์ะหว,างป. ค.ศ. 1965 ถู*ง 1985 : ว�กฤต์�ซอฟต์�แวร์�– จั�ด้ว)กฤต์)ในช้"วงป5 คุ.ศ. 1960 ถ.งป5 คุ.ศ. 1980– กร์ณ�ต์(วอย"าง

• ซอฟต์�แวร์�ร์ะบบปฏิ)บ(ต์)การ์ OS/360• ซอฟต์�แวร์�ร์ะบบร์(กษาคุวามีปลี่อด้ภ(ยของฐานจัร์วด้น3าว)ถ�แอร์�เร์�ยน (Ariane)• ซอฟต์�แวร์�ร์ะบบคุวบคุ�มีการ์แผู้"ร์(งส�ส3าหร์(บเคุร์;�องร์(กษาผู้&%ป<วยด้%วยร์(งส�ว)ที่ยา

Page 46: Chapter 1 : Introduction  to  Software Engineering

46

ว)ว(ฒนาการ์ของว)ศวกร์ร์มีซอฟต์�แวร์� 2. ช,วงร์ะหว,างป. ค.ศ. 1965 ถู*ง 1985 : ว�กฤต์�ซอฟต์�แวร์�– ป5เต์อร์� จั� น&มี(น (Peter G. Neumann) ร์ายงานคุวามีเส�ยหายที่��เก)ด้จัากซอฟต์�แวร์�ต์"อคุณะกร์ร์มีาธิ)การ์คุวามีเส��ยง (Risk Committee) โด้ยสร์�ปได้%ด้(งน�1

• อ�ต์สาหกร์ร์มีซอฟต์�แวร์�เก)ด้ฟองสบ&"แต์ก• การ์ผู้ลี่)ต์ซอฟต์�แวร์�เก)ด้การ์ช้ะลี่อต์(ว • แนวที่างการ์พ(ฒนาซอฟต์�แวร์�ต์ลี่อด้ร์ะยะเวลี่า 20 ป5ที่��ผู้"านมีา ย(งไมี"สามีาร์ถน3ามีาใช้%งานได้%จัร์)งก(บการ์ที่3างาน• ว)ศวกร์ซอฟต์�แวร์�ต์"างต์ร์ะหน(กแลี่ะให%การ์ยอมีร์(บ

Page 47: Chapter 1 : Introduction  to  Software Engineering

47

ว)ว(ฒนาการ์ของว)ศวกร์ร์มีซอฟต์�แวร์� 3. ช,วงร์ะหว,างป. ค.ศ. 1985 ถู*งป�จจ#บ น : ฟองสำบ0,แต์ก– ย�คุของการ์แก%ป�ญหาว)กฤต์)ซอฟต์�แวร์�อย"างแที่%จัร์)ง โด้ยมี�ป�จัจั(ยที่��เป2นแร์ง ข(บเคุลี่;�อนด้(งน�1

• เคุร์;�องมี;อ (Tool)• สหว)ที่ยาการ์ (Discipline)• ว)ธิ�การ์ที่��ถ&กแบบแผู้น (Formal Method)• กร์ะบวนการ์ (Process)• คุวามีเป2นมี;ออาช้�พ

Page 48: Chapter 1 : Introduction  to  Software Engineering

48

ว)ว(ฒนาการ์ของว)ศวกร์ร์มีซอฟต์�แวร์� 3. ช,วงร์ะหว,างป. ค.ศ. 1985 ถู*งป�จจ#บ น : ฟองสำบ0,แต์ก– ป5 คุ.ศ. 1987 เฟร์ด้ บร์& %คุส� (Fred Brooks) ได้%เผู้ยแพร์"ผู้ลี่งานในบที่คุวามีเร์;�อง “No Silver Bullet” โด้ยมี�ใจัคุวามีว"า ย(งไมี"มี�เที่คุโนโลี่ย�หร์;อแนวที่างปฏิ)บ(ต์)ใด้ต์ลี่อด้เวลี่า 10 ป5 ที่��เป2นเคุร์;�องบ"งช้�1ถ.งว)ธิ�การ์ปร์(บปร์�งเพ;�อเพ)�มีผู้ลี่ผู้ลี่)ต์แลี่ะคุ�ณภาพอย"างมี�ปร์ะส)ที่ธิ)ผู้ลี่ได้%อย"างแที่%จัร์)ง

Page 49: Chapter 1 : Introduction  to  Software Engineering

49

คุ�ณลี่(กษณะของซอฟต์�แวร์�ที่��มี�คุ�ณภาพ ค#ณลี่ กษณะของซอฟแวร์� –ความสำามาร์ถูในการ์บ�าร์#งร์ กษา

(Maintainability)• ง,ายต์,อการ์บ�าร์#งร์ กษา• สำามาร์ถูเปลี่��ยนแปลี่ง (Change)• ปร์ บเปลี่��ยนให1เหมาะสำม (Adaptive) • ต์อบสำนอง (Response) ได1อย,างร์วดเร์>วแลี่ะ

ที่ นที่,วงที่�–ความสำามาร์ถูในการ์พ*�งพา (Dependability)

• ความน,าเช2�อถู2อ (Reliability) • ผ,านการ์ที่วนสำอบแลี่ะต์ร์วจร์ บ (Verification and Validation)

Page 50: Chapter 1 : Introduction  to  Software Engineering

50

คุ�ณลี่(กษณะของซอฟต์�แวร์�ที่��มี�คุ�ณภาพ ค#ณลี่ กษณะของซอฟแวร์� –ปร์ะสำ�ที่ธี�ภาพ (Efficiency)

• ปร์ะหย ด หร์2อสำ�=นเปลี่2องน1อยที่��สำ#ด• ใช1ที่ร์ พยากร์ต์,าง ๆ ได1อย,างค#1มค,า

–ความสำามาร์ถูในการ์ใช1งาน (Usability)• สำะดวก แลี่ะง,ายต์,อการ์ใช1งาน• เสำร์�มสำร์1างการ์เร์�ยนร์01ได1อย,างร์วดเร์>ว

Page 51: Chapter 1 : Introduction  to  Software Engineering

51

คุ�ณลี่(กษณะของซอฟต์�แวร์�ที่��มี�คุ�ณภาพ ค#ณลี่ กษณะของซอฟต์�แวร์� –ว�ธี�การ์ว ดผลี่หร์2อปร์ะเม�นผลี่จากป�จจ ยด1านอ2�น ๆ

เช,น• การ์ปร์ะเม�นผลี่ความพ*งพอใจของลี่0กค1า (Customer Satisfication)

• การ์ค�านวณต์1นที่#น แลี่ะงบปร์ะมาณการ์ด�าเน�นการ์ (Cost and Budget)

• กร์ะต์ร์วจสำอบแลี่ะปร์ะก นค#ณภาพของซอฟต์�แวร์�ที่างว�ศวกร์ร์ม

Page 52: Chapter 1 : Introduction  to  Software Engineering

52

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�–ว�ศวกร์ร์มซอฟต์�แวร์� เป9นงานที่��แที่ร์กซ*มอย0,ในที่#ก

ข =นต์อนของกร์ะบวนการ์ผลี่�ต์ซอฟต์�แวร์�–ร์ะเบ�ยบว�ธี�ปฏิ�บ ต์�ของว�ศวกร์ร์มซอฟต์�แวร์�

(Software Engineering Methodology) จ*งเป9นไปต์ามแนวที่างการ์พ ฒนาซอฟต์�แวร์� (Software Development Approach) ม�สำองแนวที่าง ค2อ• แนวที่างเช�งโคร์งสำร์1าง• แนวที่างเช�งว ต์ถู#

Page 53: Chapter 1 : Introduction  to  Software Engineering

53

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

แนวที่างเช�งโคร์งสำร์1าง (Structured Approach)

• แบ,งร์ะบบแลี่ะความต์1องการ์ออกเป9นร์ะบบย,อย (Sub-System) • ลี่ กษณะของร์ะบบจ*งเป9นโคร์งสำร์1างแบบลี่�าด บช =น• ร์ะเบ�ยบว�ธี�ปฏิ�บ ต์�ชน�ดหน*�งที่��น�ยมน�ามาใช1ในข =นต์อนการ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบ ค2อ การ์“ว�เคร์าะห�แลี่ะออกแบบร์ะบบเช�งโคร์งสำร์1าง (Structured System Analysis and Design: SSAD)” ค�ดค1นโดย Yourdan & Demarco ป. ค.ศ. 1978

Page 54: Chapter 1 : Introduction  to  Software Engineering

54

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

แนวที่างเช�งโคร์งสำร์1าง (Structured Approach)

• ข1อเสำ�ย– ต์1องว�เคร์าะห�แลี่ะออกแบบข1อม0ลี่ร์วมถู*งพฤต์�กร์ร์มของร์ะบบแยกก นคนลี่ะสำ,วน ที่�าให1ต์1องใช1เวลี่านาน– ใช1ต์1นที่#นมากเก�นไป– เสำ��ยงต์,อการ์เปลี่��ยนแปลี่งความต์1องการ์ของผ01ใช1

Page 55: Chapter 1 : Introduction  to  Software Engineering

55

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

ต์ วอย,างการ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบเช�งโคร์งสำร์1าง

แสำดงต์ วอย,างการ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบเช�งโคร์งสำร์1าง

ร์ะบบวางบ�ลี่จ ดที่�าใบสำ,ง

สำ�นค1าจ ดที่�าร์ายการ์

ยอดขายจ ดที่�าภาษ�ซ2=อ

- ขายจ ดที่�าใบวาง

บ�ลี่

ต์ร์วจสำอบสำถูานะการ์สำ �งซ2=อ

ปร์ บปร์#งยอดสำ �งซ2=อ

แก1ไขสำถูานะว�เคร์าะห�การ์ขาย

ต์ร์วจสำอบการ์จ ดสำ,งสำ�นค1า

ปร์ บปร์#งสำถูานะคลี่ งสำ�นค1า

Page 56: Chapter 1 : Introduction  to  Software Engineering

56

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

แนวที่างเช�งว ต์ถู# (Object – Oriented Approach)

• ค�ดค1นโดย Grady Booch, James Rumbaugh แลี่ะ Ivar Jacobson• การ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบเช�งว ต์ถู# (Object-Oriented System Analysis and Design) • เป9นการ์ว�เคร์าะห�ร์ะบบโดยการ์มองที่#กอย,างในร์ะบบเป9นอ>อบเจ>กต์� (Object)• ภายในอ>อบเจ>กต์� จะม�สำ,วนข1อม0ลี่แลี่ะพฤต์�กร์ร์มของร์ะบบ

Page 57: Chapter 1 : Introduction  to  Software Engineering

57

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

แนวที่างเช�งว ต์ถู# (Object – Oriented Approach)

• ข1อด�– การ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบร์วดเร์>ว– ร์องร์ บก บร์ะบบงานที่��ม�ความซ บซ1อนสำ0ง– ที่ นต์,อการ์เปลี่��ยนแปลี่งความต์1องการ์ของผ01ใช1

Page 58: Chapter 1 : Introduction  to  Software Engineering

58

ร์ะเบ�ยบว)ธิ�ปฏิ)บ(ต์)ของว)ศวกร์ร์มีซอฟต์�แวร์�

ต์ วอย,างอ>อบเจ>กต์�

แสำดงต์ วอย,างอ>อบเจ>กต์�

InvoiceIDNo.AddressA/C No.AmountComputer value of goodsComputer discountComputer Ad. ChargeComputer Invoice Amount

objectAttributesMethods

Page 59: Chapter 1 : Introduction  to  Software Engineering

59

สร์�ป ว�ศวกร์ร์มซอฟต์�แวร์� หมีายถ.งการ์น3าหลี่(ก

ว)ช้าการ์ด้%านว)ศวกร์ร์มีมีาด้&แลี่ กร์ะบวนการ์ผู้ลี่)ต์ซอฟต์�แวร์� ต์(1งแต์"ข( 1นต์อนแร์กจันถ.งข(1นต์อนบ3าร์�งร์(กษาหลี่(งการ์ใช้%งาน เพ;�อให%ซอฟต์�แวร์�ที่��ได้%มี�คุ�ณภาพส&งส�ด้ภายใต์%ข%อจั3าก(ด้ด้%านเวลี่าแลี่ะต์%นที่�น

ว�ศวกร์ซอฟต์�แวร์�จะต์1องน�าที่ฤษฏิ� ร์ะเบ�ยบว�ธี� แลี่ะเคร์2�องม2อมีาปร์ะย�กต์�ใช้%ในกร์ะบวนการ์ผู้ลี่)ต์ซอฟต์�แวร์�เพ;�อแก%ป�ญหาได้%อย"างเหมีาะสมี

Page 60: Chapter 1 : Introduction  to  Software Engineering

60

สร์�ป

ว�ศวกร์ร์มซอฟต์�แวร์�แบ,งองค�ปร์ะกอบได1เป9น 2 สำ,วน สำ,วนที่�� 1 ว�ศวกร์ร์มร์ะบบ (System Engineering) หมายถู*ง กร์ะบวนการ์ศ*กษาแลี่ะว�เคร์าะห�ของร์ะบบที่��ม�ความสำลี่ บซ บซ1อน เพ2�อสำน บสำน#นการ์ที่�างานใน สำ,วนที่�� 2 ค2อ ว�ศวกร์ร์มการ์ผลี่�ต์ (Development Engineering) ซ*�งเป9นกร์ะบวนการ์แปร์สำภาพความต์1องการ์ของร์ะบบ (System Requirements) ให1กลี่ายเป9นซอฟต์�แวร์�อ นเป9นเป;าหมายสำ�าค ญที่างด1านว�ศวกร์ร์มซอฟต์�แวร์�

Page 61: Chapter 1 : Introduction  to  Software Engineering

61

สร์�ป

ค#ณลี่ กษณะของซอฟแวร์� –ความสำามาร์ถูในการ์บ�าร์#งร์ กษา (Maintainability)

–ความสำามาร์ถูในการ์พ*�งพา (Dependability)

–ปร์ะสำ�ที่ธี�ภาพ (Efficiency)–ความสำามาร์ถูในการ์ใช1งาน (Usability)

Page 62: Chapter 1 : Introduction  to  Software Engineering

62

สร์�ป–ร์ะเบ�ยบว�ธี�ปฏิ�บ ต์�ของว�ศวกร์ร์มซอฟต์�แวร์� จ*ง

เป9นไปต์ามแนวที่างการ์พ ฒนาซอฟต์�แวร์� ที่��แต์,ลี่ะโคร์งการ์เลี่2อกใช1 โดยม� 2 แนวที่าง ค2อ• แนวที่างเช�งโคร์งสำร์1าง• แนวที่างเช�งว ต์ถู#

Page 63: Chapter 1 : Introduction  to  Software Engineering

63

แบบที่ด้สอบให1น กศ*กษาต์อบค�าถูามต์,อไปน�=–อธี�บายความหมายของว�ศวกร์ร์มซอฟต์�แวร์�–อธี�บายความแต์กต์,างร์ะหว,างว�ศวกร์ร์ม

ซอฟต์�แวร์�แลี่ะว�ที่ยาการ์คอมพ�วเต์อร์�–อธี�บายความแต์กต์,างร์ะหว,างว�ศวกร์ร์ม

ซอฟต์�แวร์�แลี่ะว�ศวกร์ร์มร์ะบบ–อธี�บายความแต์กต์,างร์ะหว,างว�ศวกร์ร์ม

ซอฟต์�แวร์�ก บการ์ว�เคร์าะห�แลี่ะออกแบบร์ะบบ–บ#คคลี่ใดที่��เก��ยวข1องก บงานว�ศวกร์ร์มซอฟต์�แวร์�

แลี่ะเก��ยวข1องอย,างไร์

Page 64: Chapter 1 : Introduction  to  Software Engineering

64

แบบที่ด้สอบ–บ#คคลี่ใดที่��เก��ยวข1องก บการ์พ ฒนาซอฟต์�แวร์�

แลี่ะเก��ยวข1องอย,างไร์–อธี�บายค#ณสำมบ ต์�แลี่ะที่ กษะด1านต์,าง ๆ ของ

ว�ศวกร์ซอฟต์�แวร์�–อธี�บายองค�ปร์ะกอบของว�ศวกร์ร์มซอฟต์�แวร์�–บอกค#ณลี่ กษณะของซอฟต์�แวร์�ที่��ม�ค#ณภาพ–บอกแนวที่างการ์พ ฒนาซอฟต์�แวร์�ที่��ม�ผลี่ต์,อ

ร์ะเบ�ยบว�ธี�ปฏิ�บ ต์�ของว�ศวกร์ร์มซอฟต์�แวร์�

Page 65: Chapter 1 : Introduction  to  Software Engineering

Chapter 1 : The End (Any Question?)