® ibm software group © 2006 ibm corporation ibm rational software architect an integrated platform...

54
® IBM Software Group © 2006 IBM Corporation IBM Rational Software Architect An integrated platform for innovation and collaboration Design Patterns Yves Holvoet [email protected]

Post on 19-Dec-2015

224 views

Category:

Documents


6 download

TRANSCRIPT

®

IBM Software Group

© 2006 IBM Corporation

IBM Rational Software Architect An integrated platform for innovation and collaboration

Design Patterns

Yves [email protected]

IBM Software Group | Rational software

2

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

3

Business Analyst

Collaborate, trace, and reconcile

Create business process model

WebSphereBusiness Modeler

Developer

Create and integrate existing services/assets

Rational Application DeveloperRational Business Developer

Rational Asset ManagerRational Developer for System zRational Developer for System i

Rational Host AccessTransformation Services

Rational Software Architect

Create and manage software/systems delivery requirementsRational RequisitePro

Rational Software ModelerRational Software Architect

Requirements Analyst

Requirements Management

Quality Management

Architecture & Construction

Process& Project

Management

Change & Release Management

Software Architect

Create architectural modelRational Asset Manager

Rational Software Architect

Architecture and constructionDeliver resilient architectures for SOA, systemsand applications

IBM Software Group | Rational software

4

The Evolution of Software Development

Time

Machine 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

IBM Software Group | Rational software

5

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

6

Well, maybe you shouldn’t’

But then, maybe you should

Maybe you have to

Modeling is the standard approach in engineering to Manage Complexity

Mitigate Risk

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

Code and other artifacts can be derived from models

Model Driven DevelopmentDelivering innovation and collaboration

IBM Software Group | Rational software

7

Business Model

Visualization of business processes

System Architecture Model Visualization of the system

requirements, structure, and behavior

Use Case Model

Visualization of functional requirements

Analysis Model

“What” the system must do to realize the functional requirements with the system

Design Model

“How” the system will realize the functional requirements

Data Model

Visualization of persistent storage

Implementation Model

Visualization of the code

What types of models are important?Different Stakeholders, Different Models

User Experience Model

Visualization of user interaction with the system

IBM Software Group | Rational software

8

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 system

UML allows software architects, designers and developers to specify, visualize, construct, and document all aspects of a software system

Extensible to support evolving modeling needs Allow expression of concepts and aspects common to industry or

standard

Limit modeling environment to only what is necessary

UML: The Language of Model Driven DevelopmentStandard and extensible

IBM Software Group | Rational software

9

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

10

Challenge: Manage Complexity

IBM Software Group | Rational software

11

Challenge Overcome the problem of communicating solution to a

team

Resolution Provide technologies to enable

effective communication of a design

UML 2 Notation

Domain specific modeling language extensions

Integrate the architecture artifacts into the development environment

Provide Global Access to artifacts internally and for suppliers

Challenge: Communicate Architecture

IBM Software Group | Rational software

12

Challenge How can teams learn about the architecture of existing

implementations or frameworks?

Resolution

Provide an automated means for discovering architecture

Look for Anti-Patterns

Visualize complexity

Challenge: Discover complexity

IBM Software Group | Rational software

13

Challenge

How to enforce architecture decisions for a project team?

Resolution

Generate source-code based on architecture decisions

Create and enforce rules which support the architecture

Process Guidance

Code rules

Visually compare model changes

Link requirements to design and to derived artifacts like code

Challenge: Enforce Architecture Standards

IBM Software Group | Rational software

14

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

15

Best of breed, comprehensive modeling tools that facilitate communication and collaboration With the power of abstraction, automation and

simplification

DoDAF

UML Profile-based Integrated Architecture

Profile for Software Services

Leveraging Jazz platform integrated with Rational Team Concert

Exploit the latest in modeling language technology and leverage an open and extensible modeling platform

Simplify and unify Java and C++ design and development by integrating with other facets of the lifecycle such as: Rational Data Architect, Rational Requisite Pro

Rational Asset Manager, Rational Team Concert

Rational ClearCase, Rational ClearQuest

Telelogic Synergy and Change

IBM Rational Software ArchitectAn integrated platform for innovation and collaboration

IBM Software Group | Rational software

16

Custom modeling environment for your business Modeling with Domain Specific Language (DSL)

Work with reduced subset of UML

Rational Deployment Architecture Platform Rich tools for deployment architecture definition

Verification tools for deployment architecture

Enhanced transformations and visualizations Extensive Java and C++ support

Increased visibility into existing source code

Integrations Rational Asset Manager

Rational Team Concert on Jazz

Telelogic Change and Synergy

What's New: Rational Software Architect

IBM Software Group | Rational software

17

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 Showcase

Application

Technology

All user assistance can be launched from a Welcome perspective

Getting Started: User Assistance

IBM Software Group | Rational software

18

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

Key Feature: C/C++ Development Environment

IBM Software Group | Rational software

19

Editing and Navigation

C/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

Debug

GDB Integrated

Extensible Debug Interface

Build

Standard Make for projects with existing build infrastructure

Managed Build

Automatic 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

Extensibility

Provides extension points for managed build, debuggers, …

Key Feature: C/C++ Development Environment

IBM Software Group | Rational software

20

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

Key Feature: Modeling assistance

IBM Software Group | Rational software

21

Applying Patterns is very simple Evolution 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

Key Feature: Patterns

IBM Software Group | Rational software

22

Transformations are optimal for “batch” style computationally intensive operations Model-to-model

Model-to-code

Code-to-model

Out-of-the box code transforms UML-to-Java/JSE

UML-to-C++

UML-to-CORBA IDL

Plus sample model-to-model transforms

Transformations may be updated via RAS repository hosted on IBM developerWorks

Key Feature: Transformations

IBM Software Group | Rational software

23

Architecture discovery for J2SE High-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 detection Detection 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.

Key Feature: Architectureal Analysis, Discovery and Control

IBM Software Group | Rational software

24

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

Key Feature: Visualize method bodies

IBM Software Group | Rational software

25

Produce enriched JavaDoc UML diagrams right on the pages

Completely integrated with hyperlinks

UML Enhancements: JavaDoc with Embedded UML Diagrams

IBM Software Group | Rational software

26

Interactions are expressed more effectively using UML 2.0 constructs Support specification of test

scenarios Loop, alt, opt

Interaction 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.

UML Enhancements: Interaction modeling

IBM Software Group | Rational software

27

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

Web Browser-like controls to navigate workspace or model

UML Enhancements: Browse Diagrams

IBM Software Group | Rational software

28

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”

Team: RequisitePro integration

IBM Software Group | Rational software

29

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

Team: Process Guidance

IBM Software Group | Rational software

30

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

Team: ClearQuest integration

IBM Software Group | Rational software

31

ClearCase Navigator view with

integrated UCM activities

ClearCase Details view shows selected version information

Display version history, view &

update config spec, display search

results

Team: ClearCase integration

IBM Software Group | Rational software

32

Model differences & conflicts

Description of selected difference

or conflictDiagram view of

selected difference or conflict for contributor

Choose view type

Team: Model compare & merge

IBM Software Group | Rational software

33

Architecture Support Java, J2SE, C++ UML2 Modeling Architecture Discovery via Application Analysis Patterns and Transformations

Team Environment Enhanced Compare / Merge Integrated RequisitePro Views Process Advisor CC and CQ fully integrated

Open Platform Based on Eclipse 3.4 Shell Testing and Team tools work together

Summary: Key Features Rational Software Architect SE

IBM Software Group | Rational software

34

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

Unix File and Directory Exercise; Objective

Create a running Java shell implementing on a simple directory structure containing files (no links) the following unix commands: ls, ls –Rcd, cd ..mkdir <directory>setContent <file>helpexit

IBM Software Group | Rational software

36

IBM Software Group | Rational software

37

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

Create 1 UML Model LIRMM_Analysis(File:New Project)

IBM Software Group | Rational software

Create 2 UML packages:-unixCommands-directoriesAndFiles

IBM Software Group | Rational software

Create 1 Java projectLIRMM_Design(File:New Project)

IBM Software Group | Rational softwareIn the modeling perspective, the project explorer should look like this

UML project

UML package

Java project

UML package

In the modeling perspective, the project explorer should look like

IBM Software Group | Rational software

42

IBM Software Group | Rational software

Strategy Pattern

IBM Software Group | Rational software

unixCommands main diagram

IBM Software Group | Rational software

Strategy Pattern Instance

IBM Software Group | Rational software

Strategy Pattern Applied

IBM Software Group | Rational software

Interaction Diagram

IBM Software Group | Rational software

Transformation to create Java structure

IBM Software Group | Rational software

49

IBM Software Group | Rational software

50

Agenda

IBM Rational Software

Modeling

Software Development Challenges

Rational Software Architect

Demonstration

File and Directory Java exercise

Patterns

Strategy for the shell command interpreter

Composite for the directory and file

Visitor for the recursive traversal of files and directories

IBM Software Group | Rational software

Composite Pattern

IBM Software Group | Rational software

Composite Pattern Application

IBM Software Group | Rational software

53

IBM Software Group | Rational software

54