__________________________ _Object-Oriented Software Development_

Document Sample
__________________________ _Object-Oriented Software Development_ Powered By Docstoc
					                หลักการวิเคราะห์และออกแบบเชิงวัตถุ



การพัฒนาซอฟต์แวร์เชิงวัตถุ
(OBJECT-ORIENTED SOFTWARE DEVELOPMENT)
                 ้
ผังงานเชิงวัตถุเบืองต้น

   การวิเคราะห์และออกแบบเชิงโครงสร้างกับเชิงวัตถุ
          ้          ัิ
         ขันตอนการปฏิบตงาน
           Waterfall,     Prototyping, Incremental, Spiral …
        คุณลักษณะของระบบงาน
           ประมวลผลแบบต่อเนือง
                             ่ (Sequence), ประมวลผลแบบรวมกลุ่ม (Batch Processing),
             ประมวลผลแบบขนาน (Parallel Processing), แบบตอบโต้ทนที (Interactive) …
                                                                ั
                  ี่ ั
         เทคโนโลยีทพฒนา
           ภาษาคอมพิวเตอร์ ,   สถาปัตยกรรม Client/Server, Open Source …
        แบบจาลองและแผนภาพ (Model and Diagram)
           DFD,    ER-Diagram, UML…
                 ้
ผังงานเชิงวัตถุเบืองต้น

    การวิเคราะห์และออกแบบเชิงวัตถุ
                       ่ีั            (Parallel Processing) และแบบตอบ
       สาหรับระบบงานทีมลกษณะเป็ นแบบขนาน
         โต้ทนที (Interactive) ,การรวมกลุมหรือการรวมหมู่
             ั                           ่
         (Encapsulation), การถ่ายทอดคุณลักษณะ (Inheritance)
              ัิ
     แนวทางปฏิบตและแบบจาลองการวิเคราะห์และออกแบบเชิงโครงสร้าง
           ่                    (DFD-Context Level) จากนันเป็ นการสร้าง
       เริมต้นด้วยการจัดทาผังบริบท                            ้
         ผังความสัมพันธ์ (ER-Diagram) แล้วจึงวิเคราะห์ DFD ใน Level
         1,2,3,… จัดทาผังการทางาน (Flow chart) ออกแบบ function,
         module ,interface และ report ต่างๆ
                 ้
ผังงานเชิงวัตถุเบืองต้น
              ัิ
     แนวทางปฏิบตและแบบจาลองการวิเคราะห์และออกแบบเชิงวัตถุ
       แผนผังบริบท (Context model diagram)
       แผนผังกลุมงาน (Usecase diagram)
                 ่
       แผนผังความสัมพันธ์ ระหว่างวัตถุ (Object Association Model)
       กาหนดรายละเอียดวัตถุเชือมต่อและควบคุม (Interface-Control Object)
                               ่
       แผนผังแสดงพฤติกรรมของวัตถุ (Interaction/Sequence Diagram)
       แผนผังรายละเอียดของวัตถุ (Class Responsibility Collaboration Card)
       แผนผังความเชือมโยงวัตถุ (Class Diagram)
                     ่
       แผนผังการจัดกลุมวัตถุ (Component Diagram)
                       ่
       แผนผังแสดงระบบงาน (Deployment Diagram)
                 ้
ผังงานเชิงวัตถุเบืองต้น
                                        ั้                          ่
   การวิเคราะห์และออกแบบเชิงโครงสร้างมีขนตอนในการวิเคราะห์และออกแบบทีแยกกันได้
   ชัดเจน
                                       ี             ้     ้
  การวิเคราะห์และออกแบบเชิงวัตถุจะไม่มความชัดเจนในทังสองขันตอน
      การวิเคราะห์เชิงวัตถุ  เป็ นเทคนิคสาหรับศึกษาหาวัตถุ พฤติกรรม การตอบสนอง การ
                                                  ่
       นามาใช้ใหม่ และการสืบทอดคุณลักษณะทีเ่ กียวกับระบบงาน (Application Domain)
                                   ่
       สุดท้ายคือแสดงความเชือมโยงกันของวัตถุต่างๆ (Class Diagram) เข้าด้วยกัน
                                     ้                   ่                ี
      การออกแบบเชิงวัตถุ เป็ นขันตอนในการปรับปรุงเพิมเติมผังงานต่างๆ ให้มความสมบูรณ์ โดย
           ีั                          ้
       ให้มลกษณะทีเ่ ป็ นรูปธรรมมากขึน (Interface Control Object) การกาหนดพฤติกรรม
       และการติดต่อกัน (Sequence diagram และ Collaboration Diagram) และผังงาน
         ่ ่
       อืนๆ ทีพร้อมต่อการลงมือเขียนและพัฒนาโปรแกรมต่อไป
หลักการเชิงวัตถุ
   หลักการเชิงวัตถุแตกต่างจากแนวคิดของการพัฒนาโปแกรมแบบเดิมๆ
                              ั
      แยกส่วนทีเ่ ป็ นฟั งก์ชนหรือโปแกรมย่อยออกจากข้อมูล

                          ้                     ั
      เข้าถึงข้อมูลผ่านแฟมข้อมูลโดยการใช้ฟังก์ชน

   หลักการเชิงวัตถุจะห่อหุมฟั งก์ชนและแฟมข้อมูลเข้าด้วยกัน (Encapsulated)
                           ้       ั ้
                                        (message)
      การจะใช้งานข้อมูลของวัตถุจะต้องมีการร้องขอ

      วัตถุจะสังให้ฟังก์ชน (method/behavior) ในวัตถุดาเนินการ
                ่         ั
                                            } ชื่อวัตถุ
                                            } แฟมข้อมูล (Attribute)
                                                ้

                                            } กลุ่มโปรแกรม (Method)
หลักการเชิงวัตถุ
    วัตถุ (Object)
         ่ ่                                      ่                                 ั้
        สิงทีสามารถมองเห็น จับต้องหรือสัมผัสได้ เกียวกับการพฤติกรรมและข้อมูลของวัตถุนนๆ
       สนใจวัตถุทมการกระทา (Active) และมีขอมูลในตัววัตถุมากกว่าวัตถุทไี่ ม่มการกระทา
                  ี่ ี                           ้                           ี
       ตัวอย่างของวัตถุเช่น Employee, Customer, Student
       ตัวอย่างของวัตถุเชิงการกระทา (Event Object) เช่น Order, Payment,
        Registration
    ข้อมูลหรือตัวแปร (Attribute)
         ่
        สิงทีใ่ ช้พรรณนาคุณลักษณะของวัตถุ
            ่
       กลุมของวัตถุจะใช้คาพรรณนาเดียวกัน
       ตัวอย่างของ attribute ของ Customer ประกอบไปด้วย Cust_Name,
        Cust_Address ,Cust_ID และ order
หลักการเชิงวัตถุ
    กระบวนการ (Method/Behavior)
                                     ่ั
          กระบวนการหรือพฤติกรรมทีวตถุสามารถกระทาได้
         ตัวอย่างเช่นวัตถุประตู มีการกระทาของวัตถุนนคือ Open,Shut,Lock,Unlock
                                                       ั้
                     ่ั                                  ้               ั้        ่           ั ี่
          การกระทาทีวตถุกระทาได้สามารถกระทาต่อข้อมูล (แฟมข้อมูล) ของวัตถุนนเองได้ ซึงจะทาให้ได้วตถุทม ี
          สถานะต่างๆ กันไป
         การกระทาเกิดได้ทงจากพฤติกรรมของวัตถุนนเอง หรือมีการร้องขอ (message)จากวัตถุอนๆ
                            ั้                      ั้                                             ื่
    กลุ่มวัตถุ (Class)
         วัตถุทม ี Attribute และ Method ทีคล้ายกันมารวมกลุ่มกันเป็ นต้นแบบของวัตถุ
                 ี่                                ่
         กาหนดชือของกลุม (Class name) เพือเป็ นตัวแทนของกลุมวัตถุนนๆ
                      ่     ่                        ่         ่        ั้
         วัตถุตวแทน (class) จะรวมคุณลักษณะทีสามารถถ่ายทอดไปยังวัตถุลูกได้
                    ั                            ่
         วัตถุลูกอาจไม่จาเป็ นต้องมี Attribute และ Method เหมือนวัตถุแม่ทงหมดก็ได้
                                                                           ั้
UML

 1994 Grady Booch จากกองทัพอากาศ และบริษท Rational ได้
                                                  ั
  จ้าง Rumbaugh จากบริษท GE มาร่วมทีม
                                ั
 กาหนดแนวคิดทีเ่ รียกว่า unify these modeling languages

 Unified Modeling Languages (UML) จึงเป็ นภาษาทีอธิบาย ่
  แบบจาลองสาหรับการพัฒนาซอฟท์แวร์
 ปลายปี 1995 Ivan Jacobson จากบริษท Ericsons ได้เข้าร่ วมทีม
                                         ั
  พัฒนาโดยมีชอเรียกในวงการว่า “Tree Amigos”
                 ื่
 ก่อให้เกิดก้าวสาคัญของโดย Object Oriented นับตังแต่นน
                                                 ้ ั้
UML
 UML version 1.0 รับรองจาก Object Management
  Group (OMG) ในเดือนมกราคม 1997 ให้เป็ นมาตรฐานสาหรับการวิเคราะห์
  และออกแบบระบบเชิงวัตถุ
 UML version 1.1 ได้นาไปใช้ในเดือนกรกฎาคม 1997 และได้รบการยอมรับ
                                                         ั
  จาก OMG ในเดือนพฤศจิกายน 1997
 UML version 1.2 ได้นาไปใช้ในเดือนมิถุนายน 1998 ขณะที่ UML
  version 1.3 นาไปใช้ในเดือนตุลาคม 1998
 ปัจจุบน version 2
          ั
 หาเพิมเติมได้ท ี่ http://www.omg.org
        ่
WHAT IS THE UML MODEL ?
               ่                ่
    แบบจาลองทีจะเป็ นรายละเอียดทีสมบูรณ์ของระบบ ตามมุมมองของนักพัฒนาระบบ
                   ั
    แบบจาลองทีใ่ ช้พฒนาระบบแบ่งเป็ น 4 แบบดังนี้
      Use Case Model ใช้สาหรับกาหนดความต้องการของระบบตามมุมมองของผู ใ้ ช้
      Design Model ใช้สาหรับการกาหนดรายละเอียดของคลาสและ object ทีใ่ ช้ภายใน
        ระบบ
      Implementation Model ใช้สาหรับการโค้ดโปรแกรม
      Test Model สาหรับการทดสอบระบบจากหน่วยย่อยไปถึงหน่วยใหญ่ทสุด       ี่
UML ARCHITECTURE SUPPORT


     Design View                                 Implementation
     Class & Object Diagram                      Component Diagram
     Interaction Diagram                          Interaction Diagram
     State chart Diagram                         State chart Diagram
     Activity Diagram       Use   case View           Activity Diagram
                           Use Case Diagram
                          Interaction Diagram
                          State chart Diagram
                            Activity Diagram

     Process View                               Deployment View
     Class & Object Diagram                      Deployment Diagram
     Interaction Diagram                          Interaction Diagram
     State chart Diagram                          State chart Diagram
     Activity Diagram                                 Activity Diagram
UML DIAGRAM

   Two Type of Diagrams:
     Structural Diagram

     Behavioural Diagram
                             Use Case           Class
               Sequence      Diagram           Diagram      Object
                Diagram                                    Diagram
             Collaboration          Models                Component
               Diagram                                     Diagram
                    State chart                    Deployment
                                    Activity
                     Diagram                        Diagram
                                    Diagram
STRUCTURAL DIAGRAM

 ใช้สำหรับกำรกำหนดภำพควำมต้องกำร (Visualize) ระบุควำม
  ต้องกำร (Specify) พัฒนำโปแกรม (Construct) และจัดกำรทำ
  เอกสำรส่วนทีเป็ น Static ของระบบ
              ่
 Structural Diagram ประกอบไปด้วย :
     ClassDiagram
     Object Diagram

     Component Diagram
     Deployment Diagram
BEHAVIORAL DIAGRAM
 ใช้สำหรับกำรกำหนดภำพควำมต้องกำร (Visualize) ระบุควำม
  ต้องกำร (Specify) พัฒนำโปแกรม (Construct) และจัดกำรทำ
  เอกสำรส่วนทีเป็ น Dynamic ของระบบ
              ่
 Behavioral Diagram ประกอบไปด้วย :
     Use  Case Diagram
     Sequence Diagram
     Collaboration Diagram
     State chart Diagram
     Activity Diagram
CONTEXT MODEL DIAGRAM

 เป็ นแผนภาพทีแสดงถึงระบบงานและผู ทเี่ กียวข้องกับระบบ (Actor) ทังหมด
                   ่                        ้ ่                            ้
      ้ ่                     ั้ ้ ั      ้                           ้
 ผู ทเี่ กียวข้องอาจเป็ นได้ทงผู รบและผู ส่ง หรือผู ใ้ ช้และผู ใ้ ห้ขอมูล
                                        Actor l

                  Information                           Initiate
          Actor i                      System                        Actor j
                  Using activity                        Activity

                                        Actorm
USE CASE DIAGRAM

    ผังงานสาหรับระบุเหตุการณ์ (event) ทีเ่ กิดขึนในระบบ
                                                ้
    ใครคือผู กระทา (Actor) กิจกรรม (Use case) ใดทีมการตอบสนอง (Response)
              ้                                          ่ี
         Actor เป็ นผู ร้องขอต่อระบบในการแลกเปลียนข่าวสารข้อมูลอาจเป็ นคนหรือระบบก็ได้
                        ้                        ่
         Use case เป็ นกลุมของกิจกรรมย่อยต่างๆ ทีรวมเป็ นขันตอน อาจเป็ นแบบอัตโนมัต ิ (Auto) หรือทาด้วย
                               ่                       ่        ้
          มือ (Manual)
                                                           ่                    ้
     กาหนดความต้องการของระบบตามมุมมองของผู ใ้ ช้ โดยเน้นไปทีความสัมพันธ์ทเี่ กิดขึน
    เหตุการณ์ต่างๆ ทีถูกกาหนดไว้อย่างสมบูรณ์โดยผ่านทาง Actor และแสดงการตอบโต้ระหว่าง Actor กับ
                      ่
     ระบบ
USE CASE DIAGRAM


             Buy Tickets



                                                            Clerk
                                   Buy Subscription

            <<include>>

                          <<include>>
                                                       Credit and Service
    Kiosk

            Make Charges


                                        Survey Sales

                                                           Supervisor
CLASS DIAGRAM
                ่                       ั
    เป็ นผังงำนทีแสดงให้เห็นว่ำระบบงำนมีวตถุประเภทใดบ้ำงและแต่ละวัตถุ
                     ่
    มีควำมสัมพันธ์เกียวข้องกันอย่ำงไร
     ควำมสัมพันธ์แบบกำรสืบทอด     (Generalization)
     ควำมสัมพันธ์แบบเป็ นส่วนหนึ่ง (Aggregation)
     ควำมสัมพันธ์แบบเกียวข้องกัน (Association)
                        ่
   จะใช้ในกำรกำหนดคลำส รวมไปถึงกำรติดต่อกันระหว่ำงคลำส
     แสดงรูปแบบควำมสัมพันธ์ระหว่ำงกัน
     แสดงกำรถ่ำยทอดของคลำส

   ถือได้วำสำคัญมำกทีสดใน UML
           ่          ุ่
CLASS DIAGRAM
        Customer
    - name : string        1       *
    - phone : string
    + add () : void            Reservation
                          - date : DateTime




      Subscription Sale                      Individual Reservation                Show

      - series : int                                                        - name : string




               0..1                                     0..1                           1

                               Ticket                             Performance
                                                   1           - date : DateTime      1..*
                       - avaliable : bool
              3..6                                 *           - time : DateTime
                                                        1
SEQUENCE DIAGRAM

                                                                   ่
   ใช้สาหรับการแสดงการทางานย่อยๆ ของวัตถุ โดยเรียงลาดับตามช่วงเวลาทีกาหนด
   ไว้
  แสดงการทางานทีเ่ กิดขึนของหนึง Use case โดยเรียงตามเวลาทีเ่ กิดกิจกรรม
                        ้       ่
     ้
   ขึน
  กิจกรรมย่อยหรือ method จะมีการรับส่ง message ระหว่างวัตถุ
  แสดง scenario ของพฤติกรรมย่อยๆ ของแต่ละ use case
  บางกรณีอาจพบ method ทีมองข้ามจากการรวบรวมความต้องการ
                                  ่
  ช่วยให้เห็น method ว่ามีการร้องขอหรือรับ message จากวัตถุใดบ้าง
SEQUENCE DIAGRAM

                           box office                    credit card service


  kiosk

             Request

          Show Avaliable
              Select


          demand payment

            insert card

                                        message charge

                                          authorized


            eject card

             eject card
COLLABORATION DIAGRAM

 การนาเสนอมุมมองในรูปของการติดต่อโดยการรับและส่ง message ในระหว่าง
  Class
 หนึง use case อาจมีได้หลายเหตุการณ์ (Scenario)
     ่
                                    ่
 แสดงรายละเอียดของการทางานหนึงๆ ตามลาดับของการเรียกใช้งานของแต่ละวัตถุ

 แสดงให้เห็นถึงพารามิเตอร์ หรือตัวแปรทีใ่ ช้
COLLABORATION DIAGRAM

                          kiosk
                 1: request(count,performance)

                                 4: offer(seat_list)




      5: comfirm(seat,cost)

                               8: buy(seat)
                                      3: seat_list:= lock(count)
                       TicketSeller                                      PerformanceDB
                                                      6: claim(seat)
                                      7: unlock(seat_list)

 2: DB:= findDB(performance)




                    PerformanceGuide                                   MultiPerformanceDB
STATE DIAGRAM

 แสดงวงจรชีวตของวัตถุหนึงๆ โดยมีเหตุการณ์ (event) ทีเ่ กิดจากการกระทา
               ิ         ่
  (method) ทาให้สถานะของวัตถุเปลียน    ่
 เป็ นการนาเสนอพฤติกรรมแบบ Dynamic ของวัตถุทมการเปลียนแปลงสถานะตาม
                                                 ี่ ี       ่
  การกระทา
                                     ่
 โดยกาหนดสถานการณ์ทางานของระบบทีประกอบไปด้วย
      State
      Transition
      Event

         ่                                         ้
    หน้าทีหลักคือการแสดงรายละเอียดของคลาสเดียวเท่านัน
STATE DIAGRAM

         Vacancy                               Occupied
                            / Check Out



      / Book
                                               / Check In
                            / Cancel Reserve
               / Cancel


         Booking                               Reserved
                          / Reserve
ACTIVITY DIAGRAM

 คล้ายกับ State Diagram แต่การเปลียนสถานะ (transition) จะไม่ม ี
                                              ่
  เหตุการณ์กระตุ้น
 กาหนดรายละเอียดของกิจกรรมต่างๆ ทีเ่ กิดขึนภายใน Use Case
                                          ้
      ่ ่                   ้             ่ี
 เพือทีจะให้รายละเอียดของขันตอนการทางานทีมความซับซ้อนสูง

          ่
 เน้นไปทีการทางานของวัตถุ
ACTIVITY DIAGRAM
                                                      pick show




                                                  schedude show




   publicize show


                    buy scripts and music        hire artists      build sets   design lighting   maku costumes




     sell ticket

                                      rehearse




                                                          dress rehearse




                                  perform
COMPONENT DIAGRAM
 ใช้สาหรับแสดงรายละเอียดของความสัมพันธ์ขององค์ประกอบต่างๆ ของซอฟต์แวร์
 แสดงให้เห็นถึงความความสัมพันธ์ ของโปรแกรมให้อยู่ในเชิงรูปธรรม
     Source Code
     Binary Code
     Executable Component
COMPONENT DIAGRAM
        CreditCardCharges


                                                                           <<Database>>
                                                                             TicketDB




           suppier charge



                   TicketSeller                                        purchase           status


                                                    groupSales
                                                                                           ManagerInterface




    SbucriptionSales              IndividualSales



  KioskInterface                                          ClerkInterface
DEPLOYMENT DIAGRAM
                         ี ่
  แสดงให้ผูใ้ ช้ได้เห็นวิธการทีซอฟท์แวร์ถูกนาไปใช้
 กาหนด Configuration ของระบบตามมุมมองของสถาปัตยกรรมทางด้าน
  ฮาร์ดแวร์เป็ นหลัก
DEPLOYMENT DIAGRAM

                                     Computer


               ComponentInstance_1               ComponentInstance_2




        ComponentInstance_3            ComponentInstance_4



                                                                         1
                               1
                           *
                                                                           *


            Kiosk                                        Sale Terminal


     ComponentInstance_2
                                                     ComponentInstance_1

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:210
posted:10/29/2012
language:Thai
pages:32