(C) 1998 Tendril Software Inc. www.tendril.com1 StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl.

Slides:



Advertisements
Similar presentations
Lecture 8: Asynchronous Network Algorithms
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
Chap 1 UML vs Thinking in Objects! – Visual modeling Learning UML – Look at the book examples – Alan Holub’s UML reference card – Use library resources.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Chapter 3 Planning Your Solution
Object-Oriented Analysis and Design
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
UML Collaboration Diagram. Recap System Sequence Diagrams (SSD) UML for SSD Examples.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Mapping Designs to Code Larman, Chapter 20 CSE432 Object Oriented Software Engineering.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
CSE 219 Computer Science III Program Design Principles.
TOOLS USA '99 Interaction Schemata: Compiling Interactions to Code Neeraj Sangal, Edward Farrell, Tendril Software, Inc, Westford, MA
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Coverage Criteria for Testing of Object Interactions in Sequence Diagrams Atanas (Nasko) Rountev Scott Kagan Jason Sawin Ohio State University.
Systems Analysis and Design in a Changing World, 3rd Edition
Object-Oriented Analysis and Design Fall 2009.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
Not only mark-up languages! There are other many other grammar formalisms and tools than XML. Some of them standardized (ASN). Even XML does not always.
Drawbacks of object-oriented software development Lecture P12 T120B pavasario sem.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Pattern Language for AP1 Pattern Language for Adaptive Programming (AP) Karl Lieberherr Northeastern University.
S. Shumilov – Zürich Analytical Visualization Framework - a visual data processing and knowledge discovery system Ivan Denisovich, Serge Shumilov Department.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
A Generic Approach to Automatic Deobfuscation of Executable Code Paper by Babak Yadegari, Brian Johannesmeyer, Benjamin Whitely, Saumya Debray.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Aspect Mining Jin Huang Huazhong University of Science & Technology, China
Translating Traversals to AspectJ. Outline Motivation Demeter Process for Traversals AspectJ Translation Process.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
The Mediator Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
DJ: traversal-visitor-style programming in Java Josh Marshall/ Doug Orleans Want to add more on traversal through collections and Aspectual Components.
Lorenz: Visitor Beans: An Aspect-Oriented Pattern Aspect-oriented pattern: describes a solution to a tangling problem in a particular context.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
Good for DJ over Java Extending traversals for b..* –returning a single object instead of a collection (Find) –modifying the collection (Add, Delete)
Nr: 1 FGAN Research Institute for Communication, Information Processing, and Ergonomics KIE Reengineering an Ada95-programmed Command and Control Information.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Pattern Language for AP1 Pattern Language for Adaptive Programming (AP) Karl Lieberherr Northeastern University.
Good for DJ over Java Extending traversals for collections (b..*)
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 11: Collaboration Diagram - PART1
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Systems Analysis Overview.
Chap 1 UML vs Thinking in Objects! Learning UML Visual modeling
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Presentation transcript:

(C) 1998 Tendril Software Inc. StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl Lieberherr, Northeastern University (presenter)

(C) 1998 Tendril Software Inc. Overview Problems Addressed The Concept: Interaction Graphs The Tool: Structure Builder (SB) –Generation of executable code from UML class diagrams Generalized UML sequence diagrams (interaction graphs) –Other capabilities

(C) 1998 Tendril Software Inc. C1 C2 C3 C4 C5 Interact-1 Interact-2Interact-3 Interact-4 OOAD Implementation C1 C2 C3 C4 C5 Motivation Requirements

(C) 1998 Tendril Software Inc. C1 C2 C3 C4 C5 Interact-1 Interact-2Interact-3 Interact-4 OOAD Structure Builder let‘s you operate at interaction level C1 C2 C3 C4 C5 Motivation Requirements

(C) 1998 Tendril Software Inc. Four problems addressed TANGLING –Cross-cutting of interactions UPDATE –Difficulty of maintaining UML interaction diagrams TRANSPORTATION –Object transportation code is difficult to maintain CONTEXT DEPENDENCY –Context changes are tedious to make

(C) 1998 Tendril Software Inc. Problem one addressed ordinary program interaction1 interaction2 interaction3 SB program TANGLING

(C) 1998 Tendril Software Inc. Problem one addressed Consequences No need to distribute interactions manually over several classes Work at level of interactions No need to identify interactions from tangled code during maintenance The interactions are explicit TANGLING

(C) 1998 Tendril Software Inc. Problem one addressed Related to Aspect-Oriented Programming ( AOP ) Xerox PARC, Demeter Research Group, OOPSLA ’92 AOP Solves complex tangling problems StructureBuilder Solves two specific tangling problems: Interaction tangling and transportation tangling TANGLING

(C) 1998 Tendril Software Inc. ordinary program interaction1 interaction2 interaction3 SB program TANGLING Interaction Tangling

(C) 1998 Tendril Software Inc. ordinary program interaction summary interaction properties class diagram SB program TANGLING Transportation Tangling

(C) 1998 Tendril Software Inc. Problem two addressed UML interaction diagrams are difficult to keep up-to-date with the code. UPDATE

(C) 1998 Tendril Software Inc. INTERACTION DIAGRAMS So, what? Forget about interaction diagrams? No. The point is that they are incomplete. Let’s make them into into complete specifications. Problem two addressed UPDATE

(C) 1998 Tendril Software Inc. Problem three addressed Code for object interactions includes much low-level object transportation code v v Class A Class Z TRANSPORTATION

(C) 1998 Tendril Software Inc. Problem four addressed Code for object interactions includes much context-dependent information that makes the code hard to maintain CONTEXT DEPENDENCY

(C) 1998 Tendril Software Inc. UML Class Diagram LibrarySystem Book 0..* books User users 0..* HashTable or Vector : Find operation looks very different at code level. CONTEXT DEPENDENCY

(C) 1998 Tendril Software Inc. Solution Interaction Graph language –Extend interaction diagrams to make them a specification language for object interactions. Generate code and interaction diagrams –Untangle high-level actions from context information –Untangle object transportation glue code from other interaction code

(C) 1998 Tendril Software Inc. Solution (continued) Programs look like designs –UML class diagrams –Interaction graphs are similar to UML sequence diagrams

(C) 1998 Tendril Software Inc. Interaction Graphs Nodes –Participants/classes: labeled by an access path Edges –Message sends Local variables –Communication between participants Properties –Context of actions

(C) 1998 Tendril Software Inc. UML Class Diagram LibrarySystem Book 0..* books User users 0..* Copy CheckOutItem copies 0..* copy book items 0..*

(C) 1998 Tendril Software Inc. Sequence diagram books.Find copies.Find users.Find user.addItem CheckOutItem.new items.Add copy.unAvailable librarySystem user CHECKOUT

(C) 1998 Tendril Software Inc. Sequence Diagram

(C) 1998 Tendril Software Inc. Summary view of an interaction graph librarySystem.books.Find >book < bn book.copies.Find >copy librarySystem.users.Find >user < uId user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input CHECKOUT(bn, uId)

(C) 1998 Tendril Software Inc. Where is the graph? It is a tree librarySystem.books.Find >book book.copies.Find >copy librarySystem.users.Find >user user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input

(C) 1998 Tendril Software Inc. librarySystem.books.Find >book book.copies.Find >copy librarySystem.users.Find >user user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input librarySystem user Where is the graph? It is a tree

(C) 1998 Tendril Software Inc. What are the properties? librarySystem.books.Find >book < bn condition: bn == $curobj.bookName return: book = $curobj book.copies.Find >copy condition: $curobj.isAvailable() return: copy = $curobj > output < input CHECKOUT(bn, uId)

(C) 1998 Tendril Software Inc. What are the properties? librarySystem.users.Find >user < uId condition: uId == $curobj.userId user = $curobj user.addItem CheckOutItem.new >item < book,copy item=CheckOutItem(book,copy) user.items.Add <item copy.unAvailable > output < input CHECKOUT(bn, uId)

(C) 1998 Tendril Software Inc. Interaction Graph Defines properties of actions Provides complete specification But: is incomplete without a UML class diagram

(C) 1998 Tendril Software Inc. Differences Interaction Diagrams - Interaction Graphs Interaction Graphs –Computationally complete –Have properties containing code and context information –Each action keeps track of input/output

(C) 1998 Tendril Software Inc. StructureBuilder capabilities Full support for UML class diagrams –Reverse engineering of Java code –Immediate code generation –Code and diagrams are synchronized –User can add to generated code but it is not necessary

(C) 1998 Tendril Software Inc. StructureBuilder capabilities (continued) Support for Interaction Graphs Support for Sequence Diagrams –Generate sequence diagrams from interaction graphs and vice-versa –Object tracker: tells you which variables are currently available –Will be demonstrated for library checkout example

(C) 1998 Tendril Software Inc. Connection to Demeter StructureBuilder was influenced by Demeter/C++ and Demeter/Java –Interaction Graphs are related to propagation patterns: both address tangling of interactions –Object transportation is used in Demeter/C++

(C) 1998 Tendril Software Inc. Next: demo Summary so far: StructureBuilder introduces a generalization of sequence diagrams to solve four important problems related to OO software development.