®
IBM Software Group
Ivar Jacobson
IBM Rational ivar@rational.com
Jaczone AB ivar@jaczone.com
IBM Software Group | Rational software
Agenda
The Ericsson Success Story
Use Cases
System of Systems
IBM Software Group | Rational software
The Ericsson Success Story
What we can’t learn from a 30 year old case story
Layered architecture – we had two layers only
Middle-ware and system-ware
– only system-ware
Software tools
– there was only an IDE
What we can we learn from it
What development processes to employ
•
Software
•
Software+Hardware+Peopleware
What modeling language to use
Systems of Systems
Transitioning to a reuse business
•
Reengineering of organization
IBM Software Group | Rational software
Lessons learnt – Software Process
Development approach was
Component-based
Requirements-driven
Architecture-centric
Visual Modeling
Configuration management
Today we would request process to also be
Use-case driven
Iterative & incremental
Risk-driven
Verify & validate from the beginning
Tool supported
Etc.
IBM Software Group | Rational software
Lessons learnt -- Modeling language
A first generation modeling language
Block diagrams
Sequence diagrams
Collaboration diagrams
State transistion diagrams with activity diagrams
Activity diagrams with swimlanes
These ideas are now in SDL and UML. But no tools were used!
Today we have tools – lifecycle point tools and cross-lifecycle tools
IBM Software Group | Rational software
Block diagram (component diagrams)
Feb 1968
IBM Software Group | Rational software
Sequence diagrams
!970-06-25
IBM Software Group | Rational software
Agenda
The Ericsson Success Story
Use Cases
System of Systems
IBM Software Group | Rational software
Use Cases are part of a LifeCycle Process
The Unified Process
It is the UML process
It is component-based
It is
Use-case driven
Architecture-centric
Iterative and incremental
Configurable
IBM Software Group | Rational software
Use Cases Capture Requirements
A use case is a sequence of actions a system performs that yields an observable result of value to a particular actor
Use cases reside inside the system
A use case describes the actions the system takes to deliver to the actor
Taken together, all use cases constitute all ways of using the system
Bank customer
Withdraw money
Actor Use Case
IBM Software Group | Rational software
Use cases are identified in Requirements
FURPS
Functionality
Usability
Reliability
Performance
Supportability
} Design Constraints
Operating systems
Environments
Compatibility
Application standards
IBM Software Group | Rational software
Use Case Driven Development
Any product development should follow three steps:
Capture the users ’ needs
Design to fit those needs
}
Test that the needs are fulfilled
Req’t Design & Impl.
Test
Capture the Use Cases
Design to
Implement the Use Cases
Test that the
Use Cases are Fulfilled
IBM Software Group | Rational software
Requirements: Capture the use cases
A use case model
ATM
Withdraw Money
Deposit Money
Bank
Customer
Transfer Between Accounts
Bank
System
IBM Software Group | Rational software
Use cases versus traditional feature spec’s?
A feature specification attempts to reply to the question:
“What is the system supposed to do?”
The use case strategy forces us to add three words to the end of that question: “… for each user?”
IBM Software Group | Rational software
Design & Implementation: use case design
Use cases are eventually realized as components
ATM
Withdraw Money
Deposit Money
Bank
Customer
Transfer Between Accounts
Bank
System
Withdrawal
Components
Cash
IBM Software Group | Rational software
Use cases – use case realizations -- components
Each use case is realized by a collaboration - a set of classes
A class plays different roles in different use case realizations
The total responsibility of a class is the composition of these roles
Use case
Specification
Use case design
Component design & implementation
Withdraw Cash
Transfer Funds
Deposit Funds
Interface Cash
Withdrawal
Cash
Interface Transfer
Funds
Interface Deposit
Funds
Cash
Cash
Withdrawal
Interface Transfer
Funds
Deposit
Funds
Cash
IBM Software Group | Rational software
Test: use case tests
ATM
Withdraw Money
Deposit Money
Bank
Customer
Transfer Between Accounts
Bank
System
Test Cases
Use Case Modeling Done!
Design Done!
Use Case Scenarios
Cash Withdrawal of a pre-set amount
Cash Withdrawal of custom amount
Etc.
Many Test Cases for every Use Case
Plan Testing & Define
Test Cases
Generate Test Cases
From Sequence diagrams and State-Chart diagrams
Basis for the Test Specification
IBM Software Group | Rational software
Identifying Use Case Scenarios
Use Case: Withdraw Money
Valid Card Invalid Card
Amount
Invalid
Valid PIN Code Invalid PIN Code
. . .
Amount
> Daily Limit
Amount
> Account Balance
Amount
Valid and in Range
IBM Software Group | Rational software
The Role of Use Cases
Requirements
Architecture
Iteration
Planning
Use
Cases
Business
Modeling
User Experience
Test
Design
Analysis &
Design
IBM Software Group | Rational software
UCD
Req’t Design & Impl.
Test
Analyze: Design
:
Test
:
Use Cases are the glue that binds
IBM Software Group | Rational software
Agenda
The Ericsson Success Story
Use Cases
System of Systems
IBM Software Group | Rational software
System of Interconnected Systems
Use case of the superordinate system is realized by use cases of the subordinate systems
Superordinate use cases and subordinate use cases
IBM Software Group | Rational software
Common Development Concerns
Enterprise architecting
Defining an architecture that underpins a number of systems
Strategic reuse
Developing reusable assets that are used within a number of systems
Systems engineering
Developing a system that contains elements of hardware, software, workers and data
Enterprise Application Integration
Developing a solution that includes the integration of a number of legacy systems
Packaged application development
Developing a solution that includes the configuration of a packaged application, such as an ERP or CRM solution
Outsourced development
Defining an architecture that lends itself to the outsourced development of its constituent parts, whilst ensuring the quality and integrity of these parts
IBM Software Group | Rational software
What is a System?
UML
A system is a top-level subsystem in a model. A subsystem is a grouping of model elements that represents a behavioral unit in a physical system.
A subsystem offers interfaces and has operations. In addition, the model elements of a subsystem can be partitioned into specification and realization elements.
RUP
A system is a collection of connected units that are organized to accomplish a specific purpose. A system can be described by one or more models, possibly from different viewpoints.
RUP-SE
A system provides a set of services that are used by an enterprise to carry out a business purpose. System components typically consist of hardware, software, data, and workers.
IBM Software Group | Rational software
Applying Systems of systems
Enterprise Architecting
The decomposition of an enterprise into its respective elements can be expressed in terms of a “system of systems”
Strategic Reuse
Reusable assets and their relationships can be described in terms of a
“system of systems”
Systems Engineering
The system as a whole can be expressed in terms of a superordinate system, and each of the elements that comprise the system can be expressed in terms of a subordinate system
Enterprise Application Integration
The context within which a legacy system fits can be described in terms of a superordinate system, with the legacy system itself represented as a subordinate system
Packaged Application Development
The packaged application may represent a subordinate system (if it is a
“piece”) or a superordinate system (if it is a “whole”)
Outsourced Development
The overall architecture can be described in terms of a superordinate system, with the constituent parts described in terms of subordinate systems
IBM Software Group | Rational software
Rounding Up
From a Swedish Perspective
TBD
IBM Software Group | Rational software
For More Information
www.rational.com
The UML Books
( Booch, Jacobson, Rumbaugh with Addison Wesley )
The UML User Guide
The UML Reference Manual
The Unified Software Development Process
IBM Software Group | Rational software
Other Readings by Ivar Jacobson
Object-Oriented Software Development--A Use Case Driven Approach
(Addison Wesley)
Jacobson et al, Addison Wesley Longman (1992)
The Object Advantage: Business Process Reengineering with Objects
(Addison Wesley)
Jacobson et al, Addison Wesley Longman (1994)
Software Reuse: Architecture, Process and Organization for Business
Success (Addison Wesley)
Ivar Jacobson, Martin Griss & Patrik Jonsson, Addison Wesley Longman
(1997)
The Unified Software Development Process
Jacobson, Booch, Rumbaugh, Addison Wesley Longman (1999)
The Road to the Unified Software Development Process
Ivar Jacobson, Stefan Bylund, Cambridge University Press, 2000
Aspect-Oriented Software Development with Use Cases
Ivar Jacobson, Pan Wei Ng, 2004, NEW