trends in software engineering a personal view l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Trends in Software Engineering a personal view PowerPoint Presentation
Download Presentation
Trends in Software Engineering a personal view

Loading in 2 Seconds...

play fullscreen
1 / 27

Trends in Software Engineering a personal view - PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on

Trends in Software Engineering a personal view. Ivar Jacobson Vice President e-Development Rational Software Corporation ivar@rational.com. Virtual Agenda. Yesterday Today Tomorrow The best way to predict the future is to invent it!. The 1980 Letter to The CEO of Ericsson*.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Trends in Software Engineering a personal view' - filipina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
trends in software engineering a personal view

Trends in Software Engineeringa personal view

Ivar Jacobson

Vice President e-Development

Rational Software Corporation

ivar@rational.com

virtual agenda
Virtual Agenda

Yesterday

Today

Tomorrow

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

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

* Björn Svedberg

component based architectures
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
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
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
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 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
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
The Reuse Initiative: e-Development Accelerator

ReusableFrameworks

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
Layered System Architecture

Application

System

Component

System

Application

System

Application

System

Component

System

Component

System

Component

System

Component

System

Component

System

Component

System

Examples of reusable object

Application-specific

layer

Car Sales Management

Customer profileOrder management

Application-general

layer

Shopping cartCredit card authorization

Middleware layer

System-software

layer

Object persistency mechanism

quality from the beginning
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
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
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
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
Process gets soul: people may be humans

Static

Dynamic

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.

Structured

Re-Invent

Generic

Long-Term

Learn

Creative

Reuse

Streamlined and Personalized

Short-Term

Do

agents
Agents

Software Components, but…

  • Autonomous
  • Pro-Active
  • Encapsulate Knowledge as Rules
  • Adaptive

Agent

(in software)

each developer has its own personal agent
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
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
Personal Agents and Role Agents

Agent System

Role Agent

(for System Analyst)

Joe

(Developer)

Personal Agent

(for Joe)

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
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
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
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
Trend: Focus moves upwards
  • Use cases generate test cases and input to analysis
  • Analysis will generate implementation; design will become superfluous

Analysis

Req.ts

Design

Impl.

Test

More “generation”=work elimination

Now

Tomorrow

tomorrow life will be much better
Tomorrow, Life will be Much Better!

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
readings by ivar jacobson
Readings by Ivar Jacobson
  • 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
special readings
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)