Object Oriented Thinking, Analysis and Design: Dr. Fatma Meawad
Object Oriented Thinking, Analysis and Design: Dr. Fatma Meawad
UML
Unified Modelling Language Three Amigos: Booch, Jackobson and Rumbaugh With UML, we can create different types of diagrams that helps us through out the software development process
Learning OO
It is not easy to make the most of the OO design, the proposed diagrams get you started.
http://upload.wikimedia.org/wikipedia/en/7/74/Uml_diagram.svg
http://www.andrew.cmu.edu/course/90-754/airline-extends.jpg
Class Diagrams
The purpose of class diagrams is modelling the types in your domain
1- Identify Nouns in your domain: classes 2- Identify Verbs in your domain: relationships 3- Find Associations: join the nouns with the verbs
http://faculty.ksu.edu.sa/zitouni/203%20Haseb%20%20Lecture%20Notes/Class%20and%20ERD.pdf
http://www.agilemodeling.com/artifacts/classDiagram.htm
Association
Objects are often associated with, or related to, other objects.
Unidirectional Bidirectional
http://www.agilemodeling.com/artifacts/classDiagram.htm
Association Examples
Bi-Directional: Both classes know about this relationship, drawn by solid line, role names and multiplicity
Uni-directional : Only one Class knows about the other, drawn by a solid line with an open arrowhead, role name and multiplicity
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Composition Associations
Sometimes an object is made up of other objects if it makes sense to say that something is part of something else then there's a good chance that composition makes sense
http://www.agilemodeling.com/artifacts/classDiagram.htm
Composition Associations
Another good indication that composition makes sense is when the lifecycle of the part is managed by the whole
http://www.agilemodeling.com/style/classDiagram.htm#RelationshipGuidelines
Realize interfaces
Stereotype
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Generalization (inheritance)
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Dependency
We use a dashed open arrow when a class is simply using another class. There is no strong relation between them. (ex. A class is simply imported and used in this class)
Notation
http://faculty.ksu.edu.sa/zitouni/203%20Haseb%20%20Lecture%20Notes/Class%20and%20ERD.pdf
Notation
http://faculty.ksu.edu.sa/zitouni/203%20Haseb%20%20Lecture%20Notes/Class%20and%20ERD.pdf
Components' classes
Hopefully , we will eventually have something like this for each component Required
interface
Class SeminarComponent
http://www.agilemodeling.com/style/interface.htm