Full Chapter Object Oriented Analysis and Design For Information Systems Modeling With Uml Ocl and Ifml 1St Edition Wazlawick PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 54

Object Oriented Analysis and Design

for Information Systems Modeling with


UML OCL and IFML 1st Edition
Wazlawick
Visit to download the full and correct content document:
https://textbookfull.com/product/object-oriented-analysis-and-design-for-information-s
ystems-modeling-with-uml-ocl-and-ifml-1st-edition-wazlawick/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

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-dennis/

Systems Analysis and Design An Object Oriented Approach


with UML 5th Edition Dennis

https://textbookfull.com/product/systems-analysis-and-design-an-
object-oriented-approach-with-uml-5th-edition-dennis/

Object-Oriented Design with ABAP: A Practical Approach


1st Edition James E. Mcdonough (Auth.)

https://textbookfull.com/product/object-oriented-design-with-
abap-a-practical-approach-1st-edition-james-e-mcdonough-auth/

Design Patterns in Modern C++: Reusable Approaches for


Object-Oriented Software Design 1st Edition Dmitri
Nesteruk

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/

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/design-patterns-in-net-
core-3-reusable-approaches-in-c-and-f-for-object-oriented-
software-design-2nd-edition-dmitri-nesteruk/

Practical object-oriented design: an agile primer using


Ruby Second Edition Metz

https://textbookfull.com/product/practical-object-oriented-
design-an-agile-primer-using-ruby-second-edition-metz/

Head First Design Patterns: Building Extensible and


Maintainable Object-Oriented Software 2nd Edition Eric
Freeman

https://textbookfull.com/product/head-first-design-patterns-
building-extensible-and-maintainable-object-oriented-
software-2nd-edition-eric-freeman/

Modeling and Analysis of Dynamic Systems, Third Edition


Esfandiari

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

CHAPTER 1 Introduction ................................................................................................ 1


1.1 This book ....................................................................................................................1
1.2 Object-oriented systems development........................................................................2
1.3 Unified Modeling Language (UML)..........................................................................3
1.4 Unified Process (UP) ..................................................................................................3
1.5 The process so far.......................................................................................................6
1.6 Questions.....................................................................................................................6

CHAPTER 2 Business Modeling .................................................................................... 7


2.1 Introduction to business modeling .............................................................................7
2.2 General view of the system ........................................................................................9
2.3 Business use cases ....................................................................................................13
2.3.1 Business actors and business workers............................................................15
2.3.2 Automation opportunities ...............................................................................15
2.4 Business activity diagram.........................................................................................18
2.4.1 Basic elements ................................................................................................18
2.4.2 Control flow nodes .........................................................................................20
2.5 State-dependent aspects of a business......................................................................23
2.6 Remarks ....................................................................................................................27
2.7 The process so far.....................................................................................................27
2.8 Questions...................................................................................................................28

CHAPTER 3 High-Level Requirements ....................................................................... 29


3.1 Introduction to high-level requirements...................................................................29
3.2 System actors ............................................................................................................30
3.3 System use cases.......................................................................................................31
3.3.1 Single session..................................................................................................33
3.3.2 Interactive .......................................................................................................35
3.3.3 Consistent result .............................................................................................35
3.3.4 Essential ..........................................................................................................36
3.3.5 Brief ................................................................................................................37
3.3.6 System boundary ............................................................................................37
viii Contents

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

CHAPTER 4 Use Case Based Project Planning (Online Chapter) ............................. 59

CHAPTER 5 Expanded Use Cases............................................................................... 61


5.1 Introduction to expanded use cases..........................................................................61
5.2 Main flow..................................................................................................................62
5.3 Alternate flows..........................................................................................................64
5.3.1 Scenarios .........................................................................................................65
5.3.2 Variants ...........................................................................................................66
5.3.3 Exception handling .........................................................................................69
5.4 Writing recommendations ........................................................................................74
5.4.1 Essential versus real use case.........................................................................75
5.4.2 Explicit information........................................................................................76
5.4.3 Identification and selection ............................................................................77
5.4.4 Mandatory steps..............................................................................................77
5.4.5 Complementary steps .....................................................................................81
5.4.6 Unsuitable steps ..............................................................................................82
5.5 Included use cases and fragments ............................................................................83
5.6 Expansion of stereotyped use cases .........................................................................84
5.6.1 Report expanded .............................................................................................85
5.6.2 CRUD expanded.............................................................................................86
5.7 Other sections of an expanded use case...................................................................89
5.7.1 Stakeholders....................................................................................................91
5.7.2 Preconditions ..................................................................................................91
5.7.3 Success post-conditions ..................................................................................92
5.7.4 Open issues .....................................................................................................92
5.8 System sequence diagrams .......................................................................................92
5.8.1 Elements of a sequence diagram....................................................................93
5.8.2 Expanded use cases as system sequence diagrams........................................95
Contents ix

5.8.3 Connecting the interface to the façade-controller..........................................97


5.8.4 Stateless strategy...........................................................................................101
5.8.5 Stateful strategy ............................................................................................103
5.8.6 Alternate flows in system sequence diagrams .............................................104
5.9 The process so far...................................................................................................110
5.10 Questions.................................................................................................................111

CHAPTER 6 Conceptual Modeling: Fundamentals ................................................. 113


6.1 Introduction to conceptual modeling .....................................................................113
6.2 Attributes.................................................................................................................115
6.2.1 Attribute types ..............................................................................................116
6.2.2 Initial values .................................................................................................116
6.2.3 Derived attributes .........................................................................................117
6.2.4 Enumerations ................................................................................................118
6.2.5 Primitive types ..............................................................................................119
6.3 Concepts..................................................................................................................120
6.3.1 Unique attributes...........................................................................................121
6.3.2 System control class .....................................................................................121
6.4 Associations ............................................................................................................122
6.4.1 Role multiplicity ...........................................................................................124
6.4.2 Association direction ....................................................................................126
6.4.3 Derived association.......................................................................................126
6.4.4 Aggregation and composition ......................................................................129
6.4.5 n-ary associations .........................................................................................130
6.5 Collections ..............................................................................................................132
6.5.1 Set .................................................................................................................133
6.5.2 Ordered set....................................................................................................134
6.5.3 Bag ................................................................................................................134
6.5.4 Sequence .......................................................................................................134
6.5.5 Map ...............................................................................................................135
6.5.6 Partition.........................................................................................................136
6.5.7 Relation.........................................................................................................137
6.6 Organization of the conceptual model ...................................................................138
6.6.1 Generalization, specialization, and inheritance ...........................................139
6.6.2 Association classes .......................................................................................141
6.6.3 Modal classes................................................................................................144
6.7 Invariants.................................................................................................................149
6.8 Iterative construction of the conceptual model......................................................152
6.8.1 How to find concepts and attributes ............................................................152
6.8.2 Dependent and independent concepts ..........................................................156
6.8.3 How to find associations ..............................................................................157
6.8.4 Example of iterative construction of the conceptual model........................159
x Contents

6.9 The process so far...................................................................................................162


6.10 Questions.................................................................................................................163

CHAPTER 7 Conceptual Modeling: Patterns ........................................................... 165


7.1 Introduction to conceptual model patterns.............................................................165
7.2 High cohesion .........................................................................................................165
7.3 Specification classes ...............................................................................................168
7.4 Quantity...................................................................................................................170
7.5 Measure...................................................................................................................171
7.6 Strategy ...................................................................................................................172
7.7 Composite ...............................................................................................................173
7.8 Organizational hierarchy ........................................................................................174
7.9 Object joining .........................................................................................................175
7.9.1 Copy and replace ..........................................................................................176
7.9.2 Superseding...................................................................................................176
7.9.3 Essence/Appearance .....................................................................................177
7.9.4 Undoing a join ..............................................................................................177
7.10 Account/Transaction ...............................................................................................178
7.11 Range ......................................................................................................................182
7.12 Temporal patterns ...................................................................................................183
7.12.1 Effectivity ...................................................................................................185
7.12.2 History.........................................................................................................185
7.12.3 Temporal .....................................................................................................186
7.12.4 Bitemporal ..................................................................................................187
7.13 Discussion ...............................................................................................................189
7.14 The process so far...................................................................................................189
7.15 Questions.................................................................................................................190

CHAPTER 8 Functional Modeling with OCL Contracts ........................................... 193


8.1 Introduction to functional modeling.......................................................................193
8.2 Preconditions...........................................................................................................196
8.2.1 Parameter guarantee .....................................................................................197
8.2.2 Complementary constraints ..........................................................................198
8.2.3 Precondition assurance .................................................................................199
8.2.4 Preconditions and exceptions versus invariants...........................................200
8.3 Transient associations.............................................................................................200
8.4 Query return............................................................................................................201
8.5 Postconditions .........................................................................................................203
8.5.1 Changing an attribute value..........................................................................205
8.5.2 Creating an instance .....................................................................................206
8.5.3 Adding a link ................................................................................................207
Contents xi

8.5.4 Destroying an instance ...............................................................................209


8.5.5 Removing a link .........................................................................................209
8.5.6 Well-formed postconditions .......................................................................210
8.5.7 Combinations of Postconditions.................................................................211
8.5.8 Former values .............................................................................................212
8.5.9 Postconditions covering collections of objects ..........................................213
8.5.10 Postconditions and real-world events.........................................................214
8.6 Exceptions...............................................................................................................214
8.7 Pattern contracts for CRUD ...................................................................................216
8.7.1 Create contract .............................................................................................217
8.7.2 Update contract.............................................................................................218
8.7.3 Delete contract..............................................................................................218
8.7.4 Retrieve contract ...........................................................................................221
8.8 Pattern contracts for listing objects........................................................................222
8.9 Contracts related to use cases.................................................................................223
8.10 The process so far...................................................................................................224
8.11 Questions ................................................................................................................225

CHAPTER 9 Domain Tier Design ............................................................................... 227


9.1 Introduction to domain tier design .........................................................................227
9.2 Object responsibility distribution ...........................................................................229
9.3 Visibility .................................................................................................................232
9.3.1 Visibility by association ...............................................................................232
9.3.2 Visibility by parameter.................................................................................240
9.3.3 Locally declared visibility ............................................................................242
9.3.4 Global visibility ............................................................................................244
9.4 Dynamic modeling based on postconditions .........................................................245
9.4.1 Instance creation ...........................................................................................246
9.4.2 Link addition.................................................................................................249
9.4.3 Attribute value modification ........................................................................250
9.4.4 Instance destruction ......................................................................................250
9.4.5 Removing and replacing a link ....................................................................251
9.4.6 Conditional postconditions ...........................................................................253
9.4.7 Exceptions.....................................................................................................255
9.4.8 Postconditions over collections ....................................................................255
9.5 System queries ........................................................................................................257
9.6 Delegation and low coupling..................................................................................259
9.7 Design class diagram ..............................................................................................262
9.8 The process so far...................................................................................................265
9.9 Questions.................................................................................................................267
xii Contents

CHAPTER 10 Code Generation (Online Chapter) .................................................... 269

CHAPTER 11 Testing .................................................................................................. 271


11.1 Introduction to testing ..........................................................................................271
11.2 Functional testing .................................................................................................272
11.2.1 Equivalence partitioning.......................................................................... 272
11.2.2 Limit value analysis................................................................................. 274
11.3 Stubs and drivers ..................................................................................................274
11.4 Test-driven development ......................................................................................275
11.5 Unit testing ...........................................................................................................276
11.6 System operations testing.....................................................................................280
11.7 Use case testing (System, acceptance, and business cycle tests)........................282
11.8 The process so far.................................................................................................285
11.9 Questions ..............................................................................................................288

CHAPTER 12 Interface Tier Design with IFML ........................................................ 289


12.1 Introduction to interface tier design.....................................................................289
12.2 Interaction flow modeling language (IFML) .......................................................289
12.3 View components .................................................................................................290
12.3.1 Details ...................................................................................................... 291
12.3.2 Multiple details ........................................................................................ 293
12.3.3 Simple list ................................................................................................ 294
12.3.4 List ........................................................................................................... 295
12.3.5 Checkable List ......................................................................................... 297
12.3.6 Forms ....................................................................................................... 297
12.3.7 Hierarchies ............................................................................................... 298
12.4 Pages .....................................................................................................................301
12.5 Flows.....................................................................................................................302
12.5.1 Normal navigation flow........................................................................... 302
12.5.2 Data flow ................................................................................................. 304
12.5.3 Parameter binding.................................................................................... 304
12.5.4 Multivalued parameter binding ............................................................... 305
12.6 Hypertext organization .........................................................................................305
12.6.1 Site views................................................................................................. 307
12.6.2 Areas ........................................................................................................ 308
12.6.3 Home, landmark, and default .................................................................. 309
12.7 Web Interface Patterns .........................................................................................309
12.7.1 Cascade Index.......................................................................................... 309
12.7.2 Filtered index........................................................................................... 312
12.7.3 Guided tour .............................................................................................. 313
12.7.4 Viewpoints ............................................................................................... 313
Contents xiii

12.7.5 Overview plus detail.............................................................................. 313


12.7.6 Top-level navigation.............................................................................. 314
12.8 Modeling operations in the interface .................................................................317
12.8.1 Create operation..................................................................................... 319
12.8.2 Delete operation..................................................................................... 319
12.8.3 Update operation.................................................................................... 322
12.8.4 Connect, disconnect, and reconnect operations .................................... 323
12.9 IFML models for CRUD operations..................................................................325
12.10 Use case interface modeling with IFML ...........................................................329
12.11 The process so far ..............................................................................................332
12.12 Questions ............................................................................................................334

CHAPTER 13 Data Persistence (Online Chapter) ..................................................... 335


Postface .............................................................................................................................................. 337
References.......................................................................................................................................... 339
Index .................................................................................................................................................. 343
This page intentionally left blank
Acknowledgments

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

Raul Sidnei Wazlawick is an Associate Professor of Computer Science at UFSC, in Florianópolis,


Brazil. He has received a Bachelor’s and Master’s in Computer Science, and Doctor in Engineering
(1993). Wazlawick was chair of the IFIP Working Group on Informatics and ICT in Higher-
Education, trustee of the Brazilian Computer Society, general chair of the Brazilian Symposium on
Software Engineering (2006), and co-chair of the IFIP World Conference on Computers in
Education (2009). He has published three textbooks in Portuguese and about 100 papers. His field
of experience includes object-oriented systems, with which he has worked since 1986. Wazlawick’s
main research interest is object-oriented software engineering. He is currently (20122015) head-
ing a software development team that is developing software systems to support the Brazilian pub-
lic health system.1 He often makes presentations at universities, companies, and government
institutions on topics related to software engineering. He also has worked as a software engineering
consultant since the early 1990s.

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.

1.2 Object-oriented systems development


What is object-oriented systems development? By observing the way object-oriented analysis and
design is taught and practiced in some places, it can be concluded that many professionals simply adopt
an object-oriented programming language, or use fragments of an object-oriented based development
process. However, very often, they are not as effective as one would expect.
It is not sufficient to organize the system architecture in tiers and modules if the code imple-
mented inside of it is disorganized. Some programmers organize the system adequately in classes
and packages, but they still write spaghetti code inside the methods of these classes and packages.
In addition, other developers still use top-down functional decomposition inside methods, which is
not appropriate when using object-oriented programming (top-down decomposition is adequate if
structured programming is used instead).
In order to build code that is really object-oriented, developers should learn the techniques of
delegation and responsibility assignment, which can lead to reusable code and low coupling. Those
techniques are explained in this book.
It is useless to invest heavily in object-oriented CASE (computer-aided software engineering)
tools without learning the way to think in terms of object-oriented programming. The use of diagrams
will not necessarily improve the quality of the software, although it may help.
1.4 Unified Process (UP) 3

1.3 Unified Modeling Language (UML)


Some developers believe that UML is a methodology, maybe because of the “M” in the acronym.
However, that is not true: UML means Unified Modeling Language, and it is therefore a language
that can be used to describe things.
Knowing a language does not necessarily imply the ability to produce useful artifacts. For example,
English is a language, but someone who knows how to speak English does not necessarily know how
to write good poetry or how to make good speeches. Besides the language syntax, there are knowledge
and techniques of best practices that greatly help poets and speakers to place the elements of the
language in an order and structure that is adequate to produce the expected results.
The UML language has been under development since James Rumbaugh and Grady Booch joined
forces at Rational Software and started to unify their already well-known diagrammatic notations and
processes. Later, Ivar Jacobson joined the group and added his use cases and other notations to the
unified language that was under development.
UML is constantly being revised and currently has the following three families of diagrams:
• Structure diagrams: Includes package, class, objects, composite structure, component, profile, and
deployment diagrams. They are used to define what must be implemented in the system in terms of
components. They are useful to specify the part of the system architecture that is time independent.
• Behavior diagrams: Includes use case, activity, and state machine diagrams. They emphasize
what must happen in the system or business process. They are used to describe the functionality
of the system.
• Interaction diagrams: Includes communication, sequence, timing, and interaction overview
diagrams. These are a subset of behavior diagrams and describe the control flow between
different components of the system.
Not every diagram must be used during the development of a system. Only those that represent
useful information for the project are recommended. This book emphasizes the use of the activity,
machine state, use case, sequence, communication, and class diagrams for modeling information sys-
tems. However, other diagrams can be useful depending on the features of the system being modeled.
For more information on the different UML diagrams, the book by Miles and Hamilton (2006) may
be consulted.

1.4 Unified Process (UP)


The techniques presented in this book are compatible with the Unified Process, which is heavily
based (although not necessarily) on UML.
UP was also proposed by the three amigos, Grady Booch, James Rumbaugh, and Ivar Jacobson
(Jacobson, Booch, and Rumbaugh, 1999), as the result of their extensive experience.
This process is based in the following principles:
• Use case driven: The development is planned and organized over a list of use cases.
• Architecture centered: The development process leads to the construction of a
system architecture that allows the implementation of the requirements. That architecture
4 CHAPTER 1 Introduction

FIGURE 1.1
The emphasis of the different disciplines during the four phases of the Rational Unified Process (RUPs).2,3

is based on the identification of a structure that is iteratively built from a conceptual


model.
• Iterative and incremental: Development is divided into iterations or development cycles. At each
iteration, new features are added to the system architecture, or corrected/refined, leaving it more
complete and closer to the final desired system.
• Risk oriented: The elements of greater risk for a project are addressed early. For instance,
critical use cases are identified, detailed, and implemented before the others.
UP includes in its disciplines the main activities related to software development. Those activ-
ities have different levels or emphasis during the four major UP phases: Inception, Elaboration,
Construction, and Transition (Figure 1.1). Although sequential in time, those phases must not be
confused with the waterfall phases (Royce, 1970). In the waterfall model, requirements specifica-
tion must be completed before design, design must be completed before construction, and so on.
In UP, requirements specification, design, construction, and other activities are performed in all
phases with different emphasis.
Inception is the first phase of UP, in which the main requirements are discovered and the exten-
sion of the system is understood. The output of this phase usually consists of a preliminary conceptual

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.

402. ‘The salt of the earth.’ S. Matthew v. 13.


‘Cuts,’ etc. Cf. Cowper, The Task, III. 208–9.
‘The sentiment,’ etc. Cf. ante, p. 218 and note.
PROJECT FOR A NEW THEORY, ETC.
This essay was published in Literary Remains, and again, more
fully, in Winterslow, where it is dated 1828. It may possibly have
been printed in The Atlas for 1829, a complete file of which the
Editors have not been able to find. The essay is here printed from
Winterslow. See Mr. W. C. Hazlitt’s Memoirs (1867), I. 24 et seq.

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.

‘Thy wish,’ etc. 2 Henry IV., Act IV. Sc. 5.


Note. Cf. ante, p. 317.
441. ‘Blown about,’ etc. Cf. Ephesians iv. 14.
‘Infinite agitation of wit.’ Bacon, The Advancement of
Learning, Book I. iv. 5.
Sir Isaac Newton, etc. Newton published Observations on the
Prophecies of Daniel and the Apocalypse of St. John
(1733), and Napier of Merchiston A Plaine Discovery of the
whole Revelation of St. John (1594).
442. ‘Masterless passion,’ etc. Cf. The Merchant of Venice, Act IV.
Sc. 1.
‘Fear,’ etc. A Midsummer Night’s Dream, Act V. Sc. 1.
443. January and May. See Chaucer’s Canterbury Tales, ‘The
Merchant’s Tale.’
444. A good remark in ‘Vivian Grey.’ See Book IV. chap. V.
DEFINITION OF WIT
Published in Literary Remains from which it is here reprinted. Cf.
the essay ‘On Wit and Humour’ in vol. VIII. (English Comic Writers)
pp. 5–30.

PAG
E ‘Wherein,’ etc. See vol. VIII. pp. 18–19.
445. ‘The squandering glances,’ etc. As You Like it, Act II. Sc. 7.

‘Revive,’ etc. Quoted elsewhere from Scott.


446. ‘Foregone conclusion.’ Othello, Act III. Sc. 3.
448. ‘Skin,’ etc. Cf. Hamlet, Act III. Sc. 4.

‘In cut and dye,’ etc. Hudibras, I. I. 243–4.


449. ‘The house,’ etc. Misquoted from Swift’s Vanbrugh’s House.

‘Turned from black to red.’ Hudibras, II. II. 32.


450.
‘Like jewels,’ etc. Collins, Ode, The Manners, 55.
‘Pray lend me,’ etc. Farquhar, The Beaux Stratagem, Act V.
451. Sc. 4.
453. ‘A forked radish,’ 2 Henry IV., Act III. Sc. 2.
PERSONAL POLITICS
Published in Literary Remains, where the author’s son says that it
was ‘written during my father’s last illness, immediately after the
French Revolution of 1830.’ The essay, which must have been written
after the ‘Three Days’ (see post, p. 461, note) is here reprinted from
Literary Remains.

PAG
E ‘Ay, every inch a King!’ King Lear, Act IV. Sc. 6.
456. ‘Cooped,’ etc. Cf. Macbeth, Act III. Sc. 4.

‘Himself again.’ Richard III. (Cibber’s version), Act V. Sc. 3.


‘Solely,’ etc. Macbeth, Act I. Sc. 5.
458. ‘Shall be in him,’ etc. Cf. Othello, Act III. Sc. 3.

‘Smile,’ etc. Cf. Hamlet, Act I. Sc. 5.


459. ‘Ever strong,’ etc. King John, Act III. Sc. 1.

The late King. George IV. died on June 26, 1830.


460. Let him go where he chooses. Charles X. arrived in England
461. on Aug. 17, 1830.
Note. The Revolution of the Three Days. This began on July
27, 1830.
EMANCIPATION OF THE JEWS
This paper was printed in Leigh Hunt’s The Tatler for March, 1831
(vol. II.), and also, separately, in pamphlet form. Mr. Bertram Dobell
kindly showed to the Editors a copy of this pamphlet in his
possession which bore the following (anonymous) marginal note:
‘Written by Hazlitt, and a little altered by Mr. Basil Montagu—Mr.
Isaac Goldsmid caused this little tract to be written, and defrayed all
the expenses of authorship, printing, etc. It was the last production, I
think, of Hazlitt’s pen.’ From a proof in the Editors’ possession it is
clear that the essay was sent by Hazlitt’s son to The Daily News and
set up in type in 1849, but it seems never to have been published by
that journal. The essay is here reprinted from the pamphlet. The
Tatler and The Daily News proof show only trifling typographical
variations. It will be remembered that Macaulay’s maiden speech
(April 5, 1830) was in favour of a bill for the removal of Jewish
disabilities. The emancipation of the Jews was not effected till 1858.

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?’

85. ‘Painting was jealous,’ etc. Vasari records a similar saying


(Lives, ed. Blashfield and Hopkins, 1897, vol. IV. p. 218).
105. ‘In that first garden,’ etc. Cf. ‘In that first garden of our
simpleness.’ Daniel, Hymen’s Triumph, I. 1.
112. ‘And visions,’ etc. This couplet, a favourite quotation of
Hazlitt’s, occurs in a letter from Gray to Horace Walpole
(Letters, ed. Tovey, I. 7–8). The lines are apparently a
translation (by Gray) of Virgil, Æneid, VI. 282–84.
135. ‘Heaves no sigh,’ etc. See vol. V., note to p. 30.
139. The new Patent Blacking. Cf. Moore’s Parody of a
Celebrated Letter, 94–6.
391. ‘The word,’ etc. Cf. 2 Henry IV., III. 2.
292. ‘Go, go,’ etc. Cf. Wycherley, The Plain Dealer, v. I.
427. Turnspit of the King’s kitchen. See vol. XII. (Fugitive
Writings), p. 291 and note.
VOL. II.

310. ‘Both living and loving.’ Lamb’s version of Thekla’s Song


in The Piccolomini. See Coleridge’s Poetical Works, ed. J.
D. Campbell, p. 648.
311. ‘Winged wound.’ Dryden, The Hind and the Panther, I. 6.
347. ‘Who had been beguiled,’ etc. Leigh Hunt, The Story of
Rimini, Canto III.
363. ‘Throws a cruel sunshine on a fool.’ Armstrong, The Art
of Preserving Health, Book IV.
396. The man who bought Punch. See vol. XII. p. 353.
VOL. III.

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.

17. ‘Sacro,’ etc. Quoted in the notes to Junius. See notes to


Letter XXXVI.
24. To elevate and surprise. The Duke of Buckingham’s The
Rehearsal, I. 1.
44. ‘Your very nice people,’ etc. See ante, note to vol. III. p.
273.
147. ‘Where he picks clean teeth.’ Cowper, The Task, II. 627.
217. ‘When he saw,’ etc. Coleridge, Remorse, Act IV. Sc. 2.
220. Pingo in eternitatem. A saying attributed to Zeuxis. See
Sir Joshua Reynolds’s Discourses, No. III.
311. ‘Sithence no fairy lights,’ etc. See vol. XI. pp. 224, 268,
and notes.
VOL. V.

9. ‘And visions,’ etc. See ante, note to vol. I. p. 112.


10. ‘Obscurity,’ etc. See vol. XI. p. 224 and note.
120. ‘And that green wreath,’ etc. Southey, Carmen Nuptiale,
Proem, St. 9.
215. ‘A foot,’ etc. Cf. Donne, The Storm, 3–4.
277. Friar Onion. See Boccaccio, The Decameron, Sixth Day,
Novel X.
280. ‘That, like a trumpet,’ etc. Cf. Leigh Hunt, The Story of
Rimini, Canto III.
345. ‘The last of those fair clouds,’ etc. Cf. Wordsworth, The
Excursion, VII. 1014–16.
372. For the note on Lord Dorset read Charles Sackville
(1638–1706), sixth Earl of Dorset, author of ‘To all you
ladies now on land,’ included with other songs in Hazlitt’s
Select British Poets.
VOL. VI.

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.’

The couplet was changed in the 4to edition of 1743.


VOL. VII.

189. ‘Subtilised savages.’ ‘Nor as yet have we subtilised


ourselves into savages.’ Burke, Refections on the
Revolution in France (Select Works, ed. Payne, II. 101).
273. ‘As a saving of cheese-parings,’ etc. See Windham’s
Speeches, I. 311 (March 13, 1797).
282. ‘As if they thrilled,’ etc. The Faerie Queene, II. xii. 78.

You might also like