2013 good design is good business mdd embedded systems
DESCRIPTION
Agenda: 1. Code in the world of model-driven development (MDD) 2. Using model-driven development to accelerate traditional development 3. MDD capabilities and technologies for code centric developmentTRANSCRIPT
© 2011 IBM Corporation
Good Design is Good Business (5:50 time mark)
Embedded and Real-time Software Development, A Model-Driven ApproachFeatured Speaker: Manohar Rao, IBM Rational Specialty Architect, [email protected]
Roger Snook Download Slides!
IBM Software, Rational Watch Replay!
WorldWide Enablement Leader, Mobile, SOA, Design
+1.703.943.1170, [email protected] Look for more sessions, Collaborate!
© 2013 IBM Corporation2
Agenda
Code in the world of model-driven development (MDD)
Using model-driven development to accelerate traditional development
MDD capabilities and technologies for code centric development
Q&A
© 2013 IBM Corporation3
Silos of people,process, and projects
Organizational BarriersGeographic Barriers
Poor communication
Language, culture, time
Process gaps resulting in
rework
Infrastructure Barriers
Weak collaboration
Poor project governance
and LOB oversight
Security of IP
Incompatible tools
Unreliable access
Lengthy on-boarding
Inflexible integration
Complexity Creates Development ChallengesLeading to cost overruns, schedule slips and quality issues
Poor requirements engineering = failed project
Paper-based and manual processes hinder efficiency
Complex architecture is difficult to textually explain
Functionality is poorly distributed across components
Hardware/software integration is often late
Many organizations lack formalized practices
© 2013 IBM Corporation4
Past
Modern Approaches for Describing Systems Are EvolvingTo Better Manage Complexity and Reduce Time-to-market
Moving from manual methods to an automated, visual approach
Specifications
Interface requirements
System design
Analysis & trade-off
Test plans
Future
UserUser
AdminAdmin AccessPointAccessPoint
CameraCamera
Security System
Uc3ConfigureSecuritySystem
Uc2Control Exit
Uc1Control Entry
readSecurityCard
User
validateSecurityCard
[CardStatus Valid][CardStatus Valid]
scanBiometricData
User [else][else]
authenticateBiometricData
[else]
flagBiometricScanFailure
[else]
[else][else]
[else]
flagSecurityCardFailure
[else]
[else][else]
[BiometricData Authenticated]
logEntryData
[BiometricData Authenticated]
[BsFailCount==3]
disableUserAccount
Admin
[BsFailCount==3]
[ScFailCount==3][ScFailCount==3]
displayCardStatus
[Timeout BiometricScan][Timeout BiometricScan]
displayAuthenticationStatus
logAccountData
alarm
unlockAccesspoint
«MessageAction»
AccessPoint
lockAccesspoint
«MessageAction»
AccessPoint [Timeout Unlocked][Timeout Unlocked]resetAlarm
Admin
[else][else]
takePicture
«MessageAction»
Camera
[First Request][First Request]
User CameraAccessPointUc_Uc1ControlEntry
message_0()
readSecurityCard()
message_1()
validateSecurityCard(CardStatus)
displayCardStatus(CardStatus)
message_2()
scanBiometricData()
authenticateBiometricData(AuthenticationStatus)
displayAuthenticationStatus(AuthenticationStatus)
logEntryData()
message_3()
message_4()
message_5()
message_6()
message_0()
readSecurityCard()
message_1()
validateSecurityCard(CardStatus)
displayCardStatus(CardStatus)
message_2()
scanBiometricData()
authenticateBiometricData(AuthenticationStatus)
displayAuthenticationStatus(AuthenticationStatus)
logEntryData()
message_3()
message_4()
message_5()
message_6()
Uc1ControlEntryCtrl
WaitForEntryRequest
UnlockingAndLockingAccessPoint
reqTakeSnapshot to pCamera
reqReadSecurityCard/readSecurityCard();
reqProcessAlert("User Access Disabled") to pAdmin
ProcessingSecurityCardData
Fail3Times
ProcessingBiometricData
Failed3TimesBsTimeoutAuthenticated
[CardStatus=="Valid"]
A
evAccessPointLocked
A
/disableUserAccount();logAccountData();
A
WaitForResetAlarm
reqResetAlarm/resetAlarm();
reqReadSecurityCard/readSecurityCard();
[CardStatus=="Valid"]
evAccessPointLocked
/disableUserAccount();logAccountData();
reqResetAlarm/resetAlarm();
© 2013 IBM Corporation5
Challenges facing embedded software development
Maintaining consistency between documentation and
implementation
Depending on hardware availability for software
development
Increasing productivity while design complexity increases
Managing changing requirements
Maintaining long life products with long learning
curve for staff changes
Collaborating with large teams, often globally
distributed
© 2013 IBM Corporation6
Typical software development today workflow
Design and implementation gets out of synch easily
Requirements
Design
Implementation
Testing
Maintenance
© 2013 IBM Corporation7
Code and document driven approaches typically lead to disjoint development processes
What if the design was incorrect?
What about the incorrect requirements?
Requirements
Design
Implementation
Testing
Maintenance
Becomes out of synch with your end product
© 2013 IBM Corporation8
3rd PartyExisting Applications
New featuresModified code
Typical embedded software development projects
Projects consist of new code, modifications to existing code, existing code not changing and third-party libraries
Documentation for code is often out of date, if it exists at all
© 2013 IBM Corporation9
Agenda
Code in the world of model-driven development (MDD)
Using model-driven development (MDD) to accelerate traditional development
MDD capabilities and technologies for code centric development
Q&A
© 2013 IBM Corporation10
ExecutableModels
Code in the World of Model Driven Development
Model-is-code
Everything is done in the model
Code is “black box”
One-way development flow
© 2013 IBM Corporation11
CodeCentric
Code Centric
Code in the World of Model Driven Development
Code is the master
Everything is done in the code and should stay exactly as-is
© 2013 IBM Corporation12
Using implementation language
Generating readable code
Open framework
Model-Code Associativty
Model-Code co-Debugging
Code in the World of Model Driven Development
Code Construction
Software Architectureand Design
© 2013 IBM Corporation13
Using implementation language
Generating readable code
Open framework
Model-Code Associativty
Model-Code co-Debugging
Code in the World of Model Driven Development
Code Construction
Elements with “intuitive” mapping to code
Software Architectureand Design
© 2013 IBM Corporation14
Using implementation language
Generating readable code
Open framework
Model-Code Associativty
Model-Code co-Debugging
Code in the World of Model Driven Development
Code Construction
Use of abstractions such as ports and statecharts
Elements with “intuitive” mapping to code
Software Architectureand Design
© 2013 IBM Corporation15
CodeCentric
Code Centric
Code in the World of Model Driven Development
Code is the master
Everything is done in the code and should stay exactly as-is
Code Construction
Software Architectureand Design
Using implementation language
Generating readable code
Open framework
Model-Code Associativty
Model-Code co-Debugging
Model-is-code
From the model
Code is “black box”
One-way development flow
ExecutableModels
© 2013 IBM Corporation16
3rd PartyExisting Applications
New featuresModified code
Typical software development projects and Model Driven Development
Projects consist of new code, modifications to existing code, existing code not changing and third-party libraries
Documentation for code is often out of date, if it exists at all
ExecutableModels
Software Architectureand Design
Code Construction
Code Centric
Code Centric
© 2013 IBM Corporation17
Agenda
Code in the world of model-driven development (MDD)
Using model-driven development (MDD) to accelerate traditional development
MDD capabilities and technologies for code centric development
Q&A
© 2013 IBM Corporation18
UML as the Language of MDD
Unified Modeling Language
Comprehensive full life-cycle 3rd Generation modeling language– Standardized in 1997 by the OMG– Created by a consortium of 12 companies from various domains– IBM a key contributor to behavioral modeling
Incorporates state of the art Software and Systems A&D concepts
Matches the growing complexity of real-time systems– Large scale systems, Networking, Web enabling, Data management
Extensible and configurable
Unprecedented inter-disciplinary market penetration
© 2013 IBM Corporation19
UML 2 diagrams
Communication Diagrams
Sequence Diagrams
Interaction Diagrams
Class Diagrams
Deployment Diagrams
Component Diagrams
Object Diagrams
Structural Diagrams
State Machine Diagrams
Timing Diagrams
Activity Diagrams
Behavioral Diagrams
Use CaseDiagrams
PackageDiagramsStructure
Diagrams
Interaction Diagrams
© 2013 IBM Corporation20
Code Centric Workflows with MDD
Visualize legacy/external code
On-going coding with updated documentation
Modernize code using MDD
Design-with-models; implement-with-coding
Model driven structural development
Project time line
Modeling is used in first stages of the project…
But as the project progresses the code is what “matters”
© 2013 IBM Corporation21
Visualize Legacy/External Code
“We need to understand the structure of this spaghetti code”
”I need to understand the behavior of the library I was given”
”We need to hand-over documentation for this code”
Modeling is used to understand the structure
The code is stable or otherwise external to the project
© 2013 IBM Corporation22
On-Going Coding with Updated Documentation
“We need to keep documentation always consistent with the code”
“We need to trace back code to requirements”
“The developers are using Eclipse to code, but we want to do reviews in a higher level than code”
“Management tells us to use UML, but we are happy with our editors”
Modeling is used to visualize the code
The code is evolved using editors and IDEs
© 2013 IBM Corporation23
Modernise Code using MDD
“Our legacy code still evolves”
“We want to find reusable code in our legacy”
“I want to refactor my legacy code”
The model receives growing focus
Code loses some focus but it still “matters”
© 2013 IBM Corporation24
Design-with-Models; Implement-with-Coding
“We did high level design with UML, but now we want to code”
“Like we did in Rose”
Modeling is used in first stages of the project…
But as the project progresses the code is what “matters”
© 2013 IBM Corporation25
Model Driven Structural Development
“We want MDD, but some things are easier to do in the code itself”
“We want to use models to drive the structure of the code (code frames)”– “and we don't care about abstractions such as ports or statecharts”
“Like we did in Rose”
Modeling is used throughout the project
But as the project progresses the code is what “matters”
© 2013 IBM Corporation26
Code Centric Workflows with MDD
Visualize legacy/external code
On-going coding with updated documentation
Modernize code using MDD
design-with-models; IMPLEMENT-WITH-CODING
Model driven structural development
© 2013 IBM Corporation27
Agenda
Code in the world of model-driven development (MDD)
Using model-driven development (MDD) to accelerate traditional development
MDD capabilities and technologies for code centric development
Q&A
© 2013 IBM Corporation28
Essential Capabilities and Technologies for MDD
Visualization (reverse engineering)
Code-centric Support
DMCA - Dynamic model-code associativity
IDE integrations
Simulation / Animation
Model based testing
© 2013 IBM Corporation29
Summary
Different users have different needs in different contexts
Models can be useful “even” when code-is-the-king
Mix-and-Match across the Model-Centric and Code-Centric scale
CodeCentric
Code Centric
Code Construction
Software Architectureand Design
ExecutableModels
© 2013 IBM Corporation30
Agenda
Code in the world of model driven development
Using model-driven development (MDD) to accelerate traditional development
MDD capabilities and technologies for code centric development
Q&A
© 2013 IBM Corporation31
Good Design is Good Business Webcast series featuring some IBM Distinguished Engineers and thought leaders.
Webcast Title (CLICK to register) - 12:15-1:15PM Dates
The Big Picture (Roger Snook) 2/8/2013
IBM and Design (IBM Director UX Design, Karel Vredenburg) 3/7/2013
SOA - Still Going Strong (IBM Distinguished Engineer, Claus Jensen) 4/4/2013
Design Management: Pictures are Worth….(WW Enablement, Jean-Louis Marechaux) 5/2/2013
DevOps: Design and Deliver Your Production Code Faster (Product Manager, Maneesh Goyal) 6/13/2013
Mobile and Smartphone Apps (Roger Snook) 7/11/2013
Rational Software Architect (Roger Snook) 8/8/2013
Industry Models Accelerate Software (Solution Architect Nick Norris) 9/12/2013
Business Design: SA and RSA (dW author, Steve Arnold) 10/17/2013*NEW DATE*
Smarter Devices with Model Driven Development (Specialty Architect, Manohar Rao) 10/4/2013
SysML, Industry Compliance (Standards Leader, Irv Badr) 11/14/2013
Rational Rhapsody (Specialty Architect, Manohar Rao) 12/5/2013
© 2013 IBM Corporation32
© Copyright IBM Corporation 2011. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
www.ibm.com/software/rational