460 likes | 724 Views
Object Oriented Analysis and Design Using the UML. Basic Concepts of Object Orientation. Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships. Truck. Chemical Process. Linked List. What is an Object?.
E N D
Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
Truck Chemical Process Linked List What is an Object? • Informally, an object represents an entity, either physical, conceptual, or software • Physical entity • Conceptual entity • Software entity
A More Formal Definition • An object is a concept or thing with sharp boundaries and meaning for an application • An object is something that has: • State • Behavior • Identity
Representing Objects • An object is represented as rectangles with underlined names Professor :Professor LAL Object Name Only Class Name Only
What is a Class? • A class is a description of a group of objects with same properties (attributes), behavior (operations), relationships, and semantics • An object is an instance of a class OO Principle: Abstraction
Sample Class Class Course Properties Name Location Days offered Credit hours Start time End time Behavior Add a student Delete a student Get course roster Determine if it is full a + b = 10
Representing Classes • A class is represented using a compartmented rectangle a + b = 10 Professor Professor Simran
Class Name Professor name Attributes empID Operations create( ) save( ) delete( ) change( ) Class Compartments • A class is comprised of three sections • The first section contains the class name • The second section shows the structure (attributes) • The third section shows the behavior (operations)
CourseOffering :CourseOffering :CourseOffering number = 101 startTime = 900 endTime = 1100 number = 104 startTime = 1300 endTime = 1500 number startTime endTime What is an Attribute? Object Class Attribute Attribute Value
CourseOffering addStudent deleteStudent getStartTime getEndTime What is an Operation? Class Operation
What is a Package? • A package is a general purpose mechanism for organizing elements into groups • A model element which can contain other model elements • Package is rendered as a tabbed folder including name and sometimes, its contents. OO Principle:Modularity Package Name
Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
Relationships • Association • Aggregation • Composition • Dependency • Generalization
Association Name Works for Professor University Professor University Association Class Relationships: Association • Models a semantic connection among classes Role Names Employee Employer
Association • Association represents binary relationship between classes * enroll * Student Course advisee * * teach 1 1 Faculty adviser
Student Schedule Relationships: Aggregation • A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts Whole Part Aggregation
Aggregation and Compositon • Aggregation is a special form of association • Has-a or part-whole relationship • Composition is a stronger form of aggregation
Student Schedule • A form of aggregation with strong ownership and coincident lifetimes • The parts cannot survive the whole/aggregate Part Whole Aggregation
Association: Multiplicity and Navigation • Multiplicity defines how many objects participate in a relationships • The number of instances of one class related to ONE instance of the other class • Specified for each end of the association • Associations and aggregations are bi-directional by default, but it is often desirable to restrict navigation to one direction • If navigation is restricted, an arrowhead is added to indicate the direction of the navigation
0..* 1..* 0..1 2..4 2, 4..6 Association: Multiplicity • Unspecified • Exactly one • Zero or more (many, unlimited) • One or more • Zero or one • Specified range • Multiple, disjoint ranges 1
Student Schedule Example: Multiplicity and Navigation Multiplicity 1 0..* Navigation
Example 1 1 1 * * * University College Department Student 1 1 Chairman-of Member-of 1 1..* Faculty
Relationships: Dependency • A relationship between two model elements where a change in one may cause a change in the other. Client Supplier Component Class Supplier Client Package Dependency relationship ClientPackage SupplierPackage Dependency relationship
Dependency is a relationship between entities such that the proper operation of one entity depends on the presence of the other entity, and changes in one entity would affect the other entity.
Relationships: Generalization • A relationship between superclass and subclass. • Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasses. • Single inheritance • Multiple inheritance • Generalization is an “is-a-kind of” relationship
Account balance name number Withdraw() CreateStatement() Savings Checking GetInterest() Withdraw() Withdraw() Example: Single Inheritance Ancestor • One class inherits from another Superclass (parent) Generalization Relationship Subclasses Descendents
Example: Multiple Inheritance • A class can inherit from several other classes FlyingThing Animal multiple inheritance Airplane Helicopter Bird Wolf Horse Use multiple inheritance only when needed, and always with caution !
Person Trailer Example: What Gets Inherited GroundVehicle owner weight Superclass (parent) 0..* 1 licenseNumber register( ) generalization Truck Car size Subclass tonnage getTax( )
What is UML? • UML is a language for • Visualizing • Specifying • Constructing • Documenting
Building Blocks of UML • Things -- abstraction • Relations -- tie things together • Diagrams -- group interesting collections of things
To view the static parts of a system using one of four following diagrams: • Class diagrams • To represent classes and interfaces • Object diagrams • To represent Objects • Component diagrams • To represent different components • Deployment diagrams • To represent different nodes of the system
To view the dynamic parts of a system using one of five following diagrams: • Use Case Diagrams • Organizes the behavior of the system • Sequence Diagrams • Focused on the time ordering of messages • Collaboration Diagrams • Focused on the structural organization of objects that send and receive messages • State Chart Diagrams • Focused on the changing state of the system driven by events • Activity Diagrams • Focused on the flow of control from activity to activity
It models dynamic aspects of system. • Shows set of use cases ,actors and their relationships. • Contents • Use cases • Actors • relationships
Use Case Diagrams • Use Case diagrams show the various activities the users can perform on the system. • They model the dynamic aspects of the system.
Use Case Diagrams • A set of ACTORS : roles users can play in interacting with the system. • An actor is used to represent something that users our system. • A set of USE CASES: each describes a possible kind of interaction between an actor and the system. • Uses cases are actions that a user takes on a system • A number of RELATIONSHIPS between these entities (Actors and Use Cases). • Relationships are simply illustrated with a line connecting actors to use cases.
Use Case Diagrams - Actors • An actor is a user of the system playing a particular role. • Actor is shown with a stick figure. employer employee client
Reserve Borrow Use Case Diagrams – Use Cases • Use case is a particular activity a user can do on the system. • Is represented by an ellipse. • Following are two use cases for a library system.
Use Case Diagram for Student Assessment Management System Grade system Record grades Student View grades Teacher Distribute Report cards Create report cards Printing administrator
University Record System (URS) • A University record system should keep information about its students and academic staff. • Records for all university members are to include their id number, surname, given name, email, address, date of birth, and telephone number. • Students and academic staff each have their own unique ID number: studN (students), acadN (academic employee), where N is an integer (N>0). • In addition to the attributes mentioned above: • Students will also have a list of subjects they are enrolled in. A student cannot be enrolled in any more than 10 subjects. • Academic employees will have a salary, and a list of subjects they teach. An academic can teach no more than 3 subjects.
Some Actions Supported by URS • The system should be able to handle the following commands. • Add and remove university members (students, and academic staff) • Add and Delete subjects • Assign and Un-assign subjects to students • Assign and Un-assign subjects to academic staff.
student Use Case Diagram - URS System URS add member del member system user academic add subject del subject assg subject unass subject enrol subject unenrol subject