Title: IBM Rational Software Architect An integrated platform for innovation and collaboration
1IBM Rational Software Architect An integrated
platform for innovation and collaboration
Design Patterns
Yves Holvoet Yves.holvoet_at_fr.ibm.com
2Agenda
- 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
3Change Release Management
Architecture and constructionDeliver resilient
architectures for SOA, systemsand applications
Process Project Management
Quality Management
Architecture Construction
Requirements Management
Create and manage software/systems delivery
requirements Rational RequisitePro Rational
Software Modeler Rational Software Architect
Create architectural modelRational Asset
Manager Rational Software Architect
Requirements Analyst
Software Architect
Collaborate, trace, and reconcile
Create and integrate existing services/assets Rat
ional Application Developer Rational Business
Developer Rational Asset Manager Rational
Developer for System z Rational Developer for
System i Rational Host AccessTransformation
Services Rational Software Architect
Create business process model WebSphereBusiness
Modeler
Business Analyst
Developer
4The Evolution of Software Development
Model-Driven Development
Visual Modeling
3GL Textual Development
Power
Pseudocode - 3GLTextual Modeling
Assembler - Textual Development
Machine Code - Binary Development
Time
5Agenda
- 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
6Model Driven DevelopmentDelivering innovation
and collaboration
- 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
Maybe you have to
But then, maybe you should
Well, maybe you shouldnt
7What types of models are important?Different
Stakeholders, Different Models
- 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
- User Experience Model
- Visualization of user interaction 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
8UML The Language of Model Driven
DevelopmentStandard and extensible
- 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
9Agenda
- 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
10Challenge Manage Complexity
11Challenge Communicate Architecture
- 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
12Challenge Discover complexity
- 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
13Challenge Enforce Architecture Standards
- 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
14Agenda
- 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
15IBM Rational Software ArchitectAn integrated
platform for innovation and collaboration
- 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
16What's New Rational Software Architect
- 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
17Getting Started User Assistance
- 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
18Key Feature C/C Development Environment
Perspective for C/C Development
C/C editor with syntax highlighting, code
completion, and advanced search
C/C project hierarchical tree view
UML class diagram visualization of C/C classes
and structs
19Key Feature C/C Development Environment
- 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,
20Key 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
Diagram links as first-class citizens
In diagram editing to accelerate modeling.
New Diagram Navigator view provides a diagram
filtered view of the models and workspace
Inheritance view
New properties view
21Key Feature Patterns
- 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
Pattern rendered as a collaboration to support
incremental application
Support drag-and-drop of pattern parameters
into the collaboration
New patterns view providing outline and
description of the pattern
22Key Feature Transformations
- 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
23Key Feature Architectureal Analysis, Discovery
and Control
Automatic generation of topic diagrams based on
the results of the code analysis
Patterns and anti-patterns are rendered in the
diagram editor. Navigation to detailed code is
supported.
- 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
Code review pane providing a report of detected
issues.
Details View providing an overview and
avoidance guidance for anti-patterns.
24Key Feature Visualize method bodies
- Facilitates understanding and applications
behavior by providing visualization of detailed
code - Diagrams can be integrated in Javadoc reports
Topic diagram for method is automatically
updated/refreshed when method is updated
Integrated with the Java Package view
Leverages UML 2.0 sequence diagram constructs for
loops, conditionals, etc
Alternate abstract viewof method behavior
Select method to be visualized using UML
25UML Enhancements JavaDoc with Embedded UML
Diagrams
- Produce enriched JavaDoc
- UML diagrams right on the pages
- Completely integrated with hyperlinks
26UML Enhancements Interaction modeling
Create class operations on-the-fly while doing
sequence diagram edits.
- 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
27UML Enhancements Browse Diagrams
Web Browser-like controls to navigate workspace
or model
- Enables users to understand and discover models
and applications without having to create or
maintain diagrams
28Team RequisitePro integration
Requirements Explorer for viewing requirements in
Eclipse.
- 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
Associate requirements and model elements using
Drag-and-Drop
View requirements traceability from the
perspective of either trace-to or trace-from
29Team Process Guidance
Ease of Use
Improved navigation of RUP
- Integration with Rational Unified Process
- Tool Mentors provide guidance for activities
- User customizable views with user defined content
RUP Advisor provides context sensitive guidance
Search is integrated with Eclipse search
30Team ClearQuest integration
Hierarchical result set view shows parent-child
relationships
Easy access to queries, charts, reports
View record forms, charts and reports
Console, SQL Query Properties views
31Team ClearCase integration
ClearCase Details view shows selected version
information
ClearCase Navigator view with integrated UCM
activities
Display version history, view update config
spec, display search results
32Team Model compare merge
Model differences conflicts
Description of selected difference or conflict
Diagram view of selected difference or conflict
for contributor
Choose view type
33Summary Key Features Rational Software
Architect SE
- 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
34Agenda
- 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
35Unix 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 R
- cd, cd ..
- mkdir ltdirectorygt
- setContent ltfilegt
- help
- exit
36DEMO
37Agenda
- 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
38Create 1 UML Model LIRMM_Analysis(FileNew
Project)
39Create 2 UML packages-unixCommands-directoriesA
ndFiles
40Create 1 Java projectLIRMM_Design(FileNew
Project)
41In the modeling perspective, the project explorer
should look like this
In the modeling perspective, the project explorer
should look like
42DEMO
43Strategy Pattern
44unixCommands main diagram
45Strategy Pattern Instance
46Strategy Pattern Applied
47Interaction Diagram
48Transformation to create Java structure
49DEMO
50Agenda
- 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
51Composite Pattern
52Composite Pattern Application
53DEMO
54(No Transcript)