Object-Oriented Parsing and Transformation Kenneth Baclawski Northeastern University Scott A. DeLoach Air Force Institute of Technology Mieczyslaw Kokar.

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

1 OOR in the Classroom An Experience Report Ken Baclawski Northeastern University.
Hydra (A General Framework for Formalizing UML with Formal Languages for Embedded Systems*) *from the Ph.D. thesis of William E. McUmber Software Engineering.
Object-Oriented Analysis and Design
Irina Rychkova. 9/20061 Systemic approach towards model definition Model transformation semantics.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Analysis Modeling Over view of today’s lesson T he analysis model is the first technical representation of a system. Analysis modeling uses a combination.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
NJIT Use Case Model Operation Contracts Prepared By: Sumit Sharma.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright Eliyahu Brutman Programming Techniques Course.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Chapter 7: The Object-Oriented Approach to Requirements
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Introduction to MDA (Model Driven Architecture) CYT.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
UML Formalization: A Position Paper Kenneth BaclawskiNortheastern University Scott DeLoachAFIT Mieczyslaw KokarNortheastern University Jeffrey SmithNortheastern.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Chapter 7 System models.
Slide 1 System models. Slide 2 Objectives l To explain why the context of a system should be modelled as part of the RE process l To describe behavioural.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
9/01RUT1 NASA OSMA SAS '01 R equirements U se case T ool James R. McCoy SRS Information Services NASA Software Assurance Technology Center
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
XML Grammar and Parser for WSOL Kruti Patel, Vladimir Tosic, Bernard Pagurek Network Management & Artificial Intelligence Lab Department of Systems & Computer.
Ontology-Based Computing Kenneth Baclawski Northeastern University and Jarg.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Unit 1 - Introducing Abstract Data Type (ADT) Part 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
OPCAT: Object-Process CASE Tool
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Kenneth Baclawski et. al. PSB /11/7 Sa-Im Shin
Abstract descriptions of systems whose requirements are being analysed
Implementing Language Extensions with Model Transformations
Software Design Methodologies and Testing
Implementing Language Extensions with Model Transformations
Presentation transcript:

Object-Oriented Parsing and Transformation Kenneth Baclawski Northeastern University Scott A. DeLoach Air Force Institute of Technology Mieczyslaw Kokar Northeastern University Jeffrey Smith Northeastern University/Sanders

Why Formalize CASE Tools? 4 Formal Methods –Provably correct software –Code generation –Specification refinement –Theorem proving –Specification and software composition 4 CASE Tools –Uniform graphical interface –Modern SE methodologies –Reverse engineering –Large-scale development paradigm

The Problem 4 Refinement is the process of transforming one specification to a more detailed specification. 4 CASE tools commonly support OO Analysis and Design, but refinement is still based on grammars and parse trees.

Proposed Solution 4 We introduce a toolkit for OO refinement and transformation. 4 The toolkit also automates the generation of grammars and parsers when it is necessary to use linear (grammar-based) representations.

Examples: Web Documents 4 Web Documents. –An OO data model can be transformed in an automated way to an XML DTD. –An OO repository can be viewed as an XML document using a variety of “panoramas.” –The parser for the DTD can also be produced in an automated way.

Examples: Natural Language –Traditional NLP techniques involve a “pipeline” of linear scans of the text. Lexical scanning to produce tokens. Tagging determines the part of speech of terms. Parsing determines a tree structure. Knowledge extraction maps the tree structure to a data model (usually a relational data model). –OO transformation avoids the need for generating and parsing intermediate linear representations.

Example: UML Formalization 4 Formal Methods can provide a foundation for specification and modeling. 4 However, formal methods are regarded as difficult to learn and to use. 4 Combining a CASE tool with a formal methods system would make formal methods more accessible and usable.

Theory-Based Object Model UML Component sort class type class sort abstract class concrete class attribute object-valued attribute method operation axiom state attribute state sort state invariant event Meaning collection of values structure of object and response to stimuli all possible value representations of objects of the class class with no direct instances blueprint for instances function that returns data values/objects - observable class characteristic class attribute whose sort is a set of objects function that modifies attribute values function that does not modify attribute values class attribute value invariant or specification of a function’s semantics function mapping from class to state sort all possible states of an object constraint on class attribute in a given state function that invokes methods, generates events and modifies state attributes

Component Composition An important feature of the theory-based object model is the ability to compose components using the colimit operation. The following diagram illustrates the use of the colimit for aggregation of account information for a customer of a bank. Integer Set Acct-ClassCust-AcctCust-Class Bank C C C {E  Acct, Set  Acct-Class} {E  Customer, Set  Cust-Class} {E  Account, Set  Accounts} {E  Customer, Set  Customers} {E  CA-Link, Set  Cust-Acct}

Grammars versus OO Models 4 Expressing an OO model in terms of a grammar is complex and awkward. –Many-to-many relationships require introducing artificial identifiers. –Object sharing in general requires identifiers. –A “focal point” must be chosen. –Web documents add the additional complexity of choosing document boundaries.

Example Student Course takes * * Student as focal point: List of students; each student has the list of courses being taken by the student. Is the course information replicated for each student or is an identifier used? Where does the information about the course get expressed? Course as focal point: List of courses; each course has the list of students who are taking the course. Is the student information replicated for each course or is an identifier used? Where does the information about the student get expressed?

The Transformation Pipeline 4 Refinement and transformation are usually modularized into a series of steps. 4 In the grammar-based approach, each step communicates with the next using a linear representation which requires: –grammar –parser –symbol table –generator

Pipeline Example CASE Diagram Most of the effort in construction such a pipeline is devoted to adapting to the needs of the grammar-based intermediate representations. Intermediate Structure Object Model Structure Formal Methods System Intermediate Structure Export Format Parse Tree Executable Code Object Model Language Formal Methods Language Programming Language Intermediate Code

Simplifying the Pipeline CASE Diagram Intermediate Structure Object Model Structure Formal Methods Structure Programming Language Intermediate Structure The nu& toolkit was introduced to simplify the transformational pipeline by specifying transformations directly on the OO data structures:

Conclusion 4 Grammar-based refinement requires a great deal of unnecessary effort which is only partly mitigated by attribute grammars and support tools. 4 Direct OO refinement and transformation is much simpler and less error-prone. 4 Unfortunately, this particular paradigm shift has yet to occur in the refinement community.

Future Directions 4 Complete the formalization of UML.  Development of nu& into a full-featured system for object-oriented refinement and transformation. 4 Application of formal methods (via CASE tools) for component composition, reusable components and self-adaptive systems.