CS 501: Software Engineering Fall 2000 Lecture 12 Object-Oriented Design II.
CS 501: Software Engineering Fall 2000
description
Transcript of CS 501: Software Engineering Fall 2000
![Page 1: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/1.jpg)
CS 501: Software EngineeringFall 2000
Lecture 11Object-Oriented Design I
![Page 2: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/2.jpg)
2
Administration
• Preparation for presentation
-- Recitation Section, Monday October 2
-- Not all members of team need be present
• Fall Programming Contest for this year will be on October 14th, organized by the ACSU and David Kempe.
http://www.cs.cornell.edu/kempe/contest/default.html
![Page 3: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/3.jpg)
3
What is in a Requirements Document?
Example (Web Butler and Web Site Profiler)
• Run web data collection in real time or batch mode How are jobs started?
• Job parameters How are the parameters set up (interactive, edit file, ...)? What are the parameters (specify)? Can job parameters be stored and used again? If so, how?
• Job monitoring What feedback is given while job is running? Can the user pause or break a job? If so, are the results retained?
![Page 4: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/4.jpg)
4
What is in a Requirements Document?
Remember
• The requirements document specifies the functionality that you plan to deliver to the client
• It must be comprehensive and detailed. Everything must be written out -- no hand waving!
The requirements document is likely to be several times as long as Assignment 1.
![Page 5: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/5.jpg)
5
Assignment 2 -- Individual Parts
One approach:
With your document, include a list of who contributed what part to the Requirements study, e.g.,
Person A
Requirements analysis for database design (member of team of 3), wrote Section 3.1 of document, worked with client to identify software needs.
Person B
Prepared visual aids for presentation, edited entire document, specified the security needs and wrote Section 4.2.
![Page 6: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/6.jpg)
6
The Waterfall Model
RequirementsDefinition
Implementationand Unit Testing
Integration andSystem Testing
Operation andMaintenance
System andSoftware design
![Page 7: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/7.jpg)
7
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 8: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/8.jpg)
8
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 9: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/9.jpg)
9
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 10: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/10.jpg)
10
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 11: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/11.jpg)
11
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 12: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/12.jpg)
12
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 13: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/13.jpg)
13
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 14: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/14.jpg)
14
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 15: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/15.jpg)
15
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 16: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/16.jpg)
16
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 17: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/17.jpg)
17
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 18: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/18.jpg)
18
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 19: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/19.jpg)
19
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 20: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/20.jpg)
20
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 21: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/21.jpg)
21
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 22: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/22.jpg)
22
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.
![Page 23: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/23.jpg)
23
The HelloWorld Example
HelloWorld
paint()
class
name
operations
![Page 24: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/24.jpg)
24
Abstraction for HelloWorld
HelloWorld
paint() g.drawString ("HelloWorld", 0, 10)"
class
name
operations
annotation
![Page 25: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/25.jpg)
25
The "Hello, World" Example
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 26: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/26.jpg)
26
Class Diagram
Applet
HelloWorld
paint() Graphics
generalization
dependency
Note that the Applet and Graphics classes are shown elided.
![Page 27: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/27.jpg)
27
Class Inheritance Diagram
Object
Component
Container
Panel
Applet
HelloWorld
ImageObserver
interface
![Page 28: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/28.jpg)
28
Packaging Classes
applet
awt
lang
HelloWorld
java
Graphics
package
![Page 29: CS 501: Software Engineering Fall 2000](https://reader035.fdocuments.net/reader035/viewer/2022081520/56815a74550346895dc7dbb5/html5/thumbnails/29.jpg)
29
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