Top Banner
© 2011 IBM Corporation Good Design is Good Business (5:50 time mark) Embedded and Real-time Software Development, A Model-Driven Approach Featured Speaker: Manohar Rao, IBM Rational Specialty Architect, [email protected] IBM Software, Rational Watch Replay! WorldWide Enablement Leader, Mobile, SOA, Design +1.703.943.1170, [email protected] Look for more sessions, Collaborate!
32

2013 Good Design Is Good Business MDD Embedded Systems

Jun 28, 2015

Download

Technology

Roger Snook

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 development
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2013 Good Design Is Good Business MDD Embedded Systems

© 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!

Page 2: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 3: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 4: 2013 Good Design Is Good Business MDD Embedded Systems

© 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();

Page 5: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 6: 2013 Good Design Is Good Business MDD Embedded Systems

© 2013 IBM Corporation6

Typical software development today workflow

Design and implementation gets out of synch easily

Requirements

Design

Implementation

Testing

Maintenance

Page 7: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 8: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 9: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 10: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 11: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 12: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 13: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 14: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 15: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 16: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 17: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 18: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 19: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 20: 2013 Good Design Is Good Business MDD Embedded Systems

© 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”

Page 21: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 22: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 23: 2013 Good Design Is Good Business MDD Embedded Systems

© 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”

Page 24: 2013 Good Design Is Good Business MDD Embedded Systems

© 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”

Page 25: 2013 Good Design Is Good Business MDD Embedded Systems

© 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”

Page 26: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 27: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 28: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 29: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 30: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 31: 2013 Good Design Is Good Business MDD Embedded Systems

© 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

Page 32: 2013 Good Design Is Good Business MDD Embedded Systems

© 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