Architecture Component Development - generating more code from your UML models
|
|
- Horace Pierce
- 5 years ago
- Views:
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 2001 Andreas Graf, Aonix GmbH StP ACD Jumpstarting.doc Abstract Using the template based code generator ACD improves
More informationTeleUSE. 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 informationThe 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 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 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 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 information09. 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 informationPart 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 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 informationObject-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 informationLecture 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 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 informationAspect-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 informationComponents 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 informationModel 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 informationDefining 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 informationINTERNAL 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 informationApplying 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 information21. 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 informationTOPLink 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 informationPart 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 informationTopic : 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 information10.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 informationMapping 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 informationAN 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 informationAOSA - 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 informationReflective 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 informationDevelopment 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 informationComponent-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 informationIntroduction. 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 informationBest 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 informationStyle-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 information1Z 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 informationMETADATA 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 informationVariability 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 informationSUN 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 informationDeveloping 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 informationModel-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 informationSocket 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 informationEvaluating 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 informationdeveloper.* 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 informationUNIT-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 informationLecture 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 informationPOAD 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 informationACRONYMS 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 informationENTITIES 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 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 informationAnalysis 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 informationRapid 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 informationAn 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 informationDesign 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 information2 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 information3rd 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 informationBecome 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 informationThe 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 informationProlaborate 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 informationFTT-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 informationA 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 informationIdioms 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 informationModeling 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 informationApplying 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 informationModel 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 informationR/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 informationLABORATORY 1 REVISION
UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the
More informationWhite 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 informationTop 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 informationWork 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 informationSCOS-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 informationFrom 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 informationCypress 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 informationDesign 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 informationA 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 informationRaising 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 informationAnalyzing 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 informationHigh 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 informationGetting 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 informationDesign 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 informationArchitecture. 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 informationEuroPLoP 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 informationAchieving 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 informationOracle 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 informationIntel 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 informationOracle 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 informationFive 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 informationRIGR - 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 informationOver 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 informationAn 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 informationCSC 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 informationArchitecture. 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 informationConfiguration 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 informationFREQUENTLY 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 informationChapter 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 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 informationCHARLES 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 informationCoE 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 informationClient 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 informationAn 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 informationThe 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 informationAPM. 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 informationBuilding 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