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

Slides:



Advertisements
Similar presentations
K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Lecture # 2 : Process Models
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Static Structure: Process Description
IBM Software Group ® Use Cases & System of Systems Ivar Jacobson IBM Rational Jaczone AB
RISK ASSESSMENT. Risk Assessment Definition: “Risk…merely identifies the undesirable events that might take place during the project” [Jalote, 1998] Three.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Rational Worldwide Software Symposium
SwE 313 Introduction to Rational Unified Process (RUP)
Itntroduction to UML, page 1 Introduction to UML.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
UML and Object Oriented Concepts
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Principles of Object Technology Module 1: Principles of Modeling.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Unified Modeling Language, Version 2.0
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Systems Analysis and Design in a Changing World, 3rd Edition
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 UML Distilled 3e by Martin Fowler Chapter 1 Introduction to UML.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
1 Unified Modeling Language, Version 2.0 Chapter 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Basic Characteristics of Object-Oriented Systems
SE Seminar – IS Department Mazor Maya & Yuval Efrat December 2010 Griss, M.L.; Favaro, J.; d'Alessandro, M.;
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Introduction to UML.
Evolution of UML.
Systems Analysis and Design With UML 2
University of Central Florida COP 3330 Object Oriented Programming
UML: Unified modeling language
Rational Worldwide Software Symposium
Introduction to UML.
Rational Worldwide Software Symposium
Software engineering -1
Rational Worldwide Software Symposium
Software Development Process Using UML Recap
Presentation transcript:

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

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

Component-Based Architectures  Originated 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 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  : The AKE/AXE modeling language:  block diagrams  collaboration diagrams  sequence diagrams  state transition diagrams (state overviews, activity diagrams, concurrent states)  : 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...  : The AKE/AXE modeling language:  block diagrams  collaboration diagrams  sequence diagrams  state transition diagrams (state overviews, activity diagrams, concurrent states)  : 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  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  The Objectory Process  engineered process to facilitate specializations and instantiations (projects)  use cases drive the business track, the system track and the user track  : 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!  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  The Objectory Process  engineered process to facilitate specializations and instantiations (projects)  use cases drive the business track, the system track and the user track  : 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  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!  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!

 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 Assets

The Reuse Initiative: e-Development Accelerator Reusable Frameworks Reuse Standards Automation Open UML-based standard expressing how to document and produce reusable assets. Technology or domain specific reusable assets with associated guidelines on usage. Tool support for creating, managing, and reusing software assets.

Component System Component System Component System Application System Application System Application System Component System Component System Layered System Architecture Car Sales Management Customer profile Order management Shopping cart Credit card authorization Object persistency mechanism Examples of reusable object Application-general layer Middleware layer Application-specific layer System-software layer Component System Component System

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... 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 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 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) My Unified Process My Project My tasks Is specialized to Is enacted as And to

Process gets soul: people may be humans StaticDynamic Structured Re-Invent Generic Long-Term Learn Creative Reuse Streamlined and Personalized Short-Term Do 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.

Software Components, but…  Autonomous  Pro-Active  Encapsulate Knowledge as Rules  Adaptive Software Components, but…  Autonomous  Pro-Active  Encapsulate Knowledge as Rules  Adaptive Agents Agent (in software)

Each Developer has its Own Personal Agent Personal Agent (for Joe) Joe (Developer) Agent System Individuals play roles in software development www. jaczone.com

Every Role in RUP is Matched to One Agent System Analyst Role Agent (for System Analyst) Agent System www. jaczone.com

Personal 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 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  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  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

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  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  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.tsImpl.Test Analysis Design More “generation”=work elimination Now Tomorrow

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 Summary

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  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)  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)