A UML-Based Metamodeling Language to Specify Design Patterns
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
One-Slide Summary Lecture Outline
Using Design Patterns #1 One-Slide Summary • Design patterns are solutions to recurring OOP design problems. There are patterns for constructing objects, structuring data, and object behavior . • Since this is PL, we’ll examine how language features like (multiple) inheritance and dynamic dispatch relate to design patterns. #2 Lecture Outline • Design Patterns • Iterator • Observer • Singleton • Mediator #3 1 What is a design pattern? • A solution for a recurring problem in a large object-oriented programming system – Based on Erich Gamma’s Ph.D. thesis, as presented in the “gang of four” book • “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice” – Charles Alexander #4 Types of design patterns • Design patterns can be (roughly) grouped into three categories: • Creational patterns – Constructing objects • Structural patterns – Controlling the structure of a class, e.g. affecting the API or the data structure layout • Behavioral patterns – Deal with how the object behaves #5 Iterator design pattern • Often you may have to move through a collection – Tree (splay, AVL, binary, red-black, etc.), linked list, array, hash table, dictionary, etc. • Easy for arrays and vectors • But hard for more complicated data structures – Hash table, dictionary, etc. • The code doing the iteration should not have to know the details of the data structure -
Object-Oriented Analysis, Design and Implementation
Undergraduate Topics in Computer Science Brahma Dathan Sarnath Ramnath Object-Oriented Analysis, Design and Implementation An Integrated Approach Second Edition Undergraduate Topics in Computer Science Undergraduate Topics in Computer Science (UTiCS) delivers high-quality instruc- tional content for undergraduates studying in all areas of computing and information science. From core foundational and theoretical material to final-year topics and applications, UTiCS books take a fresh, concise, and modern approach and are ideal for self-study or for a one- or two-semester course. The texts are all authored by established experts in their fields, reviewed by an international advisory board, and contain numerous examples and problems. Many include fully worked solutions. More information about this series at http://www.springer.com/series/7592 Brahma Dathan • Sarnath Ramnath Object-Oriented Analysis, Design and Implementation An Integrated Approach Second Edition 123 Brahma Dathan Sarnath Ramnath Department of Information and Computer Department of Computer Science Science and Information Technology Metropolitan State University St. Cloud State University St. Paul, MN St. Cloud, MN USA USA Series editor Ian Mackie Advisory Board Samson Abramsky, University of Oxford, Oxford, UK Karin Breitman, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil Chris Hankin, Imperial College London, London, UK Dexter Kozen, Cornell University, Ithaca, USA Andrew Pitts, University of Cambridge, Cambridge, UK Hanne Riis Nielson, Technical University of Denmark, Kongens Lyngby, Denmark Steven Skiena, Stony Brook University, Stony Brook, USA Iain Stewart, University of Durham, Durham, UK A co-publication with the Universities Press (India) Private Ltd., licensed for sale in all countries outside of India, Pakistan, Bhutan, Bangladesh, Sri Lanka, Nepal, The Maldives, Middle East, Malaysia, Indonesia and Singapore. -
Design Patterns Design Patterns
Design Patterns CSC207 – Software Design Design Patterns • Design pattern: – A general description of the solution to a well- established problem using an arrangement of classes and objects. • Patterns describe the shape of code rather than the details. – There are lots of them in CSC 301 and 302. Loop patterns from first year • Loop pattern: – A general description of an algorithm for processing items in a collection. • All of you (hopefully) have some loop patterns in your heads. • You don’t really need to think about these any more; you just use them, and you should be able to discuss them with your fellow students. • Some first-year patterns: – Process List – Counted Loop – Accumulator – Sentinel Process list pattern • Purpose: to process every item in a collection where you don’t care about order or context; you don’t need to remember previous items. • Outline: • Example: • Other example: darken every pixel in a picture Counted loop pattern • Purpose: to process a range of indices in a collection. • Outline: • Example: • Other example: print indices of even-length string Accumulator pattern • Purpose: to accumulate information about items in a collection. • Outline: • Example: • Other examples: sum, min, accumulate a list of items meeting a particular criterion. Sentinel pattern • Purpose: to remove a condition in a loop guard. • Outline: • Example: Sentinel pattern, continued • Here is the code that Sentinal replaces; note that i != list.size() is evaluated every time through the loop, even though it is false only once. Design Pattern -
Metamodeling and Method Engineering with Conceptbase”
This is a pre-print of the book chapter M. Jeusfeld: “Metamodeling and method engineering with ConceptBase” . In Jeusfeld, M.A., Jarke, M., Mylopoulos, J. (eds): Metamodeling for Method Engineering, pp. 89-168. The MIT Press., 2009; the original book is available from MIT Press http://mitpress.mit.edu/node/192290 This pre-print may only be used for scholar, non-commercial purposes. Most of the sources for the examples in this chapter are available via http://merkur.informatik.rwth-aachen.de/pub/bscw.cgi/3782591 for download. They require ConceptBase 7.0 or later available from http://conceptbase.cc. Metamodeling and Method Engineering with ConceptBase Manfred Jeusfeld Abstract. This chapter provides a practical guide on how to use the meta data repository ConceptBase to design information modeling methods by using meta- modeling. After motivating the abstraction principles behind meta-modeling, the language Telos as realized in ConceptBase is presented. First, a standard factual representation of statements at any IRDS abstraction level is defined. Then, the foundation of Telos as a logical theory is elaborated yielding simple fixpoint semantics. The principles for object naming, instantiation, attribution, and specialization are reflected by roughly 30 logical axioms. After the language axiomatization, user-defined rules, constraints and queries are introduced. The first part is concluded by a description of active rules that allows the specification of reactions of ConceptBase to external events. The second part applies the language features of the first part to a full-fledged information modeling method: The Yourdan method for Modern Structured Analysis. The notations of the Yourdan method are designed along the IRDS framework. -
OMG Meta Object Facility (MOF) Core Specification
Date : October 2019 OMG Meta Object Facility (MOF) Core Specification Version 2.5.1 OMG Document Number: formal/2019-10-01 Standard document URL: https://www.omg.org/spec/MOF/2.5.1 Normative Machine-Readable Files: https://www.omg.org/spec/MOF/20131001/MOF.xmi Informative Machine-Readable Files: https://www.omg.org/spec/MOF/20131001/CMOFConstraints.ocl https://www.omg.org/spec/MOF/20131001/EMOFConstraints.ocl Copyright © 2003, Adaptive Copyright © 2003, Ceira Technologies, Inc. Copyright © 2003, Compuware Corporation Copyright © 2003, Data Access Technologies, Inc. Copyright © 2003, DSTC Copyright © 2003, Gentleware Copyright © 2003, Hewlett-Packard Copyright © 2003, International Business Machines Copyright © 2003, IONA Copyright © 2003, MetaMatrix Copyright © 2015, Object Management Group Copyright © 2003, Softeam Copyright © 2003, SUN Copyright © 2003, Telelogic AB Copyright © 2003, Unisys USE OF SPECIFICATION - TERMS, CONDITIONS & NOTICES The material in this document details an Object Management Group specification in accordance with the terms, conditions and notices set forth below. This document does not represent a commitment to implement any portion of this specification in any company's products. The information contained in this document is subject to change without notice. LICENSES The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the modified version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed the copyright in the included material of any such copyright holder by reason of having used the specification set forth herein or having conformed any computer software to the specification. -
Metamodeling the Enhanced Entity-Relationship Model
Metamodeling the Enhanced Entity-Relationship Model Robson N. Fidalgo1, Edson Alves1, Sergio España2, Jaelson Castro1, Oscar Pastor2 1 Center for Informatics, Federal University of Pernambuco, Recife(PE), Brazil {rdnf, eas4, jbc}@cin.ufpe.br 2 Centro de Investigación ProS, Universitat Politècnica de València, València, España {sergio.espana,opastor}@pros.upv.es Abstract. A metamodel provides an abstract syntax to distinguish between valid and invalid models. That is, a metamodel is as useful for a modeling language as a grammar is for a programming language. In this context, although the Enhanced Entity-Relationship (EER) Model is the ”de facto” standard modeling language for database conceptual design, to the best of our knowledge, there are only two proposals of EER metamodels, which do not provide a full support to Chen’s notation. Furthermore, neither a discussion about the engineering used for specifying these metamodels is presented nor a comparative analysis among them is made. With the aim at overcoming these drawbacks, we show a detailed and practical view of how to formalize the EER Model by means of a metamodel that (i) covers all elements of the Chen’s notation, (ii) defines well-formedness rules needed for creating syntactically correct EER schemas, and (iii) can be used as a starting point to create Computer Aided Software Engineering (CASE) tools for EER modeling, interchange metadata among these tools, perform automatic SQL/DDL code generation, and/or extend (or reuse part of) the EER Model. In order to show the feasibility, expressiveness, and usefulness of our metamodel (named EERMM), we have developed a CASE tool (named EERCASE), which has been tested with a practical example that covers all EER constructors, confirming that our metamodel is feasible, useful, more expressive than related ones and correctly defined. -
Singleton ● Iterator
CSC207 Week 6 Larry Zhang 1 Logistics ● Midterm: next Friday (October 27), 5:10 PM - 7:00 PM ● 110 minutes ● No aid ● Room: TBA (Note it’s not the lecture room) ● Past tests posted on the course website: http://axiom.utm.utoronto.ca/~207/17f/tests.shtml ● Arnold will send emails with more info. 2 Design Patterns 3 /r/LifeProTips 4 Design Patterns Design patterns are like “LifeProTips” for software design. ● Effective use of the OO Paradigm. ● Using the patterns results in flexible, malleable, maintainable code. ● It usually allows plug and play additions to existing code. ● It gives developers a vocabulary to talk about recurring class organizations. 5 Design Patterns for Today ● Observer ● Singleton ● Iterator 6 The Observer Pattern 7 Goals ● When certain objects need to be informed about the changes occurred in other objects. ● One object changes state, all its dependents are notified and updated automatically. ● Programmer only need to worry about how the observer changes if the observables changes, and connecting the observers and observables. ● Real-life example: setting up Pre-Authorized Bill Payment 8 General Implementation 9 Java Implementation 10 DEMO #1 Implement Our Own Observer/Observable observer/Observable.java observer/Observer.java 11 DEMO #2 Use Our Observer/Observable observer/LightBulb.java observer/LightBulbObserver.java observer/LightBulbObservable.java observer/LightBulbMain.java 12 Advanced Issues in Observer Pattern Push and Pull communication methods ● Push model: the Observable send all information about the change -
11. Metadata, Metamodelling, and Metaprogramming
11. Metadata, Metamodelling, and Metaprogramming 1. Searching and finding components 2. Metalevels and the metapyramid 3. Metalevel architectures 4. Metaobject protocols (MOP) Prof. Dr. Uwe Aßmann 5. Metaobject facilities (MOF) Technische Universität Dresden 6. Metadata as component markup Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de 14-1.0, 23-Apr-14 CBSE, © Prof. Uwe Aßmann 1 Mandatory Literature ► ISC, 2.2.5 Metamodelling ► OMG MOF 2.0 Specification http://www.omg.org/spec/MOF/2.0/ ► Rony G. Flatscher. Metamodeling in EIA/CDIF — Meta-Metamodel and Metamodels. ACM Transactions on Modeling and Computer Simulation, Vol. 12, No. 4, October 2002, Pages 322–342. http://doi.acm.org/10.1145/643120.643124 Prof. U. Aßmann, CBSE 2 Other Literature ► Ira R. Forman and Scott H. Danforth. Metaclasses in SOM-C++ (Addision- Wesley) ► Squeak – a reflective modern Smalltalk dialect http://www.squeak.org ► Scheme dialect Racket ► Hauptseminar on Metamodelling held in SS 2005 ► MDA Guide http://www.omg.org/cgi-bin/doc?omg/03-06-01 ► J. Frankel. Model-driven Architecture. Wiley, 2002. Important book on MDA. ► G. Kizcales, Jim des Rivieres, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, 1991 ► Gregor Kiczales and Andreas Paepcke. Open implementations and metaobject protocols. Technical report, Xerox PARC, 1997 Prof. U. Aßmann, CBSE 3 Literature on Open Languages ► Shigeru Chiba and Takashi Masuda. Designing an extensible distributed language with a meta-level architecture. In O. Nierstrasz, editor, European Conference on Object-oriented Programming (ECOOP '93), number 707 in Lecture Notes in Computer Science, pages 483-502. -
Java Design Patterns I
Java Design Patterns i Java Design Patterns Java Design Patterns ii Contents 1 Introduction to Design Patterns 1 1.1 Introduction......................................................1 1.2 What are Design Patterns...............................................1 1.3 Why use them.....................................................2 1.4 How to select and use one...............................................2 1.5 Categorization of patterns...............................................3 1.5.1 Creational patterns..............................................3 1.5.2 Structural patterns..............................................3 1.5.3 Behavior patterns...............................................3 2 Adapter Design Pattern 5 2.1 Adapter Pattern....................................................5 2.2 An Adapter to rescue.................................................6 2.3 Solution to the problem................................................7 2.4 Class Adapter..................................................... 11 2.5 When to use Adapter Pattern............................................. 12 2.6 Download the Source Code.............................................. 12 3 Facade Design Pattern 13 3.1 Introduction...................................................... 13 3.2 What is the Facade Pattern.............................................. 13 3.3 Solution to the problem................................................ 14 3.4 Use of the Facade Pattern............................................... 16 3.5 Download the Source Code............................................. -
Consideration of Risk and Safety in Metamodeling System of Stratification
405 Consideration of Risk and Safety in Metamodeling System of Stratification Valdemar Vitlinskyi Kyiv National Economic University named after Vadym Hetman, 54/1, Peremohy Ave., Kyiv, 03057, Ukraine [email protected] Vyacheslav Glushchevsky Zaporizhzhya National University, 9, Engineer Preobrazhensky Ave., Zaporizhia, 69000, Ukraine [email protected] Abstract. The development of the concept and tools of stratification metamodeling (SMM) is proposed, which is a new object-oriented methodological approach to the synthesis of a complex model of the economic system (enterprise), in particular, in order to distinguish the set of variants of the combination of heterogeneous object-components of its various strata into a single hierarchical structure. It is emphasized that it is necessary to consider conceptual provisions and tools for evaluation and management of such systemic characteristics as safety and risk in the system of the SMM in order to increase the sustainability of the economic system under consideration. Keywords: risk management, economic security, stratification of hierarchical systems, metamodeling, architectural methodology, enterprise reference modeler, informational technologies. 1 Introduction Socioeconomic systems (SES), first of all anthropogenic microeconomic systems, objectively inherent risks that are permanently modified in the dynamic environment, conflict with each other, creating new, unknown till present time risks. By substantially reducing one of the risk groups, we can thus increase the risks associated with another group. The multidimensionality of these risks permanently creates threats to the economic security of the SES. In our opinion, economic security is an integrated system characteristic, which depends on the stability, the permissible level of risk, the controllability of parameters in order to ensure the development and protection of vital economic interests of the individual and society, economic stability of the subjects of economic relations and the economy as a whole [1]. -
Iterator Design Pattern Copyright C 2016 by Linda Marshall and Vreda Pieterse
Department of Computer Science Tackling Design Patterns Chapter 15: Iterator Design Pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 15.1 Introduction ................................. 2 15.2 Iterator Design Pattern .......................... 2 15.2.1 Identification . 2 15.2.2 Problem . 2 15.2.3 Structure . 3 15.2.4 Participants . 3 15.3 Cohesion ................................... 4 15.4 Iterator Pattern Explained ........................ 4 15.4.1 Design . 4 15.4.2 Improvements achieved . 5 15.4.3 Disadvantage . 5 15.4.4 Real world example . 6 15.4.5 Related Patterns . 6 15.5 Implementation Issues ........................... 7 15.5.1 Accessing the elements of the aggregate . 7 15.5.2 Additional functionality . 7 15.5.3 Internal and External iterators . 8 15.5.4 Allocation on the heap or on the stack . 8 15.5.5 Using C++ STL Iterators . 8 15.6 Example .................................... 11 15.7 Exercises ................................... 12 References ....................................... 13 1 15.1 Introduction To iterate means to repeat. In software it may be implemented using recursion or loop structures such as for-loops and while-loops. A class that provides the functionality to support iteration is called an iterator. The term aggregate is used to refer to a collection of objects. In software a collection may be implemented in an array, a vector, a binary tree, or any other data structure of objects. The iterator pattern is prescriptive about how aggregates and their iterators should be implemented. Two general principles are applied in the iterator design pattern. The first is a prominent principle of good design namely separation of concerns. -
What Is a Metamodel: the OMG's Metamodeling Infrastructure
Modeling and metamodeling in Model Driven Development What is a metamodel: the OMG’s metamodeling infrastructure Warsaw, May 14-15th 2009 Gonzalo Génova [email protected] http://www.kr.inf.uc3m.es/ggenova/ Knowledge Reuse Group Universidad Carlos III de Madrid What is a metamodel: the OMG’s metamodeling infrastructure 1 Structure of the seminar On the difference between What is a model: analysis and design syntax and semantics models What is a metamodel: Metamodeling directed the OMG’s metamodeling relationships in UML infrastructure By the way, what does this diagram mean, what is its syntax? What is a metamodel: the OMG’s metamodeling infrastructure 2 Sources • Jean Bézivin – Model Engineering for Software Modernization. • The 11th IEEE Working Conference on Reverse Engineering, Delft, November 8th-12th 2004. – On the unification power of models. • Software and Systems Modeling 4(2): 171–188, May 2005. • Colin Atkinson, Thomas Kühne – Model-Driven Development: A Metamodeling Foundation. • IEEE Software 20(5): 36-41, Sep-Oct 2003. – Reducing Accidental Complexity in Domain Models. • Software and Systems Modeling 7(3): 345-359, July 2008. • My own ideas and elaboration. What is a metamodel: the OMG’s metamodeling infrastructure 3 Table of contents 1. Introduction: definitions of metamodel 2. Representation and conformance 3. The four metamodeling layers 4. Metamodel and semantic domain 5. A case of metamodel/domain mismatch 6. Conclusions What is a metamodel: the OMG’s metamodeling infrastructure 4 Introduction: definitions of metamodel What is a metamodel: the OMG’s metamodeling infrastructure 5 What is a metamodel (according to Google definitions) • If someone still believes there is a commonly accepted definition..