Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...
-
Upload
stuart-carpenter -
Category
Documents
-
view
221 -
download
0
Transcript of Trends in Software Engineering a personal view Ivar Jacobson Vice President e-Development Rational...
Trends in Software Engineeringa personal view
Trends in Software Engineeringa personal view
Ivar JacobsonVice President e-DevelopmentRational Software Corporation
Ivar JacobsonVice President e-DevelopmentRational Software Corporation
Virtual AgendaVirtual Agenda
Yesterday
Today
Tomorrow
The best way to predict the future is to invent it!
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
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* Björn Svedberg
Component-Based ArchitecturesComponent-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!
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 viewModeling 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...
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 viewDevelopment 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!
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 SoftwareFuture 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 MarketplaceA 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 systemsWe 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 systemsWe 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 AssetsReuseable Assets
The Reuse Initiative: e-Development AcceleratorThe Reuse Initiative: e-Development Accelerator
ReusableFrameworksReusableFrameworks
Reuse StandardsReuse Standards
AutomationAutomation
Open UML-based standard Open UML-based standard expressing how to document expressing how to document and produce reusable assets.and produce reusable assets.
Open UML-based standard Open UML-based standard expressing how to document expressing how to document and produce reusable assets.and produce reusable assets.
Technology or domain specific Technology or domain specific reusable assets with associated reusable assets with associated guidelines on usage.guidelines on usage.
Technology or domain specific Technology or domain specific reusable assets with associated reusable assets with associated guidelines on usage.guidelines on usage.
Tool support for creating, Tool support for creating, managing, and reusing managing, and reusing software assets.software assets.
Tool support for creating, Tool support for creating, managing, and reusing managing, and reusing software assets.software assets.
ComponentSystem
ComponentSystem
ComponentSystem
ApplicationSystem
ApplicationSystem
ApplicationSystem
ComponentSystem
ComponentSystem
Layered System Architecture
Car Sales ManagementCar Sales
Management
Customer profileOrder managementCustomer profile
Order management
Shopping cartCredit card
authorization
Shopping cartCredit card
authorization
Object persistency mechanism
Object persistency mechanism
Examples of Examples of reusable objectreusable object
Application-general layer
Middleware layer
Application-specificlayer
System-softwarelayer
ComponentSystem
ComponentSystem
Quality from the BeginningQuality 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 VerificationActivity-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 AliveSoftware 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 FingertipsThe 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 Process gets soul: people may be humans
Static Dynamic
StructuredRe-Invent
GenericLong-Term
Learn
CreativeReuseStreamlined and PersonalizedShort-TermDo
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. 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
AgentsAgents
Agent(in software)
Each Developer has its Own Personal AgentEach Developer has its Own Personal Agent
Personal Agent(for Joe)
Joe(Developer)
Agent System
Individuals play roles in software development Individuals play roles in software development
www.jaczone.com
Every Role in RUP is Matched to One AgentEvery Role in RUP is Matched to One Agent
System Analyst
Role Agent(for System Analyst)
Agent System
www.jaczone.com
Personal Agents and Role AgentsPersonal 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 agentsSince a developer can play many roles his/her personal agent may collaborate with several role agents
Specialist AgentsSpecialist 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 PlatformA 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 UMLEvery 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 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.ts Impl. TestAnalysis Design
More “generation”=work elimination
NowNow
TomorrowTomorrow
Tomorrow, Life will be Much Better!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
SummarySummary
Readings by Ivar JacobsonReadings 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 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 readingsSpecial 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)