Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Object-Oriented Analysis and Design
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Introduction to z/OS Basics © 2006 IBM Corporation Chapter 8: Designing and developing applications for z/OS.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
© Copyright Eliyahu Brutman Programming Techniques Course.
WebDynpro for ABAP Short introduction.
University of Jyväskylä – Department of Mathematical Information Technology Computer Science Teacher Education ICNEE 2004 Topic Case Driven Approach for.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Configuration Management
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Introduction to the new mainframe © Copyright IBM Corp., All rights reserved. Chapter 7: Designing and developing applications for z/OS.
What is Software Architecture?
Chapter 6: The Traditional Approach to Requirements
Chapter 6– Artifacts of the process
CSCI ClearQuest 1 Rational ClearQuest Michel Izygon - Jim Helm.
GMD German National Research Center for Information Technology Innovation through Research Jörg M. Haake Applying Collaborative Open Hypermedia.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Introduction To System Analysis and design
The Design Discipline.
RUP Requirements RUP Artifacts and Deliverables
UML - Development Process 1 Software Development Process Using UML (2)
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Software Engineering CS B Prof. George Heineman.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
SITools Enhanced Use of Laboratory Services and Data Romain Conseil
Introduction to MDA (Model Driven Architecture) CYT.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Introduction To System Analysis and Design
MD Digital Government Summit, June 26, Maryland Project Management Oversight & System Development Life Cycle (SDLC) Robert Krauss MD Digital Government.
Lecture 7: Requirements Engineering
Decision Support System Development By Dr.S.Sridhar,Ph.D., RACI(Paris),RZFM(Germany),RMR(USA),RIEEEProc. web-site :
Systems Analysis and Design in a Changing World, 3rd Edition
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
TAL7011 – Lecture 4 UML for Architecture Modeling.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Health eDecisions Use Case 2: CDS Guidance Service Strawman of Core Concepts Use Case 2 1.
Introduction to OOAD & Rational Rose cyt. 2 Outline RUP OOAD Rational Rose.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Chapter 3: Introducing the UML
ANALISA & PERANCANGAN SISTEM Disusun Oleh : Dr. Lily Wulandari Program Pasca Sarjana Magister Sistem Informasi Universitas Gunadarma.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
44222: Information Systems Development
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
#01 Client/Server Computing
Analysis models and design models
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
#01 Client/Server Computing
Presentation transcript:

Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code and Rationale Knowledge Diploma thesis from Marc Mährländer

Content Introduction –What is Rationale? –Problem –Solution –Scope of the works Rationale Support RAT SourceQuest (JBuilder plug-in) Demonstration

What is Rationale? The why behind a decision –Discussion that leads to a solution –Alternative solutions –The criteria the alternatives have been evaluated against. –Trade-offs made by the stakeholders Rationale contains useful information Historically, often called Design Rationale

Problem Statement During all phases of development, many issues have to be solved –Normally, only the selected solution is visible in the work products –Useful rationale information get lost Discussion process is not structured –Face-to-face meetings, , bboards,... –Not integrated into today‘s development tools Natural documentation problem –Designing and implementing is the interesting part, documentation is without a great personal benefit

Solution Full integration of rationale into the complete development process –All development tools need integrated support for rationale –Creation of a direct effort for the developers, because of a structured and integrated discussion process –Developers coming after, profit from the rationale information Focusing on issues, and making the discussion process transparent and explicit, improves the quality of the decisions made by the developers.

Issue-based Life Cycle Model Complete life cycle model for software development based on issues –Rationale is not only integrated into the development process –Rationale becomes the structuring element of a software project Each project starts with a set of issues –Issues can be mapped to certain phases of the process –The status of issues can then be used to track and control the status of each activity

Scope of the Works Requirement Elicitation/ Analysis System Design Object Design ImplementationRationale Management... Development support services RAT JBuilder/ SourceQuest Rationale Manager Awareness Support Notification Service... Development tools Development activities Rationale Support

Scope of Marc‘s Work Integrating rationale support into a source code editor (called SourceQuest) Providing a component to store references between different kinds of objects (LinkingService) –Links rationale information to model objects. Providing a Rationale Manager software

Rationale Support

Content Introduction Rationale Support –Requirements for Rationale support –Rationale Model –Actors –Rationale Manager RAT SourceQuest (JBuilder plug-in) Demonstration

Requirements for Rationale Support Create and navigate references between model objects and rationale information –A model object may have different representations

Model Objects Model Object Class Package Use Case... Concrete Representation Java Source File UML Class 0..*

Requirements for Rationale Support Create and navigate references between model objects and rationale information –A model object may have different representations Restructuring of captured rationale information –Remove elements –Combining and dividing issues –Create missing references Querying the rationale information

Rationale Model Issue Option 0..* Criterion Comment responds-to is relevant assessment

Actors Developer –Creates rationale information related to model objects –Uses rationale information –Rationale integration supports his main tasks Rationale Maintainer –Restructures rationale information –Identifies missing rationale

Rationale Manager Supports the user tasks of the Rationale Maintainer –Displaying issues –Restructuring issues –Querying and searching rationale information Provides a UI to access rationale information, which can be integrated into development tools.

Rationale Manager

Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf

Content Introduction Rationale Support RAT –Analysis activities –Goals –Constraints –Components RAT has to deal with –Architecture –Evaluation –Future Directions SourceQuest (JBuilder plug-in) Demonstration

Analysis activities Define use case Define participating objects Review model Define interactions Define objects types Define attributes Define associations Consolidate model

Goals RAT supports developers during analysis activities Enables developers to define use cases, sequence diagrams and classes No assumption about any specific order –e.g., instances may be created before classes Sequence diagrams must be easy to draw –e.g., not like Together or Rose, where it takes a lot of effort to redraw and layout RAT supports rationale management RAT supports multiple concurrent users

Constraints Software Engineering Prakitkum Must integrate with other tools in the practical course –REQuest –SourceQuest –Rationale-Manager –All tools must share the same issue repository –All tools must provide a consistent interface Must be portable across OS –(Mac OS X, Windows, Linux)

Components RAT has to deal with Use Cases

RAT‘s Use Cases –Use cases –Actors –Services –Flow steps (actor step, system step) UML use case diagram

Components RAT has to deal with Classes

RAT‘s Class Model Tree view UML Class Diagram Detailed element interaction window

Components RAT has to deal with Sequence Diagrams

RAT‘s Sequence Diagrams UML sequence diagram

RAT‘s Sequence Diagrams Sharing objects and messages among multiple diagrams

Components RAT has to deal with Rationale Management

Rationale in RAT Defining issues to all elements of RAT Issue highlighting in RAT Navigation from elements to issues Visualisation of issues by using the Rationale-Manager of SourceQuest

Relations among RAT‘s models ClassObjectOperation Message Actor Service FlowStepSDModelUseCase * * * * 1 2

Architecture Central repository architecture (server) Repository is used for models and issues Concurrent distributed client applications Separation of the linking repository Implementation in Java –Platform independence Event-driven control flow (using Java Remote Method Invocation, RMI)

Hardware/Software Mapping :Webserver REQuest :central repository ElementStore LinkingService :SourceQuest user computer SourceQuest :RAT user computer Rationale Manager RAT Application

Evaluation How much of it works ? –All basic functionality works What needs to be improved ? –Performance for low bandwidth connections –Some sequence diagram functionalities, e.g., hiding messages. What is missing ? –User management system

Future Directions Evaluation of RAT in the practical course Full REQuest integration Integration with the Chair's User Management Automatic diagram layout functionality Integrating RAT with rationale-based system and object design tools (to be developed)

SourceQuest JBuilder Rationale Plug-In

Content Introduction Rationale Support RAT SourceQuest (JBuilder plug-in) –Requirements –User Interface –Evaluation Demonstration

Requirements Users must become aware of existing issues related to the class they are working on Users must be able to create new issues related to the current class Users must be able to browse issues related to their current class As easy to use as possible Smooth integration of rationale support into JBuilder

User Interface I

User Interface II

User Interface III

Evaluation Must be evaluated in real projects First project –usability?, developers acceptance?, understandability of the rationale model?, what kind of training is necessary?, can all rationale information be expressed?, is decision quality increased Second project –Evaluate the value of rationale information –is rationale information used?, can it be found?, is time for working in decreased?, is quality increased?