Management of The Object Oriented Development Process 1st Edition Liping Liu All Chapter Instant Download
Management of The Object Oriented Development Process 1st Edition Liping Liu All Chapter Instant Download
com
https://ebookgate.com/product/management-of-the-object-
oriented-development-process-1st-edition-liping-liu/
OR CLICK HERE
DOWLOAD NOW
https://ebookgate.com/product/the-principles-of-object-oriented-
javascript-zakas/
ebookgate.com
https://ebookgate.com/product/object-oriented-oracle-wenny-rahayu/
ebookgate.com
https://ebookgate.com/product/php-object-oriented-solutions-1st-
edition-david-powers/
ebookgate.com
https://ebookgate.com/product/object-oriented-analysis-and-design-
understanding-system-development-with-uml-2-0-first-edition-mike-
odocherty/
ebookgate.com
https://ebookgate.com/product/object-oriented-programming-with-abap-
objects-1st-edition-james-wood/
ebookgate.com
https://ebookgate.com/product/object-oriented-programming-
with-c-2-e-second-edition-sahay/
ebookgate.com
https://ebookgate.com/product/object-oriented-design-and-patterns-2nd-
edition-cay-s-horstmann/
ebookgate.com
https://ebookgate.com/product/object-oriented-programming-in-c-7th-
print-with-corrections-edition-lafore/
ebookgate.com
Management of
the Object-Oriented
Development Process
Liping Liu
The University of Akron, USA
Boris Roussev
University of the Virgin Islands, USA
Copyright © 2006 by Idea Group Inc. All rights reserved. No part of this book may be reproduced,
stored or distributed in any form or by any means, electronic or mechanical, including photocopying,
without written permission from the publisher.
Product or company names used in this book are for identification purposes only. Inclusion of the
names of the products or companies does not indicate a claim of ownership by IGI of the trademark
or registered trademark.
Management of the object-oriented development process / Liping Liu and Borislav Roussev, editors.
p. cm.
Summary: "This book consists of a series of high-level discussions on technical and managerial issues
related to object-oriented development"--Provided by publisher.
Includes bibliographical references and index.
ISBN 1-59140-604-8 (hard cover) -- ISBN 1-59140-605-6 (softcover) -- ISBN 1-59140-606-4
(ebook)
1. Object-oriented programming (Computer science) 2. Computer software--Development. I. Liu,
Liping. II. Roussev, Borislav.
QA76.64.M348 2005
005.1'17--dc22
2005004533
All work contributed to this book is new, previously-unpublished material. Each chapter is assigned to at
least 2-3 expert reviewers and is subject to a blind, peer review by these reviewers. The views expressed
in this book are those of the authors, but not necessarily of the publisher.
Management of the
Object-Oriented
Development Process
Table of Contents
Preface .................................................................................................. vi
Chapter I
Object-Oriented Modeling in UML2 .................................................... 1
Boris Roussev, University of the Virgin Islands, USA
Chapter II
MDA with xUML: Model Construction and Process
Management ........................................................................................ 36
Boris Roussev, University of the Virgin Islands, USA
Chapter III
Management Planning in a Changing Development Environment ... 61
Melissa L. Russ, Luminary Software and Space Telescope
Science Institute, USA
John D. McGregor, Luminary Software and
Clemson University, USA
Chapter IV
MDA Design Space and Project Planning .......................................... 87
Boris Roussev, University of the Virgin Islands, USA
Chapter V
Agile Outsourcing to India: Structure and Management ................ 109
Boris Roussev, University of the Virgin Islands, USA
Ram Akella, University of California, USA
Chapter VI
User Requirements Validation and Architecture Discovery
through Use Case Invariants and Model Animation ....................... 141
Boris Roussev, University of the Virgin Islands, USA
Yvonna Rousseva, University of the Virgin Islands, USA
Chapter VII
RUP and eXtreme Programming: Complementing Processes ....... 183
Gary Pollice, Worcester Institute of Technology, USA
Chapter VIII
Managing Complexity with MDSD .................................................. 200
Jorn Bettin, SoftMetaWare, USA
Chapter IX
Agile RUP: Taming the Rational Unified Process ............................................ 231
Gary K. Evans, Evanetics, Inc., USA
Chapter X
Planning and Managing the Human Factors for the Adoption
and Diffusion of Object-Oriented Software Development
Processes ........................................................................................... 247
Magdy K. Serour, University of Technology, Sydney, Australia
Chapter XI
Web Services in Service-Oriented Architectures ............................ 278
Gerald N. Miller, Microsoft Corporation, USA
Chapter XII
Model-Based Development: Metamodeling, Transformation
and Verification .................................................................................. 289
Juan de Lara, Universidad Autónoma de Madrid, Spain
Esther Guerra, Universidad Carlos III, Spain
Hans Vangheluwe, McGill University, Canada
Chapter XIII
Agile Project Controlling and Effort Estimation ............................... 313
Stefan Roock, it-agile GmbH, Germany
Henning Wolf, it-agile GmbH, Germany
Chapter XIV
Improving OO Design Process Using Rules, Patterns and
Refactoring ........................................................................................ 325
Javier Garzás, University Rey Juan Carlos, Spain
Mario Piattini, University of Castilla-La Mancha, Spain
Chapter XV
The BORM Method: A Third Generation Object-Oriented
Methodology ...................................................................................... 337
Roger Knott, Loughborough University, UK
Vojtech Merunka, University of Agriculture in Prague,
Czech Republic
Jiri Polak, Deloitte & Touche, Prague, Czech Republic
Preface
Introduction
Organization
shore developers. Roussev and Akella show how these problems can be suc-
cessfully resolved by scaling down a large outsourcing project to meet the
Agile “sweet spot,” and by carefully managing the communication patterns
among all stakeholders.
In Chapter VI, Roussev and Rousseva present a process extension applicable
to both lightweight and heavyweight development methods. The extension is
based on a business value invariant, and views the iterative and incremental
model of software development as a communication model. The proposed
techniques link the informal user requirements world to the system model,
which makes it possible to derive mechanically the system architecture from
the user requirements, and automatically to validate it with respect to the
system’s use case model through model animation.
It is a well-known fact that many of the agile practices are incompatible with
the context of large-sized projects. Gary Pollice and Gary Evans, two nation-
ally recognized methodologists, independently present their approaches to
reproducing the conditions for agility in large-sized projects by balancing agil-
ity and discipline. Pollice and Evans look out for common grounds between
Agile and RUP to get the best of both worlds.
In Chapter IX, Jorn Bettin, director of an international strategic technology
management consultancy, addresses the question of how to create durable and
scalable software architectures, so that the underlying design intent survives over
a period of many years. Bettin goes beyond object-orientation and traditional
iterative software development to define a set of guiding principles for compo-
nent encapsulation and abstraction, and to form the foundation for a model-
driven approach to software development.
In Chapter X, Magdy Serour from the Centre for Object Technology Appli-
cations and Research (COTAR) at the University of Technology, Sydney, delves
into a gray area of object-orientation, namely, the effect of various human
factors on the adoption and diffusion of an object-oriented software develop-
ment process. Serour defines a process to assist organizations in planning and
managing their transition to object-oriented development. The author discusses
key “soft” factors, such as motivation, leadership, and overcoming the resis-
tance to culture change, which are critical in promoting the process of organi-
zational change.
In Chapter XI, Gerald Miller from Microsoft addresses a very important area
of the new technological wave. Integration of systems in a cost-effective way
is crucial for most enterprises, as many integration efforts fail to bring about
the promised return on investment. Miller’s presentation discusses how to
ix
Acknowledgments
We would like to thank Mehdi Khosrow-Pour, Idea Group Inc. Senior Edi-
tor, for inviting and accepting our book proposal and for his insistence on
timely completion of this project. Thank you also to Jan Travers, Idea Group
Inc. Managing Director, for her patience that made it possible to bring this
project to fruition. We would also like to thank all referees for their assistance
in reviewing and improving on some of the chapter materials.
The second editor would also like to thank Professor Aubrey Washington and
Chancellor Jennifer Jackson at the University of the Virgin Islands for their
continued support and encouragement. He is indebted to his colleague, Pro-
fessor John Munro, for his professional advice, valuable suggestions, and feed-
back. He is grateful to Professor Akella at the University of California, Santa
Cruz, for providing me with the opportunity to work and do research in the
Silicon Valley.
Above all, he expresses his deep gratitude to Professor Yvonna Rousseva, his
spouse, for her insightful comments, incisive critique, and numerous thought-
provoking discussions. Without her, this book would have been impossible to
finish.
Object-Oriented Modeling in UML2 1
Chapter I
Object-Oriented
Modeling in UML2
Boris Roussev
University of the Virgin Islands, USA
Abstract
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
2 Roussev
introduce the core UML modeling languages and some of the techniques
closely associated with them; and 4) to discuss some of the challenges with
object-oriented modeling. In addition, we present the E-ZPass system, a
system of moderate complexity used as a running example in the first five
chapters of this book. This presentation is the book’s cornerstone. There
is not a single chapter in the rest of this volume that does not assume an
overdetermined <<UML>> reader.
Introduction
Features Needs
To structure a system into modular components that can
u Control complexity.
be developed, maintained, and reused separately.
To base the semantic structure and behavior of the
v Reduce the cognitive burden.
solution on the problem being solved.
To raise the level of abstraction of the artifacts being
w Curb complexity.
constructed.
To use a common vocabulary with the client. To describe Link business and
x the problem in a notation that is client and designer technology, and improve
friendly. communication.
Testability, executability,
To describe a problem precisely and in a way that avoids
y portability, productivity, and
delving into technical details.
design automation.
To allow for reuse at all levels: requirements, analysis,
Improve quality and
z design, architecture, and domain, and at all levels of
productivity.
interest: structural, behavioral, and communicational.
To provide the basis for effective management of the
{ Develop cost-effectively.
development process.
Improve quality and
| To automate repetitive design and implementation tasks.
productivity.
To facilitate iterative and incremental, architecture- Risk mitigating, exploratory
}
centered, test-driven processes. processes.
To respond to change quickly and in a cost-effective Satisfy the ever-evolving
~
manner. user needs.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 3
In modern history of science, it is not very common to have such a low adoption
rate as in the case of OO. The work of Dahl and Nygaard was made almost
extinct by two programming languages called COBOL and C, which muscled
their way through, backed by several major industry players and governmental
agencies.
Despite the recognition, OO (with the exception of use cases) is not yet the
dominant technology of choice. In a comprehensive study, Laplante and
Neill (2004) report that only 30% of the software companies rely on OO
technologies and that the waterfall model is still the most popular lifecycle
model in use. The authors conclude that OO techniques are not dominant,
which is in sharp contrast with the common belief about the popularity of
OO methods and technology.
In this introductory chapter, we lay the fundamental concepts of OO using
the Unified Modeling Language (UML, 2004). Since it was adopted by the
OMG in 1997, UML has been widely accepted throughout the software-
modeling world and successfully applied to diverse domains. Therefore,
it will not be much of an exaggeration to paraphrase from Wittgenstein1:
namely, the limits of UML mean the limits of my OO world.
Since OO modeling is dominated by UML in all areas, it seems unlikely for
an OO notation or method to be able to survive away from UML. In the
foreseeable future, the evolutionary history of OO will be tied in very
closely to that of UML. As a result, OO methods may undergo a population
“bottleneck.” In biology, this is an event that cuts dangerously the amount
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
4 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 5
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
6 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 7
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
8 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 9
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
10 Roussev
In this section, we introduce the core set of the UML modeling languages
needed to design OO systems. The UML models we discuss are class
diagrams modeling the information structure of a system, FSMs represent-
ing the behavior of individual objects, use cases expressing user require-
ments, and interaction diagrams (sequence and communication diagrams)
modeling interactions among societies of objects, collaborating to realize
user requirements.
Case Study
In this and the next four chapters, we will use the following system as a
running example.
In the road traffic E-ZPass system, drivers of authorized vehicles are
charged at tollgates automatically. They pass through special lanes called
E-Z lanes. To use the system, a driver has to register and install an electronic
tag (a gizmo) in his/her vehicle. The vehicle registration includes the
owner’s personal data, credit card or bank account, and vehicle details. As
a registered vehicle passes through the tollgate, an antenna electronically reads
account information on the gizmo, and the toll is automatically deducted from
the prepaid account. The amount to be debited depends on the kind of the
vehicle. When an authorized vehicle passes through an E-Z lane, a green light
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 11
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
12 Roussev
Register Vehicle
Operator
Invalid Account
Pass 2-Point Tollgate
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 13
The concepts used for describing systems’ information structures in UML are
class, object, relationship, component, subsystem, and OCL constraints.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
14 Roussev
The real world is populated with objects (or instances) of different kinds:
books, bank accounts, and tollgates, to mention a few. Each object has a
number of characteristic attributes that identify it. For example, a book has
a title, author, and publisher. A bank account has an account number, owner,
and interest rate. Figure 3 shows the characteristic attributes of several
kinds of objects. Such an object description is called class, because it
describes a class (set) of similar objects.
Although the object’s attribute values give us information about the object’s
identity, this information is somewhat static. The attributes alone fail to
represent the dynamic nature of many objects. What we need to know are the
operations in which the objects can be involved, or in other words, the behavior
the objects can exhibit. For example, a bank account can accumulate interest
rate, can be debited or credited.
Graphically, a class is represented as a rectangle with three compartments as
shown in Figure 4. The top compartment contains the class name. The middle
Book
BankAccount
ISBN Tollgate
AccountNumber
Title Loc ation
Owner
Publisher Rate
InterestRate
FirstAuthor
BankAccount
AccountNumber
Class Name Owner
InterestRate
Attributes
Debit()
Operations()
Credit()
Balance()
AccumulateInterest()
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 15
Relationships
The attributes and operations alone are not sufficient to understand the
“essence” of an object. An object in isolation does not have a complete “self-
identity.” The human mind distinguishes between objects by difference. This
difference is determined by the relationships into which objects can enter, by
the ways the objects can be used. The relationships into which an object can
enter are determined by the object’s responsibilities to other objects (imple-
mented as publicly accessible operations). Similar to how words mean in a
language, we can say that an object acquires “self-identity” through different
relationships with other objects. Objects are never strictly defined and identi-
fied unless they enter into relationships.
Jacques Derrida, the French linguist-philosopher, has famously argued that
everything has an originary lack. By entering into relationships with other
objects, the thing compensates for this originary lack. Let us consider a bed
and breakfast room. The room alone is a lump of bricks and furniture,
inconsequential for understanding its purpose, which can be articulated and
manifested only through the relationships into which the room participates. The
relationship room-owner and the relationship room-guest are the room’s
“essential” characteristics. For the owner, the room is a source of income, while
for the guest, the room is a place to rest. The former relationship satisfies the
owner’s lack or desire (for a source of income), while the latter satisfies the
guest’s lack (a home away from home). We can say that the room’s relation-
ships came into being to fill in the owner’s and the guest’s voids.3
In OO, relationships are formalized as associations of various kinds. Associa-
tions model the rules of a problem domain. On class diagrams, associations are
drawn as lines connecting classes. An association between two classes implies
that at runtime the instances of the classes can be linked in some way, enabling
them to invoke each other’s operations. An arrowhead is indicative of the
association’s navigability. A line with no arrowheads denotes a bi-directional
association—that is, at runtime objects on either side of the association can
invoke an operation on the object on the opposite side.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
16 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 17
with a filled diamond. The real difference between aggregation and composition
stands out only in coding as containment by reference and containment by
value. In terms of modeling there are no semantic differences between the two
associations.
Interface
An interface is a named collection of operation signatures (name, parameter
types, return type), attributes, and a protocol state machine (a subset of FSM)
defining a service. An interface specifies a contract for a service to be offered
by a server class, without revealing any implementation details. It has no
behavior by itself, and it cannot not be instantiated. The operations an interface
specifies are implemented in a class (could be a structured class, see below),
and at runtime they are provided by an instance of this class. The relationship
between an interface and its realizing class is best described as type inheritance,
since it signifies that the realizing class conforms to the contract specified by the
interface—that is, the realizing class is type conformant to the interface type. In
class diagrams, this relation is stereotyped as <<realize>> (see Figure 7). UML
also uses the ball-and-socket notation, where the ball represents an interface
to be realized by a class (see Figure 7). Interfaces are there to separate the
specification of a service from its implementation. We say that a class realizes
an interface if it provides operations for all the operations specified in the
interface. One class may realize multiple interfaces.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
18 Roussev
Generalization
When two or more classes share a common structure and behavior, the
commonalities can be factored out and placed in a more general super class,
from which the rest of the classes inherit (or derive). The super class has
attributes, associations, or behavior that apply to all derived subclasses. The
derived classes are said to specialize the super class by adding or modifying
attributes, associations, or behavior.
In Figure 8, EZPass is a superclass, and OnePointPass and TwoPointPass are
subclasses. The subclasses can either specialize or extend the super class.
Generalization can be described as “is_a” relationship, for example,
OnePointClass “is_a” kind of EZPass. The “is_a” relationship imposes
interface compliance on the participating classes. This means that any
occurrence of the superclass can be substituted with an instance of the
subclass without semantically breaking the model.
Specializing, also called polymorphism, means that the same operation has a
different implementation in the subclass. In UML, only operations and FSMs
can be specialized (overridden or redefined); for example, operation
CalculateRate in TwoPointPass is implemented differently from its analog
in EZPass, even though it has the same interface. Extending means that the
subclass can have new attributes, operations, states, or transitions.
Through generalization, we may avoid class modification by elegantly reusing the
superclass functionality for creating specialized subclasses. The specialized
EZPass
Vehicle
1 R4 0..* Rate
Plate
Tag belongs_to makes
getRate()
calculatePay()
R5
TwoPointPass
OnePointPass EntryLocation
Location ExitLocation
DateTime EntryDateTime
ExitDateTime
Distance
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 19
classes have some of their inherited responsibilities redefined and possibly new
ones added. For example, if a need arises for a super-fast E-Z tollgate, we will
not have to change anything in the existing tollgates. All that is required is to extend
the generalization hierarchy with a new subclass for the new type of tollgate.
Package
UML packages are a mechanism for organizing modeling elements, including
other packages, into groups. A package defines only a namespace for the
elements it contains. Packages are used to divide a system model into
independent parts, which can be developed independently. Graphically, a
package is rendered as a tabbed folder (see Figure 9).
Tollgate
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
20 Roussev
Structured Class
A structured class is a runtime container for instances of classes and other
structured classes, collectively called parts or elements. These parts are
interconnected with communication links named connectors, as shown in
Figure 10. Apart from being in charge of creating and destroying its parts
and connectors, a structured class may coordinate its parts’ activities, for
example, through an FSM.
A structured class contains its part through composition. An instance multiplic-
ity number written in the corner of a part shows the number of instances from
that part. The parts and the connectors constitute the part topology of the
structured class.
A structured class offers a collection of services to its environment, published
via <<provided>> interfaces and accessed at runtime via ports. A provided
interface is a contract for service. If, in turn, a structured class uses the services
of other instances (including structured classes), it can place demands on these
instances by <<required>> interfaces. UML uses the ball-and-socket notation
for the provided (ball) and required (socket) interfaces (see Figure 10). Ports
can be thought of as being typed by their interfaces. Typed ports serve as
Figure 10. Structured class, ports, provide and required interfaces, and
connectors
StructuredClass
1 1
port_cl InstanceA InstanceB port_serv
iRequest iService
1
InstanceC
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 21
access points for interactions between the internal parts of the structured class
and its environment.
Ports relay the incoming messages to the internal parts and the outgoing
messages from the internal parts to the external objects attached to the
structured class through connectors without revealing the part’s identity.
To summarize, a port publishes the operations implemented by a collaboration
of internal parts on the structured class border. The structured class boundary
and ports decouple the internal elements from the external environment, thus
making a structured class reusable in any environment that conforms to the
required interfaces imposed by its ports.
Components
A UML component is a structured class providing a coherent set of services
used and replaced together. A component’s behavior is specified in terms
of provided and required interfaces. We say that a component is typed by
its interfaces. A component may be substituted by another one, only if the two
are type conformant. There are no differences between structured classes and
components, except for the connotation that components can be configured
and used like Lego blocks in different contexts to build things.
At present, the most widely used commercial component frameworks are
Enterprise Java Beans, .NET, COM+, and CORBA Component Model.
Subsystem
A subsystem is a large-scale component and a unit of hierarchical decompo-
sition. At the highest level, a system is decomposed into several subsystems. In
addition to a collection of services, a subsystem defines a namespace for its
parts. A subsystem may have separate specification and realization parts
stereotyped respectively as <<specification>> and <<realization>>. This
makes it possible for one specification to have multiple realizations.
Components can be assembled in an enclosing <<subsystem>> container by
wiring together their required and provided interfaces. The components’
interfaces are linked either by connectors or by dependency relationships
(see Figure 11).
The Infrastructure package is a container for common elements such as types
(classes and interfaces) exposed in component interfaces, usage points (ser-
vices), and extension points (classes to subclass in other packages).
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
22 Roussev
port_card iDebit
PassOnePointTG
<<Subsystem>> <<Component>>
port_debit
port_get_card
iGetCard
iDebit
<<Subsystem>>
Infrastructure
CreditCardInfo iDebit
<<interface>>
iGetCard Confirmation
<<interface>>
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 23
Driver
CreditCard 1 R4 1..* Vehicle 1..* R1 1
covered_by charged_for owns belongs_to
LastName
Age
1 made_by
R5
0..* gets
Passage 1 R6 0..1 Payment
calculateRate() is_for is_paid Amount
As another example, if we want to make sure that all tags have unique IDs, we
can write:
Pre- and post-conditions specify the effect of a class operation without stating
its algorithm or implementation. To indicate the operation for which the
conditions must hold, we extend the constraint’s context with the operation
name. For example,
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
24 Roussev
where Balance@pre refers to the value of the attribute at the start of the
operation.
Next, we show how starting from a specific instance we can navigate its class
associations to refer to related objects and the values of their attributes. To
navigate association R6 in Figure 12, we use the association’s label and the role
predicate at the far end:
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 25
Object Behavior
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
26 Roussev
NewTollgate Ready
entry/ entry/
// Set location and rate operate(mode) // If mode is 2
// Relate self to lights // Generate signal to turn yellow lights on
// Generate signal turn lights green // Else
// Generate signal to transition to // Transition to state VerifyTag
state Ready // End if
operate(mode)
operate(mode) detectTag(tagID)
VerifyTag
entry/
CreatePayment
// If the tag is valid
entry/ procPayment() // Create a new Passage instance
// Create a new credit card charge
// Transition to CreatePayment
// Generate signal to self to transition to
// Else
state Ready
// Generate signal operate(2)
// End if
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 27
tollgate retrieves the credit card, serving the vehicle related to the detected tag,
and creates a Payment instance, taking care of charging the credit card. At this
point, the tollgate returns to state Ready to process the next vehicle.
Not all classes exhibit interesting lifecycles. The behavior of a class can be
defined as state dependent or simple (state independent). FSM models are not
constructed for simple classes.
Collaborative Behavior
Sequence Diagrams
Once the elicited user requirements are modeled with use cases and the classes
supporting the use cases are discovered, it is time to verify the decisions made.
An important objective in the early stages of a project is to mitigate risks and
to gain a high level of confidence in the discovered classes and their responsi-
bilities. Mistakes at early stages are costly since they result in backtracking and
extensive rework.
Interaction analysis is a technique employing sequence diagrams to analyze the
dynamics of the classes derived from a use case description. Sequence
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
28 Roussev
diagrams have the following uses: (1) to analyze the dynamic interactions
between class instances and to reduce the risk of incorrect class discovery; (2)
to create traceability relationships from use cases to class diagrams;( 3) to
tackle the problem of allocating responsibilities among classes and to define the
class interfaces (public operations); and (4) to plan functional system testing.
Sequence diagrams display the causal dependencies among messages and
signals exchanged between lifelines of instances and their relative time
ordering. Figure 14 shows how a sequence diagram portrays the time ordering
of the messages exchanged among instances during the execution of a scenario.
The instances taking part in the scenario are arranged along the X-axis, with the
initiating instance (usually an actor) being on the far left side. The lifelines of the
instances are represented as vertical bars, with time flowing from top to bottom.
Messages and signals are modeled as arrows pointing to the receiver. Signals
are modeled with a half arrowhead, while messages are modeled with a full
arrowhead. The direction of the arrowhead is indicative of the invocation
direction and not of the data flow. The lifeline of an object created or destroyed
during an interaction starts or ends, respectively, with the receipt of a message
or signal. A large X marks the end of a lifeline. The focus of control is a rectangle
superimposed over a lifeline, indicating that the instance is performing an action.
The top of the rectangle coincides with the start of the action, while its bottom
aligns with the action’s completion.
The black box view offered by a sequence diagram can be cracked open if
instead of focus of control, the modeler shows the names of the states through
which the instance progresses.
Communication Diagrams
A communication diagram is an object diagram showing the messages and their
ordering attached to the static links between the objects, as illustrated in Figure
14. A communication diagram emphasizes the organization of the objects.
To sum up, interaction diagrams lack the completeness of FSMs. They are used
primarily to explore and verify a particular scenario rather than build an artifact.
During exploration, new messages, signals, operations, and even classes can be
discovered and added to the model.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 29
getCCard
operate
8:
: Tollgate
4: 5: getCCard
: Driver
3: create 6:
: Passage : Vehicle
Advantages
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
30 Roussev
Disadvantages
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 31
be familiar with the capabilities and limitations of all parts of the language, so
sufficient breath of knowledge is still required.
Conclusion
It is firmly believed that the solution to the current software crisis depends on
raising the level of abstraction of the constructed software artifacts and on
increasing the level of automation in the software design process. “Divide and
conquer” proved insufficient to contain the software complexity. This point is
illustrated by the revised Roman adage, “Divide to conquer, but unite to rule.”
Abstraction and automation are the only effective means we can apply to curb
complexity that overwhelms our cognitive capacities. “Un-mastered complex-
ity” is the root cause for the software crisis.
The use of models with executable semantics is set to move into the mainstream
of OO software development. Automation through executability challenges the
tacit assumption that software development will remain the same type of mental
activity it has always been—that is, given a problem, a developer should
liberally apply creativity to synthesize a solution. The “liberal creativity”
approach rules out a quantum leap in the ability to develop software, because
the human mind does not evolve in sync with the growing software complexity.
As Herbert Robins has stated, “Nobody is going to run 100 meters in five
seconds, no matter how much is invested in training and machines. The same
can be said about using the brain. The human mind is no different now from what
it was five thousand years ago. And when it comes to mathematics [understand
software], you must realize that this is the human mind at an extreme limit of its
capacity.”
Dijkstra’s reaction to this statement was “So reduce the use of the brain and
calculate!” and then, Dijkstra went on to elaborate that “for going from A to B
fast, there exist alternatives to running that are orders of magnitude more
effective.” Robbins’ argument fell flat on its face.
The advantage of adding automation to object-oriented models is, in
Dijkstra’s spirit, increased use of calculation at the expense of “liberal
creativity” to master the software complexity and put the software crisis to
rest.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
32 Roussev
References
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 33
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
34 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Object-Oriented Modeling in UML2 35
Endnotes
1
“The limits of my language mean the limits of my world” - Ludwig
Wittgenstein.
2
DSLs (domain specific languages) are modeling languages targeting a
particular technological domain or problem.
3
The linguistic approach to object-orientation is an ongoing interdisci-
plinary project with Yvonna Rousseva, who is credited with the idea
of redefining objects through the premises of the theory of
deconstruction.
4
Fowler (2003) divides the use of UML into UMLAsSketch, UMLAs
BluePrint, and UMLAsProgrammingLanguage.
5
In Newtonian mechanics, if we know the trajectories of a system of
bodies, we can determine the positions of the bodies at any future moment.
6
Other authors see this as a weakness, for example, Knott et al. (2005),
included in this book.
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
36 Roussev
Chapter II
Abstract
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
MDA with xUML: Model Construction and Process Management 37
Introduction
C.A. Petri was the first to define formally the notion of communicating state
machines in his PhD thesis, “Kommunikation mit Automaten,” back in 1962.
His visual modeling language for modeling concurrency and synchronization,
later known as Petri nets, is an extension of the Finite State Machine (FSM)
theory. Even though Petri nets is an intuitive and powerful process coordination
language, several pieces were crucially missing to bridge the Petri nets paradise
to the real world. Petri nets lacked an information structure model such as class
diagrams, a development process for effective product development from
informal requirements such as Agile (Beck, 1999), and action semantics (other
than transition firing rules). Action semantics defines a virtual machine for model
interpretation, giving substance to the notion of model “executability.”
The Shlaer-Mellor method (Shlaer & Mellor, 1988, 1992), one of the first
object-oriented (OO) analysis methods, uses class diagrams to represent the
information structure of a system. This information model was influenced by the
relational theory of data (Codd, 1970) and database modeling with entity-
relationship diagrams (Chen, 1977). Shlaer and Mellor reinvented the idea of
communicating FSMs in the context of OO by employing FSMs to abstract
lifecycles of objects, whose progression is driven by external or internal
asynchronous signals. They describe objects’ execution behavior as state
procedures consisting of actions. The actions perform tasks on modeling
elements; for example, they traverse an association link to retrieve the value of
an attribute in a related instance, or generate signals to the FSMs of related
objects. Shlaer and Mellor advanced the idea of composing complete systems
out of executable models.
Shlaer and Mellor put at the top of the OO agenda the notion of model
executability. Their method evolved into a pure object-oriented notation
(Mellor & Balcer, 2002; Mellor et al., 2004), which is currently shaping up the
future of UML.
Model-Driven Architecture (MDA) (Mellor & Balcer, 2002) is a term defined
by OMG. The MDA approach to software development relies on Executable
UML (xUML) (MDA, 2004), a UML profile with executable semantics. MDA
distinguishes between Platform Independent Models (PIM) and Platform
Specific Models (PSM).
In MDA, software does not need to be programmed at all, or at least not by
humans. This can be achieved through the integration of a programming
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
38 Roussev
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
MDA with xUML: Model Construction and Process Management 39
Objects have not lived up to all expectations. They have turned out to be
disproportionately small compared to the size of the systems being built with
them. Gamma et al. (1995) showed the advantages of reusing collections of
related objects. In the E-ZPass system, for example, a vehicle inevitably
belongs to a driver, and it only makes sense to reuse these two objects together.
Societies of closely related objects provide the foundation for components. A
component is an encapsulation of objects exposing a set of interfaces. With
components, a system is described in terms of interactions among component
interfaces and is built by wiring up these interfaces. There are two major
challenges to component-based software development. The first is active
dependency management—how to minimize the dependencies among compo-
nent interfaces. A component is said to have a fully externalized interface if all
types exposed in its interfaces are defined in a package residing outside the
component (Bettin, 2005). The fully externalized interface defines the usage
environment of the component, and decouples the component from its peers.
However, even with active dependency management, a small change in one of
the interfaces entails locating every place where the interface is used, changing
it to use the new interface, unit test the new code, reintegrate, and then
integration test the whole system (Mellor et al., 2004). The second challenge
to component-based development is how to wire up the component interfaces.
Wiring is done with glue code, which prevents the reuse of the individual
components in a new environment since the components become dependent on
the glue code. The remedy to this problem is to apply late (or dynamic)
externalization, meaning to externalize the interfaces and apply the glue code
just before the system is deployed. Late externalization makes each component
a reusable asset, and not a liability (Bettin, 2005).
MDA achieves late externalization through bridges. Bridges are formal map-
pings between modeling elements of two executable models. Ironically, inter-
faces decouple components, and in turn, bridges decouple (or localize)
interfaces.
It is well known that software creators labor away at their products under the
intense pressure of the time-to-market force and the ever-increasing demand
Copyright © 2006, Idea Group Inc. Copying or distributing in print or electronic forms without written
permission of Idea Group Inc. is prohibited.
Discovering Diverse Content Through
Random Scribd Documents
de veinte juzgados de campaña, indica con razon, "que merece
llamar la atencion el corto número de artesanos que hai en aquellos
partidos, en los que podrian, dice, hallar ocupacion lucrativa un
número diez veces mayor, especialmente carpinteros, albañiles,
herreros, etc." Pero ya hemos indicado la verdadera causa de este
fenómeno; i es faltar la materia primera de las artes en cada una de
esas localidades. Si ha de traerse del puerto la madera i el hierro en
bruto ¿no vale mejor traerlo labrado en puertas i cerraduras? Otro
hecho notado por el señor Maezo es mui ilustrativo. De quinientos
treinta i dos europeos que poseen majadas de ovejas, solo setenta i
nueve poseen la tierra en que las apacentan. ¿Cuál es la condicion
social de los cuatro cientos cincuenta i tres restantes? Son inquilinos,
arrendadores, o toman prestada esa tierra? He aquí en signos
palpables los síntomas del desórden social que apuntamos. Todos los
propietarios de majadas son irlandeses, escoceses, o ingleses; es
decir gran número de ellos, resto de las colonias que empezaron a
formarse en 1825. Estos antiguos residentes en el país, con un
capital para poseer ovejas, no han podido sin embargo adquirir
tierra, que es lo que fija al hombre en un país. ¿Quién les ha
estorbado poseerla? Así pues, el artesano no acude a la campaña, ni
el que se consagra al pastoreo se afinca. ¿Qué haría Buenos-Aires, si
como Nueva-York recibiese en dos dias consecutivos, el sábado i el
lúnes 21 de octubre, nueve mil trescientos cincuenta i cuatro
emigrantes de un golpe[12]? ¿Los dueños de saladeros o de
estancias ocuparian a los que por su falta de capital o de capacidad
industrial se resignen a trabajar como peones gañanes; pero la
inmigracion mas útil que va a los Estados-Unidos no es esa, sino la
de hombres que poseyendo un capitalito buscan tierra barata para
poseer un domicilio i fundar una familia, o los que ejerciendo una
industria desean ponerla a provecho en países donde no haya la
concurrencia que en Europa; i estos se verán pronto forzados a
emigrar de nuevo en busca de país mas adecuado, desde que en la
ciudad i puerto de Buenos-Aires se acumulen muchos artesanos, i
abunden los hombres que hacen el comercio de menudeo, ya que la
campaña, por mas que parezca, es inabordable para las profesiones
industriales i la posesion de la tierra, que es la base de la
agricultura. El sistema de poseedores del suelo, labrado por
arrendadores e inquilinos ha arruinado a la Irlanda, despoblándola
de dos millones de habitantes en estos diez últimos años, segun
resulta de la comparacion de los censos de 1841, i 1851[13]. Otro
sistema, otras leyes, otras instituciones preparatorias necesita
Buenos-Aires para desarrollar sus inmensos recursos, i el sistema
que propongo sería el mas sencillo de todos los andamios que deben
construirse para obra tan grande. No olvidemos que lo que se llama
campaña es el asiento en donde han de existir ciudades, villas,
aldeas, i que, para que la poblacion se aglomere en un punto, es
preciso que haya una razon de conveniencia que lo exija.
Veráse pues, que al pedir como base para una lei eficaz de
educacion comun, cierta estension de territorio de distancia en
distancia, no he obedecido a principios teóricos de distribucion
ordenada de los medios de difundir los conocimientos, ni cedido a la
anticipacion de una época lejana, cuando con el transcurso del
tiempo haya de rebozar de poblacion la tierra que hoi ocupa el
ganado. Ni pretendo cambiar bruscamente industria que, aunque
mezquina en sus resultados jenerales, es pingüe para el reducido
número de los que la esplotan. Pido solo los medios de irla
conduciendo sin trastorno a camino mas productivo para el
propietario actual, sin ser ruinosa para el país. I sin embargo, haya o
no habitantes hoi en cada punto del territorio de Buenos-Aires, el
hombre de estado debe suponer que debe haberlos mas tarde o mas
temprano, si no se resigna desde ahora a creer que esa parte de la
tierra ha de permanecer por siempre despoblada. Es por esto, que
sobre el mapa han de fijarse los locales de escuelas, a las distancias
menores posibles que sea permitido, en consideracion a la
actualidad, designarlas. El plan propuesto no hace mas que
restablecer el órden primitivo que debió seguirse para la enajenacion
de las tierras públicas, abandonadas a la esplotacion particular, sin
las reservas que el interés comun reclamaba. Por la lei de tierras de
los Estados-Unidos, con la sábia prevision que distinguió a los
primeros lejisladores de aquella gran república, se ordenó medir las
tierras en manzanas de dos leguas cuadradas de frente, subdivididas
en lotes de una milla cuadrada cada uno, como se ve en el plano
siguiente, en el cual se señalan con números gruesos las reservas
del Estado, para proveer a las necesidades de la futura poblacion. Es
ajeno de mi propósito entrar en el detal de la distribucion de cada
uno de los lotes ofrecidos en venta, los cuales deben venderse uno
entero, i el siguiente por secciones de mitad, i de un cuarto, con el
fin de que se promedien propietarios de una milla cuadrada, i otros
de algunas cuadras, dando así lugar a todas las fortunas, i
mezclando la poblacion.
MUNICIPIO.
1 2 3 4 5 6
12 11 10 9 8 7
13 14 15 16 17 18
24 23 22 21 20 19
25 26 27 28 29 30
36 35 34 33 32 31
A la venta pública se entregan todos los lotes, excepto los números,
8, 11, 16, i 29 que se reservaron para las escuelas, i otros objetos
de interés público, por lo que independiente de las ciudades i
poblaciones que habrian de fundarse donde quiera que las
circunstancias locales favoreciesen su desarrollo, se dejó ya
designado un local, de cuatro en cuatro millas de distancia, a
disposicion de los venideros, a fin de que no les sucediese lo que en
Chile, i en todas partes, que cuando llegó la época de fundar
escuelas, se encontraron con toda la tierra ocupada i sin medios de
edificarlas ¿Creeráse que hai en Chile finca en cuyo territorio viven
englobados dos mil inquilinos, a quienes el propietario del suelo no
da educacion ni proporciona maestros, por no ser necesarios para el
servicio de su hacienda peones que sepan leer[14]?
La medida que propongo es pues, la reparacion simple de una
omision imprevisora; sin que se crea que estas reversiones de la
propiedad territorial al donador primitivo, carecen de ejemplo en
nuestras leyes. La alcabala es de esta clase, pues que imponiendo
un cuatro por ciento sobre el valor de la venta de las propiedades
raíces, en veinte i cinco veces que el fundo cambia de poseedor, el
Estado ha vuelto a recuperar no solo la donacion primitiva sino una
parte de las mejoras, i aumento de valor que fué adquiriendo
sucesivamente. No sería repugnante recurso en nuestros países,
para remediar la mala distribucion de la tierra hacer pagar la
alcabala en la tierra inculta, haciendo una separacion de un pequeño
lote de terreno toda vez que pasase de un poseedor a otro. El
momento de la enajenacion o el de la trasmision de la propiedad es
el que la lei ha escojido para imponerla estos gravámenes, porque es
el momento en que el sentimiento de la propiedad se debilita o
muere en el poseedor, i aun no ha cobrado fuerza en el que va a
comenzar a poseer.
La reversion que propongo concilia tres objetos, mui atendibles;
preparar el local de la escuela futura; crear con el valor que la
industria i cultivo le dará un fuerte capital para el sosten de las
escuelas, i un medio auxiliar para que la propiedad adyacente tome
mayor valor i mejore la industria ganadera, disminuyendo las
probabilidades de pérdida, i los costos de manejo, aumentando los
productos.
Organizacion.
ebookgate.com