Title: Four Macro Trends in Software Development Y2004
1Four Macro Trends in Software Development Y2004
Jaczone AB
ivar_at_jaczone.com
IBM Rational
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
- Use Cases and Aspects
- Executable UML
- Making Software Process Active
- Making Software Active (instead of Passive)
- Removed Trends (still very much trends)
- Quality from the Beginning
- Closing The Gap
- Domain-Specific Components Languages
9Trend 1 Use Cases and Aspects
- Alternative trend names
- Keeping Use Cases Separate All The Way Down
- Aspect-Oriented Software Development
- 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
10Today
- 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.
11How 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
__________________________________________________
______________________________
ext p. 1
________________________________
ext p. 3
________________________________
Base
ext p. 2
________________________________
Extensions Aspects
Figure from Language Support for Changeable
Large Real Time Systems, Ivar Jacobson, 1986
12Trend 2 Executable UML
- Fighting
- The Black Hole of Complexity
- in Software
The Two-Language Problem
13UML Java or C
- Transitioning from UML to IDEs a Modern
Approach - Model Driven Architecture
- Frictionless design and Implementation
- Instant UML
IDE C or Java
Auto Round Trip Engineering
UML model files
Code files
14The 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
15Making UML a formal language
- Actually a set of languages
- Specification language
- Programming language (that is executable UML)
- 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
16Trend 3 Making Software Process Active
- 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.
17Use Next Generaton Technology Intelligent Agents
- Characteristics of intelligent agent
-
- Agents are proactive, adaptive and reactive
- Think of intelligent agents as objects driven by
rules
18Agents 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,
19Agents and Software Developers
20An Example Creating a use case model
21Agents 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
224 Making Software Active (instead of Passive)
Changing the World From Passive to Active Software
23A Perspective of Automation Technologies
Benefit/Cost Ratio
Active Software
Software
Circuits
Year
1950
2000
1900
24Our Approach Assistance in Context
25Contact information
- www.jaczone.com
- www.ivarjacobson.com
- Get my postcards at www.jaczone.com
26Tomorrow, 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 - Use Cases and Aspects
- Executable UML
- Making Software Process Active
- Making Software Active (instead of Passive)
- Join the future
27References
- 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) - Use Cases and Aspects
- 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
28References cont.d
- 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 - Making Software Process Active
- 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
29Other 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