440 likes | 641 Views
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
E N D
Design and Implementation of a Rationale-Based Analysis Tool(RAT)Diploma thesis from Timo WolfDesign and Realizationof a Tool for Linking Source Codeand Rationale KnowledgeDiploma 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, 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
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 Developmenttools JBuilder/ Rationale RAT SourceQuest Manager Rationale Support Awareness Support ... Development support services Notification Service ... Requirement System Object Implementation Rationale ... Elicitation/ Design Design Management Analysis Development activities
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
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
0..* Model Objects ConcreteRepresentation Model Object Class Package Use Case ... JavaSource File UMLClass
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
0..* Rationale Model responds-to Issue is relevant Option Comment Criterion 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.
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
Defineparticipatingobjects Defineobjectstypes Defineinteractions Defineattributes Defineassociations Consolidatemodel Review model Analysis activities Defineuse case
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 concurrentusers
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
UML use case diagram RAT‘s Use Cases • Use cases • Actors • Services • Flow steps (actor step, system step)
Components RAT has to deal with • Classes
Tree view UML Class Diagram Detailed element interaction window RAT‘s Class Model
Components RAT has to deal with • Sequence Diagrams
UML sequence diagram RAT‘s Sequence Diagrams
Sharing objects and messages among multiple diagrams RAT‘s Sequence Diagrams
Components RAT has to deal with • Rationale Management
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 Rationale in RAT
SDModel Class Object Operation Message Actor Service FlowStep UseCase 0..1 0..1 0..1 0..* 2 1 0..* 0..* 0..1 0..* 0..1 0..1 0..1 0..1 0..* 0..1 0..1 0..* Relations among RAT‘s models
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)
:central repository :RAT user computer :Webserver RAT Application ElementStore REQuest Rationale Manager :SourceQuest user computer LinkingService SourceQuest Hardware/Software Mapping
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 UserManagement • Automatic diagram layout functionality • IntegratingRAT with rationale-based system and object design tools (to be developed)
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
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?