Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
682,5 KB
Nội dung
1 Transition to Design 2 How is Design Different from Analysis? Design states "how the system will be constructed without actually building it" (Rumbaugh, 1997) Phân tích Thiết kế Xác định hệ thống phải làm “cái gì” (what) Chỉ ra hệ thống phải thực hiện điều đó như thế nào (how) Tìm hiểu tổ chức, xác định yêu cầu và mục tiêu của tổ chức. Xác định một hệ thống phù hợp với tổ chức, đáp ứng các yêu cầu của tổ chức một cách hiệu quả, và hỗ trợ tổ chức đạt được mục tiêu của nó. Ví dụ, trong Library case study: Phân tích xác định rằng lớp Book có thuộc tính title Thiết kế xác định thuộc tính title được lưu trữ vào hệ thống như thế nào, hiển thị trên màn hình và lưu trữ trong cơ sở dữ liệu như thế nào. 3 Khi nào phân tích kết thúc, thiết kế bắt đầu? Trong quy trình phát triển lặp Phân tích và thiết kế được xem là các hành động (Activity) phải thực hiện bên trong quy trình phát triển. Phân tích một phần cụ thể của hệ thống sẽ phải thực hiện trước thiết kế của nó, Nhưng phân tích và thiết kế có thể thực hiện song song Cần phân biệt 2 hoạt động này và các ý đồ liên kết với chúng. Chúng ta luôn cần biết ‘what’ trước khi quyết định "how" 4 Identify Design Elements 5 Objectives: Identify Design Elements Define the purpose of Identify Design Elements and demonstrate where in the lifecycle it is performed Analyze interactions of analysis classes and identify Design Model elements Design classes Subsystems Subsystem interfaces 6 [Early Elaboration Iteration] [Inception Iteration (Optional)] Define a Candidate Architecture Perform Architectural Synthesis Analyze Behavior Refine the Architecture Design Components Design the Database (Optional) Identify Design Elements Architect Identify Design Elements in Context 7 Supplementary Specifications Identify Design Elements Software Architecture Document Design Model Analysis Model Project Specific Guidelines Identify Design Elements Overview 8 Identify Design Elements Steps Identify classes and subsystems Identify subsystem interfaces Identify reuse opportunities Update the organization of the Design Model Checkpoints 9 Identify Design Elements Steps Identify classes and subsystems Identify subsystem interfaces Identify reuse opportunities Update the organization of the Design Model Checkpoints Analysis Classes 10 From Analysis Classes to Design Elements Analysis Classes Design Elements <<boundary>> <<control>> <<entity>> <<boundary>> Many-to-Many Mapping Subsystem <<subsystem>> Subsystem <<subsystem>> [...]... Subsystem Usage Subsystems can be used to partition the system into parts that can be independently: ordered, configured, or delivered developed, as long as the interfaces remain unchanged deployed across a set of distributed computational nodes changed without breaking other parts of the systems Subsystems can also be used to: partition the system into units which can provide restricted... Identifying Subsystems Hints Look at object collaborations Look for optionality Look to the user interface of the system Look to the actors Look for coupling and cohesion between classes Look at substitution Look at distribution Look at volatility 27 Candidate Subsystems Analysis classes which may evolve into subsystems: Classes providing complex services and/or utilities Boundary classes... with a large number of messages or have a complex intercommunication A boundary class can be functionally related to a particular entity class if the function of the boundary class is to present the entity class Two classes interact with, or are affected by changes in the same actor 15 Packaging Tips: Functionally Related Classes Criteria for determining if classes are functionally related (continued):... class creates instances of another class Criteria for determining when two classes should NOT be placed in the same package: Two classes that are related to different actors should not be placed in the same package An optional and a mandatory class should not be placed in the same package 16 Package Dependencies: Package Element Visibility PackageA A + Class A1 + Class A2 + Class A3 Only public... Interfaces Purpose To identify the interfaces of the subsystems based on their responsibilities Steps Identify a set of candidate interfaces for all subsystems Look for similarities between interfaces Define interface dependencies Map the interfaces to subsystems Define the behavior specified by the interfaces Package the interfaces Stable, well-defined interfaces are key to a stable, resilient... forStudent : Student) : CourseOfferingList initialize() All other analysis classes map directly to design classes 33 Example: Analysis-Class -To- Design-Element Map Analysis Class Design Element CourseCatalogSystem CourseCatalogSystem Subsystem BillingSystem BillingSystem Subsystem All other analysis classes map directly to design classes 34 Modeling Convention: Subsystems and Interfaces CourseCatalogSystem... attributes, and semantics Class Name What is a package? A general purpose mechanism for organizing elements into groups A model element which can contain other model elements Package Name 12 Group Design Classes in Packages You can base your packaging criteria on a number of different factors, including: Configuration units Allocation of resources among development teams Reflect the user types... getCourseOfferings(forSemester : Semester) : CourseOfferingList + initialize() 21 Identifying Subsystems A sub-system typically groups together elements of the system that share some common properties An OO sub-system encapsulates a coherent set of responsibilities in order to ensure that it has integrity and can be maintained Each subsystem has a well-defined interface with the rest of the system but...Identifying Design Classes An analysis class maps directly design class if: It is a simple class It represents a single logical abstraction to a More complex analysis classes may Split into multiple classes Become a package Become a subsystem (discussed later) Any combination … 11 Review: Class and Package What is a class? A description of a set of objects... FulltimeStudent - gradDate PrimaryScheduleOfferingInfob - grade primaryCourses 0 4 Professor - name - ProfessorId : UniqueId alternateCourses 0 2 CourseOffering - number : String = "100" - startTime : Time instructor - endTime : Time 0 1 0 n - days : Enum /- numStudents : Int 0 n 1 Course - credits - name - curriculum - description - number 1 20 0 n preRequisites Example: External System Interfaces Package . the Architecture Design Components Design the Database (Optional) Identify Design Elements Architect Identify Design Elements in Context 7 Supplementary Specifications Identify Design Elements Software Architecture Document Design. 1 Transition to Design 2 How is Design Different from Analysis? Design states "how the system will be constructed without actually. opportunities Update the organization of the Design Model Checkpoints Analysis Classes 10 From Analysis Classes to Design Elements Analysis Classes Design Elements <<boundary>> <<control>> <<entity>> <<boundary>> Many -to- Many