660 likes | 674 Views
CSE323 การวิเคราะห์และออกแบบระบบ ( Systems Analysis and Design ). Lecture 06: Object-Oriented Systems Analysis and Design Using UML. Major Topics. Object-oriented concepts and terminology CRC Cards Unified Modeling Language Use case and other UML diagrams Relationships.
E N D
CSE323การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design) Lecture 06: Object-Oriented Systems Analysis and Design Using UML
CSE323 Systems Analysis and Design 2/2549 Major Topics • Object-oriented concepts and terminology • CRC Cards • Unified Modeling Language • Use case and other UML diagrams • Relationships
CSE323 Systems Analysis and Design 2/2549 Object-Oriented Overview • วิธีการเชิงวัตถุ (Object-oriented techniques) ใช้ได้ผลดีเมื่อระบบที่มีความซับซ้อนได้รับการบำรุงรักษา ปรับปรุงเปลี่ยนแปลง และออกแบบอย่างต่อเนื่อง • UML (The Unified Modeling Language) คือมาตรฐาน (industry standard) สำหรับการจำลองระบบเชิงวัตถุ
CSE323 Systems Analysis and Design 2/2549 Goals of O-O Analysis เป้าหมายของการวิเคราะห์เชิงวัตถุ • การนำกลับมาใช้ใหม่คือเป้าหมายหลัก • ระบบการบำรุงรักษาเป็นเป้าหมายที่สำคัญ • การเปลี่ยนแปลงในออบเจ็กต์หนึ่งจะมีผลกระทบต่อออบเจ็กต์อื่นน้อยที่สุด
CSE323 Systems Analysis and Design 2/2549 Object-Oriented Concepts นิยามและแนวคิด: • ออบเจ็กต์แทนสรรพสิ่งในโลกแห่งความเป็นจริง (real-world thing) หรือเหตุการณ์ (event) • ออบเจ็กต์อาจเป็น ลูกค้า รายการ คำสั่งซื้อ ฯลฯ • ออบเจ็กต์อาจเป็น GUI displays หรือ text areas on a display • ออบเจ็กต์ถูกแทนด้วยคลาสและจัดป็นกลุ่มของคลาส • คลาสหรือกลุ่มของคลาสมีคุณสมบัติและบริการหรือฟังก์ชันการทำงานร่วมกัน • Instantiate เป็นคำที่ใช้เมื่อมีการสร้างออบเจ็กต์ขึ้นจากคลาส • Attributes หรือแอททริบิวท์ คือลักษณะประจำหรือคุณสมบัติของคลาสที่ทุกออบเจ็กต์ในคลาสนั้นมี • Method หรือเมทธอด คืองานอย่างใดอย่างหนึ่งที่สามารถเรียกใช้ได้จากออบเจ็กต์ในคลาส
CSE323 Systems Analysis and Design 2/2549 Class Symbol สัญลักษณ์ของคลาส
CSE323 Systems Analysis and Design 2/2549 Inheritance การสืบทอดคุณสมบัติ • การสืบทอดคุณสมบัติ (Inheritance) เกิดขึ้นเมื่อมีการสร้างคลาสขึ้นใหม่จากคลาสที่มีอยู่แล้ว • คลาสเดิมจะเป็นคลาสแม่ (parent or base class) • คลาสใหม่จะเป็นคลาสลูก (child or derived class) • คลาสลูกได้รับการถ่ายทอดคุณสมบัติและบริการหรือฟังก์ชันการทำงานจากตลาสแม่
CSE323 Systems Analysis and Design 2/2549 CRC Cards การ์ด CRC (Class, responsibilities, and collaborators) ใช้สำหรับแสดงความรับผิดชอบของคลาสและปฏิสัมพันธ์ระหว่างคลาส การสร้างการ์ด CRC • หาคำนามและคำกริยาในประโยคปัญหา • สร้างสถานการณ์จำลอง (Scenarios) โดยพิจารณาจากการทำงานตามจริงของระบบ • ระบุและกำหนดความรับผิดชอบให้กับงานชิ้นเล็กลงและเล็กลงเรื่อยๆเท่าที่จะทำได้ • พิจาณาว่างานต่างๆทำได้โดยออบเจ็กต์หรือการโต้ตอบกับออบเจ็กต์อื่นไอย่างไร • ระบุความรับผิดชอบที่เกี่ยวข้องเป็นเมทธอดหรือฟังก์ชันการทำงาน
CSE323 Systems Analysis and Design 2/2549 The Unified Modeling Language (UML) UML has three categories: • สิ่งต่างๆ หรือ ออบเจ็กต์ (Things, the objects) • ความสัมพันธ์ (Relationships, the glue that holds things together) • แผนภาพ (Diagrams, categorized as either structure or behavioral)
CSE323 Systems Analysis and Design 2/2549 Two General Groupings of Things กลุ่มของส่งต่างๆใน UML: • Structural things ซึ่งใช้กำหนดโครงสร้างตามแนวคิดและโครงสร้างทางกายภาพของระบบเชิงวัตถุ และอธิบายด้วยคำนาม • Behavioral things เป็นคำกริยาในแบบจำลอง UML ที่ใช้แทนพฤติกรรมของระบบ และสถานะของระบบ ก่อน ระหว่าง และหลัง เมื่อมีพฤติกรรมดังกล่าวเกิดขึ้น
CSE323 Systems Analysis and Design 2/2549 Structural and BehavioralThings Structural things ได้แก่: • Classes. • Use cases. • Interfaces. Behavioral things ได้แก่: • Interactions • State machines
CSE323 Systems Analysis and Design 2/2549 Types of Relationships ประเภทของความสัมพันธ์: • Structural relationships ผูกสิ่งต่างๆเข้าด้วกันในแผนภาพโครงสร้าง (Structural diagram) • Behavioral relationship ใช้ในแผนภาพเหตุการณ์ (Behavioral diagrams)
CSE323 Systems Analysis and Design 2/2549 Structural and Behavioral Relationships Structural relationships ได้แก่: • Dependencies. • Aggregations. • Associations. • Generalizations. • Behavioral relationships ได้แก่: • Communicates. • Includes. • Extends. • Generalizes.
CSE323 Systems Analysis and Design 2/2549 Structural and BehavioralDiagrams Structural things are the most common and include: • Class and object diagrams. • Use case diagrams. • Component diagrams. • Deployment diagrams. Behavioral things include: • Use case diagrams. • Sequence diagrams. • Collaboration diagrams. • Statechart diagrams. • Activity diagrams.
CSE323 Systems Analysis and Design 2/2549 Commonly Used UML Diagrams แผนภาพที่ใช้กันโดยทั่วไปใน UML: • แผนภาพยูสเคส (Use case diagram) อธิบายว่าระบบถูกใช้อย่างไร • เป็นจุดเริ่มต้นสำหรับแบบจำลอง UML • ยูสเคส (Use case - not a diagram) • แผนภาพกิจกรรม (Activity diagram) • แต่ละยูสเคสอาจสร้างแผนภาพกิจกรรม • แผนภาพลำดับเหตุการณ์ (Sequence diagram) แสดงลำดับเหตุการณ์ของกิจกรรมต่างๆและความสัมพันธ์ชองคลาส • แต่ละยูสเคสอาจสร้างหนึ่งหรือหลายแผนภาพลำดับเหตุการณ์ • A collaboration diagram is an alternative to a sequence diagram.
CSE323 Systems Analysis and Design 2/2549 Commonly Used UML Diagrams แผนภาพที่ใช้กันโดยทั่วไปใน UML (ต่อ): • แผนภาพคลาส (Class diagram) แสดงคลาสต่างๆและความสัมพันธ์ของคลาส • แผนภาพลำดับเหตุการณ์ (Sequence diagrams) และการ์ด CRC ใช้ในการกำหนดคลาส • แผนภาพสถานะ (Statechart diagram) • แต่ละคลาสสามารถสร้างแผนภาพสถานะ ซึ่งมีประโยชน์ในการกำหนดเมทธอดของคลาส
CSE323 Systems Analysis and Design 2/2549 Overview of UML Diagrams
CSE323 Systems Analysis and Design 2/2549 Use Case Diagram • A use case describes what the system does, not how it does the work. • The use case model reflects the view of the system of the user outside of the system. • Symbols are: • Actor, a stick figure. • Use case, an oval. • Connecting lines.
CSE323 Systems Analysis and Design 2/2549 Actors • Represent role played by one or more users • Exist outside of the system • May be a person, another system, a device, such as a keyboard or Web connection • Can initiate an instance of a use case • May interact with one or more use cases and a use case may involve one or more actors
CSE323 Systems Analysis and Design 2/2549 Actors (Cont.) Actors may be divided into two groups: • Primary actorssupply data or receive information from the system • Secondary actorshelp to keep the system running or provide help • Help desk, analysts, programmers, etc.
CSE323 Systems Analysis and Design 2/2549 Use Case • Consists of three things: • An actor(user) that initiates an event. • An eventthat triggers a use case. • The use case that performs the actions triggered by the event.
CSE323 Systems Analysis and Design 2/2549 Use Case (Cont.) • Better to create fewer use cases • 20 use cases for a large system • 50 use cases would be the maximum for a large system • Can nest use cases, if needed
CSE323 Systems Analysis and Design 2/2549 Use Case Relationships • Communicates • Connect an actor to a use case • Includes • Use case contains a behavior that is common to more than one use case. • The common use case is included in other use cases. • Dotted arrow points toward common use case.
CSE323 Systems Analysis and Design 2/2549 Use Case Relationships (Continued) • Extends • A different use case handles variations or exceptions from the basic use case. • Arrow goes from extended to basic use case. • Generalizes • One thing is more general than another thing. • Arrow points to the general thing.
CSE323 Systems Analysis and Design 2/2549 Use Case Relationships
CSE323 Systems Analysis and Design 2/2549 Steps for Creating a Use Case Model The steps required to create a use case model are: • Review the business specifications and identify the actors within the problem domain. • Identify the high-level events and develop the primary use cases that describe the events and how actors initiate them. • Review each primary use case to determine possible variations of flow through the use case. • Develop the use case documents for all primary use cases and all important use case scenarios.
CSE323 Systems Analysis and Design Use Case Scenario • A use case scenario may be created for the standard flow through the use case. • Other scenarios may be created for variations on the main flow. • A use case includes: • Use case identifiers and initiators. • Steps performed. • Conditions, assumptions, and questions.
CSE323 Systems Analysis and Design 2/2549 Activity Diagrams • Activity diagrams show the sequence of activities in a process, including sequential and parallel activities. • Symbols are used for activities, decisions and so on. • Arrows represent events that connect the activities.
CSE323 Systems Analysis and Design 2/2549 Activity Diagram Symbols
CSE323 Systems Analysis and Design 2/2549 Creating Activity Diagrams • Ask what happens first, second, and so on. • Determine if the activities happen in sequence or parallel. • Examine all the scenarios for a use case.
CSE323 Systems Analysis and Design Swimlanes • Included on activity diagrams to show partitioning • Show which activities: • Occur on a browser • Occur on a server • Happen on a mainframe • Are done by external partners • Help to divide tasks among team members
CSE323 Systems Analysis and Design 2/2549 Swimlane Boundaries When an event crosses swimlane boundaries, data must be transmitted. • A Web form is sent to a server. • Data are placed into middleware to transmit it between a server and a mainframe. • Data are transmitted to and from an external partner.
CSE323 Systems Analysis and Design 2/2549 Sequence Diagrams • Sequence diagrams show a succession of interactions between classes or object instances over time. • It also shows the processing described in a single scenario. • The leftmost object is the starting object. • Time sequence is from top to bottom.
CSE323 Systems Analysis and Design 2/2549 Sequence Diagrams (Cont.) • Horizontal arrows represent messages or signals sent between classes. • Solid arrowheads represent synchronous calls, the sending class waits for a response. • Half or open arrowheads represent asynchronous calls, those sent without waiting for a returning signal.
CSE323 Systems Analysis and Design 2/2549 Message Name Formats Message names may be in the following formats: messageName() messageName(parameter1, parameter2, …) messageName(parameterType:parameterName)(defaultValue)
CSE323 Systems Analysis and Design 2/2549 Sequence Diagram Example
CSE323 Systems Analysis and Design 2/2549 Collaboration Diagrams • Collaboration Diagrams show the same information as a sequence diagram. • The emphasis is on the organization of the objects. • Sequence is shown by including a sequence number on the message.
CSE323 Systems Analysis and Design 2/2549 Collaboration Diagram Example
CSE323 Systems Analysis and Design 2/2549 Class Diagrams and Class Attributes • Class diagrams show classes, attributes, and operations or methods. • A class is shown as a rectangle. • Attributes are either: • Private (the norm), indicated by a minus sign. • Public, indicated by a plus sign. • Protected, indicated by a pound sign (#). • Attributes may include the type of data and any initial value. • Methods are usually public.
CSE323 Systems Analysis and Design 2/2549 Method Overloading • Method overloading is including the same method several times in a class. • The method signature, its name and parameters, and type of parameters, must be different.
CSE323 Systems Analysis and Design 2/2549 Types of Classes • Classes fall into several categories: • Entity classes. • Boundary or interface classes. • Abstract classes. • Control classes. • Each class may use a special symbol, called a UML stereotype.
CSE323 Systems Analysis and Design 2/2549 Entity Classes • Entity classes represent real-world items. • Attributes are those stored for the entity. • Methods work with the entity.
CSE323 Systems Analysis and Design 2/2549 Boundary or Interface Classes • Provide a means for users to work with the system. • Display screens, windows, dialogue boxes, touch-tone telephone, external systems. • Methods required to send or reset the display screen, or to produce a report.
CSE323 Systems Analysis and Design 2/2549 Abstract Classes • Abstract classes are the parent or general class in a generalization/specialization relationship. • Abstract classes may not be directly instantiated. • Only the child classes can create objects.
CSE323 Systems Analysis and Design 2/2549 Control or Active Classes • Control or active classes are used to control the flow of activities. • Many small control classes may be included to achieve reuse. • Attributes are those needed temporarily by the control class. • Methods are those used in control activities .
CSE323 Systems Analysis and Design 2/2549 Sequence Diagram for using two Web pages: one for student information, one for course information.
CSE323 Systems Analysis and Design 2/2549 Relationships on a Class Diagram • Relationships are the connections between classes and include: • Associations, showing the one-to-many relationships between classes. • An asterisk (*) is used to represent many. • Association classes are used to break up a many-to-many association between classes.
CSE323 Systems Analysis and Design 2/2549 Association Class Example
CSE323 Systems Analysis and Design 2/2549 Whole/Part Relationships • One class represents the whole, other classes represent the parts contained in the whole. • Three types of whole/part relationships: • Aggregation. • Collection. • Composition.
CSE323 Systems Analysis and Design 2/2549 Aggregation • Aggregation is a “has a” relationship. • The whole is composed of the sum of the parts. • If the whole is removed, the part may still exist. • The diamond at the end of the line is not filled in.