Derivation of Architecture and Behavior from Static Diagrams, Widely-Accepted Requirements and Design Patterns

Size: px
Start display at page:

Download "Derivation of Architecture and Behavior from Static Diagrams, Widely-Accepted Requirements and Design Patterns"

Transcription

1 Derivation of Architecture and Behavior from Static Diagrams, Widely-Accepted Requirements and Design Patterns Macario Polo, Agustín Mayoral, Juan Ángel Gómez, Mario Piattini and Francisco Ruiz Escuela Superior de Informática University of Castilla-La Mancha Ronda de Calatrava, Ciudad Real, Spain mpolo@inf-cr.uclm.es ABSTRACT This paper presents a method for building fully executable, high-quality code from a static view (class diagram, relational schema...) of the system to be developed. For this issue, we take has input products the static view and a set of requirements generally solicited and accepted by users. The high quality of the system generated is guaranteed by the utilization of several design patterns for object-oriented systems. Keywords Design Patterns, Requirements, Software Architecture, Software Engineering automation 1 INTRODUCTION Many software systems have, as one of their main responsibilities, the managing of a enterprise database. There are many approaches for developing the software which must execute this task, as external programs that access the database via embedded SQL instructions or stored procedures, programs developed with the tools provided by the Database Management System itself, etc. Currently, relational databases are the most common databases used by organizations [5], and there are several well-known design patterns that help in the development of object-oriented software for its managing. These patterns cover from what classes must receive the responsibilities related to persistence of objects [1, 3, 4] to the type of architecture of the system. In the other side, users of programs developed for managing these databases share a wide set of required functionalities, as, for example: Introduction, modification and updating of 1 information in the database. Generation of different kinds of reports. Navigation across related data in multiple tables. Possibilities of data interchange with other applications. Possibilities of accessing data via web. From the afore-mentioned patterns, the common general requirements and a static view of the system (which can be a class diagram, a relational schema or an entityrelationship diagram), it is possible the automatic generation of code with a wide set of functionalities, specially related to the common requirements. Moreover, the use of the patterns provides the system with a very robust architecture that facilitates the addition of noncommon functionalities (not listed above) to the system, once it is generated. In this paper we present several ideas related to these transformations. We introduce a formal approach for explaining some of them (formal descriptions for describing methods used in Software Engineering are required [2]) as well as more informal descriptions. The paper is organized as follows: basic principles of the systems to be generated are depicted in Section 2; in Section 3, the method used for transforming diagrams and generating code is presented. The architecture of the tool we have built is explained in Section 4. Section 5 contains our conclusions and some promising future lines of work. 2 DESCRIPTION OF THE REQUIRED ARCHITECTURE AND BEHAVIOR One of the most widely used patterns for making objectoriented software is the multi-tier architecture. Through it, a system is divided into several tiers of objects, in such manner that a tier only has dependencies with their adjacent ones. Even, the use of interfaces, abstraction and other techniques reduces the dependence to one or even none tier.

2 When the software to be developed must manage an enterprise database with the general requirements stated in Section 1, a good choice is to use three-tier architecture: several types of screens can be designed for different types of access (local network, web, etc.) with no changing the Domain classes. Instances of many of these classes will need to be stored in the database; responsibilities related to persistence of these objects are assigned using different patterns: To the persistent class itself. To an associated class (a Pure Fabrication ). In this case, persistent classes delegate their persistence responsibilities to their respective associated classes. To an abstract class that generalizes all persistent classes (or their respective pure fabrications ): this would be the utilization of a Template Method class, which enumerates all operations related to persistence and implements only those whose code is common to persistent classes. The rest of operations are implemented in each class. For example, methods as begintransaction and endtransaction could be implemented in the superclass, whereas it would declare the insert, delete, etc. as abstract operations, since their implementations depends on the object class to be manipulated. Presentation layer design Certainly, from a class diagram or an entity-relationship schema we can completely derive a three-tier design. As users communicate with the system through the Presentation layer, we must put at this level a set of classes that fulfil the common requirements mentioned in Section 1. For example: A screen for individually showing and manipulating (create, delete, update, print) the data of every persistent class, including the navigation across related data. A screen for showing lists of persistent objects. Of course, an initial screen with some menus, buttons or other widgets to go to the other screens. Domain layer design Any action performed by the user on one screen is translated into a message which is passed to the respective object at the Domain layer (i.e.: every instance of a class at the Presentation layer knows an object at the Domain). Changes in the status of these objects is communicated to the Presentation layer through observers, what allows the absolute independence of domain objects from their respective screens. In this manner, the same set of classes is valid to work with applets and with frames (for example). Persistent objects must be capable of being materialized (instantiated from the information saved in the database), inserted, deleted and updated. For this goal, persistent classes must include at least a constructor to materialize, and the insert, delete and update methods. Storage layer design At the Storage layer we put some classes which allow the access of the Domain classes to the database. There are also several patterns to guarantee this access, as the use of a Broker, a Facade or even the direct access from Domain classes to the database. Spite the database system is typically an product acquired to an external supplier, it can be also considered as an element of the Storage layer. In the systems we are describing, the class diagram of persistent classes can be used as the conceptual diagram for designing the database, and there exist some patterns for doing the transformation, as the one class, one table, one inheritance tree, one table or one inheritance path, one table [6]. An example as starting point For illustrating our approach and space saving, we will use the single class diagram shown in Figure 1: it shows that a person may have many cars. Figure 1. Class diagram taken as example. The minimal set of required functionalities for this system is: Management of persons and cars. Users need screens to view cards of both persons and screens, with buttons for inserting, deleting, etc. Possibility of listing the cars of a person. Possibility of navigate from a car to its owner. A main screen to go to the listing screens of persons and cars and, by selecting an item in the list, to its respective card screen. Figure 2 illustrates these functionalities, from the Presentation layer point of view. 2

3 3 TRANSFORMATION OF STATIC VIEWS Taking into account the considerations made in the previous section, from a Domain diagram we obtain a fixed Presentation diagram, which has a card screen per persistent class, a screen for lists and a main screen. In the other side, depending on the pattern used for transforming the class diagram to the relational schema (see subsection Storage layer design ), we will get a different type of database design; but if we always use a same pattern, a totally predictable database design will be obtained. With the exposed rules, the simple existence of the «persistent» stereotype in persistent classes is required to generate elements in both sides of the Domain layer: they do not need to specify persistent methods, since they will incorporate all of them. Obtaining the Presentation layer Formally, the generation of the Presentation layer from the Domain one is adjusted to the following equations. By reasons of space, we offer a reduced version of them: Let be: D a class diagram which consists of persistent classes; C the set of classes of D; R the set of relationships among classes in C: D= (C, R)=({(c1, r1), (c2, r2)... (cn, rn)}, R) A class is denoted as the pair (ci, ri), where ci represents the class itself, and ri the set of relationships of this class Figure 2. Required navigation among screens. 3 with others. The Presentation layer, P, is obtained as a function of the Domain layer: P=f(D)={m, s} f(c1, r1) f(c2, r2)... f(cn, rn) m is the Main screen; s is the screen for listings. f(ci, )=screen with (1) a reference to an instance of ci, plus (2) an adequate set of widgets for all fields in ci whose type is a basic data type, plus (3) a set of widgets for sending messages to the associated instance of ci. f(ci, ri )=f(ci, ) { widgets for navigating to related objects (4)} With (1), we denote that the screen knows a persistent object at the domain tier. The adequate widgets mentioned in (2) mean that, for example, textfields or textareas are used for Strings fields, checkboxes for booleans, etc. The set of widgets in (3) could be the buttons or the option menus that the users presses to delete, save, etc. persistent objects (see Figure 2). The widgets for navigating mentioned in (4) could consist of a menu for going to the records in other tables related to the current object (for example, the Relationships menu of Figure 2). Function f can have different implementations for

4 different programming languages, different development environments and different types of screens (frames and applets, for example). Obtaining the Storage layer The storage layer can be obtained using any of the patterns mentioned in Section 2. This transformation can also be formally specified using equations. Assigning and code generation of responsibilities As we noted in Section 2, several patterns can be used to assign persistence responsibilities. For example, if the Person class of Figure 1 is in charge of its persistence, its insert method could be (supposing Java code, embedded SQL and the use of a database broker): public void insert() throws Exception { } String SQL= Insert into Person + (SSN, Name, Age) values ( + mpkssn+, + mname +, + mage + ); ; Broker.insert(SQL); If the class delegates these operations to an associated class, its code would be: public void insert(person p) throws Exception { } String SQL= Insert into Person + (SSN, Name, Age) values ( + p.getssn()+, + p.getname() +, + p.getage() + ); ; Broker.insert(SQL); But also the pattern used for doing the transformation to the relational schema has strong influence on the code of the persistent methods, depending overall on the presence or absence of inheritance: so, for example, when there is inheritance and every class has been transformed in a table, there are integrity restrictions that, in some moments, obligate to insert records in more than one table. An example of this is shown in Figure 3: for inserting an employee or a student, it must exist previously in the Persons table and, then, two insertions would be needed in one transaction. The situation is absolutely different (and also the code of the persistent methods), if all the inheritance tree is translated into just a table with the One inheritance tree, one table, or to two or three tables with the One inheritance path, one table pattern (in this latest case, the fact that Person is or is not abstract would have also influence). These politics for assigning responsibilities, and the needed code to be generated, can be also mathematically expressed. Figure 3. A relational schema obtained from the "One class, one table" pattern. 4 AN ARCHITECTURE FOR GENERATING CODE We have developed a set of tools for generating code from the static view of a system, supposing it will have the minimal requirements of Section 1. We start from the basis of that any static view of a system can be transformed into an instance of the following class diagram (Figure 4): Figure 4. General diagram for describing systems. 4

5 In fact, applying transformation rules, the class diagram of our little example (Figure 1) would be an instance of this latest. Inside this instance, there would be: One instance of the System class. Two instances of the Class class (Person and Car). Six instances of the Field class (three corresponding to Person and three to Car). With other different transformation rules, a relational schema can be also be transformed in an instance of that diagram. Storage layers; also ideally, the tool should generate the code in any programming language, for any development environment (because, for example, the Visual Café Java environment is not capable of interpreting frames, applets, etc. of Forte, and vice-versa) and for any database management system. All these characteristics are obtained with our tool, since we have provided it with a set of interfaces which are implemented by a variety of little tools. Figure 5 shows the general architecture of the tool. To generate, for example, Java code for the Presentation tier that will be used in Visual Café, we only need to instantiate the classes that implement the IPresentationClass and IPresentationField interfaces for Visual Café. Figure 6 shows the classes that implement the interfaces of Class : Code for the Presentation layer depends on the environment and on the programming language. Code for the Domain layer depends on the language and on the pattern used to assign responsibilities. The Storage layer depends on the RDBMS used. In a future, we will add implementations for this interface which allow to create the database following the three transformations patterns mentioned in subsection Storage layer design of Section 2. Figure 5. Macroarchitecture of the tool for generating code. Required interfaces Once we have build one instance of the diagram of Figure 4, we can execute its generatecode method on the System class to generate the desired code. Ideally, this execution should produce code for the Presentation, Domain and 5 Figure 6. Classes that implement interfaces for "Class". Interfaces implemented The tool is capable of building instances of its class diagram (Figure 5) from some formats:

6 Rational Rose. Microsoft Access XML files. This means that the tool implements three interfaces for data acquisition and transformation. 5 CONCLUSIONS AND FUTURE LINES OF WORK We have presented a method for generating code from the static view of a system, as well as the architecture of a tool that supports it. The method is based on some common requirements that are generally desired by users. Currently, we have three lines of work opened: The construction of more classes which implement the three interfaces required by the tool. The addition of more formats to import data. In this sense, we are evaluating some CASE tools for entityrelationship modeling in order to process their diagrams and generate code. As some authors have noted a similar expressiveness of the Objectorientation and the Extended Entity-Relationship notation [6], we expect that this kind of diagrams is also valid to generate code. The formalization of all transformation methods using mathematical notation. The collection and formalization of more common requirements, in order to generate automatically code for them. ACKNOWLEDGEMENTS This work is partially supported by the MPM project (Mejora del Proceso de Mantenimiento; Iniciativa ATYCA, Ministerio de Industria y Energía, Spain). REFERENCES 1. Brown, K. and Whitenack, B. (1996). Pattern Languages of Program Design, vol. 2. Reading, MA: Addisson-Wesley. 2. Broy, M. (2001). Toward a Mathematical Foundation of software Engineering Methods. IEEE Trans. Software Eng., 27(1), Heinckiens, P.M. (1998). Building Scalable Database Applications, Addison-Wesley. 4. Keller, W. (1997). Mapping objects to tables. A pattern languages. Proceedings of the 1997 European Pattern Languages of Programming Conference, Irrsee, Germany. 5. Leavit, N. (2000). Whatever happened to Object- Oriented Databases? Computer, 33(8), Object Architects. On-line at (March 7, 2001) Shoval, P. and Shiran, S. (1997). Entity-relationship and object-oriented data modeling-an experimental comparison of design quality. Data & Knowledge Engineering, 21(3),

Reflective CRUD (RCRUD: Reflective Create, Read, Update & Delete)

Reflective CRUD (RCRUD: Reflective Create, Read, Update & Delete) Abstract Reflective CRUD (RCRUD: Reflective Create, Read, Update & Delete) Macario Polo, Mario Piattini and Francisco Ruiz University of Castilla-La Mancha Ronda de Calatrava, 5 13071-Ciudad Real (Spain)

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

An Aspect-based Environment for COTS Component Testing

An Aspect-based Environment for COTS Component Testing An Aspect-based Environment for COTS Component Testing Macario Polo Escuela Superior de Informática Universidad de Castilla-La Mancha Paseo de la Universidad 4 13071 Ciudad Real, Spain macario.polo@uclm.es

More information

UML-Based Conceptual Modeling of Pattern-Bases

UML-Based Conceptual Modeling of Pattern-Bases UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an

More information

Object-Oriented Analysis and Design Using UML (OO-226)

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

A Lightweight Language for Software Product Lines Architecture Description

A Lightweight Language for Software Product Lines Architecture Description A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN

More information

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called Q.1 Short Questions Marks 1. Considering functional dependency, one in which removal from some attributes must affect dependency is called 01 A. full functional dependency B. partial dependency C. prime

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 19 Analysis Patterns Part 2 1 Supporting Patterns The supporting patterns describe how to take analysis patterns and apply them: Layered

More information

DESIGNING A TOOL TO MAP UML CLASS DIAGRAM INTO RELATIONAL DATABASE

DESIGNING A TOOL TO MAP UML CLASS DIAGRAM INTO RELATIONAL DATABASE DESIGNING A TOOL TO MAP UML CLASS DIAGRAM INTO RELATIONAL DATABASE Mohd Khalid Awang 1 and Nur Lian Labadu 2 Faculty of Informatics University of Sultan Zainal Abidin (UniSZA) Gong Badak Campus, Kuala

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Saikat Banerjee Page 1

Saikat Banerjee Page 1 1. What s the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry I-Chen Wu 1 and Shang-Hsien Hsieh 2 Department of Civil Engineering, National Taiwan

More information

HyperFrame - A Framework for Hypermedia Authoring

HyperFrame - A Framework for Hypermedia Authoring HyperFrame - A Framework for Hypermedia Authoring S. Crespo, M. F. Fontoura, C. J. P. Lucena, D. Schwabe Pontificia Universidade Católica do Rio de Janeiro - Departamento de Informática Universidade do

More information

Relational Database Systems Part 01. Karine Reis Ferreira

Relational Database Systems Part 01. Karine Reis Ferreira Relational Database Systems Part 01 Karine Reis Ferreira karine@dpi.inpe.br Aula da disciplina Computação Aplicada I (CAP 241) 2016 Database System Database: is a collection of related data. represents

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

Objective Questions. BCA Part III Paper XIX (Java Programming) page 1 of 5

Objective Questions. BCA Part III Paper XIX (Java Programming) page 1 of 5 Objective Questions BCA Part III page 1 of 5 1. Java is purely object oriented and provides - a. Abstraction, inheritance b. Encapsulation, polymorphism c. Abstraction, polymorphism d. All of the above

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Summarize UML Deployment and Component notation. Design a framework with the Template Method, State, and Command patterns. Introduce issues in object-relational (O-R)

More information

POO - Object Oriented Programming

POO - Object Oriented Programming Coordinating unit: Teaching unit: Academic year: Degree: ECTS credits: 2018 230 - ETSETB - Barcelona School of Telecommunications Engineering 701 - AC - Department of Computer Architecture BACHELOR'S DEGREE

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

Behavioral Design Patterns Used in Data Structures Implementation

Behavioral Design Patterns Used in Data Structures Implementation Behavioral Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Importance of Rational ROSE in Software Development Process Models

Importance of Rational ROSE in Software Development Process Models Importance of Rational ROSE in Software Development Process Models Dr. Ahmad Al-Rababah Rational ROSE An introduction The advantages of visual modeling Modeling is a way of thinking about the problems

More information

Using context information to generate dynamic user interfaces

Using context information to generate dynamic user interfaces Using context information to generate dynamic user interfaces Xavier Alamán, Rubén Cabello, Francisco Gómez-Arriba, Pablo Haya, Antonio Martinez, Javier Martinez, Germán Montoro Departamento de Ingeniería

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

Implementing a Real-Time Architecting Method in a Commercial CASE Tool

Implementing a Real-Time Architecting Method in a Commercial CASE Tool Implementing a Real-Time Architecting Method in a Commercial CASE Tool José L. Fernández-Sánchez Escuela Técnica Superior de Ingenieros Industriales C/ José Gutiérrez Abascal 2 28006 Madrid - Spain Phone:

More information

Chapter Outline. Note 1. Overview of Database Design Process Example Database Application (COMPANY) ER Model Concepts

Chapter Outline. Note 1. Overview of Database Design Process Example Database Application (COMPANY) ER Model Concepts Chapter Outline Overview of Database Design Process Example Database Application (COMPANY) ER Model Concepts Entities and Attributes Entity Types, Value Sets, and Key Attributes Relationships and Relationship

More information

SQL DDL. CS3 Database Systems Weeks 4-5 SQL DDL Database design. Key Constraints. Inclusion Constraints

SQL DDL. CS3 Database Systems Weeks 4-5 SQL DDL Database design. Key Constraints. Inclusion Constraints SQL DDL CS3 Database Systems Weeks 4-5 SQL DDL Database design In its simplest use, SQL s Data Definition Language (DDL) provides a name and a type for each column of a table. CREATE TABLE Hikers ( HId

More information

AC : EXPLORATION OF JAVA PERSISTENCE

AC : EXPLORATION OF JAVA PERSISTENCE AC 2007-1400: EXPLORATION OF JAVA PERSISTENCE Robert E. Broadbent, Brigham Young University Michael Bailey, Brigham Young University Joseph Ekstrom, Brigham Young University Scott Hart, Brigham Young University

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

CONTRACTUAL SPECIFICATION OF COMPONENT USING VIRTUAL INTERFACE

CONTRACTUAL SPECIFICATION OF COMPONENT USING VIRTUAL INTERFACE CONTRACTUAL SPECIFICATION OF COMPONENT USING VIRTUAL INTERFACE Eustache MUTEBA Ayumba Researcher/Lecturer Correspondent of IMIA, NEM and EASST in Democratic Republic of Congo Email: emuteba@hotmail.fr

More information

CSC9T4: Object Modelling, principles of OO design and implementation

CSC9T4: Object Modelling, principles of OO design and implementation CSC9T4: Object Modelling, principles of OO design and implementation CSCU9T4 Spring 2016 1 Class diagram vs executing program The class diagram shows us a static view of the responsibilities and relationships

More information

An Experimental Command and Control Information System based on Enterprise Java Bean Technology

An Experimental Command and Control Information System based on Enterprise Java Bean Technology An Experimental Command and Control Information System based on Enterprise Java Technology Gerhard Bühler & Heinz Faßbender Research Establishment for Applied Sciences Research Institute for Communication,

More information

Use the below enhanced Entity Relationship diagram for relevant questions on this quiz

Use the below enhanced Entity Relationship diagram for relevant questions on this quiz Use the below enhanced Entity Relationship diagram for relevant questions on this quiz Phone Donation OrganizationID Sponsor M Supports N SName ----------- Stage FID Festival Location N M d Performs On

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

Applying ISO/IEC Quality Model to Quality Requirements Engineering on Critical Software

Applying ISO/IEC Quality Model to Quality Requirements Engineering on Critical Software Applying ISO/IEC 9126-1 Quality Model to Quality Engineering on Critical Motoei AZUMA Department of Industrial and Management Systems Engineering School of Science and Engineering Waseda University azuma@azuma.mgmt.waseda.ac.jp

More information

ENORM: An Essential Notation for Object-Relational Mapping Alexandre Torres Instituto de Informática, UFRGS Porto Alegre, Brazil

ENORM: An Essential Notation for Object-Relational Mapping Alexandre Torres Instituto de Informática, UFRGS Porto Alegre, Brazil ENORM: An Essential Notation for Object-Relational Mapping Alexandre Torres Instituto de Informática, UFRGS Porto Alegre, Brazil atorres@inf.ufrgs.br Renata Galante Instituto de Informática, UFRGS Porto

More information

Object Oriented Software Development CIS Today: Object Oriented Analysis

Object Oriented Software Development CIS Today: Object Oriented Analysis Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis

More information

Basic Properties of Styles

Basic Properties of Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic

More information

Systems Analysis and Design in a Changing World, Fourth Edition. Chapter 12: Designing Databases

Systems Analysis and Design in a Changing World, Fourth Edition. Chapter 12: Designing Databases Systems Analysis and Design in a Changing World, Fourth Edition Chapter : Designing Databases Learning Objectives Describe the differences and similarities between relational and object-oriented database

More information

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Sung Hee Park Department of Mathematics and Computer Science Virginia State University September 18, 2012 The Object-Oriented Paradigm

More information

Design and Evolution of an Agent-Based CASE System for OOAD

Design and Evolution of an Agent-Based CASE System for OOAD Proceedings of ATS 2003 206 Design and Evolution of an -Based CASE System for OOAD Dong Liu, Kalaivani Subramaniam, Behrouz H. Far, and Armin Eberlein Department of Electrical and Computer Engineering

More information

A Model Driven Approach to Design Web Services in a Web Engineering Method 1

A Model Driven Approach to Design Web Services in a Web Engineering Method 1 A Model Driven Approach to Design Web Services in a Web Engineering Method 1 Marta Ruiz, Pedro Valderas, Victoria Torres, Vicente Pelechano 1 Departamento de Sistemas Informáticos y Computación Universidad

More information

Unit 1 Lesson 4 Representing Data. Copyright Houghton Mifflin Harcourt Publishing Company

Unit 1 Lesson 4 Representing Data. Copyright Houghton Mifflin Harcourt Publishing Company Florida Benchmarks SC.6.N.1.1 Define a problem from the sixth grade curriculum, use appropriate reference materials to support scientific understanding, plan and carry out scientific investigation of various

More information

A Mapping of Common Information Model: A Case Study of Higher Education Institution

A Mapping of Common Information Model: A Case Study of Higher Education Institution A Mapping of Common Information Model: A Case Study of Higher Education Institution Abdullah Fajar, Setiadi Yazid, Mame S. Sutoko Faculty of Engineering, Widyatama University, Indonesia E-mail : {abdullah.fajar,

More information

Let s briefly review important EER inheritance concepts

Let s briefly review important EER inheritance concepts Let s briefly review important EER inheritance concepts 1 is-a relationship Copyright (c) 2011 Pearson Education 2 Basic Constraints Partial / Disjoint: Single line / d in circle Each entity can be an

More information

Chapter. Relational Database Concepts COPYRIGHTED MATERIAL

Chapter. Relational Database Concepts COPYRIGHTED MATERIAL Chapter Relational Database Concepts 1 COPYRIGHTED MATERIAL Every organization has data that needs to be collected, managed, and analyzed. A relational database fulfills these needs. Along with the powerful

More information

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Modeling Applications using Language Mappings Programmer s Reference Manual How to use this Reference Card: The consists of a set of fundamental modeling elements which appear

More information

CLEO III Cathode Hit Calibration

CLEO III Cathode Hit Calibration CLEO III Cathode Hit Calibration Dawn K. Isabel Department of Electrical and Computer Engineering, Wayne State University, Detroit, MI, 48202 Abstract The drift chamber cathodes for CLEO III are located

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

More information

About Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals

More information

Information Management (IM)

Information Management (IM) 1 2 3 4 5 6 7 8 9 Information Management (IM) Information Management (IM) is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information;

More information

Chapter 6 Object Persistence, Relationships and Queries

Chapter 6 Object Persistence, Relationships and Queries Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 6 Object Persistence, Relationships and Queries Object Persistence

More information

Lesson 9: Custom JavaScript Objects

Lesson 9: Custom JavaScript Objects Lesson 9: Custom JavaScript Objects Objectives Create a custom JavaScript object Define properties and methods of custom objects Create new object instances Create client-side arrays using custom objects

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

Topics. Designing the program. Chapter 9 Program and Transaction Design. (c) Addison Wesley Chapter 9

Topics. Designing the program. Chapter 9 Program and Transaction Design. (c) Addison Wesley Chapter 9 MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 9 Program and Transaction Design Copyright 2000 by Addison Wesley Version

More information

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August Polymorphism, Dynamic Binding and Interface 2 4 pm Thursday 7/31/2008 @JD2211 1 Announcement Next week is off The class will continue on Tuesday, 12 th August 2 Agenda Review Inheritance Abstract Array

More information

Rational Software White paper

Rational Software White paper Unifying Enterprise Development Teams with the UML Grady Booch Rational Software White paper 1 There is a fundamental paradox at play in contemporary software development. On the one hand, organizations

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

Course Outline. Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led

Course Outline. Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led About this Course In this course, experienced developers who know the basics of data access (CRUD)

More information

Designing Procedural 4GL Applications through UML Modeling

Designing Procedural 4GL Applications through UML Modeling Designing Procedural 4GL Applications through UML Modeling Shiri Davidson Mila Keren Sara Porat Gabi Zodik IBM Haifa Research Lab Matam - Advanced Technology Center Haifa 31905, Israel (shiri, keren, porat,

More information

CIS 330: Web-driven Web Applications. Lecture 2: Introduction to ER Modeling

CIS 330: Web-driven Web Applications. Lecture 2: Introduction to ER Modeling CIS 330: Web-driven Web Applications Lecture 2: Introduction to ER Modeling 1 Goals of This Lecture Understand ER modeling 2 Last Lecture Why Store Data in a DBMS? Transactions (concurrent data access,

More information

Transforming Transaction Models into ArchiMate

Transforming Transaction Models into ArchiMate Transforming Transaction Models into ArchiMate Sybren de Kinderen 1, Khaled Gaaloul 1, and H.A. (Erik) Proper 1,2 1 CRP Henri Tudor L-1855 Luxembourg-Kirchberg, Luxembourg sybren.dekinderen, khaled.gaaloul,

More information

Curriculum Guide. ThingWorx

Curriculum Guide. ThingWorx Curriculum Guide ThingWorx Live Classroom Curriculum Guide Introduction to ThingWorx 8 ThingWorx 8 User Interface Development ThingWorx 8 Platform Administration ThingWorx 7.3 Fundamentals Applying Machine

More information

mapping IFC versions R.W. Amor & C.W. Ge Department of Computer Science, University of Auckland, Auckland, New Zealand

mapping IFC versions R.W. Amor & C.W. Ge Department of Computer Science, University of Auckland, Auckland, New Zealand mapping IFC versions R.W. Amor & C.W. Ge Department of Computer Science, University of Auckland, Auckland, New Zealand ABSTRACT: In order to cope with the growing number of versions of IFC schema being

More information

LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS. Module 1: What we are going to Learn. Prerequisites

LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS. Module 1: What we are going to Learn. Prerequisites LEARN TO DEVELOP A LIVE PROJECT AS PER IT STANDARDS Module 1: What we are going to Learn Here we will explain you everything you are going to learn in this course. This module contains an introduction

More information

A New Communication Theory on Complex Information and a Groundbreaking New Declarative Method to Update Object Databases

A New Communication Theory on Complex Information and a Groundbreaking New Declarative Method to Update Object Databases A New Communication Theory on Complex Information and a Groundbreaking New Declarative Method to Update Object Databases Heikki Virkkunen, Email: hvirkkun@gmail.com, Date: 5 April 2016 This article as

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Computer Science Applications to Cultural Heritage. Relational Databases

Computer Science Applications to Cultural Heritage. Relational Databases Computer Science Applications to Cultural Heritage Relational Databases Filippo Bergamasco (filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco DAIS, Ca Foscari University of Venice Academic

More information

780 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 12, NO. 6, DECEMBER José Galindo, Angélica Urrutia, Ramón A. Carrasco, and Mario Piattini

780 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 12, NO. 6, DECEMBER José Galindo, Angélica Urrutia, Ramón A. Carrasco, and Mario Piattini 780 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 12, NO. 6, DECEMBER 2004 Relaxing Constraints in Enhanced Entity-Relationship Models Using Fuzzy Quantiers José Galindo, Angélica Urrutia, Ramón A. Carrasco,

More information

A Systematic and Lightweight Method to Identify Dependencies Between User Stories

A Systematic and Lightweight Method to Identify Dependencies Between User Stories A Systematic and Lightweight Method to Identify Dependencies Between User Stories Arturo Gomez 1, Gema Rueda 1 and Pedro P. Alarc on 2 1 Blekinge Institute of Technology Sweden {argo09,geru09}@student.bth.se

More information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in

More information

II. Data Models. Importance of Data Models. Entity Set (and its attributes) Data Modeling and Data Models. Data Model Basic Building Blocks

II. Data Models. Importance of Data Models. Entity Set (and its attributes) Data Modeling and Data Models. Data Model Basic Building Blocks Data Modeling and Data Models II. Data Models Model: Abstraction of a real-world object or event Data modeling: Iterative and progressive process of creating a specific data model for a specific problem

More information

Interfaces. Quick Review of Last Lecture. November 6, Objects instances of classes. Static Class Members. Static Class Members

Interfaces. Quick Review of Last Lecture. November 6, Objects instances of classes. Static Class Members. Static Class Members November 6, 2006 Quick Review of Last Lecture ComS 207: Programming I (in Java) Iowa State University, FALL 2006 Instructor: Alexander Stoytchev Objects instances of a class with a static variable size

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation A domain model-centric approach to J2EE development Keiron McCammon CTO Versant Corporation 1 Patterns of Enterprise Application Architecture Martin Fowler, at. al. Overview What is a domain model centric

More information

DATABASE DESIGN I - 1DL300

DATABASE DESIGN I - 1DL300 DATABASE DESIGN I - 1DL300 Fall 2009 An introductury course on database systems http://user.it.uu.se/~udbl/dbt1-ht2009/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/ht09/ Kjell Orsborn Uppsala

More information

Modeling Databases Using UML

Modeling Databases Using UML Modeling Databases Using UML Fall 2017, Lecture 4 There is nothing worse than a sharp image of a fuzzy concept. Ansel Adams 1 Software to be used in this Chapter Star UML http://www.mysql.com/products/workbench/

More information

The Object Oriented Paradigm

The Object Oriented Paradigm The Object Oriented Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The OO Paradigm Procedural Abstraction Abstract Data Types Constructors, Methods, Accessors and Mutators Coupling

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

PDC: Persistent Data Collections pattern

PDC: Persistent Data Collections pattern PDC: Persistent Data Collections pattern Tiago Massoni Vander Alves Sérgio Soares Paulo Borba Centro de Informática Universidade Federal de Pernambuco Introduction The object oriented applications layer

More information

Experiment no 4 Study of Class Diagram in Rational Rose

Experiment no 4 Study of Class Diagram in Rational Rose Experiment no 4 Study of Class Diagram in Rational Rose Objective-: To studyclass Diagram in Rational Rose. References-: www.developer.com The Unified Modeling Language User Guide by Grady Booch Mastering

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 5-1

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 5-1 Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 5-1 Chapter 5 The Relational Data Model and Relational Database Constraints Copyright 2007 Pearson Education, Inc. Publishing

More information

Using Design Patterns in Education and Tutoring for the Software Systems Projects in Economic

Using Design Patterns in Education and Tutoring for the Software Systems Projects in Economic Using Design Patterns in Education and Tutoring for the Software Systems Projects in Economic Cornelia NOVAC-UDUDEC cornelia.novac@ugal.ro Dunarea de Jos University of Galati Abstract. The paper deals

More information

Database System Concepts and Architecture. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Database System Concepts and Architecture. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Database System Concepts and Architecture Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Outline Data Models and Their Categories History of Data Models Schemas, Instances,

More information

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI 1 2 Overview Distributed OZ Java RMI CORBA IDL IDL VS C++ CORBA VS RMI 3 Distributed OZ Oz Language Multi paradigm language, strong support for compositionality and

More information

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Credit where Credit is Due. Goals for this Lecture. Introduction to Design Credit where Credit is Due Lecture 17: Intro. to Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material presented in this lecture is taken

More information

Relational Algebra Part I. CS 377: Database Systems

Relational Algebra Part I. CS 377: Database Systems Relational Algebra Part I CS 377: Database Systems Recap of Last Week ER Model: Design good conceptual models to store information Relational Model: Table representation with structures and constraints

More information

Composability Test of BOM based models using Petri Nets

Composability Test of BOM based models using Petri Nets I. Mahmood, R. Ayani, V. Vlassov and F. Moradi 7 Composability Test of BOM based models using Petri Nets Imran Mahmood 1, Rassul Ayani 1, Vladimir Vlassov 1, and Farshad Moradi 2 1 Royal Institute of Technology

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Enhanced Entity-Relationship (EER) Modeling

Enhanced Entity-Relationship (EER) Modeling CHAPTER 4 Enhanced Entity-Relationship (EER) Modeling Copyright 2017 Ramez Elmasri and Shamkant B. Navathe Slide 1-2 Chapter Outline EER stands for Enhanced ER or Extended ER EER Model Concepts Includes

More information

Software Architectures

Software Architectures Software Architectures 2 SWS Lecture 1 SWS Lab Classes Hans-Werner Sehring Miguel Garcia Arbeitsbereich Softwaresysteme (STS) TU Hamburg-Harburg HW.Sehring@tuhh.de Miguel.Garcia@tuhh.de http://www.sts.tu-harburg.de/teaching/ss-05/swarch/entry.html

More information

Topic 7: Inheritance. Reading: JBD Sections CMPS 12A Winter 2009 UCSC

Topic 7: Inheritance. Reading: JBD Sections CMPS 12A Winter 2009 UCSC Topic 7: Inheritance Reading: JBD Sections 7.1-7.6 1 A Quick Review of Objects and Classes! An object is an abstraction that models some thing or process! Examples of objects:! Students, Teachers, Classes,

More information

The Contract Pattern. Design by contract

The Contract Pattern. Design by contract The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,

More information