What are the various Relationships?

Dependency is a semantic relationship between two things in which a change to one thing (independent thing) may affect the semantics of the other (dependent thing). This is a non-structural, "uses" type relationship as in Class Window uses Class Event. A change in Event (say a mouse click or key stroke) causes a change in Window but not vice versa. In UML Dependency relationship is denoted by a dashed line.

Association is a structural relationship between objects. The association may have a name. Professor "works for" University. Each end of the association has a role - Professor (employee) and University (employer). An Association is represented by a solid line in UML.

Multiplicity defines how many objects participate in a relationship. For each role you can specify the multiplicity of its class - how many objects of the class can be associated with an object of the other class.

Aggregation is a relationship between a whole and its parts. An object physically contains other objects - Car is physically composed of an Engine and four Wheels. A Family is a collection of Parents and Children. It is represented in UML as a solid line with an open diamond.

Composition is a form of aggregation with strong ownership and coincident lifetimes of the part with the aggregate. The whole "owns" the part and is responsible for the creation and destruction of the part. Student and schedule. It is represented as a solid line with a filled diamond in UML.

Generalization is a relationship among classes where one class shares the structure and behavior of one or more classes. Generalization defines a hierarchy of abstractions in which a subclass inherits from one or more superclass. Generalization is an "is-a-kind of" relationship.

A subclass inherits its parent's attributes, operations, and relationships. A subclass may add additional attributes, operations, relationships. It may also redefine inherited operations (use caution here!). This relationship is represented as an open arrow going from the subclass to its parent(s) in UML.

A subclass may be used anywhere the superclass is used, but not vice versa. Generalization is the name of the relationship. Inheritance is the mechanism that the generalization relationship represents.

Realization is the relationship between one class that serves as the contract that the other class agrees to carry out. (The interface and the class that implements the interface). It is represented as a dashed line and an arrow in UML.

Strengths of Object Orientation

What is UML?

Unified Modeling Language is a language for specifying, visualizing, constructing, and documenting a software intensive system.

What is a Software Process?

A software process defines WHO is doing WHAT, WHEN and HOW to reach a certain goal which could be to build a new software product or enhance an existing one. The Rational Unified Process (RUP) is a generic process that uses UML as a modeling language. An actor is someone or something outside the system that interacts with the system. A use-case is a sequence of actions a system performs that yields an observable result of value to a particular actor.

What are the different views of Software Architecture?

What are the Lifecycle Phase in the development of Software?

Within each phase there is a series of iterations. Each iteration results in a release encompassing larger and larger subsets of the final application

In our development process for this class we will take the following path

Who is an actor?

An actor is someone or something outside the system that interacts with the system. An actor can be a human being or another system or a device. An actor is represented by a stick figure in UML.

What is a Use-Case?

A Use-Case is a sequence of actions a system performs that yields an observable result of value to a particular actor. A Use-Case describes functionality of the system from the user's point of view. A Use-Case is represented by an oval in UML.