Upload
suradet-jitprapaikulsarn
View
1.420
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Lecture 1 Process and Software Development
Citation preview
01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
สงวนล�ขส�ทธิ์�� 2549 – 2555ส�รเดช จิ�ต์ประไพัก�ลศาล
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
2
หั�วข#อ•ป$ญหัาของการพั�ฒนาซอฟต์�แวร�•องค์�ประกอบพั'(นฐานของการผล�ต์หัร'อการ
บร�การ•กระบวนการค์'ออะไร•กระบวนการก�บการพั�ฒนาซอฟต์�แวร�•ค์วามสามารถของกระบวนการ•สร�ป
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
3
ค์วามส-าค์�ญของซอฟต์�แวร�• ป$จิจิ�บ�นการด-าเน�นงานขององค์�กรต์.างๆ ไม.ว.าจิะเป0น
ธิ์�รก�จิของเอกชน ของร�ฐบาล หัร'อของบ�ค์ค์ลท�1วไปล#วนแล#วใช#ซอฟต์�แวร�ช.วยในการท-างานเช.น– โรงงานใช#ซอฟต์�แวร�ค์วบค์�มการผล�ต์– ร#านค์#าต์.าง ๆ ใช#ซอฟต์�แวร�ในการท-าบ�ญช5– ประชาชนใช#ซอฟต์�แวร�ในการย'1นช-าระภาษี5– โทรศ�พัท�ใช#ซอฟต์�แวร�ในการปฏิ�บ�ต์�งาน– สถาบ�นการเง�นใช#ซอฟต์�แวร�ในการปฏิ�บ�ต์�งานธิ์�รกรรมการ
เง�น• ด�งน�(นราค์า ระยะเวลาในการพั�ฒนา และค์�ณภาพัของ
ซอฟต์�แวร�จิ:งม5ส.งผลกระทบโดยต์รงต์.อธิ์�รก�จิโดยรวม
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
4
ขนาดของซอฟต์�แวร�ใหัญ.ข:(นเร'1อยๆ
0
10
20
30
40
50
60
1990 1992 1994 1996 1998 2000 2002 2004 2006
จิ-านวนบรรท�ดของซอร�สโค์#ดของ Windows ต์�(งแต์.ป; 1992 จินถ:ง 2005
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
5
ส�1งท51ต์ลาดต์#องการ
• ค์�ณภาพัส<ง• ต์รงเวลา• ราค์าถ<ก• ต์รงต์ามค์วาม
ต์#องการ
• ค์�ณภาพัด5ท51ส�ด• ก-าหันดเวลาท51ด5ท51ส�ด• ราค์าต์-1าท51ส�ด• ต์รงต์ามท51ค์าดหัว�ง
ปั�จจ�บั�น อนาคต
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
6
ป$ญหัาของการพั�ฒนาซอฟต์�แวร�
0%
10%
20%
30%
40%
50%
60%
สำ า เร็�จ 16% 27% 26% 28% 34% 29% 35% 32% 37%
ยกเลิ�ก 31% 40% 28% 23% 15% 18% 19% 24% 21%
มี�ปั�ญหา 53% 33% 46% 49% 51% 53% 46% 44% 42%
1994 1996 1998 2000 2002 2004 2006 2008 2010
จิาก Standish Report 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009 และ 2011
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
7
ป$ญหัาของการพั�ฒนาซอฟต์�แวร�
• เวลา– เสร=จิช#ากว.าท51ก-าหันด
• ขอบเขต์ของงาน– ใช#งานไม.ได#ต์ามท51ต์#องการ
• ค์�ณภาพั– ม5ข#อบกพัร.องมาก
• ค์.าใช#จิ.าย– เก�นงบประมาณ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
8
องค์�ประกอบพั'(นฐานของการผล�ต์หัร'อบร�การ
• ทร�พัยากร– ส�1งท51จิะถ<กใช#ในการท-างาน
• บ�ค์ลากร– ผ<#ปฏิ�บ�ต์�งาน
• สภาพัแวดล#อม– ส�1งต์.างๆ รอบการท-างาน
• เทค์โนโลย5– เค์ร'1องม'อในการท-างาน
• กระบวนการ– ข�(นต์อนการท-างาน
ทร็�พยากร็
บั�คลิากร็
สำภาพ แวดลิ
อมีเทคโนโ
ลิย�
กร็ะบัวนการ็
ผลิ�ตภ�ณฑ์&
บัร็�การ็
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
9
องค์�ประกอบพั'(นฐานของการผล�ต์หัร'อบร�การทร�พัยาก
ร
บ�ค์ลากร สภาพัแวดล#อม
เทค์โนโลย5
กระบวนการ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
10
องค์�ประกอบพั'(นฐานของการผล�ต์หัร'อบร�การ
•ค์�ณภาพัของผล�ต์ภ�ณฑ์�หัร'อบร�การจิ:งข:(นอย<.ก�บ–ทร�พัยากร–บ�ค์ลากร– เทค์โนโลย5–สภาพัแวดล#อม–กระบวนการ
•การจิะปร�บปร�งค์�ณภาพัจิ:งต์#องปร�บท�(ง 5 องค์�ประกอบ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
11
ข#อค์วรค์-าน:ง•การปร�บปร�งค์วรเป0นแบบบั'ร็ณาการ็
โดยเร�1มต์#นท51การปัร็�บัปัร็�งกร็ะบัวนการ็และบั�คลิากร็แล#วค์.อยปร�บปร�งองค์�ประกอบอ'1นๆ ใหั#สอดค์ล#องก�บการปร�บปร�งกระบวนการ
•จิ�ดม�.งหัมายหัล�กก=เพั'1อเป0นปัร็�บัปัร็�งค�ณภาพของผลิ�ตภ�ณฑ์&หร็*อบัร็�การ็
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
12
กระบวนการค์'ออะไร• กระบวนการค์'อข�(นต์อนการท-างานเพั'1อใหั#
ส-าเร=จิต์ามแผนงานหัล�กการ(Princip
le)
กระบวนการ
(Process)
ก�จิกรรม (Activity) หัร'อ
กระแสงาน (Workflow)
ข�บเค์ล'1อน
ข�(นต์อนปฏิ�บ�ต์�
(Procedure)
เค์ร'1องม'อ ว�ธิ์5การ แบบฟอร�ม(Tools, Methods, and
Templates)ประกอบ
ด#วยขยาย
ค์วามใน
ใช#ในบ�ค์ลากร(People
)
ท-าต์ามสภาพั
แวดล#อม(Environment)
เอ'(อต์.อ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
13
ต์�วอย.างของกระบวนการ•กระบวนการผล�ต์เส'(อผ#า•กระบวนการแก#ป$ญหัา•กระบวนการผล�ต์•กระบวนการทางเค์ม5•กระบวนการพั�ฒนาซอฟต์�แวร�
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
14
กระบวนการก�บผลกระทบเช�งเศรษีฐศาสต์ร�
IT Unit Cost Vs Quality Vs Relative A&E Investment
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0 0.5 1 1.5 2
Unit Cost Index
Qu
alit
y In
dex
ค์.าใช#จิ.ายต์.อหัน.วยต์-1าค์�ณภาพัส<ง
ค์.าใช#จิ.ายต์.อหัน.วยต์-1าค์�ณภาพัต์-1า
ค์.าใช#จิ.ายต์.อหัน.วยส<งค์�ณภาพัส<ง
ค์.าใช#จิ.ายต์.อหัน.วยส<งค์�ณภาพัต์-1า
ท51มา: Howard Rubin, Technology Economics and the Importance of Software Process
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
15
กระบวนการก�บการพั�ฒนาซอฟต์�แวร�
•การพั�ฒนาซอฟต์�แวร� ค์'อ การแปลงค์วามต์#องการ (requirements) ใหั#กลายเป0นซอฟต์�แวร�
•การพั�ฒนาซอฟต์�แวร�ใหั#ส-าเร=จิน�(นม5ส�1งท51เก51ยวข#องมีากกว+าวงจิรช5ว�ต์ของการพั�ฒนาซอฟต์�แวร� (Software Development Life Cycle หัร'อ SDLC) เช.น การบร�หัารโค์รงการ การบร�หัารล<กค์#าฯลฯ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
16
การพั�ฒนาซอฟต์�แวร�• นอกเหัน'อจิาก SDLC แล#ว น�กพั�ฒนาซอฟต์�แวร�
ต์#องร< #จิ�กกระบวนการอ'1นๆอ5กเช.น– กระบวนการวางแผน มอบหัมายงาน ต์�ดต์ามและค์วบค์�ม
โค์รงการ– กระบวนการจิ�ดการค์วามเส51ยง– กระบวนการจิ�ดการ requirements– กระบวนการจิ�ดเก=บข#อม<ลเก51ยวก�บการพั�ฒนาซอฟต์�แวร�– กระบวนการทวนสอบ (verification) และสอบทาน
(validation)– กระบวนการประก�นค์�ณภาพั– กระบวนการจิ�ดการ configuration– ฯลฯ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
17
ลองพั�จิารณา ช.างต์�ดเส'(อ• ร< #จิ�กล�กษีณะของผ#า• ร< #จิ�กล�กษีณะของเส'(อท51ล<กค์#าต์#องการ• ร< #จิ�กการประมาณเวลาท51จิะท-าส-าเร=จิ ราค์า• ร< #จิ�กการว�ดต์�ว• ร< #จิ�กการออกแบบเส'(อ• ร< #จิ�กการต์�ดผ#าเป0นช�(นส.วนต์.างๆ• ร< #จิ�กการเย=บผ#าเป0นช�(นส.วนต์.างๆ ต์ลอดจินเย=บท�กข�(นต์อนจินส-าเร=จิ• ร< #จิ�กการต์รวจิสอบค์วามถ<กต์#องของเส'(อต์ามแบบหัร'อต์ามล�กษีณะ
ท51ล<กค์#าต์#องการ• ร< #จิ�กพั�จิารณาค์วามเหัมาะสมของเส'(อเวลาล<กค์#ามาลอง และแก#ไขใหั#
ต์รงต์ามค์วามต์#องการ• ร< #จิ�กการแบ.งงานใหั#เพั'1อนร.วมงาน• ร< #จิ�กการจิ�ดการค์วามต์#องการของล<กค์#า
ด�ดแปลงมาจิาก ค์รรช�ต์ มาล�ยวงศ�, Software Process Improvement, 2551
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
18
ลองพั�จิารณา น�กพั�ฒนาซอฟต์�แวร�
• ร< #จิ�ก domain ท51จิะท-า• ร< #จิ�กว.าล<กค์#าต์#องการซอฟต์�แวร�ไปท-าอะไร• ร< #จิ�กการประมาณเวลาท51จิะท-าส-าเร=จิ ราค์า• ร< #จิ�กการเก=บรวบรวมค์วามต์#องการ• ร< #จิ�กการออกแบบซอฟต์�แวร�• ร< #จิ�กการแบ.งซอฟต์�แวร�เป0นโมด<ลย.อยๆ• ร< #จิ�กการพั�ฒนาโมด<ลย.อย และการประกอบโมด<ลเข#าเป0นซอฟต์�แวร�• ร< #จิ�กการต์รวจิสอบค์วามถ<กต์#องของซอฟต์�แวร�ว.าท-างานถ<กต์#อง
หัร'อไม.• ร< #จิ�กพั�จิารณาค์วามเหัมาะสมของซอฟต์�แวร�และแก#ไขใหั#ต์รงค์วาม
ต์#องการ• ร< #จิ�กการแบ.งงานใหั#เพั'1อนร.วมงาน• ร< #จิ�กการจิ�ดการค์วามต์#องการของล<กค์#า
ด�ดแปลงมาจิาก ค์รรช�ต์ มาล�ยวงศ�, Software Process Improvement, 2551
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
19
เปร5ยบเท5ยบการต์�ดเส'(อก�บการพั�ฒนาซอฟต์�แวร� (1)
การต์�ดเส'(อผ#า การพั�ฒนาซอฟต์�แวร�
Domain Knowledge
ล�กษีณะผ#า ระบบท51จิะพั�ฒนา
เป@าหัมาย ล�กษีณะของเส'(อท51ต์#องการ
ใช#ซอฟต์�แวร�ท-าอะไร
การวางแผนโค์รงการ
ประมาณขนาด แรงงาน ราค์า และระยะเวลา
ประมาณขนาด แรงงาน ราค์า และระยะเวลา
การรวบรวมค์วามต์#องการ
ว�ดต์�ว การรวบรวมค์วามต์#องการ
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
20
เปร5ยบเท5ยบการต์�ดเส'(อก�บการพั�ฒนาซอฟต์�แวร� (2)
การต์�ดเส'(อผ#า การพั�ฒนาซอฟต์�แวร�
ออกแบบ เส'(อ ซอฟต์�แวร�การแต์กงานย.อย
การต์�ดผ#าเป0นช�(น
การแบ.งซอฟต์�แวร�เป0นโมด<ลย.อยๆ
การสร#างช�(นงาน การเย=บผ#าเป0นช�(นต์ามแบบ
การสร#างแต์.ละโมด<ลของซอฟต์�แวร�
การประกอบช�(นงาน
การน-าผ#าแต์.ละช�(นมาเย=บเข#าด#วยก�นเป0นเส'(อ
การน-าโมด<ลมาประกอบก�นเป0นซอฟต์�แวร�
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
21
เปร5ยบเท5ยบการต์�ดเส'(อก�บการพั�ฒนาซอฟต์�แวร� (3)
การต์�ดเส'(อผ#า การพั�ฒนาซอฟต์�แวร�
การทวนสอบ ต์รวจิว.าเส'(อท51ได#ถ<กต์#องต์ามแบบ
ต์รวจิว.าซอฟต์�แวร�ถ<กต์#องต์ามแบบ
การต์รวจิสอบก�บล<กค์#า
ล<กค์#าลองเส'(อว.าใส.ได#หัร'อไม.
ล<กค์#าลองซอฟต์�แวร�ว.าเหัมาะสมก�บการใช#งานหัร'อไม.
การมอบหัมายงาน
มอบหัมายงานใหั#ช.างค์นอ'1น
มอบหัมายงานใหั#น�กพั�ฒนาค์นอ'1น
การจิ�ดการค์วามต์#องการของล<กค์#า
จิ�ดการก�บส51งท51ล<กค์#าขอเปล51ยนแปลง
จิ�ดการก�บส51งท51ล<กค์#าขอเปล51ยนแปลง
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
22
ค์วามสามารถของกระบวนการ• ความีสำามีาร็ถของกร็ะบัวนการ็ (Process
Capability) ค์'อค์วามสามารถในการบรรล�จิ�ดประสงค์� (Purpose) ของกระบวนการ
• จิ�ดม�.งหัมายของกระบวนการโดยท�1วไปได#แก.– สร#างผล�ต์ภ�ณฑ์�– ใหั#การบร�การ– ท-างานใหั#ส-าเร=จิ– ได#ผลล�พัธิ์�ท51ต์#องการ– ฯล
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
23
ระด�บค์วามสามารถของกระบวนการ
•การแบ.งระด�บค์วามสามารถจิะช.วยใหั#ร< #ว.ากระบวนการของเราเป0นอย.างไร
•การแบ.งกระบวนการเป0นด#านๆจิะช.วยใหั#เราทราบว.ากระบวนการของเราสมบ<รณ�หัร'อไม. ม5อะไรต์#องปร�บปร�ง
•การท-าต์ามแนวปฏิ�บ�ต์�ท51ด5 (Good Practice) จิะช.วยใหั#เราใช#ประโยชน�จิากประสบการณ�ของต์นเองและผ<#อ'1น
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
24
ระด�บค์วามสามารถของกระบวนการ
จิ�ดเร�1มต์#นN/A
ไม.ได#ใช#หัล�กว�ศวกรรม
ย�งไมี+ท าใช#หัล�กว�ศวกรรมในการท-างาน
ม5การท-างานข�(นพั'(นฐานม5บางค์นเป0นฮี5โร.ท าอย+างไมี+เปั.นทางการ็
ค์วบค์�มค์วามว� .นวาย
โค์รงการใช#กระบวนการท51ก-าหันด
ม5การวางแผนและบร�หัารงาน
วางแผนแลิะต�ดตามีแบ.งป$นการเร5ยนร< #ระด�บองค์�กร
โค์รงการใช#กระบวนการมาต์รฐานขององค์�กร
ม5การพั�ฒนากระบวนการมาต์รฐานขององค์�กร
ก าหนดไว ด�จิ�ดการกระบวนการด#วยข#อม<ล
ม5การว�ดของกระบวนการม5เป@าหัมายเช�งปร�มาณควบัค�มีเชิ�งปัร็�มีาณ
ปร�บปร�งโดยใช#ข#อม<ล
กระบวนการได#ร�บการปร�บปร�ง
ม5เป@าหัมายย�ทธิ์ศาสต์ร�เช�งปร�มาณ
ปัร็�บัปัร็�งอย+างต+อเน*0อง
แนวค์�ดเบ'(องต์#นบรรล�เม'1อค์�ณล�กษีณะพั�เศษีร็ะด�บั
ระด�บค์วามสามารถต์าม ISO SPICE model v1.0
0
1
2
3
4
5
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
25
ระด�บ ค์�ณล�กษีณะ ม�มมองทางธิ์�รก�จิปร�บปร�งใหั#
ด5ต์ลอดเวลา
การปร�บปร�งกระบวนการเป0นส�1งท51ปฏิ�บ�ต์�ก�นเป0นปกต์�ม5การ
จิ�ดการเช�งปร�มาณ4
การจิ�ดการกระบวนการต์ามเป@าหัมายเช�งธิ์�รก�จิและสามารถค์าดการณ�สมรรถนะในการปฏิ�บ�ต์�ได#ม5การ
ก-าหันดกระบวนการได#ร�บการก-าหันดไว#ในระด�บองค์�กร และปร�บใช#ในโค์รงการ ค์าดการณ�สมรรถนะได#ด5ข:(นม5การ
จิ�ดการม5การบร�หัารโค์รงการเป0นก�จิจิะล�กษีณะ ถ#าเป0นโค์รงการประเภทเด5ยวก�บท51เค์ยท-าอาจิค์าดหัว�งค์วามส-าเร=จิได#เร�1มต์#น ยากท51จิะค์าดการณ�สมรรถนะ การปฏิ�บ�ต์�อาจิไม.ส�มฤทธิ์��ผล ข:(นอย<.ก�บแต์.ละบ�ค์ค์ล
5
3
2
1 เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
R S
RS
R S
R S
R S
ภาพัท51ผ<#บร�การเหั=น
ท51มา SEI
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ
เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ
เป0น
เป@า
ระด�บ ค์�ณล�กษีณะ ม�มมองทางธิ์�รก�จิปร�บปร�ง
ใหั#ด5ต์ลอดเวลาจิ�ดการเช�งปร�มาณ4ม5มาต์รฐานม5การจิ�ดการ
เร�1มต์#น
5
3
2
1 เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
R S
RS
R S
R S
R S
ภาพัท51ผ<#บร�การเหั=น
ท51มา SEI
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ
เป0น
เป@า
เวลา / ค์.าใช#จิ.าย
ค์วาม
น.าจิะ
เป0น
เป@า
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
26
การปร�บปร�งกระบวนการ• การปร�บปร�งกระบวนการม5จิ�ดม�.งหัมายเพั'1อเพั�1มค์วาม
สามารถของกระบวนการ• เม'1อค์วามสามารถของกระบวนการเพั�1มข:(น
– เราก=จิะค์าดการณ�ถ:งผลของการท-างานต์ามกระบวนการได# และว�ดได#ว.าส�มฤทธิ์��ผลเพั5ยงใด ม5ประส�ทธิ์�ภาพัมากน#อยแค์.ไหัน
– เราก=จิะสามารถก-าจิ�ดหัร'อค์วบค์�มสาเหัต์�ท51ท-าใหั#ผลล�พัธิ์�ด#อยค์�ณภาพัหัร'อประส�ทธิ์�ภาพัไม.ด5
• องค์�กร ท5ม หัร'อบ�ค์ค์ลท51ม5การปร�บปร�งค์วามสามารถของกระบวนการอย.างสม-1าเสมอ ก=จิะม5ว�ฒิ�ภาวะ (Mature)
Revision 2.5 01 กระบวนการและการพั�ฒนาซอฟต์�แวร�
27
บทสร�ป•กระบวนการเป0นต์�วเช'1อมองค์�ประกอบ
พั'(นฐานของการผล�ต์และการบร�การเข#าด#วยก�น
•การปร�บปร�งผลล�พัธิ์�ใหั#ด5ข:(นจิ:งค์วรเร�1มต์#นท51กระบวนการ แล#วปร�บปร�งส.วนอ'1นๆประกอบ