Presentation is loading. Please wait.

Presentation is loading. Please wait.

IBM Rational Software Architect An integrated platform for innovation and collaboration Design Patterns Yves Holvoet Yves.holvoet@fr.ibm.com.

Similar presentations


Presentation on theme: "IBM Rational Software Architect An integrated platform for innovation and collaboration Design Patterns Yves Holvoet Yves.holvoet@fr.ibm.com."— Presentation transcript:

1 IBM Rational Software Architect An integrated platform for innovation and collaboration
Design Patterns Yves Holvoet

2 Agenda IBM Rational Software Demonstration 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

3 The IBM Rational Architecture Management category of the Rational Software Delivery Platform allows organizations to define an architecture and collaborate, trace and reconcile their architecture. Governing software architectures throughout the dynamic and iterative software delivery lifecycle from requirements to implementation can be achieved with IBM Rational Architecture Management solutions. For example: Requirements Analysts can create and manage software delivery requirements using Rational Requisite Pro. IBM Rational® RequisitePro® is a requirements and use case management tool. Requirements Analysts and project teams can improve the communication of project goals, reduce project risk and increase the quality of applications before deployment using Rational RequisitePro. Software Architects can create architectural models from business process models and automate tasks using IBM Rational Software Architect. Rational® Software Architect is an advanced model-driven development tool; It leverages model-driven development with the UML for creating well-architected applications and services. Developers can implement new and integrate existing services using Rational Application Developer, Rational Business Developer Extension. These IBM Rational tools help developers rapidly design, develop, assemble, test, profile and deploy high quality C/C++, Java/J2EE™, Portal, Web, Web services and SOA applications. Rational Application Developer for Webshpere software is a comprehensive integrated development environment for software developers that enables them to quickly design, develop, analyze, test, profile and deploy SOA, Java, J2EE, and portal applications. IBM Rational Business Developer Extension provides a powerful workbench for enterprise generation language or EGL development, an innovative end-to-end rapid development approach. Rational Asset Manager provides a collaborative infrastructure that enables governance of intellectual property as well as a intelligent warehousing of reusable assets, helping organizations to leverage their reusable assets. With Rational Asset Manager, organizations are enabled to leverage reusable assets, giving them an ability to realize asset reuse to ensure application quality and architectural stability. Business Analysts can create business process modeling using Websphere Business Modeler products to help organizations fully visualize, comprehend, and document their business processes. Rapid results can be obtained through the collaboration functionality, where subject matter experts team to clearly define business models and eliminate inefficiencies. Organizations can model business processes, then deploy, monitor, and take actions based upon key performance indicators, alerts, and triggers for continuous optimization. Business processes then get tightly linked with strategic corporate objectives. Architecture and construction Deliver resilient architectures for SOA, systems and applications Change & Release Management 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 model Rational Asset Manager Rational Software Architect Requirements Analyst Software Architect Collaborate, trace, and reconcile Create and integrate existing services/assets Rational Application Developer Rational Business Developer Rational Asset Manager Rational Developer for System z Rational Developer for System i Rational Host Access Transformation Services Rational Software Architect Create business process model WebSphere Business Modeler Business Analyst Developer

4 The Evolution of Software Development
Model-Driven Development Visual modeling helps us design a better system to build. But can we speed up the actual software creation process? Yes we can, and the greatest successes here have been in embedded software development. Let’s see how this works. As I mentioned earlier, embedded software is becoming more complex each day. As this complexity increases, developers need tools that allow them to architect and design at a higher level, to minimize the complexity at any point. At the beginning of time on a software scale, all programs were written in machine code: ones and zeros. This is extremely hard to understand, so programmers wrote their programs using mnemonics from the earliest days. They wrote in machine code, but modelled their code in a higher-level notation. It didn’t take long for someone to invent a program that would translate these mnemonics to machine code, and assembly language was born. The modelling language became the implementation language, and assemblers are very much with us today. But as system sizes grew, assembler as a modelling language quickly became inadequate—so developers started modelling their programs in pseudocode. It didn’t take long for pseudocode to be formalized and compilers to be written. Now, developers can design and implement their systems using 3GL textual languages— everything from Fortran to Java, including the languages that you use today. But systems continue to grow and today we are facing the same problem. Systems are simply too big and complex to be designed with 3GL languages. The Unified Modeling Language (UML) was created in response to this. Visual modeling allows developers to model very large and complex systems, providing better understanding of the overall architecture and design. Using the visual model as code, developers can further increase there productivity and quality, by not having to manually code the system. IBM Rational software sits at the top of the graph-- providing a visual modeling development environment, Rational Software Architect Standard Edition, which generates code for C, C++, and Java. Visual Modeling 3GL Textual Development Power Pseudocode - 3GLTextual Modeling ADD 1 JMP 122 Assembler - Textual Development 7F 3A 2D FF Machine Code - Binary Development Time

5 Agenda IBM Rational Software Demonstration 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

6 Model Driven Development Delivering innovation and collaboration
Modeling is the standard approach in engineering to Manage Complexity Mitigate Risk Software development is the same as every 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 Message: Modeling and Model driven development lets you manage complexity and risk. -- Not all projects require models in order to be successful. -- The more complex a project is, the more you need models. -- Software is no different than every other kind of engineering in this respect. -- A lot of content can be developed out of the model including documentation and code artifacts. Well, maybe you shouldn’t’

7 What types of models are important
What 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 Message: -- Different kinds of models are used to represent different aspects of software systems -- Different stakeholders tend to focus on different kinds of models -- model elements from different kinds of models can be linked to ensure the whole development story is consistent. This can be used to perform traceability and model consistency analysis among other functions. -- one model can be transformed to generate another. Example design model to implementation model (model to model or model to code)‏

8 UML: The Language of Model Driven Development Standard and extensible
Model-driven development is aided by a common 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 Message: UML is the language of model-driven development -- Standardized -- Open (OMG)‏ -- Used by every company in the Fortune 100

9 Agenda IBM Rational Software Demonstration 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

10 Challenge: Manage Complexity
Leverage the modeling and model driven technologies to communicate the architecture. Domain Specific Modeling Languages are new to version 7.5 and provide the ability to model in the language the customer is used to from their specific domain, and even internal to a particular company.

11 Challenge: Communicate Architecture
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 Leverage the modeling and model driven technologies to communicate the architecture. Domain Specific Modeling Languages are new to version 7.5 and provide the ability to model in the language the customer is used to from their specific domain, and even internal to a particular company.

12 Challenge: Discover complexity
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

13 Challenge: Enforce Architecture Standards
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

14 Agenda IBM Rational Software Demonstration 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

15 IBM Rational Software Architect An 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

16 What'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

17 Getting 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 TODO: Provide a value statement for each highlight chart.

18 Key Feature: C/C++ Development Environment
Perspective for C/C++ Development C/C++ project hierarchical tree view C/C++ editor with syntax highlighting, code completion, and advanced search UML class diagram visualization of C/C++ classes and structs

19 Key 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, …

20 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 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

21 Key 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

22 Key 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

23 Code review pane providing a report of detected issues.
Key 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.

24 Key Feature: Visualize method bodies
Facilitates understanding and application’s 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 view of method behavior Select method to be visualized using UML

25 UML Enhancements: JavaDoc with Embedded UML Diagrams
Produce enriched JavaDoc UML diagrams right on the pages Completely integrated with hyperlinks

26 Support for UML 2.0 fragments including OPT, ALT, and LOOP
UML Enhancements: Interaction modeling Create class operations “on-the-fly” while doing sequence diagram edits. Interactions are expressed more effectively using UML 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

27 Web Browser-like controls to navigate workspace or model
UML 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

28 Team: 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”

29 Team: 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 RUP Advisor provides context sensitive guidance Search is integrated with Eclipse search

30 Team: 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

31 Team: 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

32 Team: Model compare & merge
Model differences & conflicts Description of selected difference or conflict Diagram view of selected difference or conflict for contributor Choose view type

33 Summary: 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

34 Agenda IBM Rational Software Demonstration 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

35 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 –R cd, cd .. mkdir <directory> setContent <file> help exit

36 DEMO

37 Agenda IBM Rational Software Demonstration 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

38 Create 1 UML Model LIRMM_Analysis (File:New Project)

39 Create 2 UML packages: -unixCommands -directoriesAndFiles

40 Create 1 Java project LIRMM_Design (File:New Project)

41 In the modeling perspective, the project explorer should look like
In the modeling perspective, the project explorer should look like this In the modeling perspective, the project explorer should look like UML project UML package UML package Java project

42 DEMO

43 Strategy Pattern

44 unixCommands main diagram

45 Strategy Pattern Instance

46 Strategy Pattern Applied

47 Interaction Diagram

48 Transformation to create Java structure

49 DEMO

50 Agenda IBM Rational Software Demonstration 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

51 Composite Pattern

52 Composite Pattern Application

53 DEMO

54


Download ppt "IBM Rational Software Architect An integrated platform for innovation and collaboration Design Patterns Yves Holvoet Yves.holvoet@fr.ibm.com."

Similar presentations


Ads by Google