Professional Documents
Culture Documents
Full Chapter Object Oriented Analysis and Design For Information Systems Modeling With Uml Ocl and Ifml 1St Edition Wazlawick PDF
Full Chapter Object Oriented Analysis and Design For Information Systems Modeling With Uml Ocl and Ifml 1St Edition Wazlawick PDF
Full Chapter Object Oriented Analysis and Design For Information Systems Modeling With Uml Ocl and Ifml 1St Edition Wazlawick PDF
https://textbookfull.com/product/systems-analysis-and-design-an-
object-oriented-approach-with-uml-dennis/
https://textbookfull.com/product/systems-analysis-and-design-an-
object-oriented-approach-with-uml-5th-edition-dennis/
https://textbookfull.com/product/object-oriented-design-with-
abap-a-practical-approach-1st-edition-james-e-mcdonough-auth/
https://textbookfull.com/product/design-patterns-in-modern-c-
reusable-approaches-for-object-oriented-software-design-1st-
edition-dmitri-nesteruk/
Advanced Object-Oriented Programming in R: Statistical
Programming for Data Science, Analysis and Finance 1st
Edition Thomas Mailund
https://textbookfull.com/product/advanced-object-oriented-
programming-in-r-statistical-programming-for-data-science-
analysis-and-finance-1st-edition-thomas-mailund/
https://textbookfull.com/product/design-patterns-in-net-
core-3-reusable-approaches-in-c-and-f-for-object-oriented-
software-design-2nd-edition-dmitri-nesteruk/
https://textbookfull.com/product/practical-object-oriented-
design-an-agile-primer-using-ruby-second-edition-metz/
https://textbookfull.com/product/head-first-design-patterns-
building-extensible-and-maintainable-object-oriented-
software-2nd-edition-eric-freeman/
https://textbookfull.com/product/modeling-and-analysis-of-
dynamic-systems-third-edition-esfandiari/
Object-Oriented Analysis
and Design for
Information Systems
This page intentionally left blank
This book is dedicated to my parents and ancestors; without them I would not exist.
This page intentionally left blank
Contents
Acknowledgments ............................................................................................................................... xv
About the Author............................................................................................................................... xvii
Foreword ............................................................................................................................................. xix
Preface ................................................................................................................................................ xxi
3.4 How to find system use cases in the business model ..............................................38
3.5 Requirements ............................................................................................................41
3.5.1 Requirements elicitation .................................................................................41
3.5.2 Eliciting requirements is not design! .............................................................42
3.5.3 Requirements challenges ................................................................................44
3.5.4 Evident and hidden functional requirements .................................................45
3.5.5 Nonfunctional requirements ...........................................................................45
3.5.6 Permanence and transience of nonfunctional requirements ..........................46
3.5.7 Mandatory and desired requirements .............................................................47
3.5.8 Supplementary requirements ..........................................................................47
3.6 Preliminary conceptual model..................................................................................52
3.7 The process so far.....................................................................................................57
3.8 Questions...................................................................................................................57
I wish to thank some people that in some way helped me to make this book possible: Prof. Luiz
Fernando Bier Melgarejo, for introducing me to the world of object-oriented systems back in 1987;
my colleague Prof. Marcos Eduardo Casa, for all his work in developing pair programming back in
the 1980s when object-oriented concepts were regarded as “something from another planet”; my
colleague Prof. Antonio Carlos Mariani, for developing the Actors World, a tool that helped us
teach object-oriented programming; the companies that allowed the use of the techniques explained
in this book in a real production environment; my advisees Everton Luiz Vieira, Kuesley Fernandes
do Nascimento, and Iuri Cardoso for helping me consolidate some of the new techniques; the
Department of Informatics and Statistics (INE) of the Federal University of Santa Catarina (UFSC),
for the opportunity to develop this work; and especially software engineer Gilmar Purim, for the
fruitful discussions that helped to define the shape of the first version of this book in 2003.
I wish to thank also the more than one thousand students, who I refrain from nominating, vic-
tims of my course on Object-Oriented Analysis and Design for two decades their doubts, misun-
derstandings, and difficulties motivated me to research and learn even more; my friend, Prof.
Rogério Cid Bastos, for providing orientation and motivation; and finally my friends and brethren,
for the moments of joy and fraternity.
xv
This page intentionally left blank
About the Author
1
http://dab.saude.gov.br/portaldab/esus.php.
xvii
This page intentionally left blank
Foreword
Because things are often fuzzy at the beginning of a software project, because it is sometimes diffi-
cult to get stakeholders to agree, because required information and functions are often unclear,
because customers have no compunction about requesting systems with frightening complexity and
staggering size, and because it’s so tempting to assume that we already know what is required,
there remains a compelling need for good books that teach software engineers a pragmatic, proven
approach to analysis and design. Raul Wazlawick provides us with such a book.
Over the past 50 years we have seen many methods proposed for analysis and design of com-
puter software, but in my view, the most intuitive and effective adopts an object-oriented mindset.
Remember, analysis and design occur relatively early in the software process at a time when things
are fluid, where iteration is not only common, but mandatory, and where “objects” are often the
most visible of all elements of the problem.
The beauty of the object-oriented paradigm is that it is wonderfully elastic. We can describe
objects that are easily understood by business people at the conceptual level, and then through a
process of iteration and elaboration, refine those objects into much lower levels of abstraction that
technical people can use effectively. In this book, Professor Wazlawick provides us with guidance
for accomplishing this.
Using UML as his notational form, he begins where all good analysts should start at the
beginning! He provides us with the tools required to understand the problem through a process of
elicitation, elaboration, and representation. He emphasizes use cases, and helps us understand that
they serve as both an excellent mechanism for problem understanding and as a mechanism that can
greatly assist project planning.
He insists that good analysts and good designers must iterate as they develop an increasingly
better and more detailed understanding of the problem. To accomplish this, he provides the reader
with object-oriented techniques and the UML tools to get that job done.
Through the book, a continuing case study is used to provide examples of all analysis and
design techniques. Basic principles are introduced, expanded into a set of workable techniques, and
then used to develop analysis and design representations and models using UML.
During my long professional career, I have met with hundreds of companies and thousands of
software professionals worldwide. Each company and every person has a unique opinion on what
makes software so challenging, and there are as many opinions on how to meet those challenges in
a particular situation. But few software professions would disagree with a very simple statement:
“If you don’t know where you’re going, it is very, very difficult get there.”
Effective methods for analysis and design provide software professionals with a destination and
a road map for getting there. In Object-Oriented Analysis and Design for Information Systems,
Raul Wazlawick provides the tools software professionals need to craft the road map, and as a
consequence, this book helps every reader get where he needs to go.
Roger S. Pressman, Ph.D.
xix
This page intentionally left blank
Preface
This book presents, in a deep and didactic way, elements of object-oriented analysis and design for
developing information systems.
The area of software development for information systems has evolved during the last two dec-
ades around the Unified Modeling Language (UML) and the Unified Process (UP), adopted as
international standards by the Object Management Group (OMG). Even agile developing methods
nowadays use object-oriented development as the leading paradigm.
In contrast to some other books in this area, which are organized around the presentation of
UML diagrams and their many possible uses, this book concentrates on the daily analyst’s and
designer’s activities, and it explains how the different diagrams may help them in developing better
systems and developing systems better.
Although the object-oriented culture has more than 40 years of existence, there are still compa-
nies that find it hard to produce good quality software, especially due to the lack of maintainability
and flexibility on the systems they produce. This book presents information and techniques to mini-
mize that deficiency.
The techniques described here were applied with success by the author in many software devel-
opment companies, as well as in research projects at the university level.
This book is intended for computing professionals (analysts, designers, and programmers), and
computer science students, both in undergraduate or graduate studies with at least a basic knowl-
edge of object-oriented development or modeling. Beginners and experienced people will find the
guidance presented in this book useful in improving the quality of their projects. This book was
written to help them achieve the best design possible.
In contrast to what occurs with the waterfall model (Royce, 1970), where analysis and design
activities happen sequentially, iterative models like UP propose that those activities (also called dis-
ciplines) may happen with higher or lower emphasis at any phase.
This book gives more emphasis to the activities that are typically performed by analysts and
designers, including business modeling, requirements engineering, analysis, and design. Other disci-
plines such as project management, implementation, and testing are also referenced. For more
information on other disciplines, books on software engineering such as Pressman (2010) may be
consulted, or books more specific to the Unified Process such as Kruchten (2003).
The goal of the UP Inception phase is to build a general view of the system and its context, and
plan further development. The two main modeling tools for this phase are conceptual modeling
(Chapters 6 and 7) and high-level use cases (Chapter 3). Business modeling (Chapter 2) may be
necessary with more or less emphasis, depending on the project that is going to be developed.
At the end of the Inception phase, high-level use cases may be used as a basis for planning the
rest of the project (Chapter 4). Usually, that planning involves rating use cases as small, medium,
or large (the t-shirt scale) with regard to their complexity, and deciding on their priority. When the
complexity of each use case is known, it is possible to estimate the average time necessary to
develop them (Karner, 1993), and thus, the iterations may be planned as a set of activities that can
be realistically performed with the time available.
xxi
xxii Preface
The Elaboration phase of UP is performed as a sequence of iterations. Each iteration has a set
of use cases assigned for development.1 Developing an individual use case usually starts with its
expansion into flows (Chapter 5). Optionally, the use case flows may be represented as system
sequence diagrams, in order to help discover system queries and commands that have to be
implemented.
During the Elaboration phase, when the architecture is evolving, the conceptual model
(Chapters 6 and 7) is refined and completed.
System queries and commands may be implemented with a programming language. But the
designer may choose rather to specify contracts for system queries and commands (Chapter 8),
which besides being a higher-level definition for the expected behavior of each procedure, may be
very useful in helping to define test cases (Chapter 11). These contracts correspond to the func-
tional model of the system, because they define the functionality of each query and command in
terms of the input they receive and the results they produce.
At this point, again, the system may be implemented, or its code may be automatically gener-
ated if tools are available. However, if elegant code is desired, it may be helpful to produce a new
set of diagrams (sequence or communication diagrams) for each of the system operations
(Chapter 9). Those diagrams indicate how the different objects will exchange messages in order to
distribute responsibilities and attain the desired postconditions specified by the contracts. With this
procedure, design patterns are easier to apply to the code. These diagrams also help to specify
which methods (besides getters and setters) must be implemented in each class, and how they must
be implemented.
During Elaboration, the design of the interface can be completed (Chapter 12). This book pre-
sents the IFML notation2 as an option for modeling that aspect of a system. IFML is a brand-new
standard modeling language for information flow that is being adopted as one of the OMG stan-
dards from March 2013.
Although it is more emphatic during the construction phase, the elaboration phase may also
require the generation of a database structure (Chapter 13) and running code (Chapter 10). Data
persistence may be generated automatically if the appropriate tools are available. However, it is
worth at least knowing how the persistence mechanism works, even if it is automated. Code genera-
tion is also presented as a set of rules that can be automated.
In order to save space for a deep presentation of the topics, most of the exercises can be
accessed on the Internet.
1
An iteration may also have a mitigation plan assigned for a given risk or a change request originated by the client,
user, or even the development team.
2
http://www.ifml.org/.
2 CHAPTER 1 Introduction
Furthermore, in contrast to Larman’s work, this book presents some original concepts and other
details on topics as follows:
• Objective criteria to identify use cases and decide when to subdivide them or not.
• A technique to expand use cases that reduces the disparity among descriptions created by
different analysts (the concept of mandatory and complementary steps allows one to decide
exactly how many steps a use case must have).
• System sequence diagrams built with actor, interface, and control (instead of actor
and system only) to help realize a clear difference between system events and
system operations.
• An original approach for writing system commands and queries contracts with the use
of the Object Constraint Language, OCL (Object Management Group, 2010) that
allows for automatic generation of running code, and not only postcondition checking,
as current tools do.
• An adaptation of Fowler’s (2003) analysis patterns to UML, and restructuring some of those
patterns to simplify their identification and application in practice.
• A systematic technique to generate dynamic object models from OCL contracts, which follows
good design patterns, and reduces significantly the amount of code necessary for running an
application, avoiding, for example, redundant verifications.
• An interface tier design presented with the use of IFML (Interaction Flow Modeling Language),
a brand new OMG standard for interface modeling.
The aforementioned features are useful for producing high-quality software that is well organized,
based on a multitiered architecture, and able to change or accommodate new requirements.
FIGURE 1.1
The emphasis of the different disciplines during the four phases of the Rational Unified Process (RUPs).2,3
2
RUP (Rational Unified Process) is the oldest and most known implementation of the Unified Process.
3
Source: http://www.ibm.com/
1.4 Unified Process (UP) 5
model (Section 3.6); a requirements document, usually in the form of a list of high-level use cases
(Section 3.3) and supplementary specifications (Section 3.5.8); and a development schedule based on
the use case list (Section 4.3). Additionally, a list of high-importance risks and their mitigation plans
may be created, as well as other plans attending the special needs of the project. But those aspects
are out of the scope of this book, which will concentrate on modeling techniques, not management.
Only iteration planning based on high-level use cases is presented in detail.
The Elaboration phase includes a more detailed requirements analysis, which is performed by
expanding the use cases, that is, writing the sequence of steps that characterizes each of their possible
flows. The conceptual model is refined after each use case is expanded. Depending on the priority of
the use cases, it is expected that the number of changes applied to the software architecture decreases
as the project proceeds during Elaboration.
During the Construction phase most of the code production and test activities are performed. It is
expected that the Elaboration phase produces an architecture sufficiently stable so that its refactoring
will be minimized during this phase.
The Transition phase consists typically of the final tests and the delivery of the system to its users
including possibly its installation and data migration. During this phase, the system will be deployed,
possibly replacing an existing system (manual or automatic).
The Elaboration and Construction phases are performed in iterations. An iteration may have
as an objective developing one or more use cases, implementing change requests, or mitigating
selected risks. During an iteration, use cases are expanded and the information learned from them
is incrementally incorporated in the product. It is expected that the Elaboration phase deals with the
major risks of the system, as well as with the more complex or risky use cases that affect the sys-
tem architecture significantly. On the other hand, the Construction phase concentrates on producing
code for the whole application and implementing change requests.
UP is usually understood as a prescriptive process. But it may also be performed as an agile
method, with few artifacts. Two popular agile implementations of UP are AUP4 (Ambler &
Jeffries, 2002) and OpenUP5 (Kroll & MacIsaac, 2006). An agile process is one that
prioritizes:6
• People and iterations over tools and processes.
• Working software over comprehensive documentation.
• Customer collaboration over contract negotiation.
• Responding to change over following a plan.
In order to obtain such agility, all documentation must be directed to software production. Each
activity performed by the developer must have a very clear goal and a precise use, aiming always
toward the production of code that meets the requirements in the best way possible and in the shortest
reasonable time. Software is designed with two goals in mind: understanding client needs, and pro-
ducing a viable solution to those needs. In order to help people adequately communicate their needs
and solutions, different artifacts, such as diagrams, may be created; diagrams are more useful when
they allow code to be automatically generated from them.
4
http://www.ambysoft.com/unifiedprocess/agileUP.html
5
http://epf.eclipse.org/wikis/openup/index.htm
6
http://agilemanifesto.org/
Another random document with
no related content on Scribd:
ON PREJUDICE
This and the two following essays were published together in
Sketches and Essays.
392. ‘God’s image,’ etc. Fuller, The Holy State, II. 20, ‘The Good
Sea-Captain.’
Mr. Murray no longer libels men of colour. In Sketches and
Essays these words were changed to ‘men of colour are no
longer to be libelled.’
393. ‘That one,’ etc. Cf. Othello, Act V. Sc. 2.
THE SAME SUBJECT CONTINUED
PAG
E ‘Most ignorant,’ etc. Cf. Measure for Measure, Act II. Sc. 2.
395. ‘Cherish,’ etc. Reflections on the Revolution in France (Select
Works, ed. Payne, II. 102).
‘Rings the earth,’ etc. Cf. Cowper, The Task, III. 129–30.
396. ‘Murder to dissect.’ Wordsworth, The Tables Turned, l. 28.
THE SAME SUBJECT CONTINUED
This essay, which does not seem to have been published in The
Atlas, is printed from Sketches and Essays.
PAG
E
‘Reason,’ etc. Cf. 1 Peter iii. 15.
396. ‘There is nothing,’ etc. Cf. vol. VIII. (English Comic Writers) p.
398. 124 and note.
400. ‘Thus shall we,’ etc. Cf. 1 John iv. I.
‘Comes home,’ etc. Bacon, Essays, Dedication.
‘Still, small voice.’ 1 Kings xix. 12.
ON PARTY SPIRIT
Published in Winterslow.
PAG
E Mr. Currie. This should apparently be Corrie. See Memoirs, I.
405. 25.
The Test and Corporation Acts. Repealed in 1828.
409. ‘I am monarch,’ etc. Cowper, Verses supposed to be written
by Alexander Selkirk.
‘Founded as the rock.’ Macbeth, Act III. Sc. 4.
410. Mr. Burke talks, etc. Hazlitt seems to refer to Burke’s Essay,
On the Sublime and Beautiful, Part IV. §25.
411. ‘There’s no divinity,’ etc. Cf. Hamlet, Act IV. Sc. 5.
412. Essay on Wages. An Essay on the Circumstances which
determine the Rate of Wages, etc. (1826).
‘Throw your bread,’ etc. Cf. Ecclesiastes xi. 1.
413. ‘While this machine,’ etc. Hamlet, Act II. Sc. 2.
419. ‘Like the wild goose,’ etc. As You Like It, Act II. Sc. 7.
ON THE CONDUCT OF LIFE, ETC.
Published in Literary Remains, from which it is here reprinted.
See Mr. W. C. Hazlitt’s Memoirs (1867), I. 16, where the date of the
essay is fixed as 1822, when Hazlitt’s son was ten years old.
PAG
E ‘The salt of the earth.’ S. Matthew v. 13.
425.
‘According to your own dignity,’ etc. Cf. Hamlet, Act II. Sc. 2.
‘How shall we part,’ etc. Cf. Paradise Lost, XI. 282–5.
428. ‘The study of the Classics,’ etc. See vol. I. (The Round Table)
p. 4 and notes.
431. ‘Practique,’ etc. Henry V., Act I. Sc. 1.
435. ‘We hunt the wind,’ etc. See Don Quixote, Part I. Book II.
chap. xiii.
‘Quit, quit,’ etc. Cf. Suckling’s Song, ‘Why so pale and wan,
fond lover?’
436. ‘When on the yellow,’ etc. Coleridge, Love, St. 16.
437. ‘Nods and winks,’ etc. Cf. L’Allegro, 28.
439. ‘Paled,’ etc. Cf. Hamlet, Act I. Sc. 5.
BELIEF, WHETHER VOLUNTARY?
Published in Literary Remains (from which it is here printed) and
in Winterslow.
PAG
E ‘Wherein,’ etc. See vol. VIII. pp. 18–19.
445. ‘The squandering glances,’ etc. As You Like it, Act II. Sc. 7.
PAG
E ‘Ay, every inch a King!’ King Lear, Act IV. Sc. 6.
456. ‘Cooped,’ etc. Cf. Macbeth, Act III. Sc. 4.
PAG
E ‘We have reformed,’ etc. Cf. Hamlet, Act III. Sc. 2.
461. ‘My kingdom,’ etc. S. John xviii. 36.
463. ‘And pure religion,’ etc. Wordsworth, Sonnet, Written in
464. London, September 1802.
ON THE PUNISHMENT OF DEATH
Fraser’s Magazine for January 1831 contains an article on Capital
Punishment in which the author introduces an extract from an essay
by Hazlitt on the same subject. The extract is thus introduced: ‘It
forms part of an essay which was written a few years ago by the late
W. Hazlitt, at the request of a society then existing in London for
obtaining a repeal of that formidable law, and seems to contain
pretty much the sum of what might be brought forward against that
punishment by a philosophical reasoner. It has never yet been
published.’ Hazlitt’s essay has not been discovered, and this rather
obscure fragment is reprinted from Fraser’s Magazine.
PAG
E Beccaria. Cesare, Marchese de Beccaria (1735?–1794), whose
466. famous work, On Crimes and Punishments, appeared in
1764.
‘It is not the intensity,’ etc. Cf. Beccaria, chap. xxviii.
‘Crimes are more effectually prevented,’ etc. Ibid. chap, xxvii.
470. In Mr. Bentham’s phrase. See (e.g) Theory of Legislation,
Part III. chap. vi.
Note. For Burgh’s book see vol. IV. (Reply to Malthus), p. 85
et seq. and notes.
ADDENDA TO THE NOTES IN VOLS. I.–XI.
VOL. I.
PAG
E 3. The miser ‘robs himself,’ etc. Cf. Joseph Andrews, Book
IV.
chap. vii.
23. ‘Because on earth,’ etc. See vol. X., note to p. 63.
52. ‘A mistress,’ etc. Goldsmith, The Traveller, 152.
57. ‘Pure,’ etc. Dryden, Persius, Sat. II. l. 133.
68. ‘Two happy things,’ etc. The Tatler (No. 40) quotes the
epigram thus:
‘In marriage are two happy things allowed,
A wife in wedding-sheets, and in a shroud.
How can a marriage state then be accursed,
Since the last day’s as happy as the first?’
38. The Room over the way. See Cobbett’s Weekly Political
Register, Sept. 1817 (Selections, etc., v. 259).
41. St. Peter is well at Rome. Don Quixote, Part II. Book III.
chap, xli., and elsewhere.
45. ‘Lest the courtiers,’ etc. The Beggar’s Opera, II. 2.
60. ‘One note day and night.’ Burke, Regicide Peace (Select
Works, ed. Payne, p. 51).
63. ‘Which fear,’ etc. Cowper, The Task, II. 325.
166. ‘In Philharmonia’s undivided dale.’ Cf. ‘O’er peaceful
Freedom’s undivided dale.’ Coleridge, Monody on the
Death of Chatterton, 140.
171. ‘Unslacked of motion.’ See vol. IV. p. 42 and note.
174. ‘Of whatsoever race,’ etc. Cf. Dryden, Absalom and
Achitophel, I. 100–103.
239. ‘Meek mouths ruminant.’ Cf. ‘With ruminant meek
mouths.’ Leigh Hunt, The Story of Rimini, Canto II.
243. The Essay on ‘The Effects of War and Taxes,’ appeared
also in The New Scots Magazine for Oct. 1818.
259. ‘Soul-killing lies,’ etc. Lamb, John Woodvil, Act II.
268. ‘Certain so wroth,’ etc. Chaucer, Canterbury Tales, The
Prologue, 451–2.
273. ‘People of the nicest imaginations,’ etc. Cf. Swift,
Thoughts on Various Subjects.
284. ‘Resemble the flies of a summer.’ Cf. ‘Men would become
little better than the flies of a summer.’ Burke, Reflections
on the Revolution in France (Select Works, ed. Payne, II.
112).
328. ‘A new creation,’ etc. Goldsmith, The Traveller, 296.
VOL. IV.
23. ‘Those suns and skies so pure.’ Warton, Sonnet (IX.) to the
River Lodon.
93. ‘The fair variety of things.’ Akenside, Pleasures of the
Imagination, I. 78.
94. A neighbouring Baronet. See vol. XII., note to p. 202.
96. ‘Like life and death,’ etc. Cf. Lamb., John Woodvil, Act II.
106. ‘The beautiful is vanished,’ etc. Coleridge, The Death of
Wallenstein, v. I.
113. ‘Like a faint shadow,’ etc. Cf. The Faerie Queene, II. vii.
29.
152. Note. ‘The worse, the second fall of man.’ Cf. Windham,
Speeches, I. 311 (March 13, 1797).
156. ‘To warn and scare.’ Rev. Sneyd Davies, To the
Honourable and Reverend F. C. (Dodsley, Collection of
Poems, VI. 138).
189. ‘The vine-covered hills,’ etc. William Roscoe, Lines
written in 1788, parodied in The Anti-Jacobin.
211. ‘Free from the Sirian star,’ etc. Beaumont and Fletcher,
Philaster, Act v. Sc. 3.
218. ‘It was out of all plumb,’ etc. Tristram Shandy, Book III.
chap. xii.
225. ‘Stud of night-mares.’ Cf. ‘I confess an occasional night-
mare; but I do not, as in early youth, keep a stud of them.’
Lamb, Essays of Elia (Witches, and other Night-Fears).
243. ‘Tall, opaque words.’ Hazlitt was perhaps quoting from
himself. See vol. VIII. p. 257.
259. ‘To angels ’twas most like.’ The Flower and the Leaf, St.
19.
308. ‘Wild wit,’ etc. Gray, Ode, On a Distant Prospect of Eton
College.
317. ‘As much again to govern it.’ This line is not Butler’s, but
Pope’s. See An Essay on Criticism, 80–81:
‘There are whom heav’n has blest with store of wit,
Yet want as much again to manage it.’