1 cs 501 spring 2002 cs 501: software engineering lecture 16 object oriented design i
Post on 22-Dec-2015
222 views
TRANSCRIPT
![Page 1: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/1.jpg)
1 CS 501 Spring 2002
CS 501: Software Engineering
Lecture 16
Object Oriented Design I
![Page 2: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/2.jpg)
2 CS 501 Spring 2002
Administration
![Page 3: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/3.jpg)
3 CS 501 Spring 2002
The Waterfall Model
Requirements Analysis
System design
Unit & Integration Testing
System Testing
Operation & Maintenance
Program design
Coding
Acceptance Testing
Requirements
Design
Implementation
![Page 4: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/4.jpg)
4 CS 501 Spring 2002
Program Design
The task of program design is to represent the software system functions in a form that can be transformed into one or more executable programs.
Given a system architecture, the program design specifies:
• computers and networks
• programs, components, packages, classes and class hierarchies
• interfaces, protocols
• security mechanisms, operational procedures
![Page 5: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/5.jpg)
5 CS 501 Spring 2002
The Importance of Modeling
• A model is a simplification of reality.
• We build models so that we can better understand the system we are developing.
• We build models of complex system because we cannot comprehend such a system in its entirety.
Models can be informal or formal. The more complex the project the more valuable a formal model becomes.
BRJ
![Page 6: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/6.jpg)
6 CS 501 Spring 2002
Principles of Modeling
• The choice of what models to create has a profound influence on how a problem is attacked and how a solution is shaped.
• Every model can be expressed at different levels of precision.
• The best models are connected to reality.
• No single model is sufficient. Every nontrivial system is best approached through a small set of nearly independent models.
BRJ
![Page 7: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/7.jpg)
7 CS 501 Spring 2002
The Unified Modeling Language
UML is a standard language for modeling software systems
• Serves as a bridge between the requirements specification and the implementation.
• Provides a means to specify and document the design of a software system.
• Is process and programming language independent.
• Is particularly suited to object-oriented program development.
![Page 8: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/8.jpg)
8 CS 501 Spring 2002
Useful Texts
Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language. Addison-Wesley 1999.
Grady Booch, Object-Oriented Analysis and Design with Applications, second edition. Benjamin/Cummings 1994.
Rob Pooley, Perdita Stevens, Using UML Software Engineering with Objects and Components. Addison-Wesley 1999.
![Page 9: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/9.jpg)
9 CS 501 Spring 2002
Rational Rose
Rational Rose is a system for creating and managing UML diagrams.
It is available on all Computer Science Department computers.
See: http://adm/Software/purify_install.htm for installation instructions.
![Page 10: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/10.jpg)
10 CS 501 Spring 2002
Notation: Classes
Window
originsize
open()close()move()display()
name
attributes
operations
A class is a description of a set of objects that share the same attributes, operations, relationships and semantics.
![Page 11: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/11.jpg)
11 CS 501 Spring 2002
The HelloWorld Example
HelloWorld
paint()
class
name
operations
![Page 12: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/12.jpg)
12 CS 501 Spring 2002
Notation: Grouping and Annotation
A package is a general-purpose mechanism for organizing elements into groups.
Business rules
return copy of self
A note is a symbol for rendering constraints and comments attached to an element or a collection of elements.
![Page 13: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/13.jpg)
13 CS 501 Spring 2002
Abstraction for HelloWorld
HelloWorld
paint() g.drawString ("HelloWorld", 0, 10)"
class
name
operations
annotation
![Page 14: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/14.jpg)
14 CS 501 Spring 2002
Class Diagram
Applet
HelloWorld
paint() Graphics
generalization
dependency
Note that the Applet and Graphics classes are shown elided.
![Page 15: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/15.jpg)
15 CS 501 Spring 2002
Class Inheritance Diagram
Object
Component
Container
Panel
Applet
HelloWorld
ImageObserver
interface
![Page 16: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/16.jpg)
16 CS 501 Spring 2002
Packaging Classes
applet
awt
lang
HelloWorld
java
Graphics
package
![Page 17: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/17.jpg)
17 CS 501 Spring 2002
Notation for Classes and Objects
Classes Objects
AnyClass
attribute1attribute2
operation1()operation2()
AnyClass
or
anObject:AnyClass
:AnyClass
anObject
The names of objects are underlined.
or
or
![Page 18: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/18.jpg)
18 CS 501 Spring 2002
The "Hello, World" Implementation
import java.awt.Graphics;class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString ("Hello, World!", 10, 10); }}
Example from: BJR
![Page 19: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/19.jpg)
19 CS 501 Spring 2002
Notation: Interface
An interface is a collection of operations that specify a service of a class or component, i.e., the externally visible behavior of that element.
ISpelling
![Page 20: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/20.jpg)
20 CS 501 Spring 2002
Notation: Collaboration & Use Case
Place order
A use case is a description of a set of sequence of actions that a system performs that yields an observable result.
Chain of responsibility
A collaboration defines an interaction, i.e., a society of roles and other elements that work together to provide some cooperative behavior.
![Page 21: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/21.jpg)
21 CS 501 Spring 2002
Notation: Active Class
EventManager
eventlist
suspend()flush()
An active class is a class whose objects own one or more processes or threads and therefore can initiate control activity.
![Page 22: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/22.jpg)
22 CS 501 Spring 2002
Notation: Component & Node
orderform.java
A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces.
Server
A node is a physical element that exists at run time and represents a computational resource.
![Page 23: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/23.jpg)
23 CS 501 Spring 2002
Notation: Behavioral Things:Messages & States
display
An interaction is a behavior that comprises a set of messages exchanged among a set of objects within a particular context to accomplish a specific purpose.
Waiting
A state machine is a behavior that specifies the sequence of states an object or an interaction goes through during its lifetime in response to events.
![Page 24: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/24.jpg)
24 CS 501 Spring 2002
Notation: Relationships
A dependency is a semantic relationship between two things in which a change to one may effect the semantics of the other.
0..1 *
employer employee
An association is a structural relationship that describes a set of links, a link being a connection among objects.
![Page 25: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/25.jpg)
25 CS 501 Spring 2002
Relationships
Parking
Parking Space
location
is_available()
1
0 ... 1
![Page 26: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/26.jpg)
26 CS 501 Spring 2002
Notation: Relationships (continued)
A generalization is a specialization/generalization relationship is which objects of the specialized element (child) are substitutable for objects of the generalized element (parent).
child parent
A realization is a semantic relationship between classifiers, wherein one classifier specifies a contract that another classifier guarantees to carry out.
![Page 27: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/27.jpg)
27 CS 501 Spring 2002
Diagrams in UML
A diagram is the graphical representation of a set of elements, usually rendered as a connected graph of vertices (things) and arcs (relationships).
• Class diagram shows a set of classes, interfaces, and collaborations with their relationships.
• Object diagram shows a set of objects and their relationships.
• Use case diagram shows a set of use cases and actors (a special kind of class) and their relationships.
![Page 28: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/28.jpg)
28 CS 501 Spring 2002
Diagrams in UML (continued)
Interaction diagram shows an interaction, consisting of a set of objects and the relationships, including the messages that may be dispatched among them.
=> A sequence diagram emphasizes the time ordering.
=> A collaboration diagram emphasizes the structural organization of the objects that send and receive messages.
![Page 29: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/29.jpg)
29 CS 501 Spring 2002
Example: A Sequence Diagram
BookBorrower
libMem: LibraryMember
theCopy:Copy
theBook:Book
borrow(theCopy)okToBorrow
borrowborrow
![Page 30: 1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I](https://reader035.vdocuments.net/reader035/viewer/2022062320/56649d805503460f94a64b9c/html5/thumbnails/30.jpg)
30 CS 501 Spring 2002
Diagrams in UML (continued)
• Statechart diagram shows a state machine consisting of states, transitions, events, and activities.
• Activity diagram is a statechart diagram that shows the flow from activity to activity within a system.
• Component diagram shows the organization and dependencies among a set of components.
• Deployment diagram shows the configuration of processing nodes and the components that live on them.