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

Post on 20-Feb-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

การบรหารโครงการผลตซอฟตแวร

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

วชา 04720303

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

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

วศวกรรมระบบ ไมไดมงเนนในเรองของซอฟตแวรอยางเดยว แตใหความส าคญกบสวนประกอบอนๆ ดวย

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

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

กจกรรมของวศวกรรมระบบ มดงน

ก าหนดวตถประสงคของระบบ

ก าหดนขอบเขตของระบบ

แบงระบบออกเปนสวนๆ ตามฟงกชนงานหรอคณสมบตระบบ

พจารณาความสมพนธของสวนประกอบตางๆ ทเกยวของทงหมด

ก าหนดความสมพนธของปจจยน าเขา ประมวลผล และผลลพธ

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

พจารณาปจจยทมสวนเกยวของในระบบ

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

สรางแบบจ าลอง เพอใชวเคราะหและพฒนาใหสอดคลองกบแบบจ าลองซอฟตแวรทสรางขน

น าเสนอและแลกเปลยนขอคดเหนกบผใชระบบ

วศวกรรมระบบ (System Engineering) กระบวนการวศวกรรระบบ ประกอบไปดวยขนตอน 7 เฟส ดงน

การก าหนดความตองการ (Requirement Definition)

การออกแบบระบบ (System Design)

การพฒนาระบบยอย (Sub-system Development)

การผนวกรวมระบบ (System Integration)

การตดตงระบบ (System Installation)

การเปลยนแปลงระบบ (System Evolution)

การปลดระวางระบบ (System Decommission)

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

วศวกรรมระบบ (System Engineering) การก าหนดความตองการ (Requirement Definition)

เพอก าหนดนยามความตองการของระบบใหชดเจน ก าหนดหนาทวาระบบควรจะท าอะไรไดบาง เปนเพยงขอก าหนดเบองตน

การออกแบบระบบ (System Design) เปนการก าหนดรายละเอยดของฟงกชนในแตละสวนประกอบของระบบ มดงน แบงสวนความตองการ ก าหนดระบบยอย ก าหนดความตองการในแตละระบบยอย ก าหนดฟงกชนของแตละระบบยอย ก าหนดสวนประสานของระบบยอย

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

การออกแบบระบบ (System Design)

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

การพฒนาระบบยอย (Sub-system Development) เปนการน าเอาระบบยอยทถกก าหนดรายละเอยดไวในระยะออกแบบ มาสรางดวย

กระบวนการทเหมาะสม

การผนวกรวมระบบ (System Integration) ระบบยอยทพฒนาเสรจแลว จะน ามาผนวกรวมเขาดวยกนจนเปนระบบทสมบรณ

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

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

การตดตงระบบ (System Installation) น าระบบทพฒนาเรยบรอยแลวมาตดตง เพอใชงาน

การเปลยนแปลงระบบ (System Evolution) ในชวงการใชงานระบบ อาจเกดการเปลยนแปลงตางๆ อาจตองการการแกไข

ขอผดพลาดตางๆ

การปลดระวางระบบ (System Decommission) หมายถง การเลกใชงานหลงจากพบวาระบบไมสามารถใชประโยชนไดอกตอไป

การจ าลองระบบ (System Modeling)

แบบจ าลอง แฮทลย-เพอรไบ (HatLey-Pirbhai Modeling) ขอมลเขา (Input)

ประมวลผล (Processing)

ขอมลออก (Output)

การประมวลผลการตอประสาน (User Interface Processing)

การบ ารงรกษา และทดสอบตวเอง (Maintenance and self –test Processing)

แบบจ าลอง แฮทลย-เพอรไบ (HatLey-Pirbhai Modeling)

การสรางแบบจ าลองระบบดวย UML

UML มแผนภาพ (Diagram) หลายๆ แบบใหเลอกใชเพอการวเคราะหและการออกแบบในระดบระบบ และระดบซอฟตแวร

UML คอ โมเดลมาตรฐานทใชหลกการออกแบบ OOP(Object oriented programming)

การสรางแบบจ าลองระบบดวย UML Class Diagram

Object Diagram

Component Diagram

Deployment Diagram

Use Case Diagram

Sequence Diagram

Collaboration Diagram

StateTransition Diagram

Activity Diagram

Structural Diagrams

Behavioral Diagrams

Use Case Diagrams Use Case

Diagrams Use Case Diagrams

Scenario Diagrams Scenario

Diagrams Collaboration Diagrams

State Diagrams State

Diagrams Component Diagrams

Component Diagrams Component

Diagrams Deployment Diagrams

State Diagrams State

Diagrams Object Diagrams

Scenario Diagrams Scenario

Diagrams Statechart Diagrams

Use Case Diagrams Use Case

Diagrams Sequence Diagrams

State Diagrams State

Diagrams Class Diagrams

Activity Diagrams

Models

การสรางแบบจ าลองระบบดวย UML 5 มมมองหลกของ UML

Use-case view : หนาทการท างานของระบบซอฟตแวร โดยพจารณาจากมมมองของผใชภายนอก หรอ ระบบภายนอก use-case diagram

Logical view : หนาทการท างานของระบบมโครงสรางอยางไร มองในรปของ static structure และ dynamic behavior class diagram, object diagram, state, sequence, collaboration,

activity diagrams

การสรางแบบจ าลองระบบดวย UML Component view : องคประกอบยอยในการ implement ทประกอบเปนระบบ และ

dependency ระหวางองคประกอบเหลานน component diagram

Concurrency view: การแบงแยก process และ processors โดยพจารณาทง communication และ synchronization dynamic diagrams (state, sequence, collaboration activity) implementation diagrams(component และ deployment)

Deployment view : โครงสรางทางกายภาพเกยวกบ การตดตง และใชงานระบบ deployment diagram

การสรางแบบจ าลองระบบดวย UML

Use case Diagram ในการพฒนาระบบงานใดๆ นน การเกบรวบรวมความตองการของผใชม

ความส าคญมาก และจะท าในระยะแรกๆ ของการพฒนาระบบงานเสมอ Use case diagram เปน Diagram ทท าหนาท Capture requirement เปนเทคนคในการสรางแบบจ าลองเพอใชอธบายหนาทของระบบใหม หรอระบบปจจบน กระบวนการสราง Use case เปนแบบ Iteration ความตองการของระบบจะไดจาก ลกคา/ผใช + ผพฒนาระบบ องคประกอบจะม Use case, Actor, Use case Relation และ System

Use Case Diagram

teller

customer

withdraw

transfer

statement

add

interest

deposit

Class Diagram

Class Diagram ประกอยดวย Class และความสมพนธระหวาง Class เชน Dependency, Generalization, Association เปนตน Class Diagram สามารถแสดงรายละเอยดวาม Method และ Attribute อยางไร

Class Diagram

Object Diagram

Object Diagram ประกอบดวย Object และ Relation ระหวาง Object โดยแตละ Object จะแสดง Instance ของแตละ class ทมในระบบ และความสมพนธระหวาง Class เชน Dependency, Generalization หรอ Association ซงมลกษณะเชนเดยวกบ Class Diagram

Object Diagram

Sequence Diagram

Sequence Diagram จะแสดงล าดบการท างานของระบบ โดยม Object และ เวลาเปนตวก าหนดล าดบของงาน และเนนไปท instant ของ Oject

Sequence Diagram เปน Diagram ซงแสดงปฏสมพนธ(Interaction) ระหวาง Object ตามล าดบของเหตการณทเกดขน ณ เวลาทก าหนด message ทเกดขนระหวาง class จะสามารถน าไปสการสราง method ใน class ทเกยวของได

Sequence Diagram

Collaboration Diagram

Collaboration Diagram แสดงล าดบการท างานของ วตถ ผเกยวของ และกจกรรม โดยล าดบการท างานไมขนกบเวลา เพราะการแสดงความสมพนธของ Object กบเวลาเปนหนาทของ Sequence Diagram

Collaboration Diagram

State Diagram

State Diagram ประกอบดวย State ตางๆ ของ Object และเหตการณตางๆ ทท าใหสถานะของ Object เปลยนและการกระท าทเกดขนเมอสถานะของระบบเปลยนไป สามารถบอกสถานะของ Object ได โดยจะใหความสนใจวา ณ เวลาใดๆ Object นนม status เปนแบบใด

State Diagram

Activity Diagram

Activities Diagram แสดงล าดบ กจกรรมของการท างาน(Work Flow) สามารถแสดงทางเลอกทเกดขนได Activity Diagram จะแสดงขนตอนการท างานในการปฏบตการ โดยประกอบไปดวยสถานะตางๆ ทเกดขนระหวางการท างาน และผลจากการท างานในขนตอนตาง ๆ

Activity Diagram

Component diagram

Component Diagram เปน Diagram ซงแสดงโครงสรางทางกายภาพของ Software โดยจะประกอบดวยองคประกอบซงอยในรปตางๆ เชน Binary, text และ executeable ภายใน Component Diagram กจะมความสมพนธแสดงอยเชนเดยวกบ Class Diagram, Object Diagram

Component diagram

Deployment diagram

Deployment Diagram เปนสงทสามารถท าการแสดงระบบสถาปตยกรรมของ Hardware/Software ตลอดจนความสมพนธระหวาง hardware/software

Deployment diagram

การบรหารโครงการผลตซอฟตแวร การบรหารโครงการ (Project management)

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

วงจรชวตของโครงการ โครงการทกประเภท จะมทงหมด 4 ระยะ ไดแก ระยะเรมตนโครงการ (Project Initiation) ระยะวางแผนโครงการ (Project Planning) ระยะด าเนนโครงการ (Project Execution) ระยะปดโครงการ (Project Closing)

การบรหารโครงการผลตซอฟตแวร

การจดตารางงานโครงการ Gantt Chart PERT/CPM

Gantt Chart

PERT/CPM

มการแสดงงานในลกษณะของ Node และความเกยวเนอง (Dependency) ของงานแตละอนทเกดขนอยางชดเจน

จดเดนของ PERT/CRM คอ การค านวณหาเสนทางวกฤตในการด าเนนกจกรรม ท าใหผบรหารโครงการค านวณหาเวลาไดหลายลกษณะ เชน เวลาทเรวทสดของแตละกจกรรม (Time Earliest : TE) เวลาทชาทสดของแตละกจกรรม (Time Latest : TL) เปนตน

PERT/CPM

เวลาทเรวทสดของแตละกจกรรม (Time Earliest : TE) ค านวณจากซายมาขวา คอ บวกคาเพมจากดานซายมาดานขวา

เวลาทชาทสดของแตละกจกรรม (Time Latest : TL) เวลาทชาทสดทงานนนยงสามารถท าเสรจไดโดยไมกระทบแผนงาน นนคอ ลดคาทเกยวของจากดานขวามาซาย โดยพจารณาจากงานสดทายกอน

PERT/CPM

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

การประมาณการซอฟตแวร เปนสวนทส าคญในการวางแผนงาน เนองจากแผนงานนนจะอยบนพนฐานของสงทตองการท าการจดสรางหรอพฒนา โดยในสวนของซอฟตแวรนนมมมองหลกทมองถง คอเรองของขนาด (Size) คาใชจาย (Cost) บคลากรทใชในการพฒนา (Effort)

Size Estimation

สงแรกทจะตองท ากอนการเรมตนการประมาณการ คอ การวด แยกลกษณะการวดออกเปน 2 เชง คอ การวดในเชงปรมาณ (Software Quantitative) และการวดเชงคณภาพ (Software Qualitative)

Size Estimation

กรรมวธทใชในการวดขนาดของซอฟตแวร ม 2 ลกษณะ คอ Line of Code (LOC) Count Function Point (FP)

Line of Code (LOC) Count

นบเฉพาะบรรทดทมการจดสงเปน Source Code ไมนบรวมสวนของการทดสอบ (Test Driver) หรอสวนงานทรองรบการท างานอนๆ

นบเฉพาะบรรทดทพฒนาโดยบคลากร ไมนบรวมสงทระบบงานสามารถ Generate ไดอตโนมต

ถอวาหนงค าสง คอ หนง Line of Code <LOC>

นบสวนของการประกาศคา (Declaration) เปนสวนของ Instruction

ไมนบสวนของการขยายความ หรอ Comment

Function Point (FP) ปจจบนการนบขนาดของโปรแกรมดวยการนบบรรทดนน ไมสามารถใหผล

การวดในเชงผลสมฤทธของโปรแกรมไดอยางชดเจน การน าวธการนบดวยฟงกชนพอยตเขามาใชนน จงไดรบความสนใจ

การวดดวยฟงกชนพอยต จะมงเนนทการวดดวยฟงกชน หรอการวดโดยผานมมมองความตองการของซอฟตแวร

Allan Albrecht [1] John Gaffney, Jr [2] ไดออกแบบ FPs ทใชวดฟงกชนพอยต FPs เปนผลรวมของขนาด ขอมลเขา, ขอมลออก, ขอมลความตองการ, แฟมขอมล และสวนของโปรแกรมทใชในการตดตอกบลกคา

Function Point (FP) กระบวนการนบฟงกชนพอยต มลกษณะดงน

ขนท 1 น า Requirement ทเกบรวบรวมไวมาท าการแบงฟงกชนพอยต

ขนท 2 ประเมนความซบซอนของฟงกชน

ขนท 3 เปรยบเทยบความซบซอน เพอใหไดระดบความซบซอน เพอค านวณฟงกชนพอยตทยงไมไดปรบคา (Unadjusted Function Point : UFP)

ขนท 4 ค านวณคาตวแปรปรบคา (Value Adjustment Factor) ตามลกษณะของโครงการ

ขนท 5 ค านวณจ านวนฟงกชนพอยตทผานการปรบคา (Adjusted Function Point : AFP)

ขนท 6 ฟงกชนพอยตทผานการปรบคา สามารถน าไปค านวณเปน LOC ได

Function Point (FP)

ประเภทของฟงกชนพอยต สามารถแบงได 5 ลกษณะหลก คอ

External Input (EI) External Output (EO) External Inquiry (EQ) Internal Logical Files (ILF) External Interface Files (EIF)

Function Point (FP)

Function Point (FP)

แตละฟงกชนพอยตนน มองคประกอบตางๆ ในฟงกชนแตละประเภทซงจะแตกตางกนได เชน การเกยวของกบองคประกอบขอมล (Data Element : DET) เปนขอมล เปรยบเสมอนฟลดขอมลทสนใจในแตละฟลด

เรคคอรคขอมล (Record Element : RET) กลมของขอมล หรอกลมยอยของ DET หรอการนบประเภทของเรคคอรดขอมลทเกยวของสมพนธกบฟงกชนทสนใจ

ประเภทไฟล (File Type of Record : FTR)

ค านวณ Function Point (FP)

จ านวนของฟงกชน หาไดจาก FP ทยงไมไดถกปรบแตง (Unadjusted Function Point : UFP) คณกบคาปจจยคณลกษณะของระบบ (Value Adjustment Factor : VAF)

FP = UFP x VAF

VAF = 0.65 + [0.01 x Total DI]

DI : Degree of Influence(ผลกระทบ)

UAF

จะเหนวาการก าหนดฟงกชนโดยแยกออกเปน 5 ประเภทหลก ตามลกษณะของการท างานนน จะชวยท าใหการประเมนลกษณะความตองการของซอฟตแวร การพจารณาองคประกอบทเกยวของกบประเภทของแตละฟงกชนพอยตนน จะท าใหสามารถพจารณาความซบซอนของฟงกชนพอยตไดอยางเปนรปธรรมมากขน โดยพจารณาจากตาราง

UAF

UAF

จากตารางขางบน จะไดระดบความซบซอนของการท างาน จากนนน าคาความซบซอนทเปนคาเฉลยมาท าการค านวณคา Complexity weight ตามตารางน

VAF

การประเมน VAF นนจะประเมนคาของ 14 ปจจย ดงน

1. การตดตอสอสารขอมล (Data Communication)

2. การประมวลผลขอมลแบบกระจาย (Distributed Data Processing)

3. ประสทธภาพของระบบ (Performance)

4. การแกไขคาของระบบ (Configuration)

5. ปรมาณรายการขอมล (Transaction)

6. การปอนขอมลเขาสระบบแบบออนไลน (Online Data Entry)

VAF

7. ประสทธภาพการใชงานของผใช (End user Efficiency)

8. การปรบปรงขอมลแบบออนไลน (Online Update)

9. ความซบซอนของการประมวลผล (Complex Processing)

10. การน าไปใชซ าได (Reusability)

11. ความงายในการตดตง (Installation Ease)

12. ความงายในการด าเนนงาน (Operational Ease)

13. การใชงานไดหลายไซต (Multiple Sites)

VAF

14. รองรบการเปลยนแปลงความตองการของผใช (Change Requirement) โดยการประเมนนน แบงออกเปน 5 ระดบตาม Degree of Influence (DI) 0 Not Present ไมมผลเกยวของกบตวแปรนนๆ 1 Incidental Influence มความเกยวของกบตวแปรนนๆ โดยมเกดขนใน

ระบบงาน ไมกระทบตอการท างาน 2 Moderate Influence มความเกยวของกบตวแปรนนๆ โดยมเกดขนใน

ระบบงาน กระทบตอการท างาน โดยท าใหการ ท างานซบซอนขนบางเลกนอย

VAF

3 Average Influence มความเกยวของกบตวแปรนนๆ โดยมเกดขนใน ระบบงาน กระทบตอการท างาน โดยท าใหการ ท างานซบซอนขน

4 Significant Influence มความเกยวของกบตวแปรนนๆ โดยมเกดขนใน ระบบงาน กระทบตอการท างาน โดยท าใหการ ท างานซบซอนคอนขางมาก

5 Strong Influence มความเกยวของกบตวแปรนนๆ โดยมเกดขนใน ระบบงาน กระทบตอการท างาน โดยท าใหการ ท างานซบซอนมาก

ตารางเปรยบเทยบคา FP เพอแปลงไปเปน LOC

ตวอยางการค านวณคาฟงกชนพอยต

จาก Use case Diagram ดงรป จะท าการแยกประเภทของ use case ตามฟงกชนพอยต

ตวอยาง

ตวอยาง

ท าการเปรยบเทยบคาของ Value Adjustment Factors : VAF

ตวอยาง

VAF = 0.65 + [0.01 x 17] = 0.82 FP = UFP x VAF = 23 x 0.82 = 18.86 FP

ถาหากจดท าซอฟตแวรโดยใชภาษาจาวา จะไดคา LOC = 18.86 x 53 = 999.58 ~1000 LOC

การประมาณการบคลากร

Productivity : ประสทธผลในการผลตงาน

Productivity = Output Size (LOC or Function Point)

Effort (Man-Month)

COCOMO

Boehm B.W. ไดพฒนา COCOMO Model (Constructive Cost Model) เพอวด Effort ในการพฒนาซอฟตแวรทคดเปนหนวย คน-เดอน (person-month) ทประมาณจากขนาดของโปรแกรม โดยนบจ านวนบรรทดของโปรแกรมตนฉบบเปนหลก

แบบจ าลอง COCOMO ถกพฒนาเปนเวอรชน 2 คอ COCOMO II แบงแบบจ าลองออกเปน 3 ชนด เพอใชประมาณการในระยะตางๆ ของกระบวนการพฒนาซอฟตแวร

COCOMO II

Application Composition Model เหมาะกบการผลตซอฟตแวรดวยแนวทางคอมโพเนนท โดยแตละคอมโพเนนทสามารถอธบาย

แทนดวย Object Point ได ขนาดของซอฟตแวรนบเปน Object Point

Early Design Model ใชประมาณการในระยะกอนการออกแบบซอฟตแวร แตหลงจากการก าหนดความความตองการ

แลว ใชคา FP แทนขนาดของซอฟตแวร

Post-Architecture Model ใชประมาณการในระยะหลงการออกแบบซอฟตแวร เปนการประมาณการอกครงเพอความถกตอง

ของคาประมาณการทได

COCOMO II

โมเดลการค านวณของ COCOMO II

PM คอ Effort มหนวยเปน Person-Months (PM) A คาคงททไดจากการรวบรวมขอมลใน 161 โครงการ โดย A = 2.94 E คอ Economics of Scale ซงเปนผลทขนาดของซอฟตแวรสมพนธกบขนาดของโครงการ โดย E = B + 0.01 * Scale

Factors B Scaling Base-exponent ส าหรบค านวณ Effort EM คอ Effort Multipliers เปนคาทไดจากการค านวณ Cost Driver ทเกยวกบโครงการ ทสงผลตอ Effort ในการพฒนาซอฟตแวร PMauto คาของ Effort ทไดจากการแปลงอตโนมต ซงจะเกดเมอมการ Reuse Code โดยคานนจะไมมผลตอการพฒนา แต

เนองจากมผลตอคาใชจาย ถาเปนการพฒนาซอฟตแวรใหม คา PMauto จะเปน 0

PM = A x SizeE x EM + PMauto

COCOMO II

ระยะเวลาทใชในการพฒนาซอฟตแวรมสตรดงน

TDEV = [ C x (PM)F ] x SCED%

100

C คอ Schedule Coefficient ทใชมาค านวณ โดย C = 3.67 F คอ Scaling Exponent ส าหรบระยะเวลา โดย F = [ D + 0.2 (E-B) ] D Scaling Base-exponent ส าหรบ ระยะเวลา โดย D = 0.28 SCED คอ ความรบเรงของเวลาเมอเปรยบเทยบกบการพฒนาปกต

top related