Transcript Agents
Trends in Software Engineering
a personal view
Ivar Jacobson
Vice President e-Development
Rational Software Corporation
[email protected]
Virtual Agenda
Yesterday
Today
Tomorrow
The best way to predict the future is to invent it!
The 1980 Letter to The CEO of Ericsson*
* Björn Svedberg
The component-based development approach used for
AKE/AXE will evolve into a world standard
Go further in three steps
1983: present a standard method including a modeling
language [like SDL, UML], a process [like RUP] supported by
a first generation tool-set
1985: the modeling language becomes a formal executable
language [like UML with action semantics]
1990: expert system support on top of process, language and
tool; talked about layman programming
Component-Based Architectures
Originated 1967-70 at Ericsson
for real-time, distributed systems:
blocks a k o components,
•
•
•
•
design
code
executables
run-time objects
interfaces based on signals,
functions crossed blocks -- or realized as collaborations
among blocks
Components have become the standard.
No new development paradigm to replace components in
sight!
Modeling Languages -- a personal view
1967-70: The AKE/AXE modeling language:
block diagrams
collaboration diagrams
sequence diagrams
state transition diagrams (state overviews, activity diagrams, concurrent states)
1974-82: the first object modeling standard SDL adopts those
techniques
nicknamed ‘The Ericsson Language’
In parallel Entity-Relationship modeling emerged
1987: Objectory modeling language combined SDL and ER
technologies, added Use Cases and Multi-Modeling.
1996: The Unified Modeling Language
based on Objectory, Booch and OMT from 1991
plus many other modeling ideas
The standard modeling language
UML 2.0 a major new release, followed by more...
Development Process -- a personal view
1967-70 The AKE/AXE method
functional spec’s
software architecture description
functional descr’s, block descriptions, separate from interface (signal) descriptions
functional tests and system test
1987-95 The Objectory Process
engineered process to facilitate specializations and instantiations (projects)
use cases drive the business track, the system track and the user track
1996-2000: The Rational Unified Process
iterative development
architecture-centric
tool support for process engineering and process instantiations
de-facto standard for e-development
Plus: a process without integral tools is just an academic idea!
Future of Software
We have the standard modeling language
We have a standard development process
What next?
A Software Component Marketplace
Quality from the Beginning
Give Soul to Software Process
A Complete UML Based Software Platform
A Software Component Marketplace
A component industry including
Component factories provide ‘components’
System Integrators reuse these ‘components’
‘Components’ are component systems used to build families
of application systems
We need a standard for playing on this marketplace
How to design for reuse
How to design with reuse
We have a standard language, we have a standard
process and there are tools.
Now’s the time!
Reuseable Assets
Reuse of all models, that is of everything
architecture -- most important but just a
fraction of what is reusable
use cases, analysis, design, implementation
and test
user interface models, business models, etc.
Reuse of technology
process with tools
projects
guidelines
The Reuse Initiative: e-Development Accelerator
Reusable
Frameworks
Technology or domain specific
reusable assets with associated
guidelines on usage.
Reuse Standards
Open UML-based standard
expressing how to document
and produce reusable assets.
Automation
Tool support for creating,
managing, and reusing
software assets.
Layered System Architecture
Examples of
reusable object
Application-specific
layer
Application-general
layer
Middleware layer
System-software
layer
Application
System
Component
System
Component
System
Component
System
Application
System
Component
System
Component
System
Component
System
Application
System
Component
System
Car Sales
Management
Customer profile
Order management
Shopping cart
Credit card
authorization
Object persistency
mechanism
Quality from the Beginning
We have lost two generations of developers who think they
just need to debug at the end, when they instead shouldn’t
introduce any defects along the way.
An attitude problem
“bugs are nice, defects are bad”
“some developers make the dirt, others (customers) clean up”
Process change
verify and test along the way -- activity-based verification
there is no test model, test artifacts are part of all models
New tools
generate test cases from requirements, analysis, design...
Activity-Based Verification
Whatever you do, you are not done until you have verified
that you did what you wanted to do.
Introduce verification on activities
Each activity-artifact pair needs a Verification Case
Each Verification Case has a corresponding Verification Step
Test Cases are specializations of Verification Cases, related
to the executable system
Software Process Comes Alive
Development steps
The process at your fingertips
The process gets soul
the third step 20 years ago
a software engineering breakthrough technology
The Process at Your Fingertips
Rational Unified Process
(RUP)
Is specialized to
My Unified Process
Is enacted as
My Project
And to
My tasks
Process gets soul: people may be humans
Traditional processes hold static rules and regulations, but
lacks “soul” and adaptive capabilities. They appeal to
structured reasoning, but not to the creative (lateral) spirit.
Static
Structured
Re-Invent
Generic
Long-Term
Learn
Dynamic
Creative
Reuse
Streamlined and Personalized
Short-Term
Do
Agents
Software Components, but…
Autonomous
Pro-Active
Encapsulate Knowledge as Rules
Adaptive
Agent
(in software)
Each Developer has its Own Personal Agent
Agent System
Personal Agent
(for Joe)
Joe
(Developer)
Individuals play roles in software development
www.jaczone.com
Every Role in RUP is Matched to One Agent
Agent System
Role Agent
(for System Analyst)
System Analyst
www.jaczone.com
Personal Agents and Role Agents
Agent System
Role Agent
(for System Analyst)
Personal Agent
(for Joe)
Joe
(Developer)
Role Agent
(for Business-Process Analyst)
Since a developer can play many roles his/her personal
agent may collaborate with several role agents
Specialist Agents
Rule agents
Reuse agents suggest candidate patterns, frameworks, etc
Workflow agents suggest micro-activities based on state
Conversation agents for conversational modeling
Model completion agents
Round-trip modeling agents between all kinds of models
Evaluation agents
Broker agents
www.jaczone.com
A Complete UML Based Platform
An executable UML
a programming language (or a set of PL’s)
Java, C++ become superfluous
combines graphical and program-like syntax
Semantics of changes -- functional and structural -defined by UML
language defined configuration and version management
Removing seams (or gaps) between UML and
operating systems and database mgmt systems
computer architectures
"Function Distribution in Computer System Architectures”,
Harold “Bud” Lawson, 1976
Every Layer of Components described in UML
Systemware components
operating systems
database management systems
Middleware components
Customer relationship management
Content management
Change management
Application general components
Subscriber management
Digit analysis node
Route data
Trend: Focus moves upwards
Req.ts
Analysis
Design
Impl.
Test
More “generation”=work elimination
Now
Tomorrow
Use cases generate test cases and input to analysis
Analysis will generate implementation; design will
become superfluous
Summary
We have UML, RUP and tools
Eventually we will get a Component Industry
We will do things right from the beginning
Process will get soul -- developers are people and
people are humans
We will get rid of seams and gaps between levels
Tomorrow, Life will be Much Better!
Readings by Ivar Jacobson
Unified Software Development Process
Jacobson, Booch, Rumbaugh, Addison Wesley Longman (1999)
Object-Oriented Software Development--A Use Case
Driven Approach (Addison Wesley)
Ivar Jacobson, Addison Wesley Longman (1992)
The Object Advantage: Business Process Reengineering
with Objects (Addison Wesley)
Ivar Jacobson, Addison Wesley Longman (1994)
Software Reuse: Architecture, Process and Organization
for Business Success (Addison Wesley)
Ivar Jacobson, Addison Wesley Longman (1997)
The Road to the Unified Software Development Process
Ivar Jacobson, Stefan Bylund, Cambridge University Press, 2000
Special readings
Software Reuse: Architecture, Process and Organization
for Business Success (Addison Wesley)
Ivar Jacobson, Addison Wesley Longman (1997)
Function Distribution in Computer System Architectures,
Harold “Bud” Lawson (1976)