Four Macro Trends in Software Development Y2004 - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Four Macro Trends in Software Development Y2004

Description:

Large overlaps between UML and IDEs. IDEs only contribute 10-20% of the code, the rest is ... in existing IDEs. Compilers, debuggers, interpreters, ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 28
Provided by: ivarja
Category:

less

Transcript and Presenter's Notes

Title: Four Macro Trends in Software Development Y2004


1
Four Macro Trends in Software Development Y2004
  • Ivar Jacobson

Jaczone AB
ivar_at_jaczone.com
IBM Rational
2
Virtual Agenda
  • Yesterday
  • Today
  • Tomorrow
  • The best way to predict the future is to invent
    it!

Alan Kay
3
The 1980 Letter to The CEO of Ericsson
  • Our component-based development approach will
    evolve into a world standard
  • Proceed in three steps
  • 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

4
Today
  • We have the standard modeling language -- UML
  • We have a standard development process -- RUP
  • What next?

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

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

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

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

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

10
Today
  • 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.

11
How 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
12
Trend 2 Executable UML
  • Fighting
  • The Black Hole of Complexity
  • in Software

The Two-Language Problem
13
UML 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
14
The 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

15
Making 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
16
Trend 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.
  • Empower the developer

17
Use Next Generaton Technology Intelligent Agents
  • Characteristics of intelligent agent
  • Agents are proactive, adaptive and reactive
  • Think of intelligent agents as objects driven by
    rules

18
Agents 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,

19
Agents and Software Developers
20
An Example Creating a use case model
21
Agents 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
22
4 Making Software Active (instead of Passive)
Changing the World From Passive to Active Software
23
A Perspective of Automation Technologies
Benefit/Cost Ratio
Active Software
Software
Circuits
Year
1950
2000
1900
24
Our Approach Assistance in Context
  • Empower
  • the user

25
Contact information
  • www.jaczone.com
  • www.ivarjacobson.com
  • Get my postcards at www.jaczone.com

26
Tomorrow, 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

27
References
  • 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

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

29
Other 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
Write a Comment
User Comments (0)
About PowerShow.com