UML Formalization: A Position Paper Kenneth BaclawskiNortheastern University Scott DeLoachAFIT Mieczyslaw KokarNortheastern University Jeffrey SmithNortheastern.

Slides:



Advertisements
Similar presentations
Object-Oriented Programming Basics Prof. Ankur Teredesai, Computer Science Department, RIT.
Advertisements

Modeling Main issues: What do we want to build How do we write this down.
SEG4110 – Advanced Software Design and Reengineering TOPIC D Metamodelling.
Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
Stereotypes Stereotypes provide the capability to create a new kind of modeling element. –They can be used to classify or mark modeling elements. –A type.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
UML – Class Diagrams.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 The Enhanced Entity- Relationship (EER) Model.
Chapter 14 (Web): Object-Oriented Data Modeling
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Unified Modeling Language (UML)
Object-Oriented Databases
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
7M822 UML Class Diagrams advanced concepts 15 September 2008.
Describing Syntax and Semantics
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Chapter 14: Object-Oriented Data Modeling
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 14: Object-Oriented Data Modeling
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 8 Slide 1 Chapter 9 Structuring System Data Requirements.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
1 © Prentice Hall, 2002 Chapter 14: Object-Oriented Data Modeling Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data Modeling Modern Database Management 9 h Edition Jeffrey A.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 13 (Online): Object-Oriented Data Modeling Modern Database Management 10 th Edition.
CHAPTER 13: OBJECT-ORIENTED DATA MODELING (OVERVIEW) © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
Object-Oriented Data Modeling
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Semantics In Text: Chapter 3.
PUBS-99-G Motivation Objective Inconsistent specification “Shell” sw only Complex, diverse and unsupported tools Complex languages/math Lack of trained.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
Object-Oriented Parsing and Transformation Kenneth Baclawski Northeastern University Scott A. DeLoach Air Force Institute of Technology Mieczyslaw Kokar.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
CHAPTER 13: OBJECT-ORIENTED DATA MODELING (OVERVIEW) Modern Database Management 11 th Edition Jeffrey A. Hoffer, V. Ramesh, Heikki Topi © 2013 Pearson.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Class Diagrams Revisited. Parameterized Classes Parameterized Classes - are used to represent relationships between templates.
16 April 2011 Alan, Edison, etc, Saturday.. Knowledge, Planning and Robotics 1.Knowledge 2.Types of knowledge 3.Representation of knowledge 4.Planning.
UML (Unified Modeling Language)
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Modeling with UML – Class Diagrams
The Enhanced Entity- Relationship (EER) Model
Unified Modeling Language (UML)
Object-Oriented Modeling
Business System Development
Main issues: • What do we want to build • How do we write this down
Object-Oriented Programming Basics
Software Architecture & Design Pattern
Lec 3: Object-Oriented Data Modeling
Chapter 20 Object-Oriented Analysis and Design
Object-Oriented Knowledge Representation
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

UML Formalization: A Position Paper Kenneth BaclawskiNortheastern University Scott DeLoachAFIT Mieczyslaw KokarNortheastern University Jeffrey SmithNortheastern University/Sanders

Why Formalize UML? inconsistent specification shell sw only Computer-aided formally-developed spec/sw CASE- based spec/sw complex, diverse and unsupported tools complex languages/math lack of trained engineers unproven scalability provably correct software code generation code refinement theorem proving spec/sw composition uniform graphical user interface modern SE methodo- logies (OO, state, etc) reverse engineering common large-scale dev. paradigm - Formalize common CASE spec language (UML ), - Automate transformation from UML to formal representation disadvantages advantages

Math Foundation Alternatives AlgebraicLogic Hidden sorted algebrasAlgebraic/transformational (objects are terms) Dynamic and entity algebrasCategorical/reactive (objects are theories) Processes Projection spaces Competing mathematical theoriesReference Category theoryS. DeLoach, “Formal Transformations from Graphically-Based OO Representations to Theory Based Specifications” Stream theoryR. Breu, U. Hinkel, “Towards a Formalism of UML”  -calculus or process algebraG. Overgaard,”The Semantics of UML - Tutorial” Algebraic approachesR. Bourdeau, B. Cheng,”A Formal Semantics for Object Model Diagrams” Category Theory chosen because: Successful application to – Modal/temporal logic-based specs – Formalization of OO techniques CASE support for software refinement, composition and code generation Ability to compose new formalizations form existing or created set

Theory-based Object Model Components of UML Domain Theory sort class type class sort abstract class concrete class attribute object valued attribute method operation axiom state attribute state sort state invariant event class set class event Meaning collection of values structure of object and response to stimuli all possible value representation 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 set of objects function that modifies attribute values function that do not modify attribute values class attribute value invariant and semantic of functions function mapping from class to state sort current state of an object constraint on class attribute in a given state function that invokes methods, generates events and modifies state atttributes class whose class sort is previously defined objects (include class event) definition of each original class event

Theory-based example class PERSON is import Sex, Natural class sort Person sorts Person-State operations person-attr-equal: Person, Person  Boolean attributes age: Person  Integer gender: Person  Sex state-attributes person-state: Person  Person-State methods create-person: Sex  Person increment-age: Person  Person states old, young:  Person-State events new-person: Sex  Person birthday: Person  Person axioms old  young; person-state(a) = young  age(a) < 30; person-state(a) = old  age(a)  30; person-attr-equal(p, p1)  gender(p) = gender(p1)  age(p) = age(p1); age(create-person(s)) = 0  gender(create-person(s)) = s; age(increment-age(p)) = age(p) + 1  gender(increment-age(p)) = gender(p); person-attr-equal(birthday(p), increment-age(p)); person-attr-equal(new-person(s), create-person(s)) end-class

Inheritance  Extension - add attributes/operations Restriction - constrain attributes/operations Liskov substitution property - If for each object o 1 of type S there is an object o 2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o 1 is substituted for o 2, then S is a subtype of T. In theory-based object model - When specification morphism from superclass to subclass and subclass class sort is a sub-sort of the superclass class sort. In O-Slang, implemented with import For multiple inheritance, combine superclasses (with colimit), then import

Aggregation Part-of relationship between components and assemblies Modeled through object-valued attributes Aggregate class combines component classes via colimit, unifying component sorts and functions 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}

Association Models relationship between potentially aggregate components Link - Connection between object instances - class (with link attributes and operations) using object-valued attributes to reference other objects Association - Set of links Multiplicities - number of links object can participate in - constructed by axioms defining link constraints

Object Communication Objects aware of own sending/receiving event set Generated and broadcast to entire system Event theory ~ generating class sort, parameter sorts and event signature Receiving class or class set Event parameter sortsReceiving class event signature Colimit between generating and receiving classes unify events and sort so invoking generating class corresponds to invoking receiving event(s)

UML Core Package

UML to Slang Translation Rules UMLSlang Aggregationdiagram with colimit & ops (parts belong to whole) Associationops at next higher level (parts belong to diagram) Generalizationmorphism OCLaxioms defining constraints at next higher level Componentspec UML Diagram spec of specs Collective of UML diagramsdiagram of spec of specs

Core Translation Example spec Namespace is sort name op unique: name, name  Boolean axiom unique is (not (equal (n1 n2))) end-spec spec ModelElement is ; add provision, requirement and namespace op/axioms end-spec morphism ModelElement-to-Namespace: ModelElement  Namespace is {n  name} spec Constraint is sort body op: wellformed  Boolean end-spec spec GeneralizableElement is sort gn op isAbstract: gn  Boolean op isLeaf: gn: Boolean op isRoot: gn  Boolean end-spec morphism GeneralizableElement-to-Namespace: GeneralizableElement  Namespace is {n  gn} spec Parameter is sorts defaultValue, kind, in, out, inout, return sort-axiom kind = in | out | inout | return op type: pn  Classifier end-spec spec Classifier is sort crn end spec morphism Classifier-to-GeneralizableElement: Classifier  GeneralizableElement is {crn -> gn} spec Feature is sorts ownerScope, instance, classifier, fname sort-axiom ownerScope = instance | classifier sorts visibility, public, protected, private sort-axiom visibility = public | protected | private op owner: fname  classifier end-spec morphism Feature-to-ModelElement: Feature  ModelElement is {fname  name}

Core Translation Example (cont.) diagram Feature-diagram is nodes Feature, Classifier arcs Feature  Classifier: {fname  crn} end-diagram spec Feature-agg is colimit of Feature-diagram end-spec diagram Parameter-diagram is nodes Parameter, Classifier arcs Parameter  Classifier is {fname  pn} morphism ModelElement-to-Parameter ModelElement  Parameter is {name  pn} spec Class is op isActive: cn  Boolean end-spec morphism Classifier-to-Class: Classifier  Class is {crn, cn} spec Core is import {all components} ;; connect all associations with predicates op type: Parameter  Classifier op namespace: ModelElement  Namespace end-spec

Next Steps/Issues Complete UML  O-Slang script Continue to “UMLize” O-Slang Formalize UML - Slang version of abstract syntax and static/dynamic semantics at model and meta-model levels of abstraction