Teamwork

Know each other
•
•
•

Compete
•
•

Strengths and Weaknesses
Schedules
Preferences
With other groups
With each other
Leadership
•
•
Computer Science
Emergent
Social/Technical
Software Engineering
Slide 1
Characteristics of OOD





Objects are abstractions of real-world or system entities
and manage themselves
Objects are independent and encapsulate state and
representation information.
System functionality is expressed in terms of object
services
Shared data areas are eliminated. Objects
communicate by message passing
Objects may be distributed and may execute
sequentially or in parallel
Computer Science
Software Engineering
Slide 2
Advantages of OOD



Easier maintenance. Objects may be
understood as stand-alone entities
Objects are appropriate reusable components
For some systems, there may be an obvious
mapping from real world entities to system
objects
Computer Science
Software Engineering
Slide 3
Object-oriented development




Object-oriented analysis, design and programming are
related but distinct
OOA is concerned with developing an object model of the
application domain
OOD is concerned with developing an object-oriented
system model to implement requirements
OOP is concerned with realising an OOD using an OO
programming language such as Java or C++
Computer Science
Software Engineering
Slide 4
Objects and object classes



Objects are entities in a software system which
represent instances of real-world and system
entities
Object classes are templates for objects. They
may be used to create objects
Object classes may inherit attributes and services
from other object classes
Computer Science
Software Engineering
Slide 5
Objects
An object is an entity which has a state and a defined set of
operations which operate on that state. The state is represented as a
set of object attributes. The operations associated with the object
provide services to other objects (clients) which request these
services when some computation is required.
Objects are created according to some object class definition. An
object class definition serves as a template for objects. It includes
declarations of all the attributes and services which should be
associated with an object of that class.
Computer Science
Software Engineering
Slide 6
The Unified Modeling Language




Several different notations for describing objectoriented designs were proposed in the 1980s and
1990s
The Unified Modeling Language is an integration
of these notations
It describes notations for a number of different
models that may be produced during OO analysis
and design
It is now a de facto standard for OO modelling
Computer Science
Software Engineering
Slide 7
Employee object class (UML)
E m p loy e e
n a m e : st rin g
a d d re s s: s trin g
d a t e O fB irt h : Da t e
e m p lo ye e N o : in te g e r
s o cia lS e c u rity No : s trin g
d e p a rt me n t : De p t
ma n a g e r: E mp lo y e e
s a la ry : in te g e r
s ta t u s: {cu rre n t , le ft , re tire d }
t a xC o d e : in te g e r
. ..
jo in ()
le a v e ()
re t ire ()
c h a n g e De t a ils ()
Computer Science
Software Engineering
Slide 8
Object communication


Conceptually, objects communicate by
message passing.
Messages
•
•

The name of the service requested by the calling object.
Copies of the information required to execute the service
and the name of a holder for the result of the service.
In practice, messages are often implemented
by procedure calls
•
•
Computer Science
Name = procedure name.
Information = parameter list.
Software Engineering
Slide 9
Message examples
// Call a method associated with a buffer
// object that returns the next value
// in the buffer
v = circularBuffer.Get () ;
// Call the method associated with a
// thermostat object that sets the
// temperature to be maintained
thermostat.setTemp (20) ;
Computer Science
Software Engineering
Slide 10
Generalisation and inheritance




Objects are members of classes which define
attribute types and operations
Classes may be arranged in a class hierarchy
where one class (a super-class) is a generalisation of one
or more other classes (sub-classes)
A sub-class inherits the attributes and
operations from its super class and may add
new methods or attributes of its own
Generalisation in the UML is implemented as inheritance
in OO programming languages
Computer Science
Software Engineering
Slide 11
A generalisation hierarchy
E m p loy e e
Ma nager
P ro g ra m me r
b u d g e t sC o n tro lle d
d a t e A p p o in te d
P ro je c t
M a n ag e r
p ro je c ts
Computer Science
De p t.
Ma nager
dept
Software Engineering
p ro je c t
p ro g L a n g u a g e
S t ra te g ic
Ma n ag e r
re s p o n sib ilit ie s
Slide 12
Advantages of inheritance



It is an abstraction mechanism which may be
used to classify entities
It is a reuse mechanism at both the design and the
programming level
The inheritance graph is a source of
organisational knowledge about domains and
systems
Computer Science
Software Engineering
Slide 13
UML associations




Objects and object classes participate in
relationships with other objects and object classes
In the UML, a generalised relationship is
indicated by an association
Associations may be annotated with information
that describes the association
Associations are general but may indicate that an
attribute of an object is an associated object or
that a method relies on an associated object
Computer Science
Software Engineering
Slide 14
An association model
Em p lo yee
i s-m em ber-of
Dep artm en t
i s-m anag ed-b y
m anag es
Computer Science
Software Engineering
M anag er
Slide 15
Concurrent objects


The nature of objects as self-contained entities
make them suitable for concurrent
implementation
The message-passing model of object
communication can be implemented directly if
objects are running on separate processors in a
distributed system
Computer Science
Software Engineering
Slide 16
Servers and active objects

Servers.
•

The object is implemented as a parallel process (server)
with entry points corresponding to object operations. If no
calls are made to it, the object suspends itself and waits for
further requests for service
Active objects
•
Computer Science
Objects are implemented as parallel processes and the
internal object state may be changed by the object itself and
not simply by external calls
Software Engineering
Slide 17
Active transponder object


Active objects may have their attributes modified
by operations but may also update them
autonomously using internal operations
Transponder object broadcasts an aircraft’s
position. The position may be updated using a
satellite positioning system. The object
periodically updates the position by triangulation
from satellites
Computer Science
Software Engineering
Slide 18
An active transponder object
c las s T ran sp on de r ex te nd s T h re ad {
P os iti on c u rren tP os ition ;
C oo rd s c1 , c 2 ;
S atel lite s a t1 , s at2 ;
N av ig at o r th eN av ig ator ;
p ub lic P os iti on g ive P os iti on ( )
{
re tu rn cu rren tP os ition ;
}
p ub lic v o id r un ( )
{
w hile (t rue )
{
c 1 = s at1. po sition ( ) ;
c 2 = s at2. po sition ( ) ;
c ur ren tP os ition = th eNa vi ga to r.c om pu te (c1 , c 2) ;
}
}
} // T ra ns pon de r
Computer Science
Software Engineering
Slide 19
Java threads



Threads in Java are a simple construct for
implementing concurrent objects
Threads must include a method called run() and
this is started up by the Java run-time system
Active objects typically include an infinite loop
so that they are always carrying out the
computation
Computer Science
Software Engineering
Slide 20
Blank
Computer Science
Software Engineering
Slide 21
An object-oriented design process





Define the context and modes of use of the
system
Design the system architecture
Identify the principal system objects
Develop design models
Specify object interfaces
Computer Science
Software Engineering
Slide 22
Use Cases – System behavior



Use-cases are a scenario based technique which
identify the actors in an interaction and which
describe the interaction
A set of use cases should describe all possible
interactions with the system
Other types of UML diagrams can add detail to
use cases
Computer Science
Software Engineering
Slide 23
Use cases




Specify system behavior without specifying
implementation
Focus on interaction with users
Validate understanding of requirements
Decompose system into coherent categories of
functionality
Computer Science
Software Engineering
Slide 24
Use cases and informal scenarios




More abstract than informal scenarios. Avoids
reference to specific values
A single use-case usually encompasses multiple
scenarios
More formal
Express the complete breadth of functionality of
system
Computer Science
Software Engineering
Slide 25
LMS – identifying use cases

Check out resource
Return resource
Request resource
Reserve resource
…

Generate form letter




Computer Science
Software Engineering
Slide 26
Use case format -- LMS


Use Case: Check out resource
Precondition: The Library staff has successfully
identified herself to the library system by entering
a valid library staff identification and password. A
library database, containing information
concerning the library holdings and the patrons of
the library, has been created and initialized.
Computer Science
Software Engineering
Slide 27
Use case format - LMS

Main flow of events: The use case starts when the Library
staff requests the Check out resource function from the
system main menu. The system then initiates the Validate
patron use case. If that use case ends successfully and a
valid patron id has been entered into the system, the
system initiates the Enter resource use case. If the Enter
resource use case ends successfully, the Determine due
date use case is initiated. The Enter resource and
Determine due date use-case-pair is executed over and
over until the Library staff commits the entry by pressing
the enter key. The system then displays a list of valid
resources that have been entered along with due dates for
each resource. This ends the Check out resource use case.
Computer Science
Software Engineering
Slide 28
Use case format -- LMS


Exceptional flow of events: If the Validate patron use case
does not end with a valid patron id being entered, the
system cancels the entire transaction and this use case
ends
Exceptional flow of events: if the Enter resource use case
does not end with a valid resource Dewey call number
having been entered, the system displays an appropriate
warning message and continues the Check out resource
use case by skipping the Determine due date use case and
initiating the next instance of the Enter resource use case.
Computer Science
Software Engineering
Slide 29
Use case format -- LMS

Postcondition: If the Validate patron use case
does not end with a valid patron id being entered,
nothing in the entire system has changed when
this use case ends. If a valid library patron id was
entered, then the Patron object is updated with
the Dewey call numbers of the Resource objects
that have been checked out along with their due
dates. In addition, the Resource objects are
updated to have a status of checked-out along
with the library id of the Patron who check it out.
Computer Science
Software Engineering
Slide 30
Use Case: Validate Patron



Use case: Validate patron
Precondition: Patron needs some service
Main flow of events: The use case starts when the
system prompts the Library staff for the Patron’s
library id. The Library staff can either scan in a
card or type in an id and then commit the entry by
pressing the enter key. The system then checks to
see if the id is valid. If it is valid the system
displays the library record for Patron, thus ending
this use case
Computer Science
Software Engineering
Slide 31
Use case – Validate patron



Exceptional flow of events: If the Library staff enters an
invalid library id, the system cancels the entire transaction
and this use case ends
Exceptional flow of events: If the Library staff enters a
library id that has expired then the system cancels the
entire transaction and this use case ends
Exceptional flow of events: If the Patron has too many
resources checked out, he or she may not check out any
additional resources. A message that tallies and lists the
resources currently held by Patron is displayed on the
screen and this use case ends
Computer Science
Software Engineering
Slide 32
Use case – Validate patron


Exceptional flow of events: If the Patron has any
library resources that are more than two weeks
overdue, then these resources are listed on the
screen and this use case ends.
Postcondition: The system retrieves and displays
the library record of the Patron. The system’s
state has not changed.
Computer Science
Software Engineering
Slide 33
Architectural design


Once interactions between the system and its
environment have been understood, you use this
information for designing the system architecture
There should be no more than 7 entities in an
architectural model
Computer Science
Software Engineering
Slide 34
Key points




OOD is an approach to design so that design components
have their own private state and operations
Objects should have constructor and inspection
operations. They provide services to other objects
Objects may be implemented sequentially or concurrently
The Unified Modeling Language provides different
notations for defining different object models
Computer Science
Software Engineering
Slide 35
Key points


A range of different models may be produced
during an object-oriented design process. These
include static and dynamic system models
Object-oriented design simplifies system
evolution
Computer Science
Software Engineering
Slide 36
Descargar

Project management