design and implementation of a rationale-based analysis tool (rat) diploma thesis from timo wolf...

44
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

Upload: victoria-norris

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Design and Implementation of a

Rationale-Based Analysis Tool

(RAT)Diploma thesis from Timo Wolf

Design and Realizationof a Tool for Linking

Source Codeand Rationale Knowledge

Diploma thesis from Marc Mährländer

Page 2: 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

Content

• Introduction– What is Rationale?– Problem– Solution– Scope of the works

• Rationale Support• RAT• SourceQuest (JBuilder plug-in)• Demonstration

Page 3: 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

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

Page 4: 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

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, e-mail, 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

Page 5: 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

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.

Focusing on issues, and making the discussion process transparent and explicit, improves the quality of the decisions made by the developers.

Page 6: 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

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

Page 7: 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

Scope of the Works

RequirementElicitation/Analysis

SystemDesign

ObjectDesign

Implementation RationaleManagement

...

...

Developm

ent support services

RATJBuilder/SourceQuest

RationaleManager

AwarenessSupport

NotificationService

...

Development tools

Development activities

RationaleSupport

Page 8: 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

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

Page 9: 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

Rationale Support

Page 10: 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

Content

• Introduction• Rationale Support

– Requirements for Rationale support– Rationale Model– Actors– Rationale Manager

• RAT• SourceQuest (JBuilder plug-in)• Demonstration

Page 11: 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

Requirements for Rationale Support

• Create and navigate references between model objects and rationale information– A model object may have different

representations

Page 12: 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

Model Objects

Model ObjectModel Object

ClassClass PackagePackage Use CaseUse Case ......

ConcreteRepresentation

ConcreteRepresentation

JavaSource File

JavaSource File

UMLClass

UMLClass

0..*

Page 13: 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

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

Page 14: 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

Rationale Model

IssueIssue

OptionOption

0..*

CriterionCriterion

CommentComment

responds-to

is relevant

assessment

Page 15: 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

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

Page 16: 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

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.

Page 17: 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

Rationale Manager

Page 18: 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

Rationale Manager

Page 19: 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

Design and Implementation of a Rationale-Based Analysis

Tool(RAT)

Diploma thesis from Timo Wolf

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

Content

• Introduction• Rationale Support• RAT

– Analysis activities– Goals– Constraints– Components RAT has to deal with– Architecture– Evaluation– Future Directions

• SourceQuest (JBuilder plug-in)• Demonstration

Page 21: 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

Analysis activities

Defineuse case

Defineparticipating

objects

Reviewmodel

Defineinteractions

Defineobjectstypes

Defineattributes

Defineassociations

Consolidatemodel

Page 22: 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

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

Page 23: 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

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)

Page 24: 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

Components RAT has to deal with• Use Cases

Page 25: 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

RAT‘s Use Cases

– Use cases– Actors– Services– Flow steps (actor step, system

step)

UML use case diagram

Page 26: 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

Components RAT has to deal with• Classes

Page 27: 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

RAT‘s Class Model

Tree view

UML Class Diagram

Detailed element interaction window

Page 28: 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

Components RAT has to deal with• Sequence Diagrams

Page 29: 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

RAT‘s Sequence DiagramsUML sequence diagram

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

RAT‘s Sequence Diagrams

Sharing objects and messages among multiple diagrams

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

Components RAT has to deal with• Rationale Management

Page 32: 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

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

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

Relations among RAT‘s models

Class Object

OperationMessage

Actor

Service

FlowStepSDModelUseCase

0..1 0..1

0..*0..1

0..1 0..*

0..1 0..1

0..*0..1

0..1 0..1

0..1

0..*

1

0..*

0..*

2

Page 34: 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

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)

Page 35: 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

Hardware/Software Mapping

:Webserver

REQuest

:central repository

ElementStore

LinkingService

:SourceQuest user computer

SourceQuest

:RAT user computer

Rationale Manager

RAT Application

Page 36: 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

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

Page 37: 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

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)

Page 38: 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

SourceQuestJBuilder Rationale Plug-In

Page 39: 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

Content

• Introduction• Rationale Support• RAT• SourceQuest (JBuilder plug-in)

– Requirements– User Interface– Evaluation

• Demonstration

Page 40: 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

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

Page 41: 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

User Interface I

Page 42: 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

User Interface II

Page 43: 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

User Interface III

Page 44: 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

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?