Title: Four Macro Trends in Software Development Y2003
1Four Macro Trends in Software Development Y2003
IBM Rational ivar_at_rational.com
2Virtual Agenda
- Yesterday
- Today
- Tomorrow
- The best way to predict the future is to invent
it!
Alan Kay
3The 1980 Letter to The CEO of Ericsson
- Our component-based development approach will
evolve into a world standard
- A standard approach including
- a modeling language like SDL, UML,
- a process like RUP supported by a first
generation tool-set
- The modeling language becomes a formal, an
abstract executable language like UML with
action semantics
- Expert system support on top of process, language
and tool talked about layman programming
4Today
- We have the standard modeling language -- UML
- We have a standard development process -- RUP
- What next?
5What is the Unified Modeling Language?
- The UML combines the best of the best from
- Use Case Modeling
- Data Modeling
- Business Modeling
- Object Modeling
- Component Modeling
- The UML is the standard language for modeling
complex systems software systems, businesses
business processes, combined hardware and
software systems.
6What is Rational Unified Process?
- The Rational Unified Process (RUP)is
component-based - It uses the Unified Modeling Language
- It is
- Iterative and controlled
- Use-case driven
- Architecture-centric
- Risk focused
- Configurable
7Focus Moves to the Front-End
Now
Tomorrow
- Examples
- Use cases generate test cases and input to
analysis - Analysis will generate implementation eventually
implementation will become superfluous for
business software - Test will be part of every activity test while
you go forward
8Macro Trends in support of the Front-End Move
- Closing The Gap
- Building Extensible Systems
- Making Software Process Execute
- Executable UML
- Removed Trend
- Quality from the Beginning
- it is being implemented!
9Trend 1 Closing The Gap -- Business Driven EAI
- The Business must drive the IT support systems
- The available IT systems must guide the Business
- The business may have to be marginally adjusted
to be supported by efficient IT systems - The end- result is a balance between what is
desirable (ideal) and what is available (real)
10Based on a Component Market
- Components are frameworks
- Business specific components
- COTS components
- A component industry including
- Component factories provide components
- System Integrators reuse these components
- What do we need to do to play on this
marketplace?
11The Rational Initiative Reusable Asset
Specification
ComponentFrameworks
Technology or domain specific reusable assets
with associated guidelines on usage.
Reuse Standard
Open UML-based OMG standard expressing how to
produce, evaluate and consume reusable
assets. RAS, Reusable Asset Specification
developed by Rational and IBM, MSFT, SUN, BEA,
Tools
Tool support for creating, managing, browsing
and reusing software assets.
12Trend 2 Building Extensible Systems
- Alternative trend names
- Keeping Use Cases Separate All The Way Down
- Aspect-Oriented Programming (in a wide sense)
- Problems
- Adding new use cases/features to an existing
system is painful - Infrastructure extensions, for instance concerned
with distribution, persistence, debugging,
performance monitoring, auditing. - Application extensions such as adding traffic
recording to a base telecom system - Separation of concerns (use cases) all the way
down - Over all models use case, analysis, design,
implementation, executable code. - Composition of concerns (use cases) again
- At some late point in time weaving back to an
integrated whole
13Today
- Consider a new feature for a base program
- Identify a location in the base program where you
want to insert the new behavior - Code the new behavior and insert it at the
location in the base program - The base program has been changed. The new
feature was invasive to the base.
14How would AOP help?
- AOP allows us to make the base program oblivious
of the extensions ( aspects)
- AOP allows us to weave back extensions before
execution - UML has already support for extensions in use
case modeling - we need to extend UML to allow extensions between
arbitrary design and implementation elements - AOP allows us to keep use cases separate all the
way
__________________________________________________
______________________________
join p. 1
________________________________
join p. 3
________________________________
Base
join p. 2
________________________________
Extensions Aspects
Figure from Language Support for Changeable
Large Real Time Systems, Ivar Jacobson, 1986
15Trend 3 Make Software Process Execute
- Software development has never been
- as hard as today we need to SIMPLIFY
- Minimal training learn as you go
- Make process invisible yet very present
- Make it personal, make it light
- Without sacrificing quality
- Give them context-dependent, concrete advices
- Make people collaborate
- Let them focus on creative tasks
- A process engine in the hands of each developer
and the whole team.
16Use Next Generaton Technology Intelligent Agents
- Characteristics of intelligent agent
-
- Agents are proactive, adaptive and reactive
- Think of intelligent agents as objects driven by
rules
17Agents to assist the Software Developer
- Understand the software developers objectives
- milestones, roles, activities, artifacts
- Reason with relevant knowledge
- capture knowledge, and apply in context just in
time - Be a central part of a more complete and
integrated development environment - interact with other agents and productivity tools
- Be based on development standards
- development process and modeling RUP, UML,
- application platforms MS Web solution platform,
J2EE, - implementation technologies C, Java, XML,
18Agents and Software Developers
19An Example Creating a use case model
20Agents on Top of RUP and Existing/New Tools
Project Mgr
Use Case Specifier
Software Architect
Use Case Designer
Component Designer
System Tester
A Layer of Agents
Requirment (use cases analysis)
Development (design impl)
Test
Project Mgmt
Content Mgmt
- - -
Change Management etc.
Reusable assets Application frameworks,
Middleware, Systemware
21Trend 4 Executable UML
- Fighting
- The Black Hole of Complexity
- in Software
The Two-Language Problem
22UML Java or C
- Transitioning from UML to IDEs a Modern
Approach - Model Driven Development (or OMG initiative MDA)
- Frictionless design and Implementation
- Instant UML
IDE C or Java
Auto Round Trip Engineering
UML model files
Code files
23The Two-Language Problem
- Two sets of files or programs
- The UML program and the C/Java code
- Two complex environments
- Existing IDEs are designed to be complete
- No assumptions on generating code from the UML
- Large overlaps between UML and IDEs
- IDEs only contribute 10-20 of the code, the rest
is generated from the UML - Huge investment in infrastructure in existing
IDEs - Compilers, debuggers, interpreters,
- Systemware, middleware, reusable assets in
general
24Making UML a formal language
- Actually a set of languages
- Specification language
- Programming language (that is executable UML)
- Java, C, etc. become superfluous
- One program which combines visual and code like
syntax
20
Expressiveness of Language
10
Smalltalk 80
Eiffel
Visual Basic
Java
C
Visual C
Ada
Simula
PERL
PL1
5
C
Pascal
COBOL
FORTRAN
Basic
Macro Assembly
1
Assembly
Language Evolution
1960s
1970s
1980s
1990s
2000s
25Tomorrow, Life will be Much Better!
Summary
- We have UML, RUP and supporting tools
- Now focus will continue to move to the front-end
of the software development cycle, driven by - Closing The Gap -- Business Driven Enterprise
Application Integration - Building Extensible Systems
- Making Software Process Execute
- Executable UML
- Join the future
26References
- Closing The Gap
- Closing The Gap Business Driven Enterprise
Application Integration, Ivar Jacobson, RUC 2002 - RDA -- Ratonal Development Accelerators
initiative (see http//www.rational.com/rda/ras/pr
eview/index.htm). - The Long Awaited Promise of Component Reuse is
About to be Achieved, Ivar Jacobson Martin L
Griss, Application Development Trends, June 2001 - Software Reuse Architecture, Process and
Organization for Business Success (Addison
Wesley) Ivar Jacobson, Martin Griss Patrik
Jonsson, Addison Wesley Longman (1997) - Building Extensible Systems
- Language Support for Changeable Large Real Time
Systems, Ivar Jacobson, Proceedings
of OOPSLA86, pp 377-384, Sep 1986 - Use Cases and Aspects Working Together,
Ivar Jacobson,
soon to be published
27References cont.d
- Making Software Process Execute
- Call for Expert Systems, Ivar Jacobson Stefan
Bylund, Application Development Trends, June
2002, http//www.adtmag.com/article.asp?id3680 - A Multi-Agent System Assisting Software
Developers, Ivar Jacobson Stefan Bylund,
See www.jaczone.com/papers - Executable UML
- Action Semantic for the UML, OMG ad/2001-03-01
- Executable UML, A Foundation for Model-Driven
Architecture, Stephen Mellor Marc Balcer,
Addison Wesley, 2002
28Other 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) - Unified Software Development ProcessJacobson,
Booch, Rumbaugh, Addison Wesley Longman (1999) - The Road to the Unified Software Development
Process Ivar Jacobson, Stefan Bylund, Cambridge
University Press, 2000