SlideShare a Scribd company logo
1 of 76
Download to read offline
Công cụ và môi trường phát triển phần mềm




                        Phân tích Use-Case




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                       1
Mục tiêu

      w Tìm hiểu mục đích của công đoạn Use-Case Analysis vị trí của
        nó trong chu kỳ sống của qui trình phát triển phần mềm
      w Xác định các class thực hiện một use- case flow of events
      w Phân phối các hành vi (behaviour) của use-case về các class
        của nó, thông qua việc xác định nhiệm vụ của các class
      w Phát triển các use-case realization mô hình hóa collaboration
        giữa các thể hiện của các class đã xác định




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   2
Use-Case Analysis trong ngữ cảnh



                                 Architectural
                                   Analysis


                                                   Architectural    Describe                         Ôn lại the   Architecture
                                                                                       Describe      Architecture Ôn lạier
                     Architect                        Design       Concurrency        Distribution




                                                                       Subsystem Design
                                       Use-Case
                                        Analysis
                                                                                                        Ôn lại the
                                                       Use-Case                                                       Design
                                                                                                        Design
                     Designer                           Design                                                       Ôn lạier


                                                                              Class
                                                                             Design




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                                 3
Tổng quan Use-Case Analysis




                                          Software Architecture
                  Glossary Use-Case            Document
                        Modeling Guidelines                       Analysis Classes
   Supplementary
   Specifications


                                              Use-Case               Use-Case Realization
Use-Case Realization
     (identified)                             Analysis                   (developed)




                     Use-Case Model                               Design Model
                                      Analysis Model (optional)
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                             4
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-Case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Class
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            5
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-Case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Class
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            6
Supplement the Use-Case Description




                                          • Hệ thống truy vấn và
                     • Hệ thống             hiển thị một danh
                       hiển thị một         sách các lớp học
                       danh sách            đang mở từ CSDL
                       các lớp học          course catalog kế
                       (course              thừa từ hệ thống cũ.
                       offerings).

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    7
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-Case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Class
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            8
Ôn lại: Class

      w Là một sự trừu tượng hóa
      w Mô tả một nhóm các đối tượng có chung:
         § Properties (attributes)
         § Behavior (operations)
         § Relationships
         § Ngữ nghĩa (Semantics)
                      Class Name       Professor
                                       name
                      Attributes       empID
                      Operations       create( )
                                       save( )
                                       delete( )
                                       change( )



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                 9
Ôn lại: Use-Case Realization
             Use-Case Model                          Design Model


                     Use Case                       Use-Case Realization




                                Sequence Diagrams         Collaboration Diagrams




                Use Case


Phân tích Use-Case
                                               Class Diagrams
Khoa CNTT - ĐHKHTN                        10
Tìm các Class từ Use-Case Behavior

      w Toàn bộ hành vi của một use case phải được phân bổ về cho
        các analysis class


                     <<boundary>>




                        <<control>>                 <<boundary>>



                                                    <<entity>>

                                      <<entity>>




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                             11
Thế nào là một Analysis Class?


                           <<boundary>>




                                                        <<control>>
                                 Use-case
                                 behavior
                                 coordination
                     System
                     boundary

                                          System
                                                         <<entity>>
                                          information




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                12
Analysis Classes: A First Step Towards Executables




   Use Cases         Analysis Design     Source   Exec
                     Classes Elements     Code
                     Use-Case Analysis
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                 13
Thế nào là một Boundary Class?

      w Làm trung gian giao tiếp với những gì nằm ngoài hệ thống
      w Một số kiểu
         § Các User interface class
         § Các System interface class
         § Các Device interface class
      w Một boundary class cho 1 cặp actor/use case

                                            <<boundary>>
                     Analysis class
                     stereotype



                                      Phụ thuộc môi trường

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                            14
Vai trò của Boundary Class

                     <<boundary>>


                                        <<control>>
                                                         <<boundary>>
    Customer

                     <<boundary>>




                                <<entity>>            <<entity>>



          Mô hình hóa sự tương tác giữa system và môi trường của nó

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                           15
Ví dụ: Tìm các Boundary Class

      w Một boundary class cho 1 cặp actor/use case



                              Student     Register for Courses   Course Catalog System




                          <<boundary>>                         <<boundary>>
                     RegisterForCoursesForm                 CourseCatalogSystem




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                  16
Guidelines: Boundary Class

      w Các User Interface Class
         § Tập trung vào những thông tin gì được thể hiện cho người
           dùng
         § KHÔNG tập trung vào các chi tiết UI
      w Các System và Device Interface Class
         § Tập trung vào những protocols nào phải định nghĩa
         § KHÔNG tập trung vào cách mà các protocol sẽ được cài đặt


                     Tập trung vào các nhiệm vụ, chứ không phải chi tiết!




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                             17
Thế nào là một Entity Class?

      w Các trừu tượng hóa then chốt của system

                                               Analysis class
                                               stereotype

                                                                <<entity>>
                            Glossary



                 Use Case




                               Business-Domain Model

  Architectural Analysis
      Abstractions                      Độc lập môi trường
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                              18
Vai trò của Entity Class

                         <<boundary>>


                                            <<control>>
                                                             <<boundary>>
    Customer

                         <<boundary>>




                                    <<entity>>            <<entity>>




                     Lưu trữ và quản trị các thông tin trong system

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                               19
Ví dụ: Tìm các Entity Class

      w Dùng use-case flow of events như input
      w Các trừu tượng hóa then chốt của use case
      w Hướng tiếp cận truyền thống (nouns filtering)
         § Gạch dưới các cụm danh từ trong flow of events
         § Loại bỏ các ứng viên dư thừa
         § Loại bỏ các ứng viên mơ hồ, không rõ ràng
         § Loại bỏ các actor (ngoài phạm vi)
         § Loại bỏ các kiến trúc cài đặt
         § Loại bỏ các attribute (để lại dùng sau)
         § Loại bỏ các operation



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  20
Ví dụ: Candidate Entity Class

      w Register for Courses (Create Schedule)


                     Student

                                                 CourseOffering




                               Schedule




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    21
Ôn lại: Generalization

      w Một class chia sẻ cấu trúc                           Account
        và/hoặc hành vi của một hay                     balance
        nhiều class                 Superclass          name
      w Mối quan hệ “Là một dạng     (parent)
                                                        number

        của”                                            Withdraw()
      w Trong phân tích, sử dụng ở                      CreateStatement()

        mức độ đơn giản, sơ sài
                                    Generalization
                                     Relationship


                                                 Checking                   Savings
                                   Subclasses
                                                 Withdraw()             GetInterest()
                                                                        Withdraw()




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    22
Finding Generalization: Generalization of Classes

                                       Stock
  Savings            Checking                                                 Tổng quát hơn



                         Bond                         Asset
 RealEstate




                                BankAccount       Security           RealEstate




                        Savings       Checking        Stock   Bond



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                               23
Finding Generalization: Specialization of Classes


           Asset



                                            Asset




                          BankAccount      Security          RealEstate




                     Savings    Checking    Stock     Bond
                                                                          Chuyên biệt hơn


Phân tích Use-Case
Khoa CNTT - ĐHKHTN                         24
Ví dụ: Generalization (Chia sẻ ngữ nghĩa)
                                Part-timeStudent                  Full-timeStudent
                                name                              name
  Không có sự                                                     address
                                address
  tổng quát hóa                 studentID                         studentID
                                numberCourses                     gradDate




                                                 Student
                                                name
   Có sự tổng quát                              address
                                                 studentID
   hóa



                     FulltimeStudent                              ParttimeStudent

                     gradDate                                maxNumCourses



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                           25
Thế nào là một Control Class?

      w Nhà điều phối các hành vi của Use-case
      w Chỉ một control class cho một use case


                                                     <<control>>




                                    Analysis class
                     Use Case       stereotype



                         Phụ thuộc use-case, độc lập môi trường


Phân tích Use-Case
Khoa CNTT - ĐHKHTN                          26
Vai trò của Control Class

                      <<boundary>>


                                         <<control>>
                                                          <<boundary>>
    Customer

                      <<boundary>>




                                 <<entity>>            <<entity>>




                     Điều phối các hành vi của use-case
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                            27
Ví dụ: Tìm các Control Class

      w Một control class cho một use case




                     Student   Register for Courses   Course Catalog System




                                   <<control>>
                               RegistrationController




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                        28
Ví dụ: Summary: Analysis Classes



                     Student       Register for Courses    Course Catalog System


      Use-Case Model

      Design Model

         <<boundary>>                 <<control>>                 <<boundary>>
    RegisterForCoursesForm        RegistrationController       CourseCatalogSystem



                     <<entity>>        <<entity>>             <<entity>>
                      Student          Schedule             CourseOffering



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                          29
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗI use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Class
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            30
Phân bổ Use-case về các Class

      w Đối với mỗi use-case flow of events:
         § Xác định các analysis class
         § Gắn kết các trách nhiệm của use-case cho các analysis
           class
         § Mô hình hóa tương tác của các analysis class trong
           interaction diagram




                           Sequence Diagrams          Collaboration Diagrams
             Use Case               Use-Case Realization



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   31
Guidelines: Allocating Responsibilities to Classes

      w Dùng các A.Class stereotype làm guide:
         § Các Boundary Class
            • Các hành vi liên quan đến sự giao tiếp với actor
         § Các Entity Class
            • Các hành vi liên quan đến dữ liệu được gói trong một
              abstraction
         § Các Control Class
            • Các hành vi đặc thù cho một use case hoặc một phần rất
              quan trọng của flow of events




                                             (còn tiếp)
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  32
Guidelines: Allocating Responsibilities to Classes (tt)

      w Ai có dữ liệu cần cho việc thực hiện nhiệm vụ?
         § Một class có dữ liệu, hãy để nhiệm vụ cùng với dữ liệu
         § Nhiều class có dữ liệu :
            • Hãy để nhiệm vụ trong 1 class và thêm quan hệ với các
               class khác.
            • Tạo một class mới, để nhiệm vụ trong class mới này, và
               thêm quan hệ với các class cũ
            • Hãy để nhiệm vụ trong control class, và thêm quan hệ
               với các class cần để thực hiện nhiệm vụ




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   33
The Anatomy of Sequence Diagrams
                     Client Object                            Supplier Object


                            :Client                                   :Supplier


                                            Object Lifeline
                                                                                  Reflexive Message
                                           1: PerformResponsibility
        Đây là một script
        mẫu
                                                                                     1.1: PerformAnother
                                                                                        Responsibility
                                      Message

                                                                                  Hierarchical Message
                                                                                       Numbering
                                            Focus of Control
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                    34
Ví dụ: Sequence Diagram

                                          :                                      :                         :                                       : Schedule   : Student
                                                                                                                                : Course Catalog
      : Student               RegisterForCoursesForm                 RegistrationController      CourseCatalogSystem


               1. // create schedule( )

                                                1.1. // get course offerings( )
     Student wishes to
     create a new                                                       1.1.1. // get course offerings(forSemester)
     schedule
                                                                                                        1.1.1.1. // get course offerings( )


                                1.2. // display course offerings( )
  A list of the available
  course offerings for this
  semester are displayed


  A blank schedule
                                 1.3. // display blank schedule( )
  is displayed for the
  students to select
  offerings



2. // select 4 primary and 2 alternate offerings( )

                                          2.1. // create schedule with offerings( )
                                                                                                     2.1.1. // create with offerings( )

                                                                                                              2.1.2. // add schedule(Schedule)

    At this, point the Submit Schedule subflow is executed.
   Phân tích Use-Case
   Khoa CNTT - ĐHKHTN                                                                          35
Ví dụ: Sequence Diagram (cont.)

               : RegisterForCoursesForm      : RegistrationController     : Schedule                      :               : CourseOffering         : Student
: Student                                                                                    PrimaryScheduleOfferingInfob



   1. // submit schedule( )

                              1.1. // submit schedule( )
                                                            1.1.1. // save( )


                                                           1.1.2. // submit( )
                                                                                     1.1.2.1. // is selected?( )

                                                                                          [ is selected ]
                                                                                                  1.1.2.2. // has pre-requisites(CourseOffering)
                                         Repeat for all primary
                                         course offerings.                                         1.1.2.3. // still open?( )
                                         An attempt is made
                                         to register the                1.1.2.4. // any conflicts?( )
                                         student for all
                                         selected course
                                         offerings                                          [ has pre-requisites, course offering open,
                                                                                            and no schedule conflicts ]
                                                                                              1.1.2.5. // add student(Schedule)

                                                                            1.1.2.6. // mark as enrolled in( )


 Phân tích Use-Case
 Khoa CNTT - ĐHKHTN                                                             36
The Anatomy of Collaboration Diagrams


                     Client Object
                                     Link               Supplier Object

                       :Client


                                                                :Supplier
                                     1: PerformResponsibility




                                 Message

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                        37
Ví dụ: Collaboration Diagram

                                       1.2. // display course offerings( )
                                       1.3. // display blank schedule( )


               1. // create schedule( )
  2. // select 4 primary and 2 alternate offerings( )
                                             : RegisterForCoursesForm

                                                                                                                              : Course Catalog
: Student
                                                 1.1. // get course offerings( )
                                                                                                        1.1.1.1. // get course offerings( )
                                           2.1. // create schedule with offerings( )



                                              : RegistrationController // get course offerings(forSemester) : CourseCatalogSystem
                                                                  1.1.1.


                                                           2.1.1. // create with offerings( )
                                2.1.2. // add schedule(Schedule)


                               : Student                                              :
                                                                                   Schedule




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                                       38
Ví dụ: Collaboration Diagram (cont.)

         1. // submit schedule( )
                                       : RegisterForCoursesForm



: Student                                                                                 1.1.2.4. // any conflicts?( )

                                             1.1. // submit schedule( )

                                                                           1.1.1. // save( )                     1.1.2.3. // still open?( )
                                                                          1.1.2. // submit( )              1.1.2.5. // add student(Schedule)
                                                    :                                                   :                                      :
                                         RegistrationController                                     Schedule                             CourseOffering




                                                         1.1.2.1. // is selected?( )                1.1.2.2. // has pre-requisites(CourseOffering)
                                                     1.1.2.6. // mark as enrolled in( )

                                                  :
                                    PrimaryScheduleOfferingInfob

                                                                                                                  : Student




 Phân tích Use-Case
 Khoa CNTT - ĐHKHTN                                                            39
Một lược đồ tương tác là chưa đủ

   Basic Flow
                            Alternate Flow 1   Alternate Flow 2   Alternate Flow 3



AF3
                     AF1

                      AF2
                            Alternate Flow 4   Alternate Flow 5   Alternate Flow n




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                             40
Collaboration Diagrams Vs Sequence Diagrams

      w Collaboration Diagrams              w Sequence Diagrams
         § Chỉ ra các mối quan hệ              § Chỉ ra rõ ràng chuỗi các
           bổ sung cho các tương                 thông điệp
           tác                                 § Trực quan hóa tốt hơn
         § Trực quan hóa tốt hơn                 toàn bộ luồng sự kiện
           các mẫu cộng tác                    § Tốt hơn cho các đặc tả
         § Trực quan hóa tốt hơn                 real-time và cho các
           các hiệu ứng tác động                 scenario phức tạp
           lên một đối tượng cụ
         § Dễ sử dụng hơn trong
           các vấn đề cần giải quyết
           tập thể



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                     41
Exercise: Use-Case Analysis, Part 1

      w Hãy xây dựng:
         § Use-Case Model, đặc biệt là các use-case flows of events
         § Các trừu tượng hóa/class then chốt
      w Hãy xác định các thông tin sau cho một use case cụ thể:
         § Các analysis class, cùng với chúng là:
            • Brief descriptions
            • Stereotypes
            • Responsibilities
         § Các collaboration cần thiết để cài đặt use case


                                                   (còn tiếp)

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   42
Exercise: Use-Case Analysis, Part 1 (tt)

      w Với một use case cụ thể, hãy thiết lập:
         § Use-case realization interaction diagram cho tối thiểu một
           trong các use-case flows of events




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    43
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗI use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Classs
      w Với mỗI analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            44
Miêu tả các trách nhiệm

      w Trách nhiệm (responsibilities) là gì?
      w Làm thế nào để tìm ra chúng?

      Interaction Diagram

                      :Client                                :Supplier

                                  // PerformResponsibility




      Class Diagram
                                       Supplier

                                // PerformResponsibility

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                           45
Ví dụ: View of Participating Classes (VOPC) Class
Diagram
                                                            <<control>>
                                                        RegistrationController                <<boundary>>
                  <<boundary>>                                                             CourseCatalogSystem
             RegisterForCoursesForm               // get course offerings()
                                                  // submit schedule()                    // get course offerings()
// submit schedule()                              // create schedule with offerings()
// display course offerings()
// display schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()                                                    <<entity>>
// display blank schedule()                                        <<entity>>                 ScheduleOfferingInfo
                                                                    Schedule                 status

                                                            // create with offerings()       // mark as selected()
                                                            // submit()                      // mark as cancelled()
                                                            // save()                        // is selected?()
                          <<entity>>
                           Student

                     // add schedule()                            <<entity>>
                     // has pre-requisites()                    CourseOffering                    <<entity>>
                                                           number : String = "100"        PrimaryScheduleOfferingInfo
                                                           startTime : Time              grade
                                                           endTime : Time
                                                           days : Enum                   // is enrolled in?()
                                                                                         // mark as enrolled in()
                                                           // add student()
                                                           // still open?()
                                                           // save()

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                                 46
Quản lý sự toàn vẹn: những điều quan tâm

      w Xét theo trình tự
         § Dư thừa trách nhiệm giữa các lớp
         § Các trách nhiệm bị tách rời giữa các lớp
         § Lớp chỉ có một trách nhiệm
         § Lớp không có trách nhiệm
         § Sự phân tán các hành vi
         § Lớp có quá nhiều tương tác với các lớp khác




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  47
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗI use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Classs
      w Với mỗI analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            48
Miêu tả các thuộc tính và các mối quan hệ

      w Định nghĩa các Attribute
      w Thiết lập các mối quan hệ dạng Aggregation và Association




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  49
Ôn lại: thế nào là thuộc tính ?

                             <<stereotype>>
                           ClassName
                     Attribute : Type = InitValue
                     Attribute : Type = InitValue
                     Attribute : Type = InitValue


                                                    Trong analysis, không nên
                                                    tốn nhiều thời gian cho
                               <<entity>>           việc xác định các attribute
                        CourseOffering              signature
                     number :String=“100”
                     startTime : Time
                     endTime: Time
     attribute       days: enum




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                          50
Cách tìm các thuộc tính

      w Các thuộc tính/đặc điểm của các class
      w Các thông tin đc giữ lại bởi các class
      w Các “danh từ” không biến thành class
         § Các thông tin mà giá trị của chúng là quan trọng
         § Các thông tin ddc sở hữu bởi 1 object duy nhất
         § Các thông tin không có hành vi




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   51
Ôn lại: thế nào là một mối quan hệ

      w Mô hình hóa một liên hệ ngữ nghĩa giữa các thể hiện
        (instances) của các class

                     <<entity>>                                           <<entity>>
                      Student                                           CourseOffering

                                       Simple
                                       association

                                                                         is a pre-requisite of
                                         <<entity>>
                                         Schedule
                                                                                         <<entity>>
                                                                                          Course
                                                          Reflexive
                                                          association
                                  Association là một quan hệ cấu trúc
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                   52
Ôn lại: thế nào là các vai trò ?

      w Nhân vật” mà một class “đóng vai” trong association

                       <<entity>>                     <<entity>>
                     CourseOffering                   Professor
                                         Instructor


                            Role Name                      Department head

                                                      <<entity>>
                        Pre-requisites                Department
                         <<entity>>
                           Course




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                        53
Ví dụ: quan hệ đa kết hợp


                                    primaryCourses
        <<entity>>                                         <<entity>>
         Schedule                                         CourseOffering

                                       alternateCourses




                                 add student to
      <<entity>>                                               <<entity>>
       Schedule                   remove student from         CourseOffering




              Các multiple association phải phản ánh các multiple role
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                        54
Ôn lại: bản số (Multiplicity)

      w Không mô tả
      w Duy nhất một
                                        1
      w Zero hoặc nhiều (many,
        unlimited)                      0..*

                                        *

      w      Một hoặc nhiều             1..*

      w      Zero hoặc 1                0..1

      w      Một đoạn                   2..4
      w      Nhiều đoạn rời nhau        2, 4..6




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                 55
Ví dụ: Multiplicity



                                                           Bản số




     <<entity>>                 <<entity>>   0..*                                    0..4
                     1   0..*                                       primaryCourses            <<entity>>
      Student                   Schedule
                                                    0..*                       0..2         CourseOffering
                                                               alternateCourses




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                              56
Ôn lại: Navigability

      w Khả năng định hướng từ associating class đến target class



                             Class1                     Class2
             Hai chiều




               Một chiều     Class1                     Class2




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    57
Ví dụ: Navigability

                     <<boundary>>                1                                       <<control>>
                                                                              1
                RegisterForCoursesForm                                               RegistrationController




                                            1-way navigation




                                  0..*                                       0..4
                     <<entity>>                                 primaryCourses        <<entity>>
                     Schedule                                          0..2         CourseOffering
                                         0..*
                                                          alternateCourses




                                                                2-way navigation
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                         58
Ôn lại: Quan hệ Aggregation?

      w Một dạng đặc biệt của association dùng để mô hình hóa một
        mối quan hệ toàn thể-bộ phận giữa toàn thể và các phần của
        nó

        Whole/aggregate          part




     <<entity>>                         <<entity>>   0..*                             0..4
                     1    0..*                                      primaryCourses             <<entity>>
      Student                           Schedule
                                                            0..*                0..2         CourseOffering
                                                                   alternateCourses




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                      59
Association hay Aggregation?

      w Xem xét
         § Ngữ cảnh, các đặc trưng độc lập của Class2


                                    Class1                      Class2
                                                  association




                                    Class1                      Class2
                                                  aggregation




                     Khi cảm thấy nghi ngờ hãy dùng association
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                           60
Lớp kết hợp (Association Class)

      w Một class “được gắn” vào một association
      w Chứa các thuộc tính của relationship
      w Một thể hiện / 1 link                <<entity>>
                                                          ScheduleOfferingInfo
                                                        status

                                                        // mark as selected()
                                                        // mark as cancelled()
                                                        // is selected?()



                                                                                 alternateCourses
                                                 0..*                                           0..2
                                    <<entity>>                                                            <<entity>>
                                     Schedule                                                            CourseOffering
                                                 0..*                            primaryCourses
                                                                                                  0..4


                                                  <<entity>>
                                          PrimaryScheduleOfferingInfob
                                         grade

                                         // is enrolled in?()
Phân tích Use-Case
                                         // mark as enrolled in()
Khoa CNTT - ĐHKHTN                       // mark as committed()
                                             61
Xác định các mối quan hệ

                                                    1: PerformResponsibility

    Collaboration                 :Client                                       :Supplier
    Diagram
                                             Link
                     Client                                                               Supplier


    Class
                         Client                                  0..*          Supplier
    Diagram                           0..*
                                                    Prime suppliers
                                                                        PerformResponsibility()


                        Association

                              Tạo Relationship cho mọi link!
Phân tích Use-Case
Khoa CNTT - ĐHKHTN                            62
Ví dụ: VOPC: Xác định các quan hệ
                                                                                      <<boundary>>
                                                                                  RegisterForCoursesForm
                                                                    // create schedule ()
                                                                    // display course offerings ()
                                                                    // display blank schedule
                                                                    // select 4 primary and 2 alternate offerings()
                                                                                                   1

                                                                                                   1
                          <<boundary>>                                                   <<control>>
                       CourseCatalogSystem                  1            0..*
                                                                                     RegistrationController

                // get course offerings(forSemester)                             // get course offerings()
                                                                                 // create schedule with offerings
                                                                         0..1               0..1

                                              0..1
                                                       registrant                             1        currentSchedule
                                            <<entity>>                                     <<entity>>
                                             Student                                        Schedule

                                   // add schedule (Schedule)                       // create with offerings()


Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                                          63
Ví dụ: VOPC: Xác định các quan hệ (tt)

                                                                   <<entity>>
                                                           PrimaryScheduleOfferingInfob
                                                          grade

                                                          // is enrolled in?()                                        <<entity>>
                                                          // mark as enrolled in()                                  CourseOffering
                     <<entity>>                                                                                number : String = "100"
                      Schedule                                                                                 startTime : Time
                                                                                            primaryCourses     endTime : Time
// cancel(theOffering : CourseOffering)                                                                        days : Enum
// submit()                               0..*                                                          0..4
// any conflicts?()                                                                                           // add student()
// create with offerings()                0..*                                       alternateCourses    0..2 // cancel()
                                                                                                              // still open?()
                                                                                                              // save()

                                                       <<entity>>
                                                  ScheduleOfferingInfo
                                                 status

                                                 // mark as selected()
                                                 // mark as cancelled()
                                                 // is selected?()




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                                 64
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Classs
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            65
Mô tả các cơ chế phân tích

      w Tập hợp tất cả analysis mechanisms trong 1 danh sách
      w Vẽ một ánh xạ các client classes đến các analysis mechanism



                     Analysis Class        Analysis Mechanism(s)




      w Xác định các đặc trưng của Analysis Mechanisms




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    66
Ví dụ: Miêu tả các cơ chế phân tích

      w Ánh xạ giữa Analysis class và analysis mechanism



                               Analysis Class          Analysis Mechanism(s)

                     Student                    Persistency, Security
                     Schedule                   Persistency, Security
                     CourseOffering             Persistency, Legacy Interface
                     Course                     Persistency, Legacy Interface
                     RegistrationController     Distribution




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                                67
Ví dụ: Miêu tả các cơ chế phân tích (cont.)

      w Các đặc trưng của Analysis mechanism
      w Persistency của Schedule class:
         § Granularity: 1 đến 10 Kbytes / sản phẩm
         § Volume: tối đa 2,000 schedule
         § Access frequency
            • Create: 500 lần / ngày
            • Read: 2,000 lần / giờ
            • Update: 1,000 lần / ngày
            • Delete: 50 lần / ngày
         § ….



Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  68
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Classs
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            69
Hợp nhất các lớp phân tích


                         <<boundary>>




                          <<control>>




                     <<entity>>        <<entity>>




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                70
Đánh giá các kết quả




                                                              Glossary
                     Design Model

                                             Supplementary
                                              Specification




                                                   Use-Case Model
                     Analysis Classes


Phân tích Use-Case
Khoa CNTT - ĐHKHTN                      71
Các bước trong Use-Case Analysis

      w Bổ sung mô tả Use-case
      w Với mỗi use-case realization
        § Tìm các Class từ Use-Case Behavior
        § Phân bổ Use-Case Behavior về các Classs
      w Với mỗi analysis class đã tìm thấy
        § Mô tả nhiệm vụ của chúng
        § Mô tả các Attribute và các Association
        § Lượng giá (qualify) các Analysis Mechanism
      w Hợp nhất các Analysis Class
      w Checkpoints

Phân tích Use-Case
Khoa CNTT - ĐHKHTN            72
Checkpoints: Analysis Classes

      w Các class có hợp lý không?
      w Tên của các class có phản ánh đúng vai trò của chúng?
      w Class có biểu diễn 1 single well-defined abstraction?
      w Tất cả các attribute và responsibility có gắn kết với nhau về mặt
        chức năng không?
      w Class có cung cấp các hành vi được y/c?
      w Tất cả các yêu cầu cụ thể đã được thể hiện trên class chưa?




                                                      (còn tiếp)


Phân tích Use-Case
Khoa CNTT - ĐHKHTN                    73
Checkpoints: Use-Case Realizations

      w Tất cả các luồng chính và luồng con đã được điều khiển chưa,
        bao gồm cả các trường hợp ngoài lệ?
      w Đã tìm thấy tất cả các đối tượng cần thiết?
      w Đã phân phối một cách rõ ràng tất cả các hành vi về các đối
        tượng chưa?
      w Các hành vi có được phân phối về đúng đối tượng không?
      w Các interaction diagrams nằm ở đâu, mối quan hê gwiax chúng
        có rõ ràng và phù hợp không?




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  74
Ôn lại: Use-Case Analysis

      w Mục tiêu của Use-Case Analysis là gì?
      w Một analysis class là gì? Cho biết tên và mô tả về 3 analysis
        stereotype.
      w Use-case realization là gì?
      w Mô tả một vài hoạt động khảo sát when đặt các trách nhiệm cho
        các analysis class.
      w Bao nhiêu interaction diagram phải được xây dựng trong giai
        đoạn Use-Case Analysis?




Phân tích Use-Case
Khoa CNTT - ĐHKHTN                  75
Bài tập: Use-Case Analysis, Part 2

      w Hãy cho biết các khái niệm sau:
         § Các Requirements artifact, đặc biệt là đặc tả bổ sung
         § Các cơ chế phân tích có thể
         § Các flow of events interaction diagram cho một use case cụ
           thể
      w Với mỗi use case hãy xác định các dữ kiện sau:
         § Các thuộc tính và các mối quan hệ của Analysis class
         § Các cơ chế phân tích Analysis class
      w Xây dựng các lược đồ sau:
         § VOPC class diagram, chứa các analysis class, stereotype
           của chúng, nhiệm vụ, các attribute, và relationship.
         § Ánh xạ Analysis class với các cơ chế phân tích

Phân tích Use-Case
Khoa CNTT - ĐHKHTN                   76

More Related Content

Similar to Ccmtptpm 07 phantichuse-case

Ccmtptpm 05 tongquanvephantichvathietke
Ccmtptpm 05 tongquanvephantichvathietkeCcmtptpm 05 tongquanvephantichvathietke
Ccmtptpm 05 tongquanvephantichvathietke
Nguyen Tran
 
Ccmtptpm 13 thietkeclass
Ccmtptpm 13 thietkeclassCcmtptpm 13 thietkeclass
Ccmtptpm 13 thietkeclass
Nguyen Tran
 
61 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth0761 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth07
thanhdanh9000
 
61 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth0761 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth07
thanhdanh9000
 
Kế hoạch bài dạy
Kế hoạch bài dạyKế hoạch bài dạy
Kế hoạch bài dạy
ann_nguyen
 
Ccmtptpm 04 xacdinhyeucau
Ccmtptpm 04 xacdinhyeucauCcmtptpm 04 xacdinhyeucau
Ccmtptpm 04 xacdinhyeucau
Nguyen Tran
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Van Pham
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Jenny Nguyen
 

Similar to Ccmtptpm 07 phantichuse-case (13)

Ccmtptpm 05 tongquanvephantichvathietke
Ccmtptpm 05 tongquanvephantichvathietkeCcmtptpm 05 tongquanvephantichvathietke
Ccmtptpm 05 tongquanvephantichvathietke
 
Ccmtptpm 13 thietkeclass
Ccmtptpm 13 thietkeclassCcmtptpm 13 thietkeclass
Ccmtptpm 13 thietkeclass
 
61 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth0761 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth07
 
61 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth0761 de thi_dapan_hkp_pttkhdtuml_cdth07
61 de thi_dapan_hkp_pttkhdtuml_cdth07
 
Kế hoạch bài dạy
Kế hoạch bài dạyKế hoạch bài dạy
Kế hoạch bài dạy
 
notes2
notes2notes2
notes2
 
Ccmtptpm 04 xacdinhyeucau
Ccmtptpm 04 xacdinhyeucauCcmtptpm 04 xacdinhyeucau
Ccmtptpm 04 xacdinhyeucau
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEM
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Luận văn: Mô hình hóa chương trình phần mềm hướng khía cạnh
Luận văn: Mô hình hóa chương trình phần mềm hướng khía cạnhLuận văn: Mô hình hóa chương trình phần mềm hướng khía cạnh
Luận văn: Mô hình hóa chương trình phần mềm hướng khía cạnh
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
 
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntuBai11 quan ly-kiemtra-ktrpm@softtesting-nntu
Bai11 quan ly-kiemtra-ktrpm@softtesting-nntu
 
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượngLuận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
 

More from Nguyen Tran (20)

Se 06
Se 06Se 06
Se 06
 
12report
12report12report
12report
 
11script
11script11script
11script
 
10team
10team10team
10team
 
09componentdeployment
09componentdeployment09componentdeployment
09componentdeployment
 
08activity
08activity08activity
08activity
 
07state
07state07state
07state
 
06collaboration
06collaboration06collaboration
06collaboration
 
05sequence
05sequence05sequence
05sequence
 
04class
04class04class
04class
 
03usecase
03usecase03usecase
03usecase
 
02intro
02intro02intro
02intro
 
01about
01about01about
01about
 
Clear case
Clear caseClear case
Clear case
 
Business process excution language
Business process excution languageBusiness process excution language
Business process excution language
 
Vs doc man
Vs doc manVs doc man
Vs doc man
 
Cm mi
Cm miCm mi
Cm mi
 
Sql packager
Sql packagerSql packager
Sql packager
 
Snag it
Snag itSnag it
Snag it
 
Record mydesktop
Record mydesktopRecord mydesktop
Record mydesktop
 

Ccmtptpm 07 phantichuse-case

  • 1. Công cụ và môi trường phát triển phần mềm Phân tích Use-Case Phân tích Use-Case Khoa CNTT - ĐHKHTN 1
  • 2. Mục tiêu w Tìm hiểu mục đích của công đoạn Use-Case Analysis vị trí của nó trong chu kỳ sống của qui trình phát triển phần mềm w Xác định các class thực hiện một use- case flow of events w Phân phối các hành vi (behaviour) của use-case về các class của nó, thông qua việc xác định nhiệm vụ của các class w Phát triển các use-case realization mô hình hóa collaboration giữa các thể hiện của các class đã xác định Phân tích Use-Case Khoa CNTT - ĐHKHTN 2
  • 3. Use-Case Analysis trong ngữ cảnh Architectural Analysis Architectural Describe Ôn lại the Architecture Describe Architecture Ôn lạier Architect Design Concurrency Distribution Subsystem Design Use-Case Analysis Ôn lại the Use-Case Design Design Designer Design Ôn lạier Class Design Phân tích Use-Case Khoa CNTT - ĐHKHTN 3
  • 4. Tổng quan Use-Case Analysis Software Architecture Glossary Use-Case Document Modeling Guidelines Analysis Classes Supplementary Specifications Use-Case Use-Case Realization Use-Case Realization (identified) Analysis (developed) Use-Case Model Design Model Analysis Model (optional) Phân tích Use-Case Khoa CNTT - ĐHKHTN 4
  • 5. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-Case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Class w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 5
  • 6. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-Case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Class w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 6
  • 7. Supplement the Use-Case Description • Hệ thống truy vấn và • Hệ thống hiển thị một danh hiển thị một sách các lớp học danh sách đang mở từ CSDL các lớp học course catalog kế (course thừa từ hệ thống cũ. offerings). Phân tích Use-Case Khoa CNTT - ĐHKHTN 7
  • 8. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-Case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Class w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 8
  • 9. Ôn lại: Class w Là một sự trừu tượng hóa w Mô tả một nhóm các đối tượng có chung: § Properties (attributes) § Behavior (operations) § Relationships § Ngữ nghĩa (Semantics) Class Name Professor name Attributes empID Operations create( ) save( ) delete( ) change( ) Phân tích Use-Case Khoa CNTT - ĐHKHTN 9
  • 10. Ôn lại: Use-Case Realization Use-Case Model Design Model Use Case Use-Case Realization Sequence Diagrams Collaboration Diagrams Use Case Phân tích Use-Case Class Diagrams Khoa CNTT - ĐHKHTN 10
  • 11. Tìm các Class từ Use-Case Behavior w Toàn bộ hành vi của một use case phải được phân bổ về cho các analysis class <<boundary>> <<control>> <<boundary>> <<entity>> <<entity>> Phân tích Use-Case Khoa CNTT - ĐHKHTN 11
  • 12. Thế nào là một Analysis Class? <<boundary>> <<control>> Use-case behavior coordination System boundary System <<entity>> information Phân tích Use-Case Khoa CNTT - ĐHKHTN 12
  • 13. Analysis Classes: A First Step Towards Executables Use Cases Analysis Design Source Exec Classes Elements Code Use-Case Analysis Phân tích Use-Case Khoa CNTT - ĐHKHTN 13
  • 14. Thế nào là một Boundary Class? w Làm trung gian giao tiếp với những gì nằm ngoài hệ thống w Một số kiểu § Các User interface class § Các System interface class § Các Device interface class w Một boundary class cho 1 cặp actor/use case <<boundary>> Analysis class stereotype Phụ thuộc môi trường Phân tích Use-Case Khoa CNTT - ĐHKHTN 14
  • 15. Vai trò của Boundary Class <<boundary>> <<control>> <<boundary>> Customer <<boundary>> <<entity>> <<entity>> Mô hình hóa sự tương tác giữa system và môi trường của nó Phân tích Use-Case Khoa CNTT - ĐHKHTN 15
  • 16. Ví dụ: Tìm các Boundary Class w Một boundary class cho 1 cặp actor/use case Student Register for Courses Course Catalog System <<boundary>> <<boundary>> RegisterForCoursesForm CourseCatalogSystem Phân tích Use-Case Khoa CNTT - ĐHKHTN 16
  • 17. Guidelines: Boundary Class w Các User Interface Class § Tập trung vào những thông tin gì được thể hiện cho người dùng § KHÔNG tập trung vào các chi tiết UI w Các System và Device Interface Class § Tập trung vào những protocols nào phải định nghĩa § KHÔNG tập trung vào cách mà các protocol sẽ được cài đặt Tập trung vào các nhiệm vụ, chứ không phải chi tiết! Phân tích Use-Case Khoa CNTT - ĐHKHTN 17
  • 18. Thế nào là một Entity Class? w Các trừu tượng hóa then chốt của system Analysis class stereotype <<entity>> Glossary Use Case Business-Domain Model Architectural Analysis Abstractions Độc lập môi trường Phân tích Use-Case Khoa CNTT - ĐHKHTN 18
  • 19. Vai trò của Entity Class <<boundary>> <<control>> <<boundary>> Customer <<boundary>> <<entity>> <<entity>> Lưu trữ và quản trị các thông tin trong system Phân tích Use-Case Khoa CNTT - ĐHKHTN 19
  • 20. Ví dụ: Tìm các Entity Class w Dùng use-case flow of events như input w Các trừu tượng hóa then chốt của use case w Hướng tiếp cận truyền thống (nouns filtering) § Gạch dưới các cụm danh từ trong flow of events § Loại bỏ các ứng viên dư thừa § Loại bỏ các ứng viên mơ hồ, không rõ ràng § Loại bỏ các actor (ngoài phạm vi) § Loại bỏ các kiến trúc cài đặt § Loại bỏ các attribute (để lại dùng sau) § Loại bỏ các operation Phân tích Use-Case Khoa CNTT - ĐHKHTN 20
  • 21. Ví dụ: Candidate Entity Class w Register for Courses (Create Schedule) Student CourseOffering Schedule Phân tích Use-Case Khoa CNTT - ĐHKHTN 21
  • 22. Ôn lại: Generalization w Một class chia sẻ cấu trúc Account và/hoặc hành vi của một hay balance nhiều class Superclass name w Mối quan hệ “Là một dạng (parent) number của” Withdraw() w Trong phân tích, sử dụng ở CreateStatement() mức độ đơn giản, sơ sài Generalization Relationship Checking Savings Subclasses Withdraw() GetInterest() Withdraw() Phân tích Use-Case Khoa CNTT - ĐHKHTN 22
  • 23. Finding Generalization: Generalization of Classes Stock Savings Checking Tổng quát hơn Bond Asset RealEstate BankAccount Security RealEstate Savings Checking Stock Bond Phân tích Use-Case Khoa CNTT - ĐHKHTN 23
  • 24. Finding Generalization: Specialization of Classes Asset Asset BankAccount Security RealEstate Savings Checking Stock Bond Chuyên biệt hơn Phân tích Use-Case Khoa CNTT - ĐHKHTN 24
  • 25. Ví dụ: Generalization (Chia sẻ ngữ nghĩa) Part-timeStudent Full-timeStudent name name Không có sự address address tổng quát hóa studentID studentID numberCourses gradDate Student name Có sự tổng quát address studentID hóa FulltimeStudent ParttimeStudent gradDate maxNumCourses Phân tích Use-Case Khoa CNTT - ĐHKHTN 25
  • 26. Thế nào là một Control Class? w Nhà điều phối các hành vi của Use-case w Chỉ một control class cho một use case <<control>> Analysis class Use Case stereotype Phụ thuộc use-case, độc lập môi trường Phân tích Use-Case Khoa CNTT - ĐHKHTN 26
  • 27. Vai trò của Control Class <<boundary>> <<control>> <<boundary>> Customer <<boundary>> <<entity>> <<entity>> Điều phối các hành vi của use-case Phân tích Use-Case Khoa CNTT - ĐHKHTN 27
  • 28. Ví dụ: Tìm các Control Class w Một control class cho một use case Student Register for Courses Course Catalog System <<control>> RegistrationController Phân tích Use-Case Khoa CNTT - ĐHKHTN 28
  • 29. Ví dụ: Summary: Analysis Classes Student Register for Courses Course Catalog System Use-Case Model Design Model <<boundary>> <<control>> <<boundary>> RegisterForCoursesForm RegistrationController CourseCatalogSystem <<entity>> <<entity>> <<entity>> Student Schedule CourseOffering Phân tích Use-Case Khoa CNTT - ĐHKHTN 29
  • 30. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗI use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Class w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 30
  • 31. Phân bổ Use-case về các Class w Đối với mỗi use-case flow of events: § Xác định các analysis class § Gắn kết các trách nhiệm của use-case cho các analysis class § Mô hình hóa tương tác của các analysis class trong interaction diagram Sequence Diagrams Collaboration Diagrams Use Case Use-Case Realization Phân tích Use-Case Khoa CNTT - ĐHKHTN 31
  • 32. Guidelines: Allocating Responsibilities to Classes w Dùng các A.Class stereotype làm guide: § Các Boundary Class • Các hành vi liên quan đến sự giao tiếp với actor § Các Entity Class • Các hành vi liên quan đến dữ liệu được gói trong một abstraction § Các Control Class • Các hành vi đặc thù cho một use case hoặc một phần rất quan trọng của flow of events (còn tiếp) Phân tích Use-Case Khoa CNTT - ĐHKHTN 32
  • 33. Guidelines: Allocating Responsibilities to Classes (tt) w Ai có dữ liệu cần cho việc thực hiện nhiệm vụ? § Một class có dữ liệu, hãy để nhiệm vụ cùng với dữ liệu § Nhiều class có dữ liệu : • Hãy để nhiệm vụ trong 1 class và thêm quan hệ với các class khác. • Tạo một class mới, để nhiệm vụ trong class mới này, và thêm quan hệ với các class cũ • Hãy để nhiệm vụ trong control class, và thêm quan hệ với các class cần để thực hiện nhiệm vụ Phân tích Use-Case Khoa CNTT - ĐHKHTN 33
  • 34. The Anatomy of Sequence Diagrams Client Object Supplier Object :Client :Supplier Object Lifeline Reflexive Message 1: PerformResponsibility Đây là một script mẫu 1.1: PerformAnother Responsibility Message Hierarchical Message Numbering Focus of Control Phân tích Use-Case Khoa CNTT - ĐHKHTN 34
  • 35. Ví dụ: Sequence Diagram : : : : Schedule : Student : Course Catalog : Student RegisterForCoursesForm RegistrationController CourseCatalogSystem 1. // create schedule( ) 1.1. // get course offerings( ) Student wishes to create a new 1.1.1. // get course offerings(forSemester) schedule 1.1.1.1. // get course offerings( ) 1.2. // display course offerings( ) A list of the available course offerings for this semester are displayed A blank schedule 1.3. // display blank schedule( ) is displayed for the students to select offerings 2. // select 4 primary and 2 alternate offerings( ) 2.1. // create schedule with offerings( ) 2.1.1. // create with offerings( ) 2.1.2. // add schedule(Schedule) At this, point the Submit Schedule subflow is executed. Phân tích Use-Case Khoa CNTT - ĐHKHTN 35
  • 36. Ví dụ: Sequence Diagram (cont.) : RegisterForCoursesForm : RegistrationController : Schedule : : CourseOffering : Student : Student PrimaryScheduleOfferingInfob 1. // submit schedule( ) 1.1. // submit schedule( ) 1.1.1. // save( ) 1.1.2. // submit( ) 1.1.2.1. // is selected?( ) [ is selected ] 1.1.2.2. // has pre-requisites(CourseOffering) Repeat for all primary course offerings. 1.1.2.3. // still open?( ) An attempt is made to register the 1.1.2.4. // any conflicts?( ) student for all selected course offerings [ has pre-requisites, course offering open, and no schedule conflicts ] 1.1.2.5. // add student(Schedule) 1.1.2.6. // mark as enrolled in( ) Phân tích Use-Case Khoa CNTT - ĐHKHTN 36
  • 37. The Anatomy of Collaboration Diagrams Client Object Link Supplier Object :Client :Supplier 1: PerformResponsibility Message Phân tích Use-Case Khoa CNTT - ĐHKHTN 37
  • 38. Ví dụ: Collaboration Diagram 1.2. // display course offerings( ) 1.3. // display blank schedule( ) 1. // create schedule( ) 2. // select 4 primary and 2 alternate offerings( ) : RegisterForCoursesForm : Course Catalog : Student 1.1. // get course offerings( ) 1.1.1.1. // get course offerings( ) 2.1. // create schedule with offerings( ) : RegistrationController // get course offerings(forSemester) : CourseCatalogSystem 1.1.1. 2.1.1. // create with offerings( ) 2.1.2. // add schedule(Schedule) : Student : Schedule Phân tích Use-Case Khoa CNTT - ĐHKHTN 38
  • 39. Ví dụ: Collaboration Diagram (cont.) 1. // submit schedule( ) : RegisterForCoursesForm : Student 1.1.2.4. // any conflicts?( ) 1.1. // submit schedule( ) 1.1.1. // save( ) 1.1.2.3. // still open?( ) 1.1.2. // submit( ) 1.1.2.5. // add student(Schedule) : : : RegistrationController Schedule CourseOffering 1.1.2.1. // is selected?( ) 1.1.2.2. // has pre-requisites(CourseOffering) 1.1.2.6. // mark as enrolled in( ) : PrimaryScheduleOfferingInfob : Student Phân tích Use-Case Khoa CNTT - ĐHKHTN 39
  • 40. Một lược đồ tương tác là chưa đủ Basic Flow Alternate Flow 1 Alternate Flow 2 Alternate Flow 3 AF3 AF1 AF2 Alternate Flow 4 Alternate Flow 5 Alternate Flow n Phân tích Use-Case Khoa CNTT - ĐHKHTN 40
  • 41. Collaboration Diagrams Vs Sequence Diagrams w Collaboration Diagrams w Sequence Diagrams § Chỉ ra các mối quan hệ § Chỉ ra rõ ràng chuỗi các bổ sung cho các tương thông điệp tác § Trực quan hóa tốt hơn § Trực quan hóa tốt hơn toàn bộ luồng sự kiện các mẫu cộng tác § Tốt hơn cho các đặc tả § Trực quan hóa tốt hơn real-time và cho các các hiệu ứng tác động scenario phức tạp lên một đối tượng cụ § Dễ sử dụng hơn trong các vấn đề cần giải quyết tập thể Phân tích Use-Case Khoa CNTT - ĐHKHTN 41
  • 42. Exercise: Use-Case Analysis, Part 1 w Hãy xây dựng: § Use-Case Model, đặc biệt là các use-case flows of events § Các trừu tượng hóa/class then chốt w Hãy xác định các thông tin sau cho một use case cụ thể: § Các analysis class, cùng với chúng là: • Brief descriptions • Stereotypes • Responsibilities § Các collaboration cần thiết để cài đặt use case (còn tiếp) Phân tích Use-Case Khoa CNTT - ĐHKHTN 42
  • 43. Exercise: Use-Case Analysis, Part 1 (tt) w Với một use case cụ thể, hãy thiết lập: § Use-case realization interaction diagram cho tối thiểu một trong các use-case flows of events Phân tích Use-Case Khoa CNTT - ĐHKHTN 43
  • 44. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗI use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Classs w Với mỗI analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 44
  • 45. Miêu tả các trách nhiệm w Trách nhiệm (responsibilities) là gì? w Làm thế nào để tìm ra chúng? Interaction Diagram :Client :Supplier // PerformResponsibility Class Diagram Supplier // PerformResponsibility Phân tích Use-Case Khoa CNTT - ĐHKHTN 45
  • 46. Ví dụ: View of Participating Classes (VOPC) Class Diagram <<control>> RegistrationController <<boundary>> <<boundary>> CourseCatalogSystem RegisterForCoursesForm // get course offerings() // submit schedule() // get course offerings() // submit schedule() // create schedule with offerings() // display course offerings() // display schedule() // create schedule() // select 4 primary and 2 alternate offerings() <<entity>> // display blank schedule() <<entity>> ScheduleOfferingInfo Schedule status // create with offerings() // mark as selected() // submit() // mark as cancelled() // save() // is selected?() <<entity>> Student // add schedule() <<entity>> // has pre-requisites() CourseOffering <<entity>> number : String = "100" PrimaryScheduleOfferingInfo startTime : Time grade endTime : Time days : Enum // is enrolled in?() // mark as enrolled in() // add student() // still open?() // save() Phân tích Use-Case Khoa CNTT - ĐHKHTN 46
  • 47. Quản lý sự toàn vẹn: những điều quan tâm w Xét theo trình tự § Dư thừa trách nhiệm giữa các lớp § Các trách nhiệm bị tách rời giữa các lớp § Lớp chỉ có một trách nhiệm § Lớp không có trách nhiệm § Sự phân tán các hành vi § Lớp có quá nhiều tương tác với các lớp khác Phân tích Use-Case Khoa CNTT - ĐHKHTN 47
  • 48. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗI use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Classs w Với mỗI analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 48
  • 49. Miêu tả các thuộc tính và các mối quan hệ w Định nghĩa các Attribute w Thiết lập các mối quan hệ dạng Aggregation và Association Phân tích Use-Case Khoa CNTT - ĐHKHTN 49
  • 50. Ôn lại: thế nào là thuộc tính ? <<stereotype>> ClassName Attribute : Type = InitValue Attribute : Type = InitValue Attribute : Type = InitValue Trong analysis, không nên tốn nhiều thời gian cho <<entity>> việc xác định các attribute CourseOffering signature number :String=“100” startTime : Time endTime: Time attribute days: enum Phân tích Use-Case Khoa CNTT - ĐHKHTN 50
  • 51. Cách tìm các thuộc tính w Các thuộc tính/đặc điểm của các class w Các thông tin đc giữ lại bởi các class w Các “danh từ” không biến thành class § Các thông tin mà giá trị của chúng là quan trọng § Các thông tin ddc sở hữu bởi 1 object duy nhất § Các thông tin không có hành vi Phân tích Use-Case Khoa CNTT - ĐHKHTN 51
  • 52. Ôn lại: thế nào là một mối quan hệ w Mô hình hóa một liên hệ ngữ nghĩa giữa các thể hiện (instances) của các class <<entity>> <<entity>> Student CourseOffering Simple association is a pre-requisite of <<entity>> Schedule <<entity>> Course Reflexive association Association là một quan hệ cấu trúc Phân tích Use-Case Khoa CNTT - ĐHKHTN 52
  • 53. Ôn lại: thế nào là các vai trò ? w Nhân vật” mà một class “đóng vai” trong association <<entity>> <<entity>> CourseOffering Professor Instructor Role Name Department head <<entity>> Pre-requisites Department <<entity>> Course Phân tích Use-Case Khoa CNTT - ĐHKHTN 53
  • 54. Ví dụ: quan hệ đa kết hợp primaryCourses <<entity>> <<entity>> Schedule CourseOffering alternateCourses add student to <<entity>> <<entity>> Schedule remove student from CourseOffering Các multiple association phải phản ánh các multiple role Phân tích Use-Case Khoa CNTT - ĐHKHTN 54
  • 55. Ôn lại: bản số (Multiplicity) w Không mô tả w Duy nhất một 1 w Zero hoặc nhiều (many, unlimited) 0..* * w Một hoặc nhiều 1..* w Zero hoặc 1 0..1 w Một đoạn 2..4 w Nhiều đoạn rời nhau 2, 4..6 Phân tích Use-Case Khoa CNTT - ĐHKHTN 55
  • 56. Ví dụ: Multiplicity Bản số <<entity>> <<entity>> 0..* 0..4 1 0..* primaryCourses <<entity>> Student Schedule 0..* 0..2 CourseOffering alternateCourses Phân tích Use-Case Khoa CNTT - ĐHKHTN 56
  • 57. Ôn lại: Navigability w Khả năng định hướng từ associating class đến target class Class1 Class2 Hai chiều Một chiều Class1 Class2 Phân tích Use-Case Khoa CNTT - ĐHKHTN 57
  • 58. Ví dụ: Navigability <<boundary>> 1 <<control>> 1 RegisterForCoursesForm RegistrationController 1-way navigation 0..* 0..4 <<entity>> primaryCourses <<entity>> Schedule 0..2 CourseOffering 0..* alternateCourses 2-way navigation Phân tích Use-Case Khoa CNTT - ĐHKHTN 58
  • 59. Ôn lại: Quan hệ Aggregation? w Một dạng đặc biệt của association dùng để mô hình hóa một mối quan hệ toàn thể-bộ phận giữa toàn thể và các phần của nó Whole/aggregate part <<entity>> <<entity>> 0..* 0..4 1 0..* primaryCourses <<entity>> Student Schedule 0..* 0..2 CourseOffering alternateCourses Phân tích Use-Case Khoa CNTT - ĐHKHTN 59
  • 60. Association hay Aggregation? w Xem xét § Ngữ cảnh, các đặc trưng độc lập của Class2 Class1 Class2 association Class1 Class2 aggregation Khi cảm thấy nghi ngờ hãy dùng association Phân tích Use-Case Khoa CNTT - ĐHKHTN 60
  • 61. Lớp kết hợp (Association Class) w Một class “được gắn” vào một association w Chứa các thuộc tính của relationship w Một thể hiện / 1 link <<entity>> ScheduleOfferingInfo status // mark as selected() // mark as cancelled() // is selected?() alternateCourses 0..* 0..2 <<entity>> <<entity>> Schedule CourseOffering 0..* primaryCourses 0..4 <<entity>> PrimaryScheduleOfferingInfob grade // is enrolled in?() Phân tích Use-Case // mark as enrolled in() Khoa CNTT - ĐHKHTN // mark as committed() 61
  • 62. Xác định các mối quan hệ 1: PerformResponsibility Collaboration :Client :Supplier Diagram Link Client Supplier Class Client 0..* Supplier Diagram 0..* Prime suppliers PerformResponsibility() Association Tạo Relationship cho mọi link! Phân tích Use-Case Khoa CNTT - ĐHKHTN 62
  • 63. Ví dụ: VOPC: Xác định các quan hệ <<boundary>> RegisterForCoursesForm // create schedule () // display course offerings () // display blank schedule // select 4 primary and 2 alternate offerings() 1 1 <<boundary>> <<control>> CourseCatalogSystem 1 0..* RegistrationController // get course offerings(forSemester) // get course offerings() // create schedule with offerings 0..1 0..1 0..1 registrant 1 currentSchedule <<entity>> <<entity>> Student Schedule // add schedule (Schedule) // create with offerings() Phân tích Use-Case Khoa CNTT - ĐHKHTN 63
  • 64. Ví dụ: VOPC: Xác định các quan hệ (tt) <<entity>> PrimaryScheduleOfferingInfob grade // is enrolled in?() <<entity>> // mark as enrolled in() CourseOffering <<entity>> number : String = "100" Schedule startTime : Time primaryCourses endTime : Time // cancel(theOffering : CourseOffering) days : Enum // submit() 0..* 0..4 // any conflicts?() // add student() // create with offerings() 0..* alternateCourses 0..2 // cancel() // still open?() // save() <<entity>> ScheduleOfferingInfo status // mark as selected() // mark as cancelled() // is selected?() Phân tích Use-Case Khoa CNTT - ĐHKHTN 64
  • 65. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Classs w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 65
  • 66. Mô tả các cơ chế phân tích w Tập hợp tất cả analysis mechanisms trong 1 danh sách w Vẽ một ánh xạ các client classes đến các analysis mechanism Analysis Class Analysis Mechanism(s) w Xác định các đặc trưng của Analysis Mechanisms Phân tích Use-Case Khoa CNTT - ĐHKHTN 66
  • 67. Ví dụ: Miêu tả các cơ chế phân tích w Ánh xạ giữa Analysis class và analysis mechanism Analysis Class Analysis Mechanism(s) Student Persistency, Security Schedule Persistency, Security CourseOffering Persistency, Legacy Interface Course Persistency, Legacy Interface RegistrationController Distribution Phân tích Use-Case Khoa CNTT - ĐHKHTN 67
  • 68. Ví dụ: Miêu tả các cơ chế phân tích (cont.) w Các đặc trưng của Analysis mechanism w Persistency của Schedule class: § Granularity: 1 đến 10 Kbytes / sản phẩm § Volume: tối đa 2,000 schedule § Access frequency • Create: 500 lần / ngày • Read: 2,000 lần / giờ • Update: 1,000 lần / ngày • Delete: 50 lần / ngày § …. Phân tích Use-Case Khoa CNTT - ĐHKHTN 68
  • 69. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Classs w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 69
  • 70. Hợp nhất các lớp phân tích <<boundary>> <<control>> <<entity>> <<entity>> Phân tích Use-Case Khoa CNTT - ĐHKHTN 70
  • 71. Đánh giá các kết quả Glossary Design Model Supplementary Specification Use-Case Model Analysis Classes Phân tích Use-Case Khoa CNTT - ĐHKHTN 71
  • 72. Các bước trong Use-Case Analysis w Bổ sung mô tả Use-case w Với mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior về các Classs w Với mỗi analysis class đã tìm thấy § Mô tả nhiệm vụ của chúng § Mô tả các Attribute và các Association § Lượng giá (qualify) các Analysis Mechanism w Hợp nhất các Analysis Class w Checkpoints Phân tích Use-Case Khoa CNTT - ĐHKHTN 72
  • 73. Checkpoints: Analysis Classes w Các class có hợp lý không? w Tên của các class có phản ánh đúng vai trò của chúng? w Class có biểu diễn 1 single well-defined abstraction? w Tất cả các attribute và responsibility có gắn kết với nhau về mặt chức năng không? w Class có cung cấp các hành vi được y/c? w Tất cả các yêu cầu cụ thể đã được thể hiện trên class chưa? (còn tiếp) Phân tích Use-Case Khoa CNTT - ĐHKHTN 73
  • 74. Checkpoints: Use-Case Realizations w Tất cả các luồng chính và luồng con đã được điều khiển chưa, bao gồm cả các trường hợp ngoài lệ? w Đã tìm thấy tất cả các đối tượng cần thiết? w Đã phân phối một cách rõ ràng tất cả các hành vi về các đối tượng chưa? w Các hành vi có được phân phối về đúng đối tượng không? w Các interaction diagrams nằm ở đâu, mối quan hê gwiax chúng có rõ ràng và phù hợp không? Phân tích Use-Case Khoa CNTT - ĐHKHTN 74
  • 75. Ôn lại: Use-Case Analysis w Mục tiêu của Use-Case Analysis là gì? w Một analysis class là gì? Cho biết tên và mô tả về 3 analysis stereotype. w Use-case realization là gì? w Mô tả một vài hoạt động khảo sát when đặt các trách nhiệm cho các analysis class. w Bao nhiêu interaction diagram phải được xây dựng trong giai đoạn Use-Case Analysis? Phân tích Use-Case Khoa CNTT - ĐHKHTN 75
  • 76. Bài tập: Use-Case Analysis, Part 2 w Hãy cho biết các khái niệm sau: § Các Requirements artifact, đặc biệt là đặc tả bổ sung § Các cơ chế phân tích có thể § Các flow of events interaction diagram cho một use case cụ thể w Với mỗi use case hãy xác định các dữ kiện sau: § Các thuộc tính và các mối quan hệ của Analysis class § Các cơ chế phân tích Analysis class w Xây dựng các lược đồ sau: § VOPC class diagram, chứa các analysis class, stereotype của chúng, nhiệm vụ, các attribute, và relationship. § Ánh xạ Analysis class với các cơ chế phân tích Phân tích Use-Case Khoa CNTT - ĐHKHTN 76