![Page 1: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/1.jpg)
วิ�ศวิกรรมระบบ (System Engineering)
การบร�หารโครงการผลิ�ตซอฟต�แวิร�การประมาณการซอฟต�แวิร� (Software
Estimation )
วิ�ชา 4122309วิ�ศวิกรรมซอฟต์�แวิร� (Software Engineering)
![Page 2: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/2.jpg)
วิ�ศวิกรรมระบบ (System Engineering) วิ�ศวิกรรมระบบ ไม�ได้�ม��งเน้�น้ใน้เร��องของซอฟต์�แวิร�อย่�าง
เด้�ย่วิ แต์�ให้�ควิามสำ#าค$ญก$บสำ�วิน้ประกอบอ��น้ๆ ด้�วิย่ วิ�ศวิกรรมระบบ ห้มาย่ถึ)ง กระบวิน้การศ)กษาและวิ�เคราะห้�
ของระบบที่��ม�ควิามสำล$บซ$บซ�อน้ เพื่��อสำน้$บสำน้�น้การที่#างาน้ใน้สำ�วิน้ของวิ�ศวิกรรมซอฟต์�แวิร� ก�จกรรมของวิ�ศวิกรรมระบบ จะถึ/กด้#าเน้�น้การไปพื่ร�อมๆ ก$บก�จกรรมของวิ�ศวิกรรมซอฟต์�แวิร�
![Page 3: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/3.jpg)
วิ�ศวิกรรมระบบ (System Engineering)
ก�จกรรมของวิ�ศวิกรรมระบบ ม�ด้$งน้�0 ก#าห้น้ด้วิ$ต์ถึ�ประสำงค�ของระบบ ก#าห้ด้น้ขอบเขต์ของระบบ แบ�งระบบออกเป1น้สำ�วิน้ๆ ต์ามฟ2งก�ช$น้งาน้ห้ร�อค�ณสำมบ$ต์�ระบบ พื่�จารณาควิามสำ$มพื่$น้ธ์�ของสำ�วิน้ประกอบต์�างๆ ที่��เก��ย่วิข�องที่$0งห้มด้ ก#าห้น้ด้ควิามสำ$มพื่$น้ธ์�ของป2จจ$ย่น้#าเข�า ประมวิลผล และผลล$พื่ธ์�
![Page 4: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/4.jpg)
วิ�ศวิกรรมระบบ (System Engineering) พื่�จารณาป2จจ$ย่ที่��ม�สำ�วิน้เก��ย่วิข�องใน้ระบบ ก#าห้น้ด้ควิามต์�องการใน้สำ�วิน้ของการด้#าเน้�น้การและ
ฟ2งก�ช$น้งาน้ที่$0งระบบ สำร�างแบบจ#าลอง เพื่��อใช�วิ�เคราะห้�และพื่$ฒน้าให้�
สำอด้คล�องก$บแบบจ#าลองซอฟต์�แวิร�ที่��สำร�างข)0น้ น้#าเสำน้อและแลกเปล��ย่น้ข�อค�ด้เห้7น้ก$บผ/�ใช�ระบบ
![Page 5: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/5.jpg)
วิ�ศวิกรรมระบบ (System Engineering)กระบวินการวิ�ศวิกรรระบบ ประกอบไปด้�วิยขั้� นตอน 7 เฟส ด้�งน# การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) การออกแบบระบบ (System Design) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development) การผน้วิกรวิมระบบ (System Integration) การต์�ด้ต์$0งระบบ (System Installation) การเปล��ย่น้แปลงระบบ (System Evolution) การปลด้ระวิางระบบ (System Decommission)
![Page 6: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/6.jpg)
วิ�ศวิกรรมระบบ (System Engineering)
![Page 7: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/7.jpg)
วิ�ศวิกรรมระบบ (System Engineering)
การก#าห้น้ด้ควิามต์�องการ (Requirement Definition) เพื่��อก#าห้น้ด้น้�ย่ามควิามต์�องการของระบบให้�ช$ด้เจน้ ก#าห้น้ด้ห้น้�าที่��วิ�า
ระบบควิรจะที่#าอะไรได้�บ�าง เป1น้เพื่�ย่งข�อก#าห้น้ด้เบ�0องต์�น้ การออกแบบระบบ (System Design)
เป1น้การก#าห้น้ด้ราย่ละเอ�ย่ด้ของฟ2งก�ช$น้ใน้แต์�ละสำ�วิน้ประกอบของระบบ ม�ด้$งน้�0 แบ�งสำ�วิน้ควิามต์�องการ ก#าห้น้ด้ระบบย่�อย่ ก#าห้น้ด้ควิามต์�องการใน้แต์�ละระบบย่�อย่ ก#าห้น้ด้ฟ2งก�ช$น้ของแต์�ละระบบย่�อย่ ก#าห้น้ด้สำ�วิน้ประสำาน้ของระบบย่�อย่
![Page 8: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/8.jpg)
วิ�ศวิกรรมระบบ (System Engineering)การออกแบบระบบ (System Design)
![Page 9: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/9.jpg)
วิ�ศวิกรรมระบบ (System Engineering) การพื่$ฒน้าระบบย่�อย่ (Sub-system Development)
เป1น้การน้#าเอาระบบย่�อย่ที่��ถึ/กก#าห้น้ด้ราย่ละเอ�ย่ด้ไวิ�ใน้ระย่ะออกแบบ มาสำร�างด้�วิย่กระบวิน้การที่��เห้มาะสำม
การผน้วิกรวิมระบบ (System Integration) ระบบย่�อย่ที่��พื่$ฒน้าเสำร7จแล�วิ จะน้#ามาผน้วิกรวิมเข�าด้�วิย่ก$น้จน้
เป1น้ระบบที่��สำมบ/รณ� ห้ล$งจากรวิมระบบแล�วิ ที่�มงาน้ต์�องที่#าการที่ด้สำอบการที่#างาน้ของระบบอ�กคร$0ง
![Page 10: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/10.jpg)
วิ�ศวิกรรมระบบ (System Engineering) การต์�ด้ต์$0งระบบ (System Installation)
น้#าระบบที่��พื่$ฒน้าเร�ย่บร�อย่แล�วิมาต์�ด้ต์$0ง เพื่��อใช�งาน้ การเปล��ย่น้แปลงระบบ (System Evolution)
ใน้ช�วิงการใช�งาน้ระบบ อาจเก�ด้การเปล��ย่น้แปลงต์�างๆ อาจต์�องการการแก�ไขข�อผ�ด้พื่ลาด้ต์�างๆ
การปลด้ระวิางระบบ (System Decommission) ห้มาย่ถึ)ง การเล�กใช�งาน้ห้ล$งจากพื่บวิ�าระบบไม�สำามารถึใช�
ประโย่ชน้�ได้�อ�กต์�อไป
![Page 11: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/11.jpg)
การสำร�างแบบจ#าลองระบบด้�วิย่ UML UML ม�แผน้ภาพื่ (Diagram) ห้ลาย่ๆ แบบให้�เล�อกใช�
เพื่��อการวิ�เคราะห้�และการออกแบบใน้ระด้$บระบบ และระด้$บซอฟต์�แวิร�
UML ค�อ โมเด้ลมาต์รฐาน้ที่��ใช�ห้ล$กการออกแบบ OOP(Object oriented programming)
![Page 12: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/12.jpg)
การสำร�างแบบจ#าลองระบบด้�วิย่ 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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/13.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/14.jpg)
การสำร�างแบบจ#าลองระบบด้�วิย่ 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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/15.jpg)
การสำร�างแบบจ#าลองระบบด้�วิย่ 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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/16.jpg)
การสำร�างแบบจ#าลองระบบด้�วิย่ 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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/17.jpg)
Use Case Diagram
teller
customer
withdraw
transfer
statement
addinterest
deposit
![Page 18: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/18.jpg)
Class Diagram Class Diagram ประกอย่ด้�วิย่ Class และควิาม
สำ$มพื่$น้ธ์�ระห้วิ�าง Class เช�น้ Dependency, Generalization, Association เป1น้ต์�น้ Class Diagram สำามารถึแสำด้งราย่ละเอ�ย่ด้วิ�าม� Method และ Attribute อย่�างไร
![Page 19: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/19.jpg)
Class Diagram
![Page 20: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/20.jpg)
Object Diagram Object Diagram ประกอบด้�วิย่ Object และ
Relation ระห้วิ�าง Object โด้ย่แต์�ละ Object จะแสำด้ง Instance ของแต์�ละ class ที่��ม�ใน้ระบบ และควิามสำ$มพื่$น้ธ์�ระห้วิ�าง Class เช�น้ Dependency, Generalization ห้ร�อ Association ซ)�งม�ล$กษณะเช�น้เด้�ย่วิก$บ Class Diagram
![Page 21: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/21.jpg)
Object Diagram
![Page 22: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/22.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/23.jpg)
Sequence Diagram
![Page 24: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/24.jpg)
Collaboration Diagram Collaboration Diagram แสำด้งล#าด้$บการที่#างาน้
ของ วิ$ต์ถึ� ผ/�เก��ย่วิข�อง และก�จกรรม โด้ย่ล#าด้$บการที่#างาน้ไม�ข)0น้ก$บเวิลา เพื่ราะการแสำด้งควิามสำ$มพื่$น้ธ์�ของ Object ก$บเวิลาเป1น้ห้น้�าที่��ของ Sequence Diagram
![Page 25: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/25.jpg)
Collaboration Diagram
![Page 26: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/26.jpg)
State Diagram State Diagram ประกอบด้�วิย่ State ต์�างๆ
ของ Object และเห้ต์�การณ�ต์�างๆ ที่��ที่#าให้�สำถึาน้ะของ Object เปล��ย่น้และการกระที่#าที่��เก�ด้ข)0น้เม��อสำถึาน้ะของระบบเปล��ย่น้ไป สำามารถึบอกสำถึาน้ะของ Object ได้� โด้ย่จะให้�ควิามสำน้ใจวิ�า ณ เวิลาใด้ๆ Object น้$0น้ม� status เป1น้แบบใด้
![Page 27: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/27.jpg)
State Diagram
![Page 28: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/28.jpg)
Activity Diagram Activities Diagram แสำด้งล#าด้$บ ก�จกรรมของการ
ที่#างาน้(Work Flow ) สำามารถึแสำด้งที่างเล�อกที่��เก�ด้ข)0น้ได้� Activity Diagram จะแสำด้งข$0น้ต์อน้การที่#างาน้ใน้การปฏิ�บ$ต์�การ โด้ย่ประกอบไปด้�วิย่สำถึาน้ะต์�างๆ ที่��เก�ด้ข)0น้ระห้วิ�างการที่#างาน้ และผลจากการที่#างาน้ใน้ข$0น้ต์อน้ต์�าง ๆ
![Page 29: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/29.jpg)
Activity Diagram
![Page 30: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/30.jpg)
Component diagram Component Diagram เป1น้ Diagram ซ)�ง
แสำด้งโครงสำร�างที่างกาย่ภาพื่ของ Software โด้ย่จะประกอบด้�วิย่องค�ประกอบซ)�งอย่/�ใน้ร/ปต์�างๆ เช�น้ Binary, text และ executeable ภาย่ใน้ Component Diagram ก7จะม�ควิามสำ$มพื่$น้ธ์�แสำด้งอย่/�เช�น้เด้�ย่วิก$บ Class Diagram, Object Diagram
![Page 31: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/31.jpg)
Component diagram
![Page 32: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/32.jpg)
Deployment diagram Deployment Diagram เป1น้สำ��งที่��สำามารถึ
ที่#าการแสำด้งระบบสำถึาป2ต์ย่กรรมของ Hardware/Software ต์ลอด้จน้ควิามสำ$มพื่$น้ธ์�ระห้วิ�าง hardware/software
![Page 33: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/33.jpg)
Deployment diagram
![Page 34: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/34.jpg)
การบร�หารโครงการผลิ�ตซอฟต�แวิร�
การบร�หารโครงการ (Project management) การประย$กต�ใช้�องค�ควิามร*� ที่�กษะ เคร.&องม.อ แลิะเที่คน�ค เพิ.&อ
ด้'าเน�นก�จกรรมตามควิามต�องการขั้องโครงการให�บรรลิ$วิ�ตถุ$ประสงค�ที่#&ก'าหนด้ไวิ�
วิงจรช้#วิ�ตขั้องโครงการโครงการที่$กประเภที่ จะม#ที่� งหมด้ 4 ระยะ ได้�แก/ ระยะเร�&มต�นโครงการ (Project Initiation) ระยะวิางแผนโครงการ (Project Planning) ระยะด้'าเน�นโครงการ (Project Execution) ระยะป3ด้โครงการ (Project Closing)
![Page 35: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/35.jpg)
การบร�หารโครงการผลิ�ตซอฟต�แวิร� การจ$ด้ต์ารางงาน้โครงการ
Gantt Chart PERT/CPM
![Page 36: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/36.jpg)
Gantt Chart
![Page 37: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/37.jpg)
PERT/CPM ม�การแสำด้งงาน้ใน้ล$กษณะของ Node และควิามเก��ย่วิเน้��อง
(Dependency) ของงาน้แต์�ละอ$น้ที่��เก�ด้ข)0น้อย่�างช$ด้เจน้ จ�ด้เด้�น้ของ PERT/CRM ค�อ การค#าน้วิณห้าเสำ�น้ที่างวิ�กฤต์�
ใน้การด้#าเน้�น้ก�จกรรม ที่#าให้�ผ/�บร�ห้ารโครงการค#าน้วิณห้าเวิลาได้�ห้ลาย่ล$กษณะ เช�น้ เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest : TE) เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เป1น้ต์�น้
![Page 38: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/38.jpg)
PERT/CPM เวิลาที่��เร7วิที่��สำ�ด้ของแต์�ละก�จกรรม (Time Earliest :
TE) ค#าน้วิณจากซ�าย่มาขวิา ค�อ บวิกค�าเพื่��มจาด้�าน้ซ�าย่มาด้�าน้ขวิา
เวิลาที่��ช�าที่��สำ�ด้ของแต์�ละก�จกรรม (Time Latest : TL) เวิลาที่��ช�าที่��สำ�ด้ที่��งาน้น้$0น้ย่$งสำามารถึที่#าเสำร7จได้�โด้ย่ไม�กระที่บ
แผน้งาน้ น้$0น้ค�อ ลด้ค�าที่��เก��ย่วิข�องจากด้�าน้ขวิามาซ�าย่ โด้ย่พื่�จารณาจากงาน้สำ�ด้ที่�าย่ก�อน้
![Page 39: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/39.jpg)
PERT/CPM
![Page 40: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/40.jpg)
การประมาณการซอฟต�แวิร� (Software Estimation ) การประมาณการซอฟต์�แวิร� เป1น้สำ�วิน้ที่��สำ#าค$ญใน้การ
วิางแผน้งาน้ เน้��องจากแผน้งาน้น้$0น้จะอย่/�บน้พื่�0น้ฐาน้ของสำ��งที่��ต์�องการที่#าการจ$ด้สำร�างห้ร�อพื่$ฒน้า โด้ย่ใน้สำ�วิน้ของซอฟต์�แวิร�น้$ 0น้ม�มมองห้ล$กที่��มองถึ)ง ค�อเร��องของขน้าด้ (Size) ค�าใช�จ�าย่ (Cost) บ�คลากรที่��ใช�ใน้การพื่$ฒน้า (Effort)
![Page 41: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/41.jpg)
Size Estimation สำ��งแรกที่��จะต์�องที่#าก�อน้การ
เร��มต์�น้การประมาณการ ค�อ การวิ$ด้ แย่กล$กษณะการวิ$ด้ออกเป1น้ 2 เช�ง ค�อ การวิ$ด้ใน้เช�งปร�มาณ (Software Quantitative) และการวิ$ด้เช�งค�ณภาพื่ (Software Qualitative)
![Page 42: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/42.jpg)
Size Estimation กรรมวิ�ธ์�ที่��ใช�ใน้การวิ$ด้ขน้าด้ของซอฟต์�แวิร� ม�
2 ล$กษณะ ค�อ Line of Code (LOC) Count Function Point (FP)
![Page 43: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/43.jpg)
Line of Code (LOC) Count น้$บเฉพื่าะบรรที่$ด้ที่��ม�การจ$ด้สำ�งเป1น้ Source Code ไม�น้$บรวิม
สำ�วิน้ของการที่ด้สำอบ (Test Driver) ห้ร�อสำ�วิน้งาน้ที่��รองร$บการที่#างาน้อ��น้ๆ
น้$บเฉพื่าะบรรที่$ด้ที่��พื่$ฒน้าโด้ย่บ�คลากร ไม�น้$บรวิมสำ��งที่��ระบบงาน้สำามารถึ Generate ได้�อ$ต์โน้ม$ต์�
ถึ�อวิ�าห้น้)�งค#าสำ$�ง ค�อ ห้น้)�ง Line of Code <LOC> น้$บสำ�วิน้ของการประกาศค�า (Declaration) เป1น้สำ�วิน้ของ
Instruction ไม�น้$บสำ�วิน้ของการขย่าย่ควิาม ห้ร�อ Comment
![Page 44: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/44.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/45.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/46.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/47.jpg)
Function Point (FP)
![Page 48: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/48.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/49.jpg)
ค#าน้วิณ 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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/50.jpg)
UAF จะเห้7น้วิ�าการก#าห้น้ด้ฟ2งก�ช$น้โด้ย่แย่กออกเป1น้ 5
ประเภที่ห้ล$ก ต์ามล$กษณะของการที่#างาน้น้$0น้ จะช�วิย่ที่#าให้�การประเม�น้ล$กษณะควิามต์�องการของซอฟต์�แวิร� การพื่�จารณาองค�ประกอบที่��เก��ย่วิข�องก$บประเภที่ของแต์�ละฟ2งก�ช$น้พื่อย่ต์�น้$0น้ จะที่#าให้�สำามารถึพื่�จารณาควิามซ$บซ�อน้ของฟ2งก�ช$น้พื่อย่ต์�ได้�อย่�างเป1น้ร/ปธ์รรมมากข)0น้ โด้ย่พื่�จารณาจากต์าราง
![Page 51: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/51.jpg)
UAF
![Page 52: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/52.jpg)
UAF จากต์ารางข�างบน้ จะได้�ระด้$บควิามซ$บซ�อน้ของการ
ที่#างาน้ จากน้$0น้น้#าค�าควิามซ$บซ�อน้ที่��เป1น้ค�าเฉล��ย่มาที่#าการค#าน้วิณค�า Complexity weight ต์ามต์ารางน้�0
![Page 53: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/53.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/54.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/55.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/56.jpg)
VAF3 Average Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ
โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนขั้7 น
4 Significant Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนค/อนขั้�างมาก
5 Strong Influence ม#ควิามเก#&ยวิขั้�องก�บต�วิแปรน� นๆ โด้ยม#เก�ด้ขั้7 นใน ระบบงาน กระที่บต/อการที่'างาน โด้ยที่'าให�การ ที่'างานซ�บซ�อนมาก
![Page 57: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/57.jpg)
ต์ารางเปร�ย่บเที่�ย่บค�า FP เพื่��อแปลงไปเป1น้ LOC
![Page 58: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/58.jpg)
ต์$วิอย่�างการค#าน้วิณค�าฟ2งก�ช$น้พื่อย่ต์� จาก Use case
Diagram ด้$งร/ป จะที่#าการแย่กประเภที่ของ use case ต์ามฟ2งก�ช$น้พื่อย่ต์�
![Page 59: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/59.jpg)
ต์$วิอย่�าง
![Page 60: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/60.jpg)
ต์$วิอย่�าง ที่#าการเปร�ย่บเที่�ย่บค�าของ
Value Adjustment Factors : VAF
![Page 61: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/61.jpg)
ต์$วิอย่�าง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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/62.jpg)
การประมาณการบ�คลากร Productivity : ประสำ�ที่ธ์�ผลใน้การผล�ต์งาน้
Productivity = Output Size (LOC or Function Point)
Effort (Man-Month)
![Page 63: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/63.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/64.jpg)
COCOMO II Application Composition Model
เหมาะก�บการผลิ�ตซอฟต�แวิร�ด้�วิยแนวิที่างคอมโพิเน�นที่� โด้ยแต/ลิะคอมโพิเน�นที่�สามารถุอธิ�บายแที่นด้�วิย Object Point ได้� ขั้นาด้ขั้องซอฟต�แวิร�น�บเป0น Object Point
Early Design Model ใช้�ประมาณการในระยะก/อนการออกแบบซอฟต�แวิร� แต/หลิ�งจากการก'าหนด้
ควิามควิามต�องการแลิ�วิ ใช้�ค/า FP แที่นขั้นาด้ขั้องซอฟต�แวิร� Post-Architecture Model
ใช้�ประมาณการในระยะหลิ�งการออกแบบซอฟต�แวิร� เป0นการประมาณการอ#กคร� งเพิ.&อควิามถุ*กต�องขั้องค/าประมาณการที่#&ได้�
![Page 65: วิชา 4122309 วิศวกรรมซอฟต์แวร์ (Software Engineering)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/65.jpg)
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)](https://reader036.vdocuments.us/reader036/viewer/2022062314/56813b4d550346895da43dba/html5/thumbnails/66.jpg)
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 ค�อ ควิามร�บเร�งของเวิลาเม��อเปร�ย่บเที่�ย่บก$บการพื่$ฒน้าปกต์�