Software Engineering Lecture 8 Object-Oriented Analysis.
-
Upload
camron-atkinson -
Category
Documents
-
view
230 -
download
4
Transcript of Software Engineering Lecture 8 Object-Oriented Analysis.
![Page 1: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/1.jpg)
Software Engineering
Lecture 8
Object-Oriented Analysis
![Page 2: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/2.jpg)
2
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 3: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/3.jpg)
3
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 4: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/4.jpg)
4
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 5: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/5.jpg)
5
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 6: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/6.jpg)
6
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 7: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/7.jpg)
7
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 8: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/8.jpg)
8
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 9: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/9.jpg)
9
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 10: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/10.jpg)
10
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 11: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/11.jpg)
11
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 12: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/12.jpg)
12
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 13: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/13.jpg)
13
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 14: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/14.jpg)
14
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 15: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/15.jpg)
15
The HelloWorld Example
HelloWorld
paint()
class
name
operations
![Page 16: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/16.jpg)
16
Abstraction for HelloWorld
HelloWorld
paint() g.drawString ("HelloWorld", 0, 10)"
class
name
operations
annotation
![Page 17: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/17.jpg)
17
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); }}
![Page 18: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/18.jpg)
18
Class Diagram
Applet
HelloWorld
paint() Graphics
generalization
dependency
![Page 19: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/19.jpg)
19
Class Inheritance Diagram
Object
Component
Container
Panel
Applet
HelloWorld
ImageObserver
interface
![Page 20: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/20.jpg)
20
Packaging Classes
applet
awt
lang
HelloWorld
java
Graphics
package
![Page 21: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/21.jpg)
21
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 22: Software Engineering Lecture 8 Object-Oriented Analysis.](https://reader036.fdocuments.net/reader036/viewer/2022062519/5697bf9e1a28abf838c946ef/html5/thumbnails/22.jpg)
22
Project Work
• Continue to work in your teams to create your Analysis Document.
• Next, more on UML and OO Analysis and Design.