วิชา 4122309 วิศวกรรมซอฟต์แวร์ (software engineering)

66
วววววววววววว (System Engineering) ววววววววววววววววววววววววววววว ววววววววววววววววววววว (Software Estimation) วววว 4122309 ววววววววววววววววว (Software Engineering)

Upload: elga

Post on 05-Jan-2016

39 views

Category:

Documents


7 download

DESCRIPTION

วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering). วิศวกรรมระบบ (System Engineering) การบริหารโครงการผลิตซอฟต์แวร์ การประมาณการซอฟต์แวร์ ( Software Estimation ). วิศวกรรมระบบ (System Engineering). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

การบร�หารโครงการผลิ�ตซอฟต�แวิร�การประมาณการซอฟต�แวิร� (Software

Estimation )

วิ�ชา 4122309วิ�ศวิกรรมซอฟต์�แวิร� (Software Engineering)

Page 2: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering) วิ�ศวิกรรมระบบ ไม�ได้�ม��งเน้�น้ใน้เร��องของซอฟต์�แวิร�อย่�าง

เด้�ย่วิ แต์�ให้�ควิามสำ#าค$ญก$บสำ�วิน้ประกอบอ��น้ๆ ด้�วิย่ วิ�ศวิกรรมระบบ ห้มาย่ถึ)ง กระบวิน้การศ)กษาและวิ�เคราะห้�

ของระบบที่��ม�ควิามสำล$บซ$บซ�อน้ เพื่��อสำน้$บสำน้�น้การที่#างาน้ใน้สำ�วิน้ของวิ�ศวิกรรมซอฟต์�แวิร� ก�จกรรมของวิ�ศวิกรรมระบบ จะถึ/กด้#าเน้�น้การไปพื่ร�อมๆ ก$บก�จกรรมของวิ�ศวิกรรมซอฟต์�แวิร�

Page 3: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

ก�จกรรมของวิ�ศวิกรรมระบบ ม�ด้$งน้�0 ก#าห้น้ด้วิ$ต์ถึ�ประสำงค�ของระบบ ก#าห้ด้น้ขอบเขต์ของระบบ แบ�งระบบออกเป1น้สำ�วิน้ๆ ต์ามฟ2งก�ช$น้งาน้ห้ร�อค�ณสำมบ$ต์�ระบบ พื่�จารณาควิามสำ$มพื่$น้ธ์�ของสำ�วิน้ประกอบต์�างๆ ที่��เก��ย่วิข�องที่$0งห้มด้ ก#าห้น้ด้ควิามสำ$มพื่$น้ธ์�ของป2จจ$ย่น้#าเข�า ประมวิลผล และผลล$พื่ธ์�

Page 4: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering) พื่�จารณาป2จจ$ย่ที่��ม�สำ�วิน้เก��ย่วิข�องใน้ระบบ ก#าห้น้ด้ควิามต์�องการใน้สำ�วิน้ของการด้#าเน้�น้การและ

ฟ2งก�ช$น้งาน้ที่$0งระบบ สำร�างแบบจ#าลอง เพื่��อใช�วิ�เคราะห้�และพื่$ฒน้าให้�

สำอด้คล�องก$บแบบจ#าลองซอฟต์�แวิร�ที่��สำร�างข)0น้ น้#าเสำน้อและแลกเปล��ย่น้ข�อค�ด้เห้7น้ก$บผ/�ใช�ระบบ

Page 5: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering)กระบวินการวิ�ศวิกรรระบบ ประกอบไปด้�วิยขั้� นตอน 7 เฟส ด้�งน# การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) การออกแบบระบบ (System Design) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development) การผน้วิกรวิมระบบ (System Integration) การต์�ด้ต์$0งระบบ (System Installation) การเปล��ย่น้แปลงระบบ (System Evolution) การปลด้ระวิางระบบ (System Decommission)

Page 6: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

Page 7: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) เพื่��อก#าห้น้ด้น้�ย่ามควิามต์�องการของระบบให้�ช$ด้เจน้ ก#าห้น้ด้ห้น้�าที่��วิ�า

ระบบควิรจะที่#าอะไรได้�บ�าง เป1น้เพื่�ย่งข�อก#าห้น้ด้เบ�0องต์�น้ การออกแบบระบบ (System Design)

เป1น้การก#าห้น้ด้ราย่ละเอ�ย่ด้ของฟ2งก�ช$น้ใน้แต์�ละสำ�วิน้ประกอบของระบบ ม�ด้$งน้�0 แบ�งสำ�วิน้ควิามต์�องการ ก#าห้น้ด้ระบบย่�อย่ ก#าห้น้ด้ควิามต์�องการใน้แต์�ละระบบย่�อย่ ก#าห้น้ด้ฟ2งก�ช$น้ของแต์�ละระบบย่�อย่ ก#าห้น้ด้สำ�วิน้ประสำาน้ของระบบย่�อย่

Page 8: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering)การออกแบบระบบ (System Design)

Page 9: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development)

เป1น้การน้#าเอาระบบย่�อย่ที่��ถึ/กก#าห้น้ด้ราย่ละเอ�ย่ด้ไวิ�ใน้ระย่ะออกแบบ มาสำร�างด้�วิย่กระบวิน้การที่��เห้มาะสำม

การผน้วิกรวิมระบบ (System Integration) ระบบย่�อย่ที่��พื่$ฒน้าเสำร7จแล�วิ จะน้#ามาผน้วิกรวิมเข�าด้�วิย่ก$น้จน้

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

Page 10: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

วิ�ศวิกรรมระบบ (System Engineering) การต์�ด้ต์$0งระบบ (System Installation)

น้#าระบบที่��พื่$ฒน้าเร�ย่บร�อย่แล�วิมาต์�ด้ต์$0ง เพื่��อใช�งาน้ การเปล��ย่น้แปลงระบบ (System Evolution)

ใน้ช�วิงการใช�งาน้ระบบ อาจเก�ด้การเปล��ย่น้แปลงต์�างๆ อาจต์�องการการแก�ไขข�อผ�ด้พื่ลาด้ต์�างๆ

การปลด้ระวิางระบบ (System Decommission) ห้มาย่ถึ)ง การเล�กใช�งาน้ห้ล$งจากพื่บวิ�าระบบไม�สำามารถึใช�

ประโย่ชน้�ได้�อ�กต์�อไป

Page 11: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การสำร�างแบบจ#าลองระบบด้�วิย่ UML UML ม�แผน้ภาพื่ (Diagram) ห้ลาย่ๆ แบบให้�เล�อกใช�

เพื่��อการวิ�เคราะห้�และการออกแบบใน้ระด้$บระบบ และระด้$บซอฟต์�แวิร�

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

Page 12: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การสำร�างแบบจ#าลองระบบด้�วิย่ UML Class Diagram Object Diagram Component Diagram Deployment Diagram Use Case Diagram Sequence Diagram Collaboration Diagram StateTransition Diagram Activity Diagram

Structural Structural DiagramsDiagrams

Behavioral DiagramsBehavioral Diagrams

Page 13: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Use CaseDiagramsUse Case

DiagramsUse CaseDiagrams

ScenarioDiagramsScenario

DiagramsCollaborationDiagrams

StateDiagramsState

DiagramsComponentDiagrams

ComponentDiagramsComponent

DiagramsDeploymentDiagrams

StateDiagramsState

DiagramsObjectDiagrams

ScenarioDiagramsScenario

DiagramsStatechartDiagrams

Use CaseDiagramsUse Case

DiagramsSequenceDiagrams

StateDiagramsState

DiagramsClassDiagrams

ActivityDiagrams

Models

Page 14: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การสำร�างแบบจ#าลองระบบด้�วิย่ UML 5 ม$มมองหลิ�กขั้อง UML

Use-case view : หน�าที่#&การที่'างานขั้องระบบซอฟต�แวิร� โด้ยพิ�จารณาจากม$มมองขั้องผ*�ใช้�ภายนอก หร.อ ระบบภายนอกuse-case diagram

Logical view : หน�าที่#&การที่'างานขั้องระบบม#โครงสร�าง อย/างไร มองในร*ปขั้อง static structure แลิะ dynamic

behaviorclass diagram, object diagram, state, sequence, collaboration, activity diagrams

Page 15: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การสำร�างแบบจ#าลองระบบด้�วิย่ UML Component view : องค�ประกอบย/อยในการ implement ที่#&ประกอบ

เป0นระบบ แลิะ dependency ระหวิ/างองค�ประกอบเหลิ/าน� น component diagram

Concurrency view: การแบ/งแยก process แลิะ processors โด้ยพิ�จารณาที่� ง communication แลิะ synchronization

dynamic diagrams (state, sequence, collaboration activity)

implementation diagrams(component แลิะ deployment)

Deployment view : โครงสร�างที่างกายภาพิเก#&ยวิก�บ การต�ด้ต� ง แลิะใช้�งานระบบ deployment diagram

Page 16: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การสำร�างแบบจ#าลองระบบด้�วิย่ UML Use case Diagram

ใน้การพื่$ฒน้าระบบงาน้ใด้ๆ น้$0น้ การเก7บรวิบรวิมควิามต์�องการของผ/�ใช�ม�ควิามสำ#าค$ญมาก และจะที่#าใน้ระย่ะแรกๆ ของการพื่$ฒน้าระบบงาน้เสำมอ Use case diagram เป1น้ Diagram ที่��ที่#าห้น้�าที่�� Capture requirement เป1น้เที่คน้�คใน้การสำร�างแบบจ#าลองเพื่��อใช�อธ์�บาย่ห้น้�าที่��ของระบบให้ม� ห้ร�อระบบ

ป2จจ�บ$น้ กระบวิน้การสำร�าง Use case เป1น้แบบ Iteration ควิามต์�องการของระบบจะได้�จาก ล/กค�า/ผ/�ใช� + ผ/�พื่$ฒน้าระบบ องค�ประกอบจะม� Use case, Actor, Use case Relation และ System

Page 17: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Use Case Diagram

teller

customer

withdraw

transfer

statement

addinterest

deposit

Page 18: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Class Diagram Class Diagram ประกอย่ด้�วิย่ Class และควิาม

สำ$มพื่$น้ธ์�ระห้วิ�าง Class เช�น้ Dependency, Generalization, Association เป1น้ต์�น้ Class Diagram สำามารถึแสำด้งราย่ละเอ�ย่ด้วิ�าม� Method และ Attribute อย่�างไร

Page 19: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Class Diagram

Page 20: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Object Diagram Object Diagram ประกอบด้�วิย่ Object และ

Relation ระห้วิ�าง Object โด้ย่แต์�ละ Object จะแสำด้ง Instance ของแต์�ละ class ที่��ม�ใน้ระบบ และควิามสำ$มพื่$น้ธ์�ระห้วิ�าง Class เช�น้ Dependency, Generalization ห้ร�อ Association ซ)�งม�ล$กษณะเช�น้เด้�ย่วิก$บ Class Diagram

Page 21: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Object Diagram

Page 22: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Sequence Diagram Sequence Diagram จะแสำด้งล#าด้$บการที่#างาน้ของ

ระบบ โด้ย่ม� Object และ เวิลาเป1น้ต์$วิก#าห้น้ด้ล#าด้$บของงาน้ และเน้�น้ไปที่�� instant ของ Oject

Sequence Diagram เป1น้ Diagram ซ)�งแสำด้งปฏิ�สำ$มพื่$น้ธ์�(Interaction ) ระห้วิ�าง Object ต์ามล#าด้$บของเห้ต์�การณ�ที่��เก�ด้ข)0น้ ณ เวิลาที่��ก#าห้น้ด้ message ที่��เก�ด้ข)0น้ระห้วิ�าง class จะสำามารถึน้#าไปสำ/�การสำร�าง method ใน้ class ที่��เก��ย่วิข�องได้�

Page 23: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Sequence Diagram

Page 24: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Collaboration Diagram Collaboration Diagram แสำด้งล#าด้$บการที่#างาน้

ของ วิ$ต์ถึ� ผ/�เก��ย่วิข�อง และก�จกรรม โด้ย่ล#าด้$บการที่#างาน้ไม�ข)0น้ก$บเวิลา เพื่ราะการแสำด้งควิามสำ$มพื่$น้ธ์�ของ Object ก$บเวิลาเป1น้ห้น้�าที่��ของ Sequence Diagram

Page 25: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Collaboration Diagram

Page 26: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

State Diagram State Diagram ประกอบด้�วิย่ State ต์�างๆ

ของ Object และเห้ต์�การณ�ต์�างๆ ที่��ที่#าให้�สำถึาน้ะของ Object เปล��ย่น้และการกระที่#าที่��เก�ด้ข)0น้เม��อสำถึาน้ะของระบบเปล��ย่น้ไป สำามารถึบอกสำถึาน้ะของ Object ได้� โด้ย่จะให้�ควิามสำน้ใจวิ�า ณ เวิลาใด้ๆ Object น้$0น้ม� status เป1น้แบบใด้

Page 27: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

State Diagram

Page 28: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Activity Diagram Activities Diagram แสำด้งล#าด้$บ ก�จกรรมของการ

ที่#างาน้(Work Flow ) สำามารถึแสำด้งที่างเล�อกที่��เก�ด้ข)0น้ได้� Activity Diagram จะแสำด้งข$0น้ต์อน้การที่#างาน้ใน้การปฏิ�บ$ต์�การ โด้ย่ประกอบไปด้�วิย่สำถึาน้ะต์�างๆ ที่��เก�ด้ข)0น้ระห้วิ�างการที่#างาน้ และผลจากการที่#างาน้ใน้ข$0น้ต์อน้ต์�าง ๆ

Page 29: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Activity Diagram

Page 30: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Component diagram Component Diagram เป1น้ Diagram ซ)�ง

แสำด้งโครงสำร�างที่างกาย่ภาพื่ของ Software โด้ย่จะประกอบด้�วิย่องค�ประกอบซ)�งอย่/�ใน้ร/ปต์�างๆ เช�น้ Binary, text และ executeable ภาย่ใน้ Component Diagram ก7จะม�ควิามสำ$มพื่$น้ธ์�แสำด้งอย่/�เช�น้เด้�ย่วิก$บ Class Diagram, Object Diagram

Page 31: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Component diagram

Page 32: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Deployment diagram Deployment Diagram เป1น้สำ��งที่��สำามารถึ

ที่#าการแสำด้งระบบสำถึาป2ต์ย่กรรมของ Hardware/Software ต์ลอด้จน้ควิามสำ$มพื่$น้ธ์�ระห้วิ�าง hardware/software

Page 33: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Deployment diagram

Page 34: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

การบร�หารโครงการ (Project management) การประย$กต�ใช้�องค�ควิามร*� ที่�กษะ เคร.&องม.อ แลิะเที่คน�ค เพิ.&อ

ด้'าเน�นก�จกรรมตามควิามต�องการขั้องโครงการให�บรรลิ$วิ�ตถุ$ประสงค�ที่#&ก'าหนด้ไวิ�

วิงจรช้#วิ�ตขั้องโครงการโครงการที่$กประเภที่ จะม#ที่� งหมด้ 4 ระยะ ได้�แก/ ระยะเร�&มต�นโครงการ (Project Initiation) ระยะวิางแผนโครงการ (Project Planning) ระยะด้'าเน�นโครงการ (Project Execution) ระยะป3ด้โครงการ (Project Closing)

Page 35: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การบร�หารโครงการผลิ�ตซอฟต�แวิร� การจ$ด้ต์ารางงาน้โครงการ

Gantt Chart PERT/CPM

Page 36: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Gantt Chart

Page 37: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

PERT/CPM ม�การแสำด้งงาน้ใน้ล$กษณะของ Node และควิามเก��ย่วิเน้��อง

(Dependency) ของงาน้แต์�ละอ$น้ที่��เก�ด้ข)0น้อย่�างช$ด้เจน้ จ�ด้เด้�น้ของ PERT/CRM ค�อ การค#าน้วิณห้าเสำ�น้ที่างวิ�กฤต์�

ใน้การด้#าเน้�น้ก�จกรรม ที่#าให้�ผ/�บร�ห้ารโครงการค#าน้วิณห้าเวิลาได้�ห้ลาย่ล$กษณะ เช�น้ เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest : TE) เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เป1น้ต์�น้

Page 38: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

PERT/CPM เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest :

TE) ค#าน้วิณจากซ�าย่มาขวิา ค�อ บวิกค�าเพื่��มจาด้�าน้ซ�าย่มาด้�าน้ขวิา

เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เวิลาที่��ช�าที่��สำ�ด้ที่��งาน้น้$0น้ย่$งสำามารถึที่#าเสำร7จได้�โด้ย่ไม�กระที่บ

แผน้งาน้ น้$0น้ค�อ ลด้ค�าที่��เก��ย่วิข�องจากด้�าน้ขวิามาซ�าย่ โด้ย่พื่�จารณาจากงาน้สำ�ด้ที่�าย่ก�อน้

Page 39: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

PERT/CPM

Page 40: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การประมาณการซอฟต�แวิร� (Software Estimation ) การประมาณการซอฟต์�แวิร� เป1น้สำ�วิน้ที่��สำ#าค$ญใน้การ

วิางแผน้งาน้ เน้��องจากแผน้งาน้น้$0น้จะอย่/�บน้พื่�0น้ฐาน้ของสำ��งที่��ต์�องการที่#าการจ$ด้สำร�างห้ร�อพื่$ฒน้า โด้ย่ใน้สำ�วิน้ของซอฟต์�แวิร�น้$ 0น้ม�มมองห้ล$กที่��มองถึ)ง ค�อเร��องของขน้าด้ (Size) ค�าใช�จ�าย่ (Cost) บ�คลากรที่��ใช�ใน้การพื่$ฒน้า (Effort)

Page 41: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Size Estimation สำ��งแรกที่��จะต์�องที่#าก�อน้การ

เร��มต์�น้การประมาณการ ค�อ การวิ$ด้ แย่กล$กษณะการวิ$ด้ออกเป1น้ 2 เช�ง ค�อ การวิ$ด้ใน้เช�งปร�มาณ (Software Quantitative) และการวิ$ด้เช�งค�ณภาพื่ (Software Qualitative)

Page 42: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Size Estimation กรรมวิ�ธ์�ที่��ใช�ใน้การวิ$ด้ขน้าด้ของซอฟต์�แวิร� ม�

2 ล$กษณะ ค�อ Line of Code (LOC) Count Function Point (FP)

Page 43: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Line of Code (LOC) Count น้$บเฉพื่าะบรรที่$ด้ที่��ม�การจ$ด้สำ�งเป1น้ Source Code ไม�น้$บรวิม

สำ�วิน้ของการที่ด้สำอบ (Test Driver) ห้ร�อสำ�วิน้งาน้ที่��รองร$บการที่#างาน้อ��น้ๆ

น้$บเฉพื่าะบรรที่$ด้ที่��พื่$ฒน้าโด้ย่บ�คลากร ไม�น้$บรวิมสำ��งที่��ระบบงาน้สำามารถึ Generate ได้�อ$ต์โน้ม$ต์�

ถึ�อวิ�าห้น้)�งค#าสำ$�ง ค�อ ห้น้)�ง Line of Code <LOC> น้$บสำ�วิน้ของการประกาศค�า (Declaration) เป1น้สำ�วิน้ของ

Instruction ไม�น้$บสำ�วิน้ของการขย่าย่ควิาม ห้ร�อ Comment

Page 44: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) ป2จจ�บ$น้การน้$บขน้าด้ของโปรแกรมด้�วิย่การน้$บบรรที่$ด้น้$0น้ ไม�

สำามารถึให้�ผลการวิ$ด้ใน้เช�งผลสำ$มฤที่ธ์�>ของโปรแกรมได้�อย่�างช$ด้เจน้ การน้#าวิ�ธ์�การน้$บด้�วิย่ฟ2งก�ช$ �น้พื่อย่ต์�เข�ามาใช�น้$ 0น้ จ)งได้�ร$บควิามสำน้ใจ

การวิ$ด้ด้�วิย่ฟ2งก�ช$น้พื่อย่ต์� จะม��งเน้�น้ที่��การวิ$ด้ด้�วิย่ฟ2งก�ช$น้ ห้ร�อการวิ$ด้โด้ย่ผ�าน้ม�มมองควิามต์�องการของซอฟต์�แวิร�

Allan Albrecht [1] John Gaffney, Jr [2] ได้�ออกแบบ FPs ที่��ใช�วิ$ด้ฟ2งก�ช$ �น้พื่อย่ต์� FPs เป1น้ผลรวิมของขน้าด้ ข�อม/ลเข�า , ข�อม/ลออก , ข�อม/ลควิามต์�องการ , แฟ?มข�อม/ล และสำ�วิน้ของโปรแกรมที่��ใช�ใน้การต์�ด้ต์�อก$บล/กค�า

Page 45: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) กระบวินการน�บฟ4งก�ช้�นพิอยต� ม#ลิ�กษณะด้�งน# ขั้� นที่#& 1 น'า Requirement ที่#&เก5บรวิบรวิมไวิ�มาที่'าการแบ/งฟ4งก�ช้�นพิอยต�ขั้� นที่#& 2 ประเม�นควิามซ�บซ�อนขั้องฟ4งก�ช้�นขั้� นที่#& 3 เปร#ยบเที่#ยบควิามซ�บซ�อน เพิ.&อให�ได้�ระด้�บควิามซ�บซ�อน เพิ.&อค'านวิณ

ฟ4งก�ช้�นพิอยต�ที่#&ย�งไม/ได้�ปร�บค/า (Unadjusted Function Point : UFP) ขั้� นที่#& 4 ค'านวิณค/าต�วิแปรปร�บค/า (Value Adjustment Factor) ตาม

ลิ�กษณะขั้องโครงการขั้� นที่#& 5 ค'านวิณจ'านวินฟ4งก�ช้�นพิอยต�ที่#&ผ/านการปร�บค/า (Adjusted Function

Point : AFP)

ขั้� นที่#& 6 ฟ4งก�ช้�นพิอยต�ที่#&ผ/านการปร�บค/า สามารถุน'าไปค'านวิณเป0น LOC ได้�

Page 46: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) ประเภที่ของฟ2งก�ช$น้พื่อย่ต์� สำามารถึแบ�งได้� 5 ล$กษณะ

ห้ล$ก ค�อ External Input (EI) External Output (EO) External Inquiry (EQ) Internal Logical Files (ILF) External Interface Files (EIF)

Page 47: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP)

Page 48: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) แต์�ละฟ2งก�ช$น้พื่อย่ต์�น้$0น้ ม�องค�ประกอบต์�างๆ ใน้

ฟ2งก�ช$น้แต์�ละประเภที่ซ)�งจะแต์กต์�างก$น้ได้� เช�น้ การเก��ย่วิข�องก$บองค�ประกอบข�อม/ล (Data Element :

DET) เป1น้ข�อม/ล เปร�ย่บเสำม�อน้ฟ@ลด้�ข�อม/ลที่��สำน้ใจใน้แต์�ละฟ@ลด้�

เรคคอร�คข�อม/ล (Record Element : RET)กล��มของข�อม/ล ห้ร�อกล��มย่�อย่ของ DET ห้ร�อการน้$บประเภที่

ของเรคคอร�ด้ข�อม/ลที่��เก��ย่วิข�องสำ$มพื่$น้ธ์�ก$บฟ2งก�ช$น้ที่��สำน้ใจ ประเภที่ไฟล� (File Type of Record : FTR)

Page 49: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ค#าน้วิณ Function Point (FP)

จ#าน้วิน้ของฟ2งก�ช$น้ ห้าได้�จาก FP ที่��ย่$งไม�ได้�ถึ/กปร$บแต์�ง (Unadjusted Function Point : UFP) ค/ณก$บค�าป2จจ$ย่ค�ณล$กษณะของระบบ (Value Adjustment Factor : VAF)

FP = UFP x VAF

VAF = 0.65 + [0.01 x Total DI]

DI : Degree of Influence

Page 50: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF จะเห้7น้วิ�าการก#าห้น้ด้ฟ2งก�ช$น้โด้ย่แย่กออกเป1น้ 5

ประเภที่ห้ล$ก ต์ามล$กษณะของการที่#างาน้น้$0น้ จะช�วิย่ที่#าให้�การประเม�น้ล$กษณะควิามต์�องการของซอฟต์�แวิร� การพื่�จารณาองค�ประกอบที่��เก��ย่วิข�องก$บประเภที่ของแต์�ละฟ2งก�ช$น้พื่อย่ต์�น้$0น้ จะที่#าให้�สำามารถึพื่�จารณาควิามซ$บซ�อน้ของฟ2งก�ช$น้พื่อย่ต์�ได้�อย่�างเป1น้ร/ปธ์รรมมากข)0น้ โด้ย่พื่�จารณาจากต์าราง

Page 51: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF

Page 52: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF จากต์ารางข�างบน้ จะได้�ระด้$บควิามซ$บซ�อน้ของการ

ที่#างาน้ จากน้$0น้น้#าค�าควิามซ$บซ�อน้ที่��เป1น้ค�าเฉล��ย่มาที่#าการค#าน้วิณค�า Complexity weight ต์ามต์ารางน้�0

Page 53: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAFการประเม�น้ VAF น้$0น้จะประเม�น้ค�าของ 14 ป2จจ$ย่ ด้$งน้�01 . การต์�ด้ต์�อสำ��อสำารข�อม/ล (Data Communication)2. การประมวิลผลข�อม/ลแบบกระจาย่ (Distributed Data

Processing)3. ประสำ�ที่ธ์�ภาพื่ของระบบ (Performance)4. การแก�ไขค�าของระบบ (Configuration)5. ปร�มาณราย่การข�อม/ล (Transaction)6. การป?อน้ข�อม/ลเข�าสำ/�ระบบแบบออน้ไลน้� (Online Data

Entry)

Page 54: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF7 . ประสำ�ที่ธ์�ภาพื่การใช�งาน้ของผ/�ใช� (End user Efficiency)8. การปร$บปร�งข�อม/ลแบบออน้ไลน้� (Online Update)9. ควิามซ$บซ�อน้ของการประมวิลผล (Complex

Processing)10. การน้#าไปใช�ซ#0าได้� (Reusability)1 1 .ควิามง�าย่ใน้การต์�ด้ต์$0ง (Installation Ease)1 2 .ควิามง�าย่ใน้การด้#าเน้�น้งาน้ (Operational Ease)1 3 .การใช�งาน้ได้�ห้ลาย่ไซต์� (Multiple Sites)

Page 55: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF1 4 .รองร$บการเปล��ย่น้แปลงควิามต์�องการของผ/�ใช� (Change

Requirement)โด้ย่การประเม�น้น้$0น้ แบ�งออกเป1น้ 5 ระด้$บต์าม Degree of

Influence (DI) 0 Not Present ไม�ม�ผลเก��ย่วิข�องก$บต์$วิแปรน้$0น้ๆ

1 Incidental Influenceม�ควิามเก��ย่วิข�องก$บต์$วิแปรน้$0น้ๆ โด้ย่ม�เก�ด้ข)0น้ใน้ ระบบงาน้ ไม�กระที่บต์�อการที่#างาน้

2 Moderate Influence ม�ควิามเก��ย่วิข�องก$บต์$วิแปรน้$0น้ๆ โด้ย่ม�เก�ด้ข)0น้ใน้ ระบบงาน้ กระที่บต์�อการที่#างาน้ โด้ย่ที่#าให้�การ ที่#างาน้ซ$บซ�อน้ข)0น้บ�างเล7กน้�อย่

Page 56: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF3 Average Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ

โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนขั้7 น

4 Significant Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนค/อนขั้�างมาก

5 Strong Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนมาก

Page 57: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์ารางเปร�ย่บเที่�ย่บค�า FP เพื่��อแปลงไปเป1น้ LOC

Page 58: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์$วิอย่�างการค#าน้วิณค�าฟ2งก�ช$น้พื่อย่ต์� จาก Use case

Diagram ด้$งร/ป จะที่#าการแย่กประเภที่ของ use case ต์ามฟ2งก�ช$น้พื่อย่ต์�

Page 59: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์$วิอย่�าง

Page 60: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์$วิอย่�าง ที่#าการเปร�ย่บเที่�ย่บค�าของ

Value Adjustment Factors : VAF

Page 61: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์$วิอย่�างVAF = 0.65 + [0.01 x 17]

= 0.82FP = UFP x VAF

= 23 x 0.82= 18.86 FP

ถึ�าห้ากจ$ด้ที่#าซอฟต์�แวิร�โด้ย่ใช�ภาษาจาวิา จะได้�ค�า LOC= 18.86 x 53 = 999.58 ~1000

LOC

Page 62: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การประมาณการบ�คลากร Productivity : ประสำ�ที่ธ์�ผลใน้การผล�ต์งาน้

Productivity = Output Size (LOC or Function Point)

Effort (Man-Month)

Page 63: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO B oehm B.W. ได้�พื่$ฒน้า COCOMO Model

(Constructive Cost Model) เพื่��อวิ$ด้ Effort ใน้การพื่$ฒน้าซอฟต์�แวิร�ที่��ค�ด้เป1น้ห้น้�วิย่ คน้-เด้�อน้ (person-month) ที่��ประมาณจากขน้าด้ของโปรแกรม โด้ย่น้$บจ#าน้วิน้บรรที่$ด้ของโปรแกรมต์�น้ฉบ$บเป1น้ห้ล$ก

แบบจ#าลอง COCOMO ถึ/กพื่$ฒน้าเป1น้เวิอร�ช$ �น้ 2 ค�อ COCOMO II แบ�งแบบจ#าลองออกเป1น้ 3 ชน้�ด้ เพื่��อใช�ประมาณการใน้ระย่ะต์�างๆ ของกระบวิน้การพื่$ฒน้าซอฟต์�แวิร�

Page 64: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO II   Application Composition Model

เหมาะก�บการผลิ�ตซอฟต�แวิร�ด้�วิยแนวิที่างคอมโพิเน�นที่� โด้ยแต/ลิะคอมโพิเน�นที่�สามารถุอธิ�บายแที่นด้�วิย Object Point ได้� ขั้นาด้ขั้องซอฟต�แวิร�น�บเป0น Object Point

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

ควิามควิามต�องการแลิ�วิ ใช้�ค/า FP แที่นขั้นาด้ขั้องซอฟต�แวิร�   Post-Architecture Model

ใช้�ประมาณการในระยะหลิ�งการออกแบบซอฟต�แวิร� เป0นการประมาณการอ#กคร� งเพิ.&อควิามถุ*กต�องขั้องค/าประมาณการที่#&ได้�

Page 65: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

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

PM ค�อ Effort ม�ห้น้�วิย่เป1น้ Person-Months (PM)A ค�าคงที่��ที่��ได้�จากการรวิบรวิมข�อม/ลใน้ 161 โครงการ โด้ย่ A = 2.94E ค�อ Economics of Scale ซ)�งเป1น้ผลที่��ขน้าด้ของซอฟต์�แวิร�สำ$มพื่$น้ธ์�ก$บขน้าด้ของโครงการ

โด้ย่ E = B + 0.01 * Scale FactorsB Scaling Base-exponent สำ#าห้ร$บค#าน้วิณ EffortEM ค�อ Effort Multipliers เป1น้ค�าที่��ได้�จากการค#าน้วิณ Cost Driver ที่��เก��ย่วิก$บ

โครงการ ที่��สำ�งผลต์�อ Effort ใน้การพื่$ฒน้าซอฟต์�แวิร�PMauto ค�าของ Effort ที่��ได้�จากการแปลงอ$ต์โน้ม$ต์� ซ)�งจะเก�ด้เม��อม�การ Reuse Code โด้ย่

ค�าน้$0น้จะไม�ม�ผลต์�อการพื่$ฒน้า แต์�เน้��องจากม�ผลต์�อค�าใช�จ�าย่ ถึ�าเป1น้การพื่$ฒน้าซอฟต์�แวิร�ให้ม� ค�า PMauto จะเป1น้ 0

PM = A x SizeE x EM + PMauto

Page 66: วิชา  4122309 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO II ระย่ะเวิลาที่��ใช�ใน้การพื่$ฒน้าซอฟต์�แวิร�ม�สำ/ต์รด้$งน้�0

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

100

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