Architecture Component Development - generating more code from your UML models

Size: px
Start display at page:

Download "Architecture Component Development - generating more code from your UML models"

Transcription

1 Aonix Architecture Component Development - generating more code from your UML models Software through Pictures White Paper May 2000 Stefan Huber, Siemens AG Österreich, PSE Heinz G. Seidl, Aonix GmbH Page 1 of 14

2 Architecture Component Development The most important thing to design properly is the user s conceptual model. Everything else should be subordinate to making that model clear, obvious, and substantial. That is almost exactly the opposite of how most software is designed. Terry Winograd in Bringing Design to Software Executive Summary The Unified Modeling Language (UML) provides a wide range of graphical notations and textual means to describe a software system in an abstract way. Depending upon the architecture of the system, the detailed design is often complex and difficult to maintain. This white paper discusses the Architecture Component Development (ACD) technology, a proven and comprehensive development approach, where the objective is to get a clearer, compact, more easily understandable and maintainable UML design model. Large parts, conceivably up to 70%, of the application implementation can be generated automatically from the design model according to the target application architecture. The advantages are obvious: dramatically higher productivity, better quality, and easier maintainability, whilst also assisting with creating reusable components. "A Model is an Abstraction of Reality" (UML User Guide) The relatively short history of software engineering marks a quest for higher levels of abstraction. Abstraction from the concrete implementation of a program towards the abstract user and business oriented requirements of the problem domain. Software development has evolved from machine code to symbolic assembler and on to procedural and more recently object oriented languages. Unfortunately, with the rise in the level of abstraction of programming languages, the level of complexity of the systems to be implemented has increased as well. In order to deal with this rise in complexity, systems were described with graphical languages and notations, from which textual implementation languages could be derived either manually or automatically using tools. Page 2 of 14

3 Today many systems are described graphically using the Unified Modeling Language (UML) which provides nine diagram types, and many graphical and textual elements to capture and model the requirements of a system. However, there is a basic flaw with this approach. Whilst we may achieve a greater understanding of the user and system requirements, only a small amount of these modelling elements are typically realised in the implemented system as source code. This leads to models which are constructed to achieve maximum code generation, rather than accurately representing the business or user requirements in a maintainable way. Are your UML Models an Abstraction of Reality? A design model should ideally specify a software system in an abstract way that is it should be an abstraction (higher level view) of the implementation. However, what typically happens, is that the class models are constructed as a direct copy of the implementation s static class structure, giving a one to one mapping. This is great for code generation, but results in models that are bloated with unnecessary details, making them difficult to modify and maintain. Instead of models illustrating a blueprint that describe the architecture, most models describe where each "brick" belongs. This concentration on the implementation view is entirely understandable after all, since the physical realisation of this view is the only piece of the overall puzzle that the business and the users see and interact with. The majority of software developers and UML users have more experience in brick-laying (coding software) than in creating architectural models. The advantages of a good architectural design are still not generally recognized enough in day to day practice. This concentration on the implementation view means that a lot of effort is required for low potential gain - as illustrated in Figure 1. Where tools are used, code is often only generated from the UML Class Model, which to be effective means that the degree of abstraction in the model is very low compared to the implementation. Therefore, in most projects, many very detailed class models are created, just so that code can be generated, leaving the other features of UML unused. Page 3 of 14

4 UML Model Application Code 50 % Class traditional code generation generated % State Use Case Scenario Code to be manually implemented % Other Figure 1: High modelling effort typically yields very little source code Since most UML tools only generate 10% - 15% of the application source code automatically, even with detailed models of low abstraction, the rest of the system has to be coded manually. Some approaches will provide a higher percentage of generated code, but this is offered at a price of reduced flexibility, with limited architectures, a narrow selection of implementation languages, and restrictions on modifying the generated source code. Reduce modelling effort but increase the amount of generated code In order to translate a 1 to 1 design model into source code, it is necessary, subject to architecture, conventions and programming language, to include many details in the model, which are actually redundant. Redundant because these details can be derived from the architecture or design conventions or from standard design patterns, and furthermore because these details are typically used identically in many classes. There are many examples where this might be the case, and it is in these areas where code can be generated automatically, if these details and conventions are expressed in a form that is accessible by an intelligent generator, in conjunction with the analysis and design model. These include: Set and get operations read and write functions for attributes. Page 4 of 14

5 Standard methods e.g. constructors/destructors that solve various standard tasks depending on the architecture or the project s conventions. Standard interfaces, design patterns or design conventions The project or architecture can define these. For example, an important portion of component technologies such as Enterprise Java Beans (EJB) is the definition of special design conventions and standard interfaces, which must be met. Help classes Factory classes that generate or load new business objects. Test frame classes that support the class and component test of objects or business objects. Code to support testing Standardised functions and code fragments that are implemented in every class. Persistence How information is stored/retrieved from a relational or object-oriented database. Logging Error, event and testware logging. If all these details are represented in the design model, it becomes unnecessarily cluttered, overloaded, and difficult to maintain and modify. Further the model does not accurately represent the business model, but is polluted with non-core application details. In practice, models are often somewhere between these two extremes: A compact, well structured design model that has no implementation details. The implementation is 100 % manually coded. Its disadvantage is that the design model and the implementation will eventually diverge. Highly detailed, but confusing class models that accurately reflect the code. However, this model is often not generated before coding, but rather as pure graphical documentation of the code by using roundtrip engineering. What is actually required is a compact, well-structured design model, without unnecessary detail, and where as much code as possible can be generated automatically. We call this approach and its supporting technology Architecture Component Development (ACD). The following sections will describe this approach and supporting tools. Page 5 of 14

6 Architectural Aspects of Applications and Systems Complex application systems generally have some semblance of structure, even if this has not been clearly articulated in a model or design document for example. Layers, structures, and patterns that encapsulate the actual architecture of the application are almost always present, but are often scattered throughout the implementation. CORBA applications are built around an infrastructure for distributed systems based on remote object invocation. Figure. 2 is an example classification of a CORBA 3-tier application into high level areas or architectural components. GUI Client Business Logic Mainly manually implemented or with GUI-Builder Test classes Persistency Can be generated mainly from the UML model Architectural Infrastructure Figure. 2: Example code areas for a three tiered CORBA architecture Figure 2 suggests that the different areas of the application are cleanly layered and separated. This does need not to be the case, since code like the architectural infrastructure may be pervasive in the implementation. The architectural infrastructure in this case consists of aspects necessary for a 3-tier architecture such as multi-threading and support for transactions. However, in most applications there are aspects such as memory management, error handling, design patterns, persistence, tasking etc. that are structural aspects of the application, but cut across the functional areas of the application. These are to some extent standards, conventions, language idioms and are therefore key to the application, but are not part of the business or system functionality. Of the areas shown above, only the business logic has to be completely manually modeled and implemented. With ACD, all the other pieces, the test driver, persistence Page 6 of 14

7 and architectural infrastructure environments can mostly be generated automatically from UML models, with a GUI builder being used to generate the GUI client code. Transforming High Level Designs into Applications As a rule, it is advisable to differentiate between technical and domain aspects of architecture [Ambler 97]. Typically, up to a dozen or more implementation classes will arise out of a conceptual business object depending upon the architecture. [CDS 98] comes to a similar conclusion. Figure 2 shows the details of a design at a high level, which still concentrates mainly on domain aspects (business objects). At the lower level, technical and implementation details are added to the domain aspects. High level design Room numbeds price Business object reserve OTSTransObj_i Patterns Architecture Conventions Low level design Room_p select (obj:room_i*) insert (obj:room_i*) update (obj:room_i*) delete (obj:room_i*) Room_i business logic CORBA Mgmt. Persistence Test features RoomFactory... Room_scr Figure. 3: Mapping a high level design into implementation The domain elements of the business objects, which are visible at the higher level in the design, are also found in the detailed design. In Figure 3 these are labelled as business logic in the implementation class Room_I. It is important that in practically all business objects, that the same architectural conventions or design patterns play a similar role when refining the high level design to the detailed design. For example, persistence and CORBA factory classes can be generated and implemented in the same way for all the business objects, avoiding duplication, and the introduction of bugs and inconsistencies between different implementations for the same mechanism. Instead of implementing this manually for all business classes, ACD uses templates which contain the knowledge of how to transform the high level design into the Page 7 of 14

8 implementation (see Figure. 4). Thus, there is no longer a requirement to explicitly create the implementation level design. High level design Room numbeds price reserve ACD Transformation ACD Templates Code IDL Code C++ Code business Factories Testcode Persistency Figure. 4: Automatic generation from a high level design A similar treatment of architectural aspects and extensive use of code generation allows a design to be kept at a higher level of abstraction - models are therefore more compact, easier to understand and maintain. Therefore, it is not necessary to create dozens of implementation classes explicitly in the UML design model for every conceptual business object. This information is captured in a set of templates, which defines a company or application specific architecture and all the associated standards, conventions and common mechanisms. Design and implementation patterns as well as architectural details, as they are required in the field of component software and object oriented frameworks, can mostly be generated automatically. The design model can therefore be transformed in a manner that goes beyond simple code generation. ACD thus enables the creation of a UML design of the domain. The design remains clear and easy to understand and furthermore, it is much easier to keep updated throughout the entire project life cycle and to achieve re-use of both design, implementation and of course the templates. Page 8 of 14

9 Capturing the Architecture Aspects of an Application In order to be able to use ACD, it is advisable to employ a tool that supports the UML as totally and comprehensively as possible. The goal of modelling is to represent all aspects of the application as precisely as possible and then to transform the model into source code for the appropriate platform The knowledge about the implementation of the architectural model is explicitly presented in a simple, declarative template language. This language enables access to the UML modelling elements and is much simpler but also much more abstract than the scripting languages used by current visual modelling tools. In this way, it is possible to generate with relatively little effort between 30% and 70% of the source code automatically from the repository of a UML modelling tool, using both the class and state models. Templates can be constructed to support many languages, and different architectures, thus a number of templates have been put together to support the generation of C code from UML models. Leveraging more UML Constructs into the Implementation In addition to the examples mentioned above for conventions and design patterns there are modelling elements in UML that cannot be mapped directly to the implementation language constructs. For example: Associations Static attributes/functions, e.g. in CORBA-IDL Associations, such as in CORBA IDL State models The implementation of these and other UML constructs can be captured in templates, so that the architectural or project specific constraints for implementation can be automatically applied across a project. Directives, using tagged values and stereotypes can determine a particular implementation strategy. Furthermore, templates can be reused between projects. Page 9 of 14

10 De-coupling the analysis and design from the implementation One of the most powerful concepts of ACD is type mapping, which allows the decoupling of types used in the analysis and design from the types needed in the implementation. Type mapping also helps to generate all the necessary include, forward or import statements allowing the creation of 100% compilable code. Furthermore, technology specific type handling, e.g. in the CORBA environment the mapping of the CORBA-types to the respective implementation language types, and even project specific type conventions, can be supported in the framework of type mapping. Roundtrip Engineering Considered Harmful Roundtrip-engineering has been coined to described the potential synchronisation between models and source using reverse engineering. In practice this is tricky to use effectively, since it only works in the case where there is a 1:1 correspondence between code and design model. Starting out with an abstract model will result in a model that mirrors the source code - with all the attendant problems. When using ACD there is, however, no 1:1 correspondence between classes in the UML-tool and in the source code (see Figure. 4). Rather, applying transformation rules to the design model generates complex implementation code. For example, depending upon the project or architecture, additional details could emerge in the form of classes (such as the factory classes) or standard operations (e.g. setter, getter) during the transformation from design into implementation. All of this automatically generated code does not add any relevant information to the design and therefore it does not make sense to reverse engineer it into a class model. Roundtrip engineering from a software engineering perspective is questionable anyway. It makes even less sense when using ACD. Instead, an iterative development process is suggested where all relevant design changes are made in the design model. Page 10 of 14

11 Design model Reverse Engineering??? ACD ACD Transformation IDL Code C++ Business Factory Test Code Persistence Figure 4. 1:n Mapping of the design into the implementation ACD improves Productivity and Quality Obviously, the effort to describe the transformation rules in the ACD template language is small compared to the effort of the manual implementation of the code. Depending upon the architecture one can expect that roughly 50% of the source code for an application can be automatically generated. Each manually implemented code line is a possible source for bugs and therefore code re-work and must be changed manually when modification is necessary. Generated code has a higher quality, is consistent, can be very easily adapted, through modification of the templates. Therefore, with ACD, dramatic improvements in productivity and quality are the result. Especially during later project stages, like maintenance or further development, the advantages of ACD become even more noticeable. Because of the fact that architecture specifics can be implemented by using ACD-templates, it even becomes possible to reuse architectures. Page 11 of 14

12 Making More Effective Use of Technology Specialists Many software development projects and IT departments of larger companies do not have enough technology specialists to implement the business and user requirements using state of the art technology. For IT departments it is already hard enough to understand all the requirements to support the business's core needs. To be up to date on all the new developments in technology parallel to this is almost impossible. This, in turn, results in application and domain specialists being forced to get involved with database design and to trouble themselves with COM. With ACD, the application specialists can concentrate on the business view. The few technology specialists write templates and develop architectural concepts as well as develop central technical classes. There is little need to document design and coding rules in project manuals,, which are usually hard to communicate and check anyway. Instead, the templates will automatically take care of many of these rules. Summary Architecture Component Development (ACD) provides new mechanisms and tools, which allow the use of UML in a software development project as a consistent and upto-date information base. There is no need to create and maintain a detailed design model, which is overburdened with implementation details. ACD helps to realise many sought after benefits in software projects today. To try and bring in projects on schedule, whilst meeting budgets, required functionality and quality objectives with the available staff. Page 12 of 14

13 References and Literature [Ambler 97] Scott W. Ambler: Architecture Driven Modeling. Software Development, Dec.97, pg.71f [AOP] Aspect Oriented Programming (see: [Booch 96] G.Booch: Managing the Object-Oriented Project. Addison-Wesley 96, pg.46 [CDS 98] Component Development Strategies, Sept. 98. Cutter Group, pg.4 [DeMarco 98] Tom DeMarco: The deadline, Dorset House, 1997 [Winograd 96] Terry Winograd: Bringing Design to Software, ACM Press, 1996 [Boehm 87] Barry Boehm: Improving Software Productivity, IEEE Software 9/1987 Page 13 of 14

14 To obtain more information, please contact Aonix at or your local Aonix office. Aonix World Headquarters Phone: (800) 97-AONIX Fax: (858) France Phone: +33 (0) Fax: +33 (0) info@aonix.fr United Kingdom Phone: +44 (0) Fax: +44 (0) info@aonix.co.uk Karlsruhe, Germany Phone: +49 (0) 7 21/ Fax: +49 (0) 7 21/ info@aonix.de München, Germany Phone: +49 (0) 89/ Fax: +49 (0) 89/ info@aonix.de Sweden Phone: +46 (0) Fax: +46 (0) info@aonix.se 2000 Aonix. All rights reserved. Aonix is a registered trademark of Aonix Corporation. All other company and product names are the trademarks of their respective companies. SMS Page 14 of 14

Aonix. Jump starting ACD code generators. Software through Pictures. White Paper June Andreas Graf, Aonix GmbH. StP ACD Jumpstarting.

Aonix. Jump starting ACD code generators. Software through Pictures. White Paper June Andreas Graf, Aonix GmbH. StP ACD Jumpstarting. Aonix Jump starting ACD code generators. Software through Pictures White Paper June 2001 Andreas Graf, Aonix GmbH StP ACD Jumpstarting.doc Abstract Using the template based code generator ACD improves

More information

TeleUSE. User Interface Management System. Aonix. for Windows. Product Overview

TeleUSE. User Interface Management System. Aonix. for Windows. Product Overview Product Overview TeleUSE for Windows User Interface Management System TeleUSE User Interface Management System World-class Graphical User Interface Management System development toolset Common toolset

More information

The UML Extension Mechanisms

The UML Extension Mechanisms Jasmine Farhad Dept of Computer Science University College London 13-Dec-02 The UML Extension Mechanisms Introduction There is an important need for organisations to evolve in today s market. This has

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

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

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

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development

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

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

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

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

Components Based Design and Development. Unit 3: Software Design Quick Overview

Components Based Design and Development. Unit 3: Software Design Quick Overview Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 3: Software Design Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos

More information

Model Driven Architecture

Model Driven Architecture Name: Anish Mehta Year: 3 Lecturer: Dr. Wolfgang Emmerich Supervisor: Dr. Graham Roberts Model Driven Architecture For many years architects have been designing buildings by looking at other architects

More information

Defining Domain-Specific Modeling Languages

Defining Domain-Specific Modeling Languages Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often

More information

INTERNAL ASSESSMENT TEST III Answer Schema

INTERNAL ASSESSMENT TEST III Answer Schema INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object

More information

Applying UML Modeling and MDA to Real-Time Software Development

Applying UML Modeling and MDA to Real-Time Software Development Michael Benkel Aonix GmbH www.aonix.de michael.benkel@aonix.de Applying UML Modeling and MDA to Real-Time Software Development The growing complexity of embedded real-time applications requires presentation

More information

21. Document Component Design

21. Document Component Design Page 1 of 17 1. Plan for Today's Lecture Methods for identifying aggregate components 21. Document Component Design Bob Glushko (glushko@sims.berkeley.edu) Document Engineering (IS 243) - 11 April 2005

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process 1. Business component model of the Cheesman/ Daniels process 2. Identifying business components Prof.

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

10.1 Big Objects, Business Objects, and UML Components

10.1 Big Objects, Business Objects, and UML Components II Black-Box Composition Systems 10. Finding Business s in a -Based Development Process Literature J. Cheesman, J. Daniels. UML s. Addison-Wesley. 1. The UML component model 2. Business component model

More information

Mapping UML Component Specifications to JEE Implementations

Mapping UML Component Specifications to JEE Implementations Journal of Computer Science 3 (10): 780-785, 2007 ISSN 1549-3636 2007 Science Publications Mapping UML Component Specifications to JEE Implementations Jyhjong Lin Department of Information Management,

More information

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT Zoran Stojanovic, Ajantha Dahanayake Faculty of Information Technology and Systems, Delft University of Technology,

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

Reflective Java and A Reflective Component-Based Transaction Architecture Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,

More information

Development of E-Institute Management System Based on Integrated SSH Framework

Development of E-Institute Management System Based on Integrated SSH Framework Development of E-Institute Management System Based on Integrated SSH Framework ABSTRACT The J2EE platform is a multi-tiered framework that provides system level services to facilitate application development.

More information

Component-based Architecture Buy, don t build Fred Broks

Component-based Architecture Buy, don t build Fred Broks Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements

More information

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative

More information

Best Practice for Creation and Maintenance of a SAS Infrastructure

Best Practice for Creation and Maintenance of a SAS Infrastructure Paper 2501-2015 Best Practice for Creation and Maintenance of a SAS Infrastructure Paul Thomas, ASUP Ltd. ABSTRACT The advantage of using metadata to control and maintain data and access to data on databases,

More information

Style-specific techniques to design product-line architectures

Style-specific techniques to design product-line architectures Style-specific techniques to design product-line architectures Philippe Lalanda Thomson-CSF Corporate Research Laboratory Phone: 33 1 69 33 92 90 Email: lalanda@thomson-lcr.fr Domaine de Corbeville 91404

More information

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master Oracle 1Z0-864 Java Enterprise Edition 5 Enterprise Architect Certified Master Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-864 Answer: A, C QUESTION: 226 Your company is bidding

More information

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE UDC:681.324 Review paper METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE Alma Butkovi Tomac Nagravision Kudelski group, Cheseaux / Lausanne alma.butkovictomac@nagra.com Dražen Tomac Cambridge Technology

More information

Variability Implementation Techniques for Platforms and Services (Interim)

Variability Implementation Techniques for Platforms and Services (Interim) Engineering Virtual Domain-Specific Service Platforms Specific Targeted Research Project: FP7-ICT-2009-5 / 257483 Variability Implementation Techniques for Platforms and Services (Interim) Abstract Creating

More information

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version : SUN 310-052 Sun Certified Enterprise Architect for J2EE 5 Download Full Version : http://killexams.com/pass4sure/exam-detail/310-052 combination of ANSI SQL-99 syntax coupled with some company-specific

More information

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart

More information

Model-based Middleware for Embedded Systems

Model-based Middleware for Embedded Systems Model-based Middleware for Embedded Systems Christian Salzmann, Martin Thiede BMW Car IT GmbH München, Germany christian.salzmann@bmw-carit.de martin.thiede@bmw-carit.de Markus Völter voelter ingenieurbüro

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

developer.* The Independent Magazine for Software Professionals

developer.* The Independent Magazine for Software Professionals developer.* The Independent Magazine for Software Professionals Improving Developer Productivity With Domain-Specific Modeling Languages by Steven Kelly, PhD According to Software Productivity Research,

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

Lecture Notes on CASE-Tools: Together

Lecture Notes on CASE-Tools: Together Lecture Notes on CASE-Tools: Together Software Engeneering Christoph Vilsmeier Technische Universität München Institut für Informatik 2 (based on slides from Günter Teubner) Friday, 10 th Nov. 2000 Christoph

More information

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns

More information

ACRONYMS AND GLOSSARY

ACRONYMS AND GLOSSARY Appendix A ACRONYMS AND GLOSSARY SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. 1 Acronyms Acronym 1NF 1ONF 2NF 2ONF 2ONF 3NF 3ONF API CASE CORBA CRUD DFD FLOOT IDL Java VM ODMG OMG OODBMS OOUI OQL ODBC OOCRUD

More information

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL INTERNATIONAL DESIGN CONFERENCE - DESIGN 2000 Dubrovnik, May 23-26, 2000. ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL N. Pavković, D. Marjanović Keywords: object oriented methodology, design process

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

Analysis and Design with the Universal Design Pattern

Analysis and Design with the Universal Design Pattern Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software

More information

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2008

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2008 Rapid Bottleneck Identification A Better Way to do Load Testing An Oracle White Paper June 2008 Rapid Bottleneck Identification A Better Way to do Load Testing. RBI combines a comprehensive understanding

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

2 The IBM Data Governance Unified Process

2 The IBM Data Governance Unified Process 2 The IBM Data Governance Unified Process The benefits of a commitment to a comprehensive enterprise Data Governance initiative are many and varied, and so are the challenges to achieving strong Data Governance.

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

Become a Champion Data Modeler with SQL Developer Data Modeler 3.0

Become a Champion Data Modeler with SQL Developer Data Modeler 3.0 Become a Champion Data Modeler with SQL Developer Data Modeler 3.0 Marc de Oliveira, Simplify Systems Introduction This presentation will show you how I think good data models are made, and how SQL Developer

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Prolaborate User Guides: Administrator Guide

Prolaborate User Guides: Administrator Guide Prolaborate User Guides: Administrator Guide Document Version: 0.6 Date 09 Feb 2017 Author: Ian Mitchell, Prolaborate Sales & Support, ian@prolaborate.com Release Notes: This is a draft of the Prolaborate

More information

FTT-ACP: Ready for the future in building cabling WHITEPAPER

FTT-ACP: Ready for the future in building cabling WHITEPAPER FTT-ACP: Ready for the future in building cabling WHITEPAPER Planners of cabling for offices and buildings have to keep their eyes on technological progress. Bandwidths are constantly increasing in order

More information

A Conceptual Model of the UML

A Conceptual Model of the UML CONTENT A Conceptual Model of the UML Building Blocks of the UML 1. Things [1.1] Structural Things (1.1.1) Class (1.1.2) Interface (1.1.3) Collaboration: (1.1.4) Use case (1.1.5) Components: (1.1.6) Node:

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

More information

Applying MDA Modeling to Development of Real-Time Software

Applying MDA Modeling to Development of Real-Time Software Applying MDA Modeling to Development of Real-Time Software Using a model-driven architecture approach to developing real-time systems offers developers enhanced communication of the requirements from domain

More information

Model Driven Architecture Targets Middleware Interoperability Challenges

Model Driven Architecture Targets Middleware Interoperability Challenges Model Driven Architecture Targets Middleware Interoperability Challenges by Richard Soley Chairman and Chief Executive Officer Object Management Group and the OMG Staff Strategy Group "CORBA was a powerful

More information

R/3 System Object-Oriented Concepts of ABAP

R/3 System Object-Oriented Concepts of ABAP R/3 System Object-Oriented Concepts of ABAP Copyright 1997 SAP AG. All rights reserved. No part of this brochure may be reproduced or transmitted in any form or for any purpose without the express permission

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

White Paper. Rose PowerBuilder Link

White Paper. Rose PowerBuilder Link White Paper Rose PowerBuilder Link Contents Overview 1 Audience...1 The Software Development Landscape...1 The Nature of Software Development...1 Better Software Development Methods...1 Successful Software

More information

Top of Minds Report series Data Warehouse The six levels of integration

Top of Minds Report series Data Warehouse The six levels of integration Top of Minds Report series Data Warehouse The six levels of integration Recommended reading Before reading this report it is recommended to read ToM Report Series on Data Warehouse Definitions for Integration

More information

Work groups meeting 3

Work groups meeting 3 Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

From Models to Components. Rapid Service Creation with

From Models to Components. Rapid Service Creation with From Models to Components Rapid Service Creation with Marc Born, Olaf Kath {born kath}@ikv.de Evolutions in Software Construction C O M P L E X I T Y Model Driven Architectures Meta Object Facility and

More information

Cypress Adopts Questa Formal Apps to Create Pristine IP

Cypress Adopts Questa Formal Apps to Create Pristine IP Cypress Adopts Questa Formal Apps to Create Pristine IP DAVID CRUTCHFIELD, SENIOR PRINCIPLE CAD ENGINEER, CYPRESS SEMICONDUCTOR Because it is time consuming and difficult to exhaustively verify our IP

More information

Design Recovery & Rebuild with X-Analysis

Design Recovery & Rebuild with X-Analysis MANAGEMENT OVERVIEW A GUIDE TO THE BENEFITS OF USING DESIGN RECOVERY & REBUILD Design Recovery & Rebuild with X-Analysis Databorough Ltd. 66 York Road Weybridge UK info@databorough.com Phone +44 (0)1932

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

A Grid-Enabled Component Container for CORBA Lightweight Components A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications

More information

Raising the Level of Development: Models, Architectures, Programs

Raising the Level of Development: Models, Architectures, Programs IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different

More information

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Getting a Quick Start with RUP

Getting a Quick Start with RUP Getting a Quick Start with RUP By: Doug Rosenberg and Jeff Kantor, ICONIX Software Engineering, Inc. Abstract Many people want the rigor of an industrial-strength process like the RUP but aren't quite

More information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many

More information

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering Readings and References Architecture CSE 403, Spring 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03sp/ References» Software Architecture, David Garlan, CMU, 2001 http://www-2.cs.cmu.edu/~able/publications/encycse2001/»

More information

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation Uwe Zdun Department of Information Systems, Vienna University of Economics, Austria zdun@acm.org Markus Voelter voelter - Ingenieurbüro

More information

Achieving Right Automation Balance in Agile Projects

Achieving Right Automation Balance in Agile Projects Achieving Right Automation Balance in Agile Projects Vijayagopal Narayanan Vijayagopal.n@cognizant.com Abstract When is testing complete and How much testing is sufficient is a fundamental questions that

More information

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004 Oracle Warehouse Builder 10g Runtime Environment, an Update An Oracle White Paper February 2004 Runtime Environment, an Update Executive Overview... 3 Introduction... 3 Runtime in warehouse builder 9.0.3...

More information

Intel Authoring Tools for UPnP* Technologies

Intel Authoring Tools for UPnP* Technologies Intel Authoring Tools for UPnP* Technologies (Version 1.00, 05-07-2003) INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE,

More information

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010 Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights

More information

Five Steps to Faster Data Classification

Five Steps to Faster Data Classification CONTENTS OF THIS WHITE PAPER Unstructured Data Challenge... 1 Classifying Unstructured Data... 1 Faster, More Successful Data Classification... 2 Identify Data Owners... 2 Define Data of Interest... 3

More information

RIGR - A Model Based Approach to Repository Management

RIGR - A Model Based Approach to Repository Management RIGR - A Model Based Approach to Repository Management Ray Trask Qwest, Dublin, Ohio ray.trask@qwest.com Robert B. France Department of Computer Science, Colorado State University, Fort Collins, Colorado

More information

Over All Idea about MVC: How to use Model- View-Controller (MVC)

Over All Idea about MVC: How to use Model- View-Controller (MVC) Over All Idea about MVC: How to use Model- View-Controller (MVC) Parth Jivani B. H. Gardividyapith Engg. &Tech. Chhaya Chopara B. H. Gardividyapith Engg. & Tech. Mehta Prashant B. H. Gardividyapith Engg.

More information

An Interesting Way to Combine Numbers

An Interesting Way to Combine Numbers An Interesting Way to Combine Numbers Joshua Zucker and Tom Davis October 12, 2016 Abstract This exercise can be used for middle school students and older. The original problem seems almost impossibly

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Architecture. CSE 403, Winter 2003 Software Engineering.

Architecture. CSE 403, Winter 2003 Software Engineering. Architecture CSE 403, Winter 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03wi/ 21-February-2003 cse403-14-architecture 2003 University of Washington 1 References Readings

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS Borland Together FREQUENTLY ASKED QUESTIONS GENERAL QUESTIONS What is Borland Together? Borland Together is a visual modeling platform that enables software teams to consistently deliver on-time, high

More information

Chapter Twelve. Systems Design and Development

Chapter Twelve. Systems Design and Development Chapter Twelve Systems Design and Development After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many

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

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS Master Thesis Michael Cífka Visual Development of Software Components Supervisor: Ing. Petr Tůma, Dr. I would like to thank my supervisor,

More information

CoE CENTRE of EXCELLENCE ON DATA WAREHOUSING

CoE CENTRE of EXCELLENCE ON DATA WAREHOUSING in partnership with Overall handbook to set up a S-DWH CoE: Deliverable: 4.6 Version: 3.1 Date: 3 November 2017 CoE CENTRE of EXCELLENCE ON DATA WAREHOUSING Handbook to set up a S-DWH 1 version 2.1 / 4

More information

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module Basic Class Design Goal of OOP: Reduce complexity of software development by keeping details, and especially changes to details, from spreading throughout the entire program. Actually, the same goal as

More information

An extended Component Lifecycle

An extended Component Lifecycle An extended Component Lifecycle Christian Heller Technical University of Ilmenau Faculty for Computer Science and Automation Institute for Theoretical and Technical Informatics

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski APM POSEIDON HOUSE CASTLE PARK CAMBRIDGE CB3 0RD UNITED KINGDOM +44 1223 515010 Fax +44 1223 359779 Email: apm@ansa.co.uk URL: http://www.ansa.co.uk Object Lab Object Monitor Richard Hayton & Scarlet Schwiderski

More information

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner Building a safe and secure embedded world Testing State Machines and Other Test Objects Maintaining a State > TESSY Tutorial Author: Frank Büchner Topic: TESSY is especially well-suited for testing state

More information