Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...

27
Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation [email protected]

Transcript of Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...

Page 1: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Trends in Software Engineeringa personal view

Trends in Software Engineeringa personal view

Ivar JacobsonVice President e-DevelopmentRational Software Corporation

[email protected]

Ivar JacobsonVice President e-DevelopmentRational Software Corporation

[email protected]

Page 2: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Virtual AgendaVirtual Agenda

Yesterday

Today

Tomorrow

The best way to predict the future is to invent it!

Yesterday

Today

Tomorrow

The best way to predict the future is to invent it!

Page 3: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

The 1980 Letter to The CEO of Ericsson*The 1980 Letter to The CEO of Ericsson*

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

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

* Björn Svedberg* Björn Svedberg

Page 4: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Component-Based ArchitecturesComponent-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!

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!

Page 5: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Modeling Languages -- a personal viewModeling 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...

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

Page 6: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Development Process -- a personal viewDevelopment 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!

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!

Page 7: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Future of SoftwareFuture 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

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

Page 8: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

A Software Component MarketplaceA 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 systemsWe 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!

A component industry including Component factories provide ‘components’ System Integrators reuse these ‘components’ ‘Components’ are component systems used to build families of

application systemsWe 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!

Page 9: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

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

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

Reuseable AssetsReuseable Assets

Page 10: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

The Reuse Initiative: e-Development AcceleratorThe Reuse Initiative: e-Development Accelerator

ReusableFrameworksReusableFrameworks

Reuse StandardsReuse Standards

AutomationAutomation

Open UML-based standard Open UML-based standard expressing how to document expressing how to document and produce reusable assets.and produce reusable assets.

Open UML-based standard Open UML-based standard expressing how to document expressing how to document and produce reusable assets.and produce reusable assets.

Technology or domain specific Technology or domain specific reusable assets with associated reusable assets with associated guidelines on usage.guidelines on usage.

Technology or domain specific Technology or domain specific reusable assets with associated reusable assets with associated guidelines on usage.guidelines on usage.

Tool support for creating, Tool support for creating, managing, and reusing managing, and reusing software assets.software assets.

Tool support for creating, Tool support for creating, managing, and reusing managing, and reusing software assets.software assets.

Page 11: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

ComponentSystem

ComponentSystem

ComponentSystem

ApplicationSystem

ApplicationSystem

ApplicationSystem

ComponentSystem

ComponentSystem

Layered System Architecture

Car Sales ManagementCar Sales

Management

Customer profileOrder managementCustomer profile

Order management

Shopping cartCredit card

authorization

Shopping cartCredit card

authorization

Object persistency mechanism

Object persistency mechanism

Examples of Examples of reusable objectreusable object

Application-general layer

Middleware layer

Application-specificlayer

System-softwarelayer

ComponentSystem

ComponentSystem

Page 12: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Quality from the BeginningQuality 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...

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

Page 13: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Activity-Based VerificationActivity-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

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

Page 14: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Software Process Comes AliveSoftware 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

Development steps The process at your fingertips The process gets soul

the third step 20 years ago a software engineering breakthrough technology

Page 15: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

The Process at Your FingertipsThe Process at Your Fingertips

Rational Unified Process

(RUP)

My Unified Process

My Project

My tasks

Is specialized to

Is enacted as

And to

Page 16: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Process gets soul: people may be humans Process gets soul: people may be humans

Static Dynamic

StructuredRe-Invent

GenericLong-Term

Learn

CreativeReuseStreamlined and PersonalizedShort-TermDo

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

Page 17: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Software Components, but… Autonomous Pro-Active Encapsulate Knowledge as Rules Adaptive

Software Components, but… Autonomous Pro-Active Encapsulate Knowledge as Rules Adaptive

AgentsAgents

Agent(in software)

Page 18: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Each Developer has its Own Personal AgentEach Developer has its Own Personal Agent

Personal Agent(for Joe)

Joe(Developer)

Agent System

Individuals play roles in software development Individuals play roles in software development

www.jaczone.com

Page 19: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Every Role in RUP is Matched to One AgentEvery Role in RUP is Matched to One Agent

System Analyst

Role Agent(for System Analyst)

Agent System

www.jaczone.com

Page 20: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Personal Agents and Role AgentsPersonal Agents and Role Agents

Personal Agent(for Joe)

Joe(Developer)

Role Agent(for System Analyst)

Role Agent(for Business-Process Analyst)

Agent System

Since a developer can play many roles his/her personal agent may collaborate with several role agentsSince a developer can play many roles his/her personal agent may collaborate with several role agents

Page 21: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Specialist AgentsSpecialist 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

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

Page 22: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

A Complete UML Based PlatformA 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

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"Function Distribution in Computer System Architectures”, Harold “Bud” Lawson, 1976

Page 23: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Every Layer of Components described in UMLEvery 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

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

Page 24: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Trend: Focus moves upwards Trend: Focus moves upwards

Use cases generate test cases and input to analysis Analysis will generate implementation; design will

become superfluous

Use cases generate test cases and input to analysis Analysis will generate implementation; design will

become superfluous

Req.ts Impl. TestAnalysis Design

More “generation”=work elimination

NowNow

TomorrowTomorrow

Page 25: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Tomorrow, Life will be Much Better!Tomorrow, Life will be Much Better!

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

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

SummarySummary

Page 26: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Readings by Ivar JacobsonReadings 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

Unified Software Development ProcessJacobson, 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

Page 27: Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com Ivar Jacobson.

Special readingsSpecial 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)

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)