Copyright
Acquiring Editor: Andrea Dierna
Editorial Project Manager: Kaitlin Herbert
Project Manager: Punithavathy Govindaradjane
Designer: Matthew Limbert
Morgan Kaufmann is an imprint of Elsevier
225 Wyman Street, Waltham, MA, 02451, USA
2013 Elsevier Editora Ltda.
Copyright 2014 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publishers permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices, may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability,negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
Library of Congress Cataloging-in-Publication Data
Application submitted
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library.
ISBN: 978-0-12-418673-6
Printed in the United States of America
14 15 16 17 18 10 9 8 7 6 5 4 3 2 1
For information on all MK publications visit our website at www.mkp.com
Dedication
This book is dedicated to my parents and ancestors; without them I would not exist.
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, victims of my course on Object-Oriented Analysis and Design for two decades their doubts, misunderstandings, and difficulties motivated me to research and learn even more; my friend, Prof. Rogrio Cid Bastos, for providing orientation and motivation; and finally my friends and brethren, for the moments of joy and fraternity.
About the Author
Raul Sidnei Wazlawick is an Associate Professor of Computer Science at UFSC, in Florianpolis, Brazil. He has received a Bachelors and Masters 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. Wazlawicks main research interest is object-oriented software engineering. He is currently (20122015) heading a software development team that is developing software systems to support the Brazilian public health system. 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.
Foreword
Roger S. Pressman, Ph.D.
Because things are often fuzzy at the beginning of a software project, because it is sometimes difficult 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 its 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 computer 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 startat 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.