Derivation of Architecture and Behavior from Static Diagrams, Widely-Accepted Requirements and Design Patterns
|
|
- Madeleine Ball
- 5 years ago
- Views:
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)
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 informationAppendix 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 informationAn 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 informationUML-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 informationObject-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 informationChapter 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 informationA 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 information1. 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 informationKeywords: 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 informationPatterns 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 informationDESIGNING 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 informationWhat 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 informationZhifu 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 informationSaikat 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 informationMODELLING 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 informationAn 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 informationHyperFrame - 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 informationRelational 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 informationObject-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 informationObjective 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 informationSoftware 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 informationPOO - 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 informationObject-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 informationAutomatic 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 informationBehavioral 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 informationImportance 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 informationUsing 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 informationChapter 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 informationImplementing 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 informationChapter 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 informationSQL 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 informationAC : 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 informationIngegneria 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 informationCONTRACTUAL 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 informationCSC9T4: 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 informationAn 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 informationUse 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 informationThe 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 informationApplying 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 informationENORM: 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 informationObject 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 informationBasic 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 informationSystems 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 informationObject-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 informationDesign 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 informationA 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 informationUnit 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 informationA 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 informationLet 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 informationChapter. 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 informationUnified 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 informationCLEO 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 informationAn 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 informationCopyright 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 informationAbout 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 informationInformation 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 informationChapter 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 informationLesson 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 informationTowards 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 informationTopics. 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 informationAnnouncement. 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 informationRational 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 informationChapter 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 informationCourse 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 informationDesigning 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 informationCIS 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 informationTransforming 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 informationCurriculum 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 informationmapping 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 informationLEARN 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 informationA 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 informationJOURNAL 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 informationInternational 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 informationComputer 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 information780 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 informationA 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 informationObject 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 informationII. 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 informationInterfaces. 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 informationAP 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 informationA 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 informationDATABASE 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 informationModeling 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 informationThe 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 informationC++ (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 informationPDC: 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 informationExperiment 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 informationIntroduction 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 informationCopyright 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 informationUsing 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 informationDatabase 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 informationPROFESSOR: 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 informationCredit 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 informationRelational 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 informationComposability 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 informationSymbol 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 informationEnhanced 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 informationSoftware 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 informationTopic 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 informationThe 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