วิชา 4122309 วิศวกรรมซอฟต์แวร์ (software engineering)
Post on 05-Jan-2016
46 Views
Preview:
DESCRIPTION
TRANSCRIPT
วิ�ศวิกรรมระบบ (System Engineering)
การบร�หารโครงการผลิ�ตซอฟต�แวิร�การประมาณการซอฟต�แวิร� (Software
Estimation )
วิ�ชา 4122309วิ�ศวิกรรมซอฟต์�แวิร� (Software Engineering)
วิ�ศวิกรรมระบบ (System Engineering) วิ�ศวิกรรมระบบ ไม�ได้�ม��งเน้�น้ใน้เร��องของซอฟต์�แวิร�อย่�าง
เด้�ย่วิ แต์�ให้�ควิามสำ#าค$ญก$บสำ�วิน้ประกอบอ��น้ๆ ด้�วิย่ วิ�ศวิกรรมระบบ ห้มาย่ถึ)ง กระบวิน้การศ)กษาและวิ�เคราะห้�
ของระบบที่��ม�ควิามสำล$บซ$บซ�อน้ เพื่��อสำน้$บสำน้�น้การที่#างาน้ใน้สำ�วิน้ของวิ�ศวิกรรมซอฟต์�แวิร� ก�จกรรมของวิ�ศวิกรรมระบบ จะถึ/กด้#าเน้�น้การไปพื่ร�อมๆ ก$บก�จกรรมของวิ�ศวิกรรมซอฟต์�แวิร�
วิ�ศวิกรรมระบบ (System Engineering)
ก�จกรรมของวิ�ศวิกรรมระบบ ม�ด้$งน้�0 ก#าห้น้ด้วิ$ต์ถึ�ประสำงค�ของระบบ ก#าห้ด้น้ขอบเขต์ของระบบ แบ�งระบบออกเป1น้สำ�วิน้ๆ ต์ามฟ2งก�ช$น้งาน้ห้ร�อค�ณสำมบ$ต์�ระบบ พื่�จารณาควิามสำ$มพื่$น้ธ์�ของสำ�วิน้ประกอบต์�างๆ ที่��เก��ย่วิข�องที่$0งห้มด้ ก#าห้น้ด้ควิามสำ$มพื่$น้ธ์�ของป2จจ$ย่น้#าเข�า ประมวิลผล และผลล$พื่ธ์�
วิ�ศวิกรรมระบบ (System Engineering) พื่�จารณาป2จจ$ย่ที่��ม�สำ�วิน้เก��ย่วิข�องใน้ระบบ ก#าห้น้ด้ควิามต์�องการใน้สำ�วิน้ของการด้#าเน้�น้การและ
ฟ2งก�ช$น้งาน้ที่$0งระบบ สำร�างแบบจ#าลอง เพื่��อใช�วิ�เคราะห้�และพื่$ฒน้าให้�
สำอด้คล�องก$บแบบจ#าลองซอฟต์�แวิร�ที่��สำร�างข)0น้ น้#าเสำน้อและแลกเปล��ย่น้ข�อค�ด้เห้7น้ก$บผ/�ใช�ระบบ
วิ�ศวิกรรมระบบ (System Engineering)กระบวินการวิ�ศวิกรรระบบ ประกอบไปด้�วิยขั้� นตอน 7 เฟส ด้�งน# การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) การออกแบบระบบ (System Design) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development) การผน้วิกรวิมระบบ (System Integration) การต์�ด้ต์$0งระบบ (System Installation) การเปล��ย่น้แปลงระบบ (System Evolution) การปลด้ระวิางระบบ (System Decommission)
วิ�ศวิกรรมระบบ (System Engineering)
วิ�ศวิกรรมระบบ (System Engineering)
การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) เพื่��อก#าห้น้ด้น้�ย่ามควิามต์�องการของระบบให้�ช$ด้เจน้ ก#าห้น้ด้ห้น้�าที่��วิ�า
ระบบควิรจะที่#าอะไรได้�บ�าง เป1น้เพื่�ย่งข�อก#าห้น้ด้เบ�0องต์�น้ การออกแบบระบบ (System Design)
เป1น้การก#าห้น้ด้ราย่ละเอ�ย่ด้ของฟ2งก�ช$น้ใน้แต์�ละสำ�วิน้ประกอบของระบบ ม�ด้$งน้�0 แบ�งสำ�วิน้ควิามต์�องการ ก#าห้น้ด้ระบบย่�อย่ ก#าห้น้ด้ควิามต์�องการใน้แต์�ละระบบย่�อย่ ก#าห้น้ด้ฟ2งก�ช$น้ของแต์�ละระบบย่�อย่ ก#าห้น้ด้สำ�วิน้ประสำาน้ของระบบย่�อย่
วิ�ศวิกรรมระบบ (System Engineering)การออกแบบระบบ (System Design)
วิ�ศวิกรรมระบบ (System Engineering) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development)
เป1น้การน้#าเอาระบบย่�อย่ที่��ถึ/กก#าห้น้ด้ราย่ละเอ�ย่ด้ไวิ�ใน้ระย่ะออกแบบ มาสำร�างด้�วิย่กระบวิน้การที่��เห้มาะสำม
การผน้วิกรวิมระบบ (System Integration) ระบบย่�อย่ที่��พื่$ฒน้าเสำร7จแล�วิ จะน้#ามาผน้วิกรวิมเข�าด้�วิย่ก$น้จน้
เป1น้ระบบที่��สำมบ/รณ� ห้ล$งจากรวิมระบบแล�วิ ที่�มงาน้ต์�องที่#าการที่ด้สำอบการที่#างาน้ของระบบอ�กคร$0ง
วิ�ศวิกรรมระบบ (System Engineering) การต์�ด้ต์$0งระบบ (System Installation)
น้#าระบบที่��พื่$ฒน้าเร�ย่บร�อย่แล�วิมาต์�ด้ต์$0ง เพื่��อใช�งาน้ การเปล��ย่น้แปลงระบบ (System Evolution)
ใน้ช�วิงการใช�งาน้ระบบ อาจเก�ด้การเปล��ย่น้แปลงต์�างๆ อาจต์�องการการแก�ไขข�อผ�ด้พื่ลาด้ต์�างๆ
การปลด้ระวิางระบบ (System Decommission) ห้มาย่ถึ)ง การเล�กใช�งาน้ห้ล$งจากพื่บวิ�าระบบไม�สำามารถึใช�
ประโย่ชน้�ได้�อ�กต์�อไป
การสำร�างแบบจ#าลองระบบด้�วิย่ 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 Structural DiagramsDiagrams
Behavioral DiagramsBehavioral Diagrams
Use CaseDiagramsUse Case
DiagramsUse CaseDiagrams
ScenarioDiagramsScenario
DiagramsCollaborationDiagrams
StateDiagramsState
DiagramsComponentDiagrams
ComponentDiagramsComponent
DiagramsDeploymentDiagrams
StateDiagramsState
DiagramsObjectDiagrams
ScenarioDiagramsScenario
DiagramsStatechartDiagrams
Use CaseDiagramsUse Case
DiagramsSequenceDiagrams
StateDiagramsState
DiagramsClassDiagrams
ActivityDiagrams
Models
การสำร�างแบบจ#าลองระบบด้�วิย่ UML 5 ม$มมองหลิ�กขั้อง UML
Use-case view : หน�าที่#&การที่'างานขั้องระบบซอฟต�แวิร� โด้ยพิ�จารณาจากม$มมองขั้องผ*�ใช้�ภายนอก หร.อ ระบบภายนอกuse-case diagram
Logical view : หน�าที่#&การที่'างานขั้องระบบม#โครงสร�าง อย/างไร มองในร*ปขั้อง static structure แลิะ dynamic
behaviorclass diagram, object diagram, state, sequence, collaboration, activity diagrams
การสำร�างแบบจ#าลองระบบด้�วิย่ 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
การสำร�างแบบจ#าลองระบบด้�วิย่ 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
Use Case Diagram
teller
customer
withdraw
transfer
statement
addinterest
deposit
Class Diagram Class Diagram ประกอย่ด้�วิย่ Class และควิาม
สำ$มพื่$น้ธ์�ระห้วิ�าง Class เช�น้ Dependency, Generalization, Association เป1น้ต์�น้ 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 และ เวิลาเป1น้ต์$วิก#าห้น้ด้ล#าด้$บของงาน้ และเน้�น้ไปที่�� instant ของ Oject
Sequence Diagram เป1น้ Diagram ซ)�งแสำด้งปฏิ�สำ$มพื่$น้ธ์�(Interaction ) ระห้วิ�าง Object ต์ามล#าด้$บของเห้ต์�การณ�ที่��เก�ด้ข)0น้ ณ เวิลาที่��ก#าห้น้ด้ message ที่��เก�ด้ข)0น้ระห้วิ�าง class จะสำามารถึน้#าไปสำ/�การสำร�าง method ใน้ class ที่��เก��ย่วิข�องได้�
Sequence Diagram
Collaboration Diagram Collaboration Diagram แสำด้งล#าด้$บการที่#างาน้
ของ วิ$ต์ถึ� ผ/�เก��ย่วิข�อง และก�จกรรม โด้ย่ล#าด้$บการที่#างาน้ไม�ข)0น้ก$บเวิลา เพื่ราะการแสำด้งควิามสำ$มพื่$น้ธ์�ของ Object ก$บเวิลาเป1น้ห้น้�าที่��ของ Sequence Diagram
Collaboration Diagram
State Diagram State Diagram ประกอบด้�วิย่ State ต์�างๆ
ของ Object และเห้ต์�การณ�ต์�างๆ ที่��ที่#าให้�สำถึาน้ะของ Object เปล��ย่น้และการกระที่#าที่��เก�ด้ข)0น้เม��อสำถึาน้ะของระบบเปล��ย่น้ไป สำามารถึบอกสำถึาน้ะของ Object ได้� โด้ย่จะให้�ควิามสำน้ใจวิ�า ณ เวิลาใด้ๆ Object น้$0น้ม� status เป1น้แบบใด้
State Diagram
Activity Diagram Activities Diagram แสำด้งล#าด้$บ ก�จกรรมของการ
ที่#างาน้(Work Flow ) สำามารถึแสำด้งที่างเล�อกที่��เก�ด้ข)0น้ได้� Activity Diagram จะแสำด้งข$0น้ต์อน้การที่#างาน้ใน้การปฏิ�บ$ต์�การ โด้ย่ประกอบไปด้�วิย่สำถึาน้ะต์�างๆ ที่��เก�ด้ข)0น้ระห้วิ�างการที่#างาน้ และผลจากการที่#างาน้ใน้ข$0น้ต์อน้ต์�าง ๆ
Activity Diagram
Component diagram Component Diagram เป1น้ Diagram ซ)�ง
แสำด้งโครงสำร�างที่างกาย่ภาพื่ของ Software โด้ย่จะประกอบด้�วิย่องค�ประกอบซ)�งอย่/�ใน้ร/ปต์�างๆ เช�น้ Binary, text และ executeable ภาย่ใน้ Component Diagram ก7จะม�ควิามสำ$มพื่$น้ธ์�แสำด้งอย่/�เช�น้เด้�ย่วิก$บ Class Diagram, Object Diagram
Component diagram
Deployment diagram Deployment Diagram เป1น้สำ��งที่��สำามารถึ
ที่#าการแสำด้งระบบสำถึาป2ต์ย่กรรมของ Hardware/Software ต์ลอด้จน้ควิามสำ$มพื่$น้ธ์�ระห้วิ�าง hardware/software
Deployment diagram
การบร�หารโครงการผลิ�ตซอฟต�แวิร�
การบร�หารโครงการ (Project management) การประย$กต�ใช้�องค�ควิามร*� ที่�กษะ เคร.&องม.อ แลิะเที่คน�ค เพิ.&อ
ด้'าเน�นก�จกรรมตามควิามต�องการขั้องโครงการให�บรรลิ$วิ�ตถุ$ประสงค�ที่#&ก'าหนด้ไวิ�
วิงจรช้#วิ�ตขั้องโครงการโครงการที่$กประเภที่ จะม#ที่� งหมด้ 4 ระยะ ได้�แก/ ระยะเร�&มต�นโครงการ (Project Initiation) ระยะวิางแผนโครงการ (Project Planning) ระยะด้'าเน�นโครงการ (Project Execution) ระยะป3ด้โครงการ (Project Closing)
การบร�หารโครงการผลิ�ตซอฟต�แวิร� การจ$ด้ต์ารางงาน้โครงการ
Gantt Chart PERT/CPM
Gantt Chart
PERT/CPM ม�การแสำด้งงาน้ใน้ล$กษณะของ Node และควิามเก��ย่วิเน้��อง
(Dependency) ของงาน้แต์�ละอ$น้ที่��เก�ด้ข)0น้อย่�างช$ด้เจน้ จ�ด้เด้�น้ของ PERT/CRM ค�อ การค#าน้วิณห้าเสำ�น้ที่างวิ�กฤต์�
ใน้การด้#าเน้�น้ก�จกรรม ที่#าให้�ผ/�บร�ห้ารโครงการค#าน้วิณห้าเวิลาได้�ห้ลาย่ล$กษณะ เช�น้ เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest : TE) เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เป1น้ต์�น้
PERT/CPM เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest :
TE) ค#าน้วิณจากซ�าย่มาขวิา ค�อ บวิกค�าเพื่��มจาด้�าน้ซ�าย่มาด้�าน้ขวิา
เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เวิลาที่��ช�าที่��สำ�ด้ที่��งาน้น้$0น้ย่$งสำามารถึที่#าเสำร7จได้�โด้ย่ไม�กระที่บ
แผน้งาน้ น้$0น้ค�อ ลด้ค�าที่��เก��ย่วิข�องจากด้�าน้ขวิามาซ�าย่ โด้ย่พื่�จารณาจากงาน้สำ�ด้ที่�าย่ก�อน้
PERT/CPM
การประมาณการซอฟต�แวิร� (Software Estimation ) การประมาณการซอฟต์�แวิร� เป1น้สำ�วิน้ที่��สำ#าค$ญใน้การ
วิางแผน้งาน้ เน้��องจากแผน้งาน้น้$0น้จะอย่/�บน้พื่�0น้ฐาน้ของสำ��งที่��ต์�องการที่#าการจ$ด้สำร�างห้ร�อพื่$ฒน้า โด้ย่ใน้สำ�วิน้ของซอฟต์�แวิร�น้$ 0น้ม�มมองห้ล$กที่��มองถึ)ง ค�อเร��องของขน้าด้ (Size) ค�าใช�จ�าย่ (Cost) บ�คลากรที่��ใช�ใน้การพื่$ฒน้า (Effort)
Size Estimation สำ��งแรกที่��จะต์�องที่#าก�อน้การ
เร��มต์�น้การประมาณการ ค�อ การวิ$ด้ แย่กล$กษณะการวิ$ด้ออกเป1น้ 2 เช�ง ค�อ การวิ$ด้ใน้เช�งปร�มาณ (Software Quantitative) และการวิ$ด้เช�งค�ณภาพื่ (Software Qualitative)
Size Estimation กรรมวิ�ธ์�ที่��ใช�ใน้การวิ$ด้ขน้าด้ของซอฟต์�แวิร� ม�
2 ล$กษณะ ค�อ Line of Code (LOC) Count Function Point (FP)
Line of Code (LOC) Count น้$บเฉพื่าะบรรที่$ด้ที่��ม�การจ$ด้สำ�งเป1น้ Source Code ไม�น้$บรวิม
สำ�วิน้ของการที่ด้สำอบ (Test Driver) ห้ร�อสำ�วิน้งาน้ที่��รองร$บการที่#างาน้อ��น้ๆ
น้$บเฉพื่าะบรรที่$ด้ที่��พื่$ฒน้าโด้ย่บ�คลากร ไม�น้$บรวิมสำ��งที่��ระบบงาน้สำามารถึ Generate ได้�อ$ต์โน้ม$ต์�
ถึ�อวิ�าห้น้)�งค#าสำ$�ง ค�อ ห้น้)�ง Line of Code <LOC> น้$บสำ�วิน้ของการประกาศค�า (Declaration) เป1น้สำ�วิน้ของ
Instruction ไม�น้$บสำ�วิน้ของการขย่าย่ควิาม ห้ร�อ Comment
Function Point (FP) ป2จจ�บ$น้การน้$บขน้าด้ของโปรแกรมด้�วิย่การน้$บบรรที่$ด้น้$0น้ ไม�
สำามารถึให้�ผลการวิ$ด้ใน้เช�งผลสำ$มฤที่ธ์�>ของโปรแกรมได้�อย่�างช$ด้เจน้ การน้#าวิ�ธ์�การน้$บด้�วิย่ฟ2งก�ช$ �น้พื่อย่ต์�เข�ามาใช�น้$ 0น้ จ)งได้�ร$บควิามสำน้ใจ
การวิ$ด้ด้�วิย่ฟ2งก�ช$น้พื่อย่ต์� จะม��งเน้�น้ที่��การวิ$ด้ด้�วิย่ฟ2งก�ช$น้ ห้ร�อการวิ$ด้โด้ย่ผ�าน้ม�มมองควิามต์�องการของซอฟต์�แวิร�
Allan Albrecht [1] John Gaffney, Jr [2] ได้�ออกแบบ FPs ที่��ใช�วิ$ด้ฟ2งก�ช$ �น้พื่อย่ต์� FPs เป1น้ผลรวิมของขน้าด้ ข�อม/ลเข�า , ข�อม/ลออก , ข�อม/ลควิามต์�องการ , แฟ?มข�อม/ล และสำ�วิน้ของโปรแกรมที่��ใช�ใน้การต์�ด้ต์�อก$บล/กค�า
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 ได้�
Function Point (FP) ประเภที่ของฟ2งก�ช$น้พื่อย่ต์� สำามารถึแบ�งได้� 5 ล$กษณะ
ห้ล$ก ค�อ External Input (EI) External Output (EO) External Inquiry (EQ) Internal Logical Files (ILF) External Interface Files (EIF)
Function Point (FP)
Function Point (FP) แต์�ละฟ2งก�ช$น้พื่อย่ต์�น้$0น้ ม�องค�ประกอบต์�างๆ ใน้
ฟ2งก�ช$น้แต์�ละประเภที่ซ)�งจะแต์กต์�างก$น้ได้� เช�น้ การเก��ย่วิข�องก$บองค�ประกอบข�อม/ล (Data Element :
DET) เป1น้ข�อม/ล เปร�ย่บเสำม�อน้ฟ@ลด้�ข�อม/ลที่��สำน้ใจใน้แต์�ละฟ@ลด้�
เรคคอร�คข�อม/ล (Record Element : RET)กล��มของข�อม/ล ห้ร�อกล��มย่�อย่ของ DET ห้ร�อการน้$บประเภที่
ของเรคคอร�ด้ข�อม/ลที่��เก��ย่วิข�องสำ$มพื่$น้ธ์�ก$บฟ2งก�ช$น้ที่��สำน้ใจ ประเภที่ไฟล� (File Type of Record : FTR)
ค#าน้วิณ 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
UAF จะเห้7น้วิ�าการก#าห้น้ด้ฟ2งก�ช$น้โด้ย่แย่กออกเป1น้ 5
ประเภที่ห้ล$ก ต์ามล$กษณะของการที่#างาน้น้$0น้ จะช�วิย่ที่#าให้�การประเม�น้ล$กษณะควิามต์�องการของซอฟต์�แวิร� การพื่�จารณาองค�ประกอบที่��เก��ย่วิข�องก$บประเภที่ของแต์�ละฟ2งก�ช$น้พื่อย่ต์�น้$0น้ จะที่#าให้�สำามารถึพื่�จารณาควิามซ$บซ�อน้ของฟ2งก�ช$น้พื่อย่ต์�ได้�อย่�างเป1น้ร/ปธ์รรมมากข)0น้ โด้ย่พื่�จารณาจากต์าราง
UAF
UAF จากต์ารางข�างบน้ จะได้�ระด้$บควิามซ$บซ�อน้ของการ
ที่#างาน้ จากน้$0น้น้#าค�าควิามซ$บซ�อน้ที่��เป1น้ค�าเฉล��ย่มาที่#าการค#าน้วิณค�า Complexity weight ต์ามต์ารางน้�0
VAFการประเม�น้ VAF น้$0น้จะประเม�น้ค�าของ 14 ป2จจ$ย่ ด้$งน้�01 . การต์�ด้ต์�อสำ��อสำารข�อม/ล (Data Communication)2. การประมวิลผลข�อม/ลแบบกระจาย่ (Distributed Data
Processing)3. ประสำ�ที่ธ์�ภาพื่ของระบบ (Performance)4. การแก�ไขค�าของระบบ (Configuration)5. ปร�มาณราย่การข�อม/ล (Transaction)6. การป?อน้ข�อม/ลเข�าสำ/�ระบบแบบออน้ไลน้� (Online Data
Entry)
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)
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กน้�อย่
VAF3 Average Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ
โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนขั้7 น
4 Significant Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนค/อนขั้�างมาก
5 Strong Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนมาก
ต์ารางเปร�ย่บเที่�ย่บค�า FP เพื่��อแปลงไปเป1น้ LOC
ต์$วิอย่�างการค#าน้วิณค�าฟ2งก�ช$น้พื่อย่ต์� จาก Use case
Diagram ด้$งร/ป จะที่#าการแย่กประเภที่ของ use case ต์ามฟ2งก�ช$น้พื่อย่ต์�
ต์$วิอย่�าง
ต์$วิอย่�าง ที่#าการเปร�ย่บเที่�ย่บค�าของ
Value Adjustment Factors : VAF
ต์$วิอย่�าง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
การประมาณการบ�คลากร Productivity : ประสำ�ที่ธ์�ผลใน้การผล�ต์งาน้
Productivity = Output Size (LOC or Function Point)
Effort (Man-Month)
COCOMO B oehm B.W. ได้�พื่$ฒน้า COCOMO Model
(Constructive Cost Model) เพื่��อวิ$ด้ Effort ใน้การพื่$ฒน้าซอฟต์�แวิร�ที่��ค�ด้เป1น้ห้น้�วิย่ คน้-เด้�อน้ (person-month) ที่��ประมาณจากขน้าด้ของโปรแกรม โด้ย่น้$บจ#าน้วิน้บรรที่$ด้ของโปรแกรมต์�น้ฉบ$บเป1น้ห้ล$ก
แบบจ#าลอง COCOMO ถึ/กพื่$ฒน้าเป1น้เวิอร�ช$ �น้ 2 ค�อ COCOMO II แบ�งแบบจ#าลองออกเป1น้ 3 ชน้�ด้ เพื่��อใช�ประมาณการใน้ระย่ะต์�างๆ ของกระบวิน้การพื่$ฒน้าซอฟต์�แวิร�
COCOMO II Application Composition Model
เหมาะก�บการผลิ�ตซอฟต�แวิร�ด้�วิยแนวิที่างคอมโพิเน�นที่� โด้ยแต/ลิะคอมโพิเน�นที่�สามารถุอธิ�บายแที่นด้�วิย Object Point ได้� ขั้นาด้ขั้องซอฟต�แวิร�น�บเป0น Object Point
Early Design Model ใช้�ประมาณการในระยะก/อนการออกแบบซอฟต�แวิร� แต/หลิ�งจากการก'าหนด้
ควิามควิามต�องการแลิ�วิ ใช้�ค/า FP แที่นขั้นาด้ขั้องซอฟต�แวิร� Post-Architecture Model
ใช้�ประมาณการในระยะหลิ�งการออกแบบซอฟต�แวิร� เป0นการประมาณการอ#กคร� งเพิ.&อควิามถุ*กต�องขั้องค/าประมาณการที่#&ได้�
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
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 ค�อ ควิามร�บเร�งของเวิลาเม��อเปร�ย่บเที่�ย่บก$บการพื่$ฒน้าปกต์�
top related