I.WHAT II.WHEN III.HOW IV.WHY Metadata architectures are adaptive program frameworks built using a new software design methodology. Metadata architectures.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Adaptive Object-Models Joseph W. Yoder University of Illinois The Refactory, Inc.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Apache Struts Technology
Database Systems: Design, Implementation, and Management Tenth Edition
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Analysis Modeling.
Object-Oriented Design Patterns Composite Singleton State Observer … Autumn 2012UCN Technology: IT/Computer Science1.
Introduction To System Analysis and Design
Chapter 2 Data Models Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
ETEC 100 Information Technology
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
Lecture 6 & 7 System Models.
Self Adaptive Software
Ralph Johnson - University of Illinois1 Reflection and the Adaptive Object Model Architecture Ralph Johnson University of Illinois at Urbana-Champaign.
Overview of Software Requirements
C++ fundamentals.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Introduction To System Analysis and design
2 1 Chapter 2 Data Model Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
SOFTWARE ADAPTIVITY THROUGH XML-BASED BUSINESS RULES AND AGENTS Queen’s University of Belfast, School of Computer Science, Belfast, United Kingdom Liang.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
CachingType Object AOM Patterns Categories Code is data, data is code... Everything is data, everything is code! Towards a Pattern Language for Adaptive.
SEA Side Software Engineering Annotations Annotation 3: Analysis Patterns Professor Sara Stoecklin Director of Software Engineering- Panama City
© 2007 Tom Beckman Features:  Are autonomous software entities that act as a user’s assistant to perform discrete tasks, simplifying or completely automating.
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.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
Introduction To System Analysis and Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
CSC480 Software Engineering Lecture 11 September 30, 2002.
Activity & Class Modeling Labs Discussion p3 T120B pavasario sem.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Ontology-Based Computing Kenneth Baclawski Northeastern University and Jarg.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Design Patterns -- Omkar. Introduction  When do we use design patterns  Uses of design patterns  Classification of design patterns  Creational design.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Software Engineering B.Tech Ii csE Sem-II Unit-V PPT SLIDES By Hanumantha Rao.N Newton’s Institute of Engineering 1.
Introduction to Patterns. Introduction to Patterns Pattern: Webster definition of Pattern: Something regarded as a normative example to be copied.
Conceptual design Tells the customer what the system will do Tells the customer what the system will do Answers: Answers: Where will the data come from?
I.WHAT II.WHEN III.HOW IV.WHY Pattern: Webster : Something regarded as a normative example to be copied. WHAT.
1 Adaptive Case-Based Reasoning Architectures for Critical Infrastructure Protection Dr. Dan Schwartz Dr. Sara Stoecklin Mr. Erbil Yilmaz Ms. Mimi Xu Florida.
Enterprise Systems Modeling EGN 5623 Enterprise Systems Optimization Fall, 2012.
2 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel Data Models Why data models are important About the basic data-modeling.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Enterprise Systems Modeling EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
SEA Side Software Engineering Annotations AAnnotation 10: Reflective Architectures One hour presentation to inform you of new techniques and practices.
Object Oriented Systems Design
SEA Side Software Engineering Annotations
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Information systems modeling tools
Recent trends in estimation methodologies
Sections Basic Concepts of Programming
Objectives Identify the built-in data types in C++
Distribution and components
Software Engineering (CSI 321)
Lec 3: Object-Oriented Data Modeling
Chapter 20 Object-Oriented Analysis and Design
Towards an Open Meta Modeling Environment
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Information systems modeling tools
Presentation transcript:

I.WHAT II.WHEN III.HOW IV.WHY

Metadata architectures are adaptive program frameworks built using a new software design methodology. Metadata architectures enable the end-user to dynamically change the behavior of the program without changing its code [Lie96, Foo98]. I.WHAT [1] Lieberherr, K. J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, [3] Foote, B., and J. W. Yoder. “Metadata and Active Object-Models.” Technical Report, WUSC-98-25, Department of Computer Science, Washington University, 1998.

Framework - A framework is a reusable design expressed as a set of abstract classes and the way their instances collaborate. It is a reusable design for all or part of a software system. Example GUI framework I.WHAT [1] Lieberherr, K. J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, [3] Foote, B., and J. W. Yoder. “Metadata and Active Object-Models.” Technical Report, WUSC-98-25, Department of Computer Science, Washington University, 1998.

I.WHAT Metadata architectures are thus frameworks (reusable design of collaborating instances) that adapt at run time to new user requirements. They accomplish this with structures, constraints, rules, and other programming constructs. They are a different level of abstraction.

I.WHAT More difficult to build and understand. Less code than traditional programs. Relies heavily on dynamic programming language with reflective capabilities.

MetaData Program Family of Programs

MetaData Program - GUI Family of Views (screens) Infinitely many XML class structures for different GUI screens

II. WHEN Analysis Design Implementation

Traditional Analysis – identify customer domain entities. Metadata Analysis – additionally we need to: 1.Identify those entity or entity characteristics which will require adaptation during the entities life cycle. 2.Define a KNOWLEDGE level for those entities that allows the easy adaptation of their values/procedures. HOW

Simple Example: Traditionally, we encoded code table values in the code as constants. CityValues.add (Tallahassee) CityValues.add (Appalachacola) ……. Each time we added a code table value, NewCity, etc. we had to change the code and add another value. We learned to make a table contining these code values and allow the user to add code table values. Thus the code table became metadata to the program. HOW

Code alues first attempt at building metadata architectures. Business rules another attempt. Example – insurance business rule: if home = brick reducePremium (.001) if fireDepartdistance < 1.0 reducePremium (0.0005) if homeZipCode in hurricaneSet (increasePremium (0.01) We can build a metadata class containing the reduction rates or values needed to implement the rules. (example type of construction – brick -.001, stucco , etc fireDepartmentdistance 1< , etc homeZipcode hurricaneSet – 0.01, tornadoSet – HOW

Yet another technique used in building metadata arch is using polymorphism to implement adaptive behavior code. We define the different behavior as subclasses, include the name of the class as the metadata. Then we make an instance of the needed class AT RUN TIME using a technique called “reflection”. Using the CLASS class, we use methods such as forName to implement the needed behavior HOW

How does this work? Example: ONLY ONE GUI program is needed for all screens AND use metadata that allows us to execute 420 simple entry GUIs needed for a system. Example: We define ONLY ONE Servlet or ASP or.net Application for a typical CRUD applications using metadata to execute over 300 application programs. Example: We define ONLY ONE Case Based Reasoner and implement it with metadata as a reasoner in various domains such as packet sniffing, facial recognition with nodals, or medical diagnostics. HOW

AttributePhenomTypeSizeValidatorMinMax Error TableLabel DOBDateString8DateRange Invalid DateDate of Birth Shoesize Integer2Range015 Valid Size is between 0 and 15Size of Shoe SSNFedIDString9Numeric SSN is 9 digits 0 to 9Social Security Number Entry Date DateString8Current+ Date must be greater than current date Date of Entry to University Gender String1 Gender must be in “Gender” table Gender ZipCode String9Discrete Zip Code must be in ZipCode Table ZipCode Classifica tion String1Discrete Classification must be in Classification Table Classific ation DepositMoneyReal6.2Range Deposits must be more than 1.00 and less than Deposit Amount Student Last Name NameString20Alpha Name must be only alphabetic characters Student Last Name HOW

ScreenDemographic124 = Name + DOB AttributePosition Name5,30 DOB5,70 Attribute Name DOB

HOW AttributePosition Student Last Name5,30 DOB5,70 Entry Screen AttributePhenomTypeSi ze ValidatorMi n MaxErrorTableLabel DOBDateString8DateInvalid DateDate of Birth Shoesize Integer2Range015Valid Size is between 0 and 15 Size of Shoe SSNFedIDString9NumericSSN is 9 digits 0 to 9Social Security Number Entry Date DateString8Current+Date must be greater than current date Date of Entry to Universi ty Gender String1Gender must be in “Gender” table Gender ZipCode String9DiscreteZip Code must be in ZipCode Table ZipCode Classifica tion String1DiscreteClassification must be in Classification Table Classific ation DepositMoneyReal6. 2 Range Deposits must be more than 1.00 and less than Deposit Amount Student Last Name NameString20AlphaName must be only alphabetic characters Student Last Name ScreenDemographic124 Classes

Validator Range Discrete Alphabetic …. Classes AttributePhenomTypeSi ze ValidatorMi n MaxErrorTableLabel DOBDateString8DateInvalid DateDate of Birth Shoesize Integer2Range015Valid Size is between 0 and 15 Size of Shoe SSNFedIDString9NumericSSN is 9 digits 0 to 9Social Security Number Entry Date DateString8Current+Date must be greater than current date Date of Entry to Universi ty Gender String1Gender must be in “Gender” table Gender ZipCode String9DiscreteZip Code must be in ZipCode Table ZipCode Classifica tion String1DiscreteClassification must be in Classification Table Classific ation DepositMoneyReal6. 2 Range Deposits must be more than 1.00 and less than Deposit Amount Student Last Name NameString20AlphaName must be only alphabetic characters Student Last Name HOW

$$$$$$$$$ WHY

AOM – Adaptive Object Model Elements: Metadata Type of Objects (TO) Meta Types of Objects (TO 2 ) ER Models Rule Objects Interpreters/Builders Editors,/ GUIs i.e. REFLECTIVE ARCHITETURE i.e. METADATA ARCHITECTURE

Examples of Patterns used in MetaData Architectures: 1. Party 2. Accountability 3. Observation 4. Inventory 5. Accounting 6. Trading 7. Contracts 8. Facades

Party Type Party 1 0..M 1 1 Knowledge level Operational level Person Organization Post (appointments) John DoeFSUDean Party Type ObjectRecord Min Max Table Student Person StudentRecord University Organization University UniversityT 1. Party Pattern

Accountability Type Accountability 1 0..M 1 1 Knowledge level Operational level Person is Dean of a Campus Accountability Related Types ObjectRecord Actions Time Period Manager of Person, department manageshires, fires begin end Person, campus manageshires,fires begin end Enrolls inPerson, class enrollmentadd,drop semester Accepts inPerson, campus acceptsapplies,… semester Person, department acceptsapplies,… semester 2. Accountability Pattern Person works for a Department

3. Observation Pattern Knowledge level Operational level Phenomenon Type 1 Phenomenon 1 Observation 0..M 1 1 Observation Type DataType Validator Min Max Table Label ErrorMessage Show size Showsize Integer Range 4 20 Show Size Range is from 0 to 15 Hair color Haircolor String Discrete HairTable Hair Color Color Must be …… Name Personname String Null Name 0..M1

Anything you can do I can do better meta………