71
® © 2006 IBM Corporation 한국전자통신연구원을 위한 IBM Rational 로드쇼 Embedded 개발을 위한 새로운 모델링도구 소개 (RSD: Rational System Developer, Rose Technical Developer)

Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

®

© 2006 IBM Corporation

한국전자통신연구원을위한 IBM Rational 로드쇼

Embedded 개발을 위한 새로운 모델링도구 소개(RSD: Rational System Developer, Rose Technical Developer)

Page 2: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Agenda

Model-Driven Development

Challenges of Architecting Software

Rational Systems Developer v6.0.1

Summary

Page 3: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

The Challenges of Software DevelopmentEver-increasing complexity in the operational environments

C/C++, Java, .NetWeb, Handhelds, disconnectedLegacy integration, modernizing

Ever-expanding choices to make on development solutions

Programming Languages, scripting LanguagesIDE’s, testing tools

Ever-changing nature how software gets created

Globally development teamsOutsourcingCompliance and Regulations

More Layers,More Servers,More Frameworks,More “Moving Parts”,

More Complexity

Page 4: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Modeling: The Key to Managing Software Complexity

Well, maybe you shouldn’t’

But then, maybe you should

Maybe you have to

Modeling is the standard approach in engineering toManage ComplexityMitigate Risk

Software development is the same asevery other kind of engineering in this respect

Page 5: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

5

The Evolution of Software Development

TimeMachine Code - Binary Development

7F 3A7F 3A2D FF2D FF

Pseudocode - 3GLTextual Modeling

Assembler - Textual Development

ADD 1ADD 1JMP 122JMP 122

Visual Modeling

3GL Textual Development

Model-Driven Development

Power

Problem: delivering the next level of expectation

Solution: applying the next level of automation

Page 6: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

What is Model-Driven Development (MDD)?

The encapsulation of business logic and industry best practices into models

The use of these models for application development, code generation, testing, and maintenance

Modeling helps you work at higher levels of abstraction

Higher levels of abstraction lead to higher productivity

Modeling helps you work at higher levels of abstraction

Higher levels of abstraction lead to higher productivity

Page 7: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Models….

Abstract representations of Business logicArchitectureDesignReusable assets

Allow multiple viewpoints to be expressed independently

EnableManipulationReasoningLogical consistency checksAutomation

More cost efficient

Page 8: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

What is Model-Driven Development?Different Stakeholders, Different Models

Business ModelVisualization of business processes

Use Case ModelVisualization of functional requirements

Analysis Model“What” the system must do to realize the functional requirements

User Experience ModelVisualization of user interaction with the system

Design Model“How” the system will realize the functional requirements

Data ModelVisualization of persistent storage

Implementation ModelVisualization of the code

Page 9: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

UML – The Language ofModel-Driven Development

Model-driven development is aided by acommon language across all stakeholders

Unified Modeling Language (UML) is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive systemUML allows software architects, designers and developers to specify, visualize, construct, and document all aspects of a software system

Model-driven development is aided by acommon language across all stakeholders

Unified Modeling Language (UML) is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive systemUML allows software architects, designers and developers to specify, visualize, construct, and document all aspects of a software system

Page 10: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Evolution of Systems DevelopmentBusiness environment changes

Device is just one part of a larger solution (e.g., iPod, Tivo, Blackberry)

Awareness of role in broader solutionWorking closely with customers and partners

Technology changesComplex mixture of technologies

Need both device-optimized and enterprise-scale technologies

Integration and interoperability are mandatoryIncreasing standardization (e.g., XML)

Increased role of “Systems” modeling (e.g., SysML, SOA, BPM)

Page 11: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Embedded Software Characteristics

TimelinessTimeliness

T. 1

T. 2

T. 1

T. 2

Event DrivenEvent DrivenEv1

Ev2 Ev3

DistributionDistribution DynamicStructureDynamicStructure

ConcurrencyConcurrencyDependabilityDependability

Page 12: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Importance of Tools in Systems Development

ComplexityComplexityScale causes productivity dropScale causes productivity drop((““Diseconomies of scaleDiseconomies of scale””))

Time to marketTime to market

Competitive advantageCompetitive advantageSoftware IS the productSoftware IS the product

User ExpectationUser ExpectationNOT a computerNOT a computer

Bottom lineBottom lineDefects can be cripplingDefects can be cripplingAdding staff not the solution (BrooksAdding staff not the solution (Brooks’’ law)law)

Page 13: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Example: Defense Industry Software Evolution

FROM TOSmall (KLOC) Large (MLOC)

Monolithic Architected

Closed Open

Proprietary Standard

Stand-alone Networked

Single product Product Line

1980s 2000

Page 14: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Agenda

Model-Driven Development

Challenges of Architecting Software

Rational Systems Developer v6.0.1

Summary

Page 15: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Challenges of Architecting Systems SoftwareChallenges of Architecting Systems Software

Communicating a SolutionEven experienced teams need clear and consistent communicationProgramming languages implement architectures -- they do not describe themArchitecture decisions are only useful if they can be followedDevelopment requires collaboration between different disciplines -mechanical, electrical, electronic, software, manufacturing, etcProduct may depend on key external supplier(s)Suppliers and internal development teams are geographically distributed

Communicating a SolutionEven experienced teams need clear and consistent communicationProgramming languages implement architectures -- they do not describe themArchitecture decisions are only useful if they can be followedDevelopment requires collaboration between different disciplines -mechanical, electrical, electronic, software, manufacturing, etcProduct may depend on key external supplier(s)Suppliers and internal development teams are geographically distributed

“How can our decisions be shared?”

Page 16: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Challenges of Architecting Systems SoftwareChallenges of Architecting Systems SoftwareHow to discover bad practices?

Often new projects begin with existing frameworksProjects intend to leverage the value of existing code, but often lock-in problems as well

How to enforce standards?Developers stray from architecture decisions that they do not understandCreating code to implement an architecture is tediousRequirements are sometimes unclear when coding and construction beginProduct architecture is not completely understood early in the development processArtifacts contain different technical languagesArtifacts are stored in multiple data repositories

How to discover bad practices?Often new projects begin with existing frameworksProjects intend to leverage the value of existing code, but often lock-in problems as well

How to enforce standards?Developers stray from architecture decisions that they do not understandCreating code to implement an architecture is tediousRequirements are sometimes unclear when coding and construction beginProduct architecture is not completely understood early in the development processArtifacts contain different technical languagesArtifacts are stored in multiple data repositories

“We did not find our tangles until late in the project – but they were

there from the beginning .”

“The architecture was solid, but it was not implemented as

planned!”

Page 17: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

ChallengeOvercome the problem of communicating solution to a team

ChallengeOvercome the problem of communicating solution to a team

ResolutionProvide technologies to enable effective communication of a design

UML 2 NotationIntegrate the architecture artifacts into the development environmentProvide Global Access to artifacts internally and for suppliers

ResolutionProvide technologies to enable effective communication of a design

UML 2 NotationIntegrate the architecture artifacts into the development environmentProvide Global Access to artifacts internally and for suppliers

Challenge : Communicating ArchitectureChallenge : Communicating Architecture

Page 18: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

ChallengeHow can teams learn about the architecture of existing implementations or frameworks?

ChallengeHow can teams learn about the architecture of existing implementations or frameworks?

ResolutionProvide an automated means for discovering architecture

Look for Anti-PatternsVisualize complexity

ResolutionProvide an automated means for discovering architecture

Look for Anti-PatternsVisualize complexity

Challenge : How to discover complexity?Challenge : How to discover complexity?

Page 19: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Challenge : Enforcing Architecture StandardsChallenge : Enforcing Architecture StandardsChallenge

How to enforce architecture decisions for a project team?

ChallengeHow to enforce architecture decisions for a project team?

ResolutionGenerate source-code based on architecture decisionsCreate and enforce rules which support the architecture

Process GuidanceCode rules Visually compare model changesLink requirements to design

ResolutionGenerate source-code based on architecture decisionsCreate and enforce rules which support the architecture

Process GuidanceCode rules Visually compare model changesLink requirements to design

Page 20: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

AnalystAnalyst ArchitectArchitect DeveloperDeveloper TesterTester

Rapidly construct, transform,integrate

and generate code

Rapidly construct, transform,integrate

and generate code

Design, create,

and execute

tests

Design, create,

and execute

tests

Model, simulate, assemble,

and monitor processes

Model, simulate, assemble,

and monitor processes

Visuallymodel

applications and data

Visuallymodel

applications and data

Provision, configure, tune

and troubleshoot applications

Provision, configure, tune

and troubleshoot applications

Follow a common processManage and measure projects and portfoliosManage requirements

Follow a common processManage and measure projects and portfoliosManage requirements

Manage changeand assetsManage quality

Manage changeand assetsManage qualityProject

ManagerProject

Manager

ExecutiveExecutiveAlign investments with business objectivesAnalyze and monitor project portfoliosAlign investments with business objectivesAnalyze and monitor project portfolios

Deployment Manager

Deployment Manager

The IBM Rational Software Development PlatformA complete, open, modular, and proven solution

Page 21: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

CustomerExtensions

3rd PartyISV Tools

Rational Software Architect

Rational Software Architect

Rational Application Developer

Rational Application Developer

Rational Functional & Manual

Tester

Rational Functional & Manual

Tester

Rational Performance

Tester

Rational Performance

Tester

Rational Team Unifying PlatformRational Team Unifying Platform

Tivoli Configuration

Manager

Tivoli Configuration

Manager

WebSphereBusiness

IntegrationModeler

& Monitor

WebSphereBusiness

IntegrationModeler

& MonitorTivoli

MonitoringTivoli

Monitoring

Rational Web Developer

Rational Web Developer

AnalystAnalyst ArchitectArchitect DeveloperDeveloper TesterTester Deployment Manager

Deployment Manager

Project ManagerProject

Manager

ExecutiveExecutive Rational Portfolio ManagerRational Portfolio Manager

Rational Software Modeler

Rational Software Modeler

The IBM Rational Software Development PlatformEclipse-based software development

Rational Systems

Developer

Rational Systems

Developer

Rational Systems

Developer

Rational Systems

Developer

Page 22: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Supporting device development

Deployment Platforms

Deployment Platforms

VxWorksJ2MEWindows CEPalm OSLinuxOSEMore than 100 Platforms

System EngineerSystem

EngineerArchitectArchitect DeveloperDeveloper TesterTester

Rational Systems

Developer

Rational Systems

DeveloperWindRiver TornadoGreen Hills MULTI

Microsoft eMbeddedOthers...

WindRiver TornadoGreen Hills MULTI

Microsoft eMbeddedOthers...

WebSphere StudioDevice Developer

Micro Environment ToolkitEmbedded Voice Toolkit

WebSphere StudioDevice Developer

Micro Environment ToolkitEmbedded Voice Toolkit

Rational Systems Developer

Rational Test RealTimeRational PurifyPlus

Rational Systems Developer

Rational Test RealTimeRational PurifyPlus

Rational Test

RealTime

Rational Test

RealTime

Rational ManualTester

Rational ManualTester

Rational Team Unifying PlatformRational Team Unifying Platform

Rational Portfolio ManagerRational Portfolio Manager

Project ManagerProject

Manager

ExecutiveExecutive

Rational Systems

Developer

Rational Systems

Developer

Rational Rose Technical Developer

Rational Rose Technical Developer

Rational Rose Technical Developer

Rational Rose Technical Developer

Page 23: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Rational Rational RequisiteProRequisitePro

Governing the Lifecycle of Systems Development

Business goalsand system requirements

RationalRationalPortfolio Portfolio ManagerManager

Project investment, resourcing and

scheduling

RationalRationalSystemsSystems

DeveloperDeveloperSystem Architecture and

Software Design and implementation

RationalRationalManualManualTesterTesterSystem

Architecture and Software Design

andimplementation

Rational Rational ClearCaseClearCase, Rational , Rational ClearQuestClearQuestChange management for all types of assets,

from electronic designs to software to test assets

RationalRationalUnifiedUnified

Process/ Process/ Method Method

ComposerComposer

RationalRationalTestTest

RealTimeRealTimeRun-time analysis

and automated test

WebSphere WebSphere Business Business ModelerModeler

Process modeling

Methodology and processguidance for Systems

(RUP SE)

Page 24: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Agenda

Model-Driven Development

Challenges of Architecting Software

Rational Systems Developer v6.0.1

Summary

Page 25: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Eclipse

What is Rational Systems Developer?

UML-based, model-driven development, design & construction tool for C/C++, J2SE and CORBA IDL implementation

Serves as a framework for enabling business partner value-add development

Rational Software Modeler

C/C++ Development Tooling (CDT)

Java Development Tooling (JDT)

Architectural structure review

& control

Model-to-code transforms

Rational Systems Developer

Page 26: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

ClearCase LT

IBM Rational Systems Developer Product Overview

Java Development Tools

C/C++ Development Tools

Software Modeler

UML Language Transforms

Operating Environments“Java Development Tools”

• Advanced Java tooling - editors, projects, refactoring, etc.

• UML code editors for Java• Code Review

“Modeler”• UML 2.0 Diagrams for Class,

Communication, Component, Composite Structure, Deployment, Activity, Sequence, State, and Use Case

• OCL Support• Automatic diagram

generation• Pattern content• Extensive open API• Java-based “scripting” for

extensibility• HTML and XML based data

extraction and reporting• Extensive printing (Windows

Only)• RAS tools• Rose/XDE Model Import• Traceability Analysis• Visual Compare/Merge

“C/C++ Development Tools”• C/C++ editors and build management• Compiler and debugger integration• UML code editors for C/C++

“UML Language Transforms”• Pattern/Transform authoring framework

and services• UML-to-code transforms for Java and C++• Selective language to UML harvesting• UML-to-CORBA IDL transformations

“Architectural Discovery”• Automatic anti-pattern and

pattern detection• Architectural discovery,

analysis, metrics, and stability reporting

• Implementation level architectural rules

“Lifecycle Integrations”• ClearCase• ClearQuest• Requisite Pro• SoDA• RUP

Java Structural Analysis

Lifecycle Integrations

V3.0.3

Page 27: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Getting Started: User Assistance

New User Assistance model to enable users of all skill levels

Leverages Product Tours to assist with the discoverability of capabilities

Tutorial Gallery leverages tutorials as learning aids

“Watch and Learn”“Play and Learn”“Do and Learn”

Samples gallery provides completed assets for reference purposes

ShowcaseApplicationTechnology

All user assistance can be launched from a Welcome perspective

Page 28: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: C/C++ Development Environment

Perspective for C/C++ Development

C/C++ project hierarchical tree view

UML class diagram visualization of C/C++

classes and structs

C/C++ editor with syntax highlighting, code

completion, and advanced search

Page 29: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: C/C++ Development Environment

Editing and NavigationC/C++ Syntax Highlighting, Outline View

C++ Class Browser (Hierarchy View)

C/C++ Search

C/C++ Content Assist

Project Import Automated assistance in setting up CDT for search and content assist.

UML C/C++ Code Editor

DebugGDB Integrated

Extensible Debug Interface

BuildStandard Make for projects with existing build infrastructure

Managed BuildAutomatic makefile generation

GNU tools supported out of box

Managed build is extensible, build tools can be plugged-in and build tools options selectable

Meets Internationalization and Accessibility requirements

ExtensibilityProvides extension points for managed build, debuggers, …

Page 30: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: Modeling assistance

Simplify the capture of UML models during Analysis and Design

Make modeling more accessible to a broader audience

New custom views improve the editing experience

New “Diagram Navigator”view provides a diagram

filtered view of the models and workspace

Diagram links as first-class citizens

“In diagram editing” to accelerate modeling.

New properties view

Inheritance view

Page 31: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: Patterns

Applying Patterns is very simpleEvolution of pattern experience based on lessons learned

Pattern-authoring provides greater flexibility using Open API

All Gang of Four design patterns provided

Additional patterns provided via RAS repository on IBM developerWorks

New patterns view providing outline and description of the

pattern

Pattern rendered as a collaboration to

support incremental application

Support “drag-and-drop” of pattern parameters into the

collaboration

Page 32: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: Transformations

Transformations are optimal for “batch” style computationally intensive operations

Model-to-modelModel-to-code

Out-of-the box code transformsUML-to-Java/J2SEUML-to-C++UML-to-CORBA IDLPlus sample model-to-model transforms

Transformations may be updated via RAS repository hosted on IBM developerWorks

Page 33: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: Architectural Analysis, Discovery, and Control

Architecture discovery for J2SEHigh-level software visualization

Application architecture is reflected in the running code

Analyzing code can help assess its maintainability

Govern the architecture with the assistance of rules

Template-based rule authoring

Anti-pattern and pattern detectionDetection of cyclic dependencies, hubs, breakable, etc.Wizard assisted automated quick-fix

Automatic generation of “topic”diagrams based on the results of

the code analysisPatterns and anti-patterns are rendered in the diagram editor. Navigation to detailed code is

supported.

“Details View” providing an overview and avoidance

guidance for anti-patterns.

Code review pane providing a report of detected issues.

Page 34: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Key Feature: Visualize Java Method Bodies

Facilitates understanding and application’s behavior by providing visualization of detailed code

Diagrams can be integrated in Javadoc reports

Integrated with the Java Package view

Select method to be visualized using UML

Leverages UML 2.0 sequence diagram

constructs for loops, conditionals, etc…

“Topic” diagram for method is automatically updated/refreshed when

method is updated

Alternate abstract viewof method behavior

Alternate abstract viewof method behavior

Page 35: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

UML Enhancements: JavaDoc with Embedded UML Diagrams

Produce enriched JavaDocUML diagrams right on the pages Completely integrated with hyperlinks

Page 36: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

UML Enhancements: Interaction Modeling

Interactions are expressed more effectively using UML 2.0 constructs

Support specification of test scenariosLoop, alt, optInteraction fragment references

Interactions can be rendered as either sequence or communication diagrams

Sequence diagram editing improvements

Ordering and reordering

Support for UML 2.0 fragments including OPT,

ALT, and LOOP

Fragment collapse/expansion to

facilitate working with large sequence diagrams

Create class operations “on-the-fly” while doing

sequence diagram edits.

Page 37: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

UML Enhancements: Browse Diagrams

Enables users to understand and discover models and applicationswithout having to create or maintain diagrams

Web Browser-like controls to navigate workspace or

model

Page 38: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Team: RequisitePro Integration

Open and browse multiple RequisitePro projects

See requirements, packages, and views

Associate requirements with model elements via drag and drop

Create model elements from requirements

Customizable synchronization

Requirements Explorer for viewing requirements in

Eclipse.

Associate requirements and

model elements using Drag-and-Drop

View requirements traceability from the perspective of either “trace-to”

or “trace-from”

Page 39: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Team: Process Guidance

Integration with Rational Unified Process

Tool Mentors provide guidance for activities

User customizable views with user defined content

RUP

Search is integrated with Eclipse search

RUP Advisor provides context sensitive guidance

Improved navigation of RUPEase of Use

Page 40: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Team: ClearQuest Integration

Easy access to queries, charts, &

reports

Console, SQL Query & Properties views

View record forms, charts and reports

Hierarchical result set view shows parent-child relationships

Page 41: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Team: ClearCase Integration

ClearCase Navigator view with integrated

UCM activities

ClearCase Details view shows selected version information

Display version history, view & update configspec, display search

results

Page 42: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Team: Model Compare & Merge

Model differences & conflicts

Description of selected difference or

conflictDiagram view of

selected difference or conflict for contributor

Choose view type

Page 43: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Agenda

Model-Driven Development

Challenges of Architecting Software

Rational Rose Technical Developer

Summary

Page 44: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

44

Host or Target Application

““RequirementsRequirements””““RequirementsRequirements””

MDA in Rational Rose RealTime

““RequirementsRequirements””““SourceSource””““SourceSource””““Command line Command line parametersparameters””““Make filesMake files””Use Case DiagramUse Case Diagram

Sequence DiagramSequence Diagram

Class DiagramClass DiagramStructure DiagramStructure Diagram

Behavior DiagramBehavior Diagram

Component DiagramComponent Diagram

Deployment DiagramDeployment Diagram

Develop at the model level with IBM Rational Rose RealTime

The Model is The ApplicationThe Model is

The Application

Page 45: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Analyze at the Model Level

Requirements Analysis

Develop at the model level with IBM Rational Rose RealTime

Page 46: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Design at the Model Level

Requirements Analysis

Architecture and Design

Develop at the model level with IBM Rational Rose RealTime

Page 47: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Implement at the Model Level

Requirements Analysis

Architecture and Design

ImplementationClassesStructureBehavior

Develop at the model level with IBM Rational Rose RealTime

Page 48: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Build at the Model Level

Requirements Analysis

Architecture and Design

Implementation

Generate/Build/LinkClassesBehaviorStructure

Develop at the model level with IBM Rational Rose RealTime

3GLCompiler

GeneratedMake File

Rose RealTime

UML Source From

CM System

Generated3GL Code

UML Run-TimeServices Library

External 3GLCode

Libraries

Application

3GLLinker

MDA transformation of model

Page 49: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Deploy at the Model Level

Requirements Analysis

Architecture and Design

Implementation

Generate/Build/Link

Deployment

Develop at the model level with IBM Rational Rose RealTime

Page 50: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Model Level

Requirements Analysis

Architecture and Design

Implementation

Generate/Build/Link

Deployment

DebuggingModel levelStart, stop, single stepInject, trace messagesVariable watch/modifyBreakIntegrate with sourcedebugger

Develop at the model level with IBM Rational Rose RealTime

Page 51: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Test at the Model Level

Requirements Analysis

Architecture and Design

Implementation

Generate/Build/Link

Deployment

Debugging

Testing

Develop at the model level with IBM Rational Rose RealTime

Page 52: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Analyze at the Model Level

Requirements Analysis

Architecture and Design

Implementation

Generate/Build/Link

Deployment

Debugging

Testing

Run-time AnalysisThrough RationalTest RealTime integrationCoveragePerformanceMemory errorsModel or code level

Develop at the model level with IBM Rational Rose RealTime

Graphical view of Graphical view of reached and reached and

unreachedunreached states states and transitionsand transitions

Individual Individual coverage coverage

ratesratesGlobal Global

coverage coverage ratesrates

CodeCode--level level coveragecoverage

Page 53: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Natural Embedded Notation and Concepts

Use natural embedded concepts with Rational Rose RealTime

PlayingBrok e

Initial

bust

giv e

Initial

bust

giv e

W aitingT oStart

GameR esults

R eceiv ingCards

c ashLeft

Initia l

bust

giv e

Ante

Init

Got_all_c ards

Initial

Lose

T rue

False

giv e

refunded

W in

InitialInitia l

bustbust

giv egiv ec ashLeft

Ante

Init

Got_all_c ards

Initial

Lose

T rue

False

giv e

refunded

W in

Specify behavior with UML hierarchical state machines

ReceiveCards

All_cards

Ante

Got_all_cards

Received_card

Ante

False

Got_all_cards

AnteAnte

Got_all_cardsGot_all_cards

All_cards

Received_card

Ante

False

Got_all_cards

Page 54: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Natural Embedded Notation and Concepts

Use natural embedded concepts with Rational Rose RealTime

Specify behavior with UML hierarchical state machines

Simplify and optimize concurrency with active objectsTwo-way encapsulation through port interfacesSimplify concurrent development

Avoid expensive thread context switches

Avoid mutexes

Reduce concurrency errors

Ports

Encapsulation Shell

Response Messages

Stimulus Message

Page 55: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Natural Embedded Notation and Concepts

Use natural embedded concepts with Rational Rose RealTime

Specify behavior with UML hierarchical state machines

Simplify and optimize concurrency with active objects

Specify architecture with structured classesUML 2.0 structuring concepts comes from Rose RealTime

Structure diagrams, ports, connectors,…IBM Rational has over a dozen years of experience applying structuring concepts

sender:Fax remote receiver:Faxremote

c c

sendCtrl receiveCtrl

FaxCall

Page 56: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Apply a Uniform Solution to Host and Your Target

Test and debug graphically on targetjust as you do on the host

Host is just another target, not a “simulation”

Work on host and target with Rational Rose RealTime

Host debugging…

…target debugging

Works on your target environmentC, C++, Java and CORBA IDLAll leading RTOSes (or no RTOS at all)Any 8- to 64-bit processorAny application size

Up to multi-million-lineDown to footprints of a few Kbytes

Many platforms supported out of the boxOther platforms supported throughTargetRTS Porting Wizard

Page 57: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Connexis for Distributed UML Designs

Enables deployment and visualization of distributed applicationsSupports patterns for creating high-availability applicationsProvides the distributed communication infrastructure

COTS ServerCOTS Server

Shelf ControllerShelf ControllerCall ServerCall ServerAdministrationAdministration H/W ControlH/W Control

Use middleware for distribution with Rational Rose RealTime

Page 58: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

0%

Behavior

Structure

Hand coding

% G

ener

ated

Cod

e

Build at the Model Level

Unequalled code generation: 100%

90%Reduced implementation time

Drawing is much faster than codingIncreased quality from MDA

Gives decreased rework and churn

Result: reduced time to market

Within model

Develop at the model level with IBM Rational Rose RealTime

Page 59: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Model Level

Generate the details, debug the logic

ModelModelGenerate/CompileGenerate/Compile Control/ObserveControl/Observe

Page 60: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Model Level

Observe object creation, watchpoints

Page 61: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Model Level

Step through model, observe changes

Page 62: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Model Level

Observe object destruction upon termination

Page 63: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Debug at the Source Level

Compile, control, visualize and debug from Rational Rose RealTime

Examples: MULTI, Tornado, Visual Studio

Compilation errors mapped back to UML design elements Target download and controlUML model debuggingIntegrated 3GL debugging (e.g., mapped to state transitions)

Page 64: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

RTOS Target Support

All popular RTOS targets are supported “out of the box”

All other 8- to 64-bit targets (with or without RTOS) are supported through wizard-assisted porting technology

Your environment is supported

Page 65: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Agenda

Model-Driven Development

Challenges of Architecting Software

Rational Systems Developer v6.0.1

Summary

Page 66: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Architecture SupportJava, J2SE, C++UML2 ModelingArchitecture Discovery via Application AnalysisPatterns and Transformations

Team EnvironmentEnhanced Compare / MergeIntegrated RequisitePro ViewsProcess Advisor ClearCaseLT included

CC and CQ fully integrated

Open PlatformBased on Eclipse 3 ShellBroad support for WebSphere tools Testing and Team tools work together

Architecture SupportJava, J2SE, C++UML2 ModelingArchitecture Discovery via Application AnalysisPatterns and Transformations

Team EnvironmentEnhanced Compare / MergeIntegrated RequisitePro ViewsProcess Advisor ClearCaseLT included

CC and CQ fully integrated

Open PlatformBased on Eclipse 3 ShellBroad support for WebSphere tools Testing and Team tools work together

Summarizing Key Features in Rational Systems DeveloperSummarizing Key Features in Rational Systems Developer

Page 67: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Summarizing

Model visuallyTo understand complex systems

Develop at the model levelTo deliver better applications faster

Use natural embedded notation and conceptsHierarchical state machines for event-driven object behaviorStructures for architecturesActive objects to simplify concurrency

Apply a uniform solution on host and targetTo simplify cross-platform developmentTo adapt to your target

Use middleware to simplify distribution

Page 68: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Business PartnersEmbeddedPlus

DOORKeeper - DOORs integration for Rational Systems Developer/Rational Software ModelerSYSMT – plug-in to Rational Systems Developer/Rational Software Modeler that provides support for SysML extension of UML 2.0 and model simulation and execution

WindRiverWindRiver Workbench – leading Eclipse-based IDE for C/C++/Java development for RTOS

PathfinderPathMate - High-performance, configurable, MDA code generation for embedded platforms based on Rational Systems Developer/Rational Software Modeler UML 2.0 Models

CoverityPrevent - Static analysis tools for C++

GalorathSEER-SEM - SEER estimation from Rational Systems Developer/Rational Software Modeler use-case models

Intel (not yet committed)C++ Compiler for Linux – high-optimization compiler for Intel platforms integrated to Rational Systems Developer

* - all partners will validate to RFRS

Page 69: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

For More Information…

Technical Resources on IBM developerWorkswww.ibm.com/developerworks/rationalTechnical library of whitepapers, utilities, betasDownloadable demosDiscussion forums

Contacting your IBM representativehttp://www.ibm.com/contact/usCall 1 800 728 1212

Systems DeveloperRational Systems Developer

Page 70: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software

Page 71: Embedded 개발을위한새로운모델링도구소개 · C/C++, Java, .Net Web, Handhelds, disconnected Legacy integration, modernizing Ever-expanding choices to make on development

IBM Software Group | Rational software