Books
Ivar Jacobson Consulting people have made a significant contribution to the software development industry over the years. They are responsible for several seminal works that helped provide the basis for some key software development techniques used widely in our industry today, these include:
-
Use Case Modeling
-
Object Orientation
-
The Unified Modeling Language
-
Aspect Oriented Software Development
The book covers below provide some easy access links to help you obtain these important texts.
- Head First Object-oriented Analysis and Design - (2006)
- Managing Iterative Software Development Projects - (2006)
- Aspect Oriented Software Development with Use Cases - (2005)
- The Unified Modeling Language Reference Manual - (2004)
- UML for Mere Mortals - (2004)
- Mastering Rational XDE - (2003)
- Use Case Modeling - (2002)
- Mastering UML with Rational Rose 2002 - (2002)
- UML for Database Design - (2001)
- The Road to the Unified Software Development Process - (2000)
- The Unified Software Development Process - (1999)
- Mastering UML with Rational Rose - (1999)
- The Unified Modeling Language User Guide - (1999)
- Software Reuse - (1997)
- The Object Advantage - (1994)
- Object-Oriented Software Engineering - (1992)
Head First Object-oriented Analysis and Design - (2006)

"Head First Object Oriented Analysis and Design" is a refreshing look at subject of OOAD. What sets this book apart is its focus on learning. The authors have made the content of OOAD accessible, usable for the practitioner.
Ivar Jacobson, Ivar Jacobson Consulting. "I just finished reading "HF OOA&D" and I loved it! The thing I liked most about this book was its focus on why we do OOA&D - to write great software!"
Kyle Brown, Distinguished Engineer, IBM. "Hidden behind the funny pictures and crazy fonts is a serious, intelligent, extremely well-crafted presentation of OO Analysis and Design. As I read the book, I felt like I was looking over the shoulder of an expert designer who was explaining to me what issues were important at each step, and why."
Edward Sciore, Associate Professor, Computer Science Department, Boston College. "Tired of reading Object Oriented Analysis and Design books that only makes sense after you're an expert? You've heard OOA&D can help you write great software every time - software that makes your boss happy, your customers satisfied and gives you more time to do what makes you happy. But how? "Head First Object-Oriented Analysis & Design" shows you how to analyze, design, and write serious object-oriented software: software that's easy to reuse, maintain, and extend; software that doesn't hurt your head; software that lets you add new features without breaking the old ones. Inside you will learn how to: use OO principles like encapsulation and delegation to build applications that are flexible; apply the Open-Closed Principle (OCP) and the Single Responsibility Principle (SRP) to promote reuse of your code; leverage the power of design patterns to solve your problems more efficiently; and, use UML, use cases, and diagrams to ensure that all stakeholders are communicating clearly to help you deliver the right software that meets everyone's needs. By exploiting how your brain works, "Head First OOA&D" compresses the time it takes to learn and retain complex information. Expect to have fun, expect to learn, expect to be writing great software consistently by the time you're finished reading this!"
Managing Iterative Software Development Projects - (2006)
Iterative processes have gained widespread acceptance because they help software developers reduce risk and cost, manage change, improve productivity, and deliver more effective, timely solutions. But conventional project management techniques don't work well in iterative projects, and newer iterative management techniques have been poorly documented. "Managing Iterative Software Development Projects" is the solution: a relentlessly practical guide to planning, organizing, estimating, staffing, and managing any iterative project, from start to finish. Leading iterative development experts, Kurt Bittner and Ian Spence introduce a proven, scalable approach that improves both agility and control at the same time, satisfying the needs of developers, managers, and the business alike.
Their techniques are easy to understand, and easy to use with any iterative methodology, from Rational Unified Process to Extreme Programming to the Microsoft Solutions Framework. Whatever your role- team leader, program manager, project manager, developer, sponsor, or user representative - this book will help you:
-
understand the key drivers of success in iterative projects
-
leverage "time boxing" to define project lifecycles and measure results
-
use Unified Process phases to facilitate controlled iterative development
-
master core concepts of iterative project management, including layering and evolution
-
create project roadmaps, including release plans
-
discover key patterns of risk management, estimation, organization, and iteration planning
-
understand what must be controlled centrally, and what you can safely delegate; transition smoothly to iterative processes
-
scale iterative project management from the smallest to the largest projects
-
and align software investments with the needs of the business.
Whether you are interested in software development using RUP, OpenUP, or other agile processes, this book will help you reduce the anxiety and cost associated with software improvement by providing an easy, non-intrusive path toward improved results - without overwhelming you and your team.
Aspect Oriented Software Development with Use Cases - (2005)
Aspect orientation promises to be the next big wave in software engineering,following on the heels of the object-oriented paradigm. Proponents tout the value of aspect orientation in providing the ability to add extremely useful mechanisms such as security, logging, persistence, debugging, tracing, distribution, performance monitoring, and exception handling.
To state it simply, it makes programming and programs more efficient. This highly-anticipated new book demonstrates how to apply use cases and aspect orientation in building robust and extensible systems.
The authors showyou how to identify, design, implement, test, and refactor use case modules andhow to extend them. The book also demonstrates how to design use casemodules with UML including some enhancements made in UML 2.0 to better support the modeling of use case modules.
The Unified Modeling Language Reference Manual - (2004)
By the creators of the UML, this is a timely revision of the definitive reference to the UML which has been updated to reflect UML 2.0. Thoroughly revised and expanded coverage of UML in its latest version - 2.0.
From the Three Amigos- Rumbaugh, Jacobson, and Booch -- the creators of the Unified Modeling Language. The industry standard modeling language has grown increasingly more complex, the need for a thorough reference has never been greater.
The recently-released UML 2.0 specification is much less readable than the original UML 1.1 specification. The UML has grown more complex, and therefore, the need for a thorough reference book from the creators of the language is more pronounced than it was when the first edition was published more than five years ago. This timely second edition has been thoroughly revised, expanded, and updated to reflect the intricacies of the latest version of UML. The authors have incorporated feedback from the first edition. Significant changes include revisions in the area of sequence diagrams, activity models, action models, protocol state machines, components, internal structure of classes and components, and profiles. The result is a thoroughly useful reference that is completely up-to-date and essential to any software practitioner who needs to understand the inner-workings of the industry standard modeling language.
UML for Mere Mortals - (2004)
Need to get results with UML... without unnecessary complexity or mind-numbing jargon? You need UML for Mere Mortals™. This easy-to-read introduction is perfect for technical professionals and business stakeholders alike: anyone who needs to create, understand, or review UML models, without becoming a hard-core modeler.
There's nothing theoretical about this book. It explains UML in the context of your real-world challenges. It's organized around the activities you'll need to perform. It focuses on the UML elements you'll find most useful. And it offers specific solutions for the problems you're most likely to face.
Drawing on extensive experience, the authors offer pragmatic explanations and guidance on core techniques ranging from use cases to sequence diagrams, architectural patterns to application and database modeling. You'll find practical coverage of using UML to support testing, as well as a full chapter on UML 2.0 and its implications.
Whether you're a manager, programmer, architect, database designer, or documentation specialist, UML for Mere Mortals will help you achieve your goals with UML... simply, quickly, painlessly.
Mastering Rational XDE - (2003)
Rational XDE cures many of the headaches of application modeling and development by bringing the two processes closer together than ever before.
Mastering Rational XDE shows you how to get maximum relief using this powerful tool, which lets you model within your preferred IDE, generate code automatically, and maintain tight synchronization between model and code at all times. One of the keys that unlocks this enormous power is the large example project that runs through Mastering Rational XDE, divided into a series of exercises that teach you to create use case and analysis models, move from analysis to design, create databases, publish and report models, and apply and create patterns. By working through this book, you'll be able to develop sophisticated, flexible object-oriented applications that are efficient to maintain and upgrade. Coverage includes:
-
Understanding the role of XDE in the software development life cycle
-
Understanding how XDE works with your IDE
-
Creating an analysis model
-
Creating a design model
-
Creating a data model
-
Generating code, including classes, attributes, operations, relationships, and components
-
Keeping your code and model in sync
-
Publishing a model and generating reports
-
Using Gang-of-Four patterns in an XDE model
-
Creating and using a Reusable Asset Specification (RAS)
-
Creating and using your own patterns
Use Case Modeling - (2002)
Developers who effectively employ use cases deliver better applications-on time and under budget. The concept behind use cases is perhaps as old as software itself; they express the behavior of systems in terms of how users will ultimately interact with them. Despite this inherent simplicity, the use case approach is frequently misapplied, resulting in functional requirements that are confusing, cumbersome, or redundant.
In "Use Case Modeling", experienced use case practitioners Kurt Bittner and Ian Spence share their tips and tricks for applying use cases in various environments. They delve into all aspects of use case modeling and management, demonstrating how development teams can capitalize on the approach's simplicity when modeling complex systems. In this ready reference, readers will discover how to:
-
introduce a development team to use cases and implement a use case approach;
-
identify the key elements of a use case model, including actors; and the components of a use case, including basic flow, preconditions, post-conditions, sub-flows, and alternate flows;
-
master the objectives and challenges of creating detailed descriptions of use cases;
-
improve their descriptions' readability and consistency;
-
prevent and remedy common problems arising from the misuse of include, extend, and generalization use case relationships;
-
organize and conduct a review of a use case model to realize the best possible approach.
The book draws extensively on best practices developed at Rational Software Corporation, and presents real-life examples to illustrate the considerable power of use case modeling. As such, Use Case Modeling is sure to give development teams the tools they need to translate vision and creativity into systems that satisfy the most rigorous user demands.
Mastering UML with Rational Rose 2002 - (2002)
Design More Efficient Applications with the Leading Visual Modeler.
Mastering UML with Rational Rose 2002 offers expert instruction in both areas you need to master if you want to develop flexible object-oriented applications: the Unified Modeling Language and the latest version of Rational Rose, the world's leading visual modeling tool. But this book goes far beyond modeling.
It teaches you to use Rose to turn your UML diagrams into code--automatically--in the language of your choice. And it's newly expanded to provide valuable information on business modeling, web modeling, new Java functionality, and XML DTDs. Coverage includes:
-
Understanding UML, with a bonus "Getting Started with UML" appendix
-
Finding your way around Rational Rose
-
Creating UML diagrams of all kinds
-
Creating a detailed object model
-
Creating a detailed data model
-
Modeling your XML DTDs
-
Generating code automatically
-
Handling language-specific code-generation issues
-
Reverse-engineering an existing application
-
Using round-trip engineering techniques
UML for Database Design - (2001)
The Unified Modeling Language (UML), the standard graphical notation for modeling business and software application needs, has emerged as an effective modeling tool for database design. When used as a common modeling language for the many facets of system development, the UML can serve as a unifying framework that facilitates the integration of database models with the rest of a system design.
This pragmatic guide introduces you to the UML and leads you through the process of UML-based database modeling and design. The book presents the different types of UML diagrams, explaining how they apply to the database world, and shows how data modeling with the UML can be tied into the Rational Unified Process.
UML for Database Design is structured around the database design process: business use case modeling, business object modeling, database requirements definition, analysis and preliminary design, and, finally, detailed design and deployment. For each phase of development the book describes the overall objectives and workflow of that phase, the status of the case study, the relevant UML constructs, and the nuts and bolts of database modeling and design with the UML. Drawing on their extensive industry experience, the authors reveal the trials and tribulations of database development teams, lessons learned, and pointers for success.
Topics covered include:
-
The business use case model
-
Activity and sequence diagrams for modeling database functions and tasks
-
Moving from the business to system model
-
Class diagrams and statecharts
-
Mapping classes to tables
-
Transformation of attributes
-
Rational's UML Profile for Database Design
-
Creating tables from classes
-
DDL scripts, component diagrams, and deployment diagrams
-
Jump starting the database design process
A case study runs throughout the book to illustrate key concepts and techniques, and appendixes containing the actual UML models from this case study are used to catalog the type and extent of models that would be developed for such a system.
Practical, concrete, and based on real-life experience, UML for Database Design brings you exactly the information you need to begin working with the UML and take full advantage of the technology for high-quality database modeling and design.
The Road to the Unified Software Development Process - (2000)
Ivar Jacobson, one of the Three Amigos of Rational, follows his fellow amigos, Grady Booch and James Rumbaugh, with the publication of The Road to the Unified Software Development Process, his own collection of the best of his work.
Together with Stefan Bylund, Dr Jacobson has gathered the best of his articles from Object Magazine, JOOP, and ROAD, and updated them to reflect current trends in the industry. This book not only presents the best of his work, but it also tracks the development of the new Unified Software Development Process.
This book is an excellent reference for software professionals who are interested in analysis and design. It provides real-world experience in developing quality software through disciplined engineering.
The Unified Software Development Process - (1999)
The Unified Software Development Process is a new software analysis and design process derived primarily from the three market leading OOA&D methods, Booch, OOSE (Use-Case), and OMT with ideas drawn from many other methods and input from many other parties. It is a component-based, use case driven, architecture centered, iterative and incremental developmental process that uses the Unified Modeling Language (UML) to represent models of the software system to be developed.
The Unified Software Development Process book describes, apart from the unified generic process and the different activities in developing a software system, the different models developed and evolved during the lifecycle of a system. It describes in an easy-to-understand way the different higher-level constructs -- notation as well as semantics -- used in the models. Thus stereotypes such as use cases and actors, packages, classes, stereotypes, interfaces, active classes, processes and threads, nodes, and most relations will be described intuitively in the context of a model. The Unified Software Development Process will go further then most OO A&D methods by describing a family of processes that incorporate the complete life-cycle of software.
Mastering UML with Rational Rose - (1999)
UML and Rational Rose--Your Key to Efficient, Effective Application Design.
Mastering UML With Rational Rose offers expert instruction in the areas you need to master if you want to develop truly optimal application designs: the Unified Modeling Language, and Rational Rose, the world's leading visual modeling too.
This book goes far beyond modeling: it teaches you how to use Rose to turn your UML diagrams into code--automatically, in the language of your choice. It also shows you how to reverse-engineer your existing applications, so you can learn more about how they're put together and how they can best be maintained and improved.
Coverage includes:
-
Understanding UML
-
Finding your way around Rational Rose
-
Creating UML diagrams of all kinds
-
Adding detail to existing UML diagrams
-
Determining relationships and object behavior
-
Working with sequences and state transitions
-
Modeling according to use cases and actors
-
Representing classes and packages
-
Using Rose's component and deployment views
-
Generating code automatically
-
Handling language-specific code generation issues
-
Generating Oracle8 database schemas
-
Reverse-engineering existing applications
-
Handling language-specific reverse-engineering issues
The Unified Modeling Language User Guide - (1999)
Introduced in 1997, the Unified Modeling Language (UML) has rapidly been accepted throughout the software industry as the standard graphical language for specifying, constructing, visualizing, and documenting software-intensive systems. The UML provides anyone involved in the production, deployment, and maintenance of software with a standard notation for expressing a system's blueprint. The UML covers conceptual things, such as business processes and system functions, as well as concrete things, such as programming-language classes, database schemas, and reusable software components.
In The Unified Modeling Language User Guide, the original developers of the UML, Grady Booch, James Rumbaugh, and Ivar Jacobson, provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning. Starting with a conceptual model of the UML, the book progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. This example-driven approach helps readers quickly understand and apply the UML. For more advanced developers, the book includes a learning track focused on applying the UML to advanced modeling problems.
Software Reuse - (1997)
This text provides a set of guidelines for ensuring success with systematic, large-scale object oriented reuse, examining component-based software engineering, the use of standard components in systematic design procedures which allow components to be used in different ways in different systems.
The book develops a conceptual framework and specific techniques to address key business, process, architecture and organization issues in a reuse-driven software engineering business. It uses a Business Process Re-engineering (BPR) approach and provides advice on setting up and running a reuse business.
The Object Advantage - (1994)
"I firmly believe that this work... will have a profound impact on governments and corporations worldwide, as they seek excellence, efficiency and profitability. It is an authoritative guide on how to realize the ultimate adaptive enterprise architecture..." - Dan L. Jonson, Avemco Corporation.
Business Process Reengineering (BPR) is the key management trend of the day. Ivar Jacobson's book, The Object Advantage, presents a blueprint for re-designing a business according to BPR principles. It uses one method to integrate his work of reengineering a business, its processes and its vital infrastructure the information system. It describes all of the details about a business and its processes by viewing customers as users and business processes as cases of how they use the business "use cases". And it manages the risks involved in BPR by using a how-to method based on object technology, offering concrete guidance in the shape of a formal reengineering process.
Whilst most books tackle the "soft factors" (motivation, management commitment, leadership), The Object Advantage goes beyond this type of hand-waving and offers practical steps to success that include:
-
A description that specifies every activity and deliverable involved in the business process Deliverables, in the form of business models, that focus on the company's architecture and dynamics
-
A process for the development of an information system that is truly integral to the reengineered company
-
A seamless relationship is created between business model and information system, vastly increasing a company's chances of successfully reenginneering itself - the heart of this relationship is the application of the BPR model and object technology.
Ivar Jacobson's book will be essential reading for any manager contemplating reengineering their business or wishing to understand more about BPR and its practical implementation. It will also be invaluable for reenginnering teams re-designing their companies, employees within a reengineered company needing to understand how their new environment will work and what their role will be, and systems analysts and designers wanting to expand their current applications of object technology into business modelling and business reengineering.
Object-Oriented Software Engineering - (1992)
How can software developers, programmers and managers meet the challenges of the 90s and begin to resolve the software crisis? This book is based on Objectory which is the first commercially available comprehensive object-oriented process for developing large-scale industrial systems. Ivar Jacobson developed Objectory as a result of 20 years of experience building real software-based products. The approach takes a global view of system development and focuses on minimizing the system's life cycle cost. Objectory is an extensible industrial process that provides a method for building large industrial systems. This revised printing has been completely updated to make it as accessible and complete as possible. New material includes the revised Testing chapter, in which new product developments are discussed.
This book shows how software development can be carried out in a more "industrialized" manner using ObjectOry, a complete environment evolved by the author for the development of large software systems with an object-oriented approach. It relies on three independently developed techniques: conceptual modelling, object-oriented programming, and a block-oriented design technique developed within telecommunications. Suitable for self-study or classroom use, the book is divided into three sections: an introduction to system development and the requirements of an industrial process; the use of object-orientation in the different phases of system development, using ObjectOry; and applications with ObjectOry. Thus, the book presents a coherent picture of how to use object-orientation in system development in a way which makes it accessible to both practitioners in the field and students with no previous knowledge of system development.














