68
วิศวกรรมระบบ (System Engineering) การบริหารโครงการผลิตซอฟต์แวร์ การประมาณการซอฟต์แวร์ (Software Estimation) วิชา 04720303 วิศวกรรมซอฟต์แวร์ (Software Engineering)

วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

วชา 04720303

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

Page 2: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

Page 3: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

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

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

Page 4: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

Page 5: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

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

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

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

Page 6: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Page 7: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

Page 8: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

Page 9: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

Page 10: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

Page 11: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

ประมวลผล (Processing)

ขอมลออก (Output)

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

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

Page 12: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Page 13: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

Page 14: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Object Diagram

Component Diagram

Deployment Diagram

Use Case Diagram

Sequence Diagram

Collaboration Diagram

StateTransition Diagram

Activity Diagram

Structural Diagrams

Behavioral Diagrams

Page 15: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Page 16: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

activity diagrams

Page 17: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

การสรางแบบจ าลองระบบดวย 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

Page 18: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

Page 19: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Use Case Diagram

teller

customer

withdraw

transfer

statement

add

interest

deposit

Page 20: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Class Diagram

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

Page 21: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Class Diagram

Page 22: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Object Diagram

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

Page 23: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Object Diagram

Page 24: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Sequence Diagram

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

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

Page 25: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Sequence Diagram

Page 26: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Collaboration Diagram

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

Page 27: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Collaboration Diagram

Page 28: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

State Diagram

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

Page 29: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

State Diagram

Page 30: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Activity Diagram

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

Page 31: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Activity Diagram

Page 32: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Component diagram

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

Page 33: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Component diagram

Page 34: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Deployment diagram

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

Page 35: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Deployment diagram

Page 36: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

Page 37: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

Page 38: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Gantt Chart

Page 39: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

PERT/CPM

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

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

Page 40: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

PERT/CPM

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

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

Page 41: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

PERT/CPM

Page 42: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

Page 43: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Size Estimation

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

Page 44: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Size Estimation

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

Page 45: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Line of Code (LOC) Count

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

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

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

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

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

Page 46: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

Page 47: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

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

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

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

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

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

Page 48: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Function Point (FP)

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

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

Page 49: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Function Point (FP)

Page 50: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

Function Point (FP)

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

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

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

Page 51: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

ค านวณ 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(ผลกระทบ)

Page 52: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

UAF

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

Page 53: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

UAF

Page 54: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

UAF

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

Page 55: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

VAF

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

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

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

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

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

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

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

Page 56: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

VAF

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

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

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

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

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

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

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

Page 57: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

VAF

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

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

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

Page 58: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

VAF

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

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

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

Page 59: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Page 60: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

Page 61: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

ตวอยาง

Page 62: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

ตวอยาง

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

Page 63: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

ตวอยาง

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

Page 64: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

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

Productivity = Output Size (LOC or Function Point)

Effort (Man-Month)

Page 65: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

COCOMO

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

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

Page 66: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

COCOMO II

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

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

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

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

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

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

Page 67: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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

Page 68: วิชา ITSC2301 วิศวกรรมซอฟต์แวร์ · วิศวกรรมระบบ (System Engineering) กิจกรรมของวิศวกรรมระบบ

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 คอ ความรบเรงของเวลาเมอเปรยบเทยบกบการพฒนาปกต