Component Based Development and Advanced OO Design

Size: px
Start display at page:

Download "Component Based Development and Advanced OO Design"

Transcription

1 Component Based Development and Advanced OO Design Mark Collins-Cope Ratio Group Ltd. 17/19 The Broadway Ealing W5 3NH Web: We Know the Object

2 Component Based Development and Advanced OO Design Page 2 of 12 Table of Contents 1. INTRODUCTION WHY COMPONENTS? WHAT IS A COMPONENT? WELL DESIGNED COMPONENTS ARCHITECTURE AND RE-USE AN ARCHITECTURAL REFERENCE MODEL FOR CBD (CBD-ARM) TECHNICAL VERSUS DOMAIN ARCHITECTURE RE-USE OF BUSINESS OR DOMAIN COMPONENTS OTHER ISSUES SUMMARY REFERENCES LICENCE AND COPYRIGHT...12

3 Component Based Development and Advanced OO Design Page 3 of Introduction Components have been in the news, on and off, for a few years now. Coverage of component related topics has, however, tended to be dominated by discussion of what we call component inter-connection technologies, by which we mean the likes of.net, J2EE (EJBs) and to some extent CORBA. We believe this focus on inter-connection technologies, whilst important in its own right, misses a bigger picture. In this paper I discuss some of the wider issues related to CBD, and in particular issues of component design. 2. Why components? To explore of the wider issues surrounding component based development (CBD) it is necessary first to take a step back and ask: why do we want components in the first place? The (currently unfulfilled) vision of CBD is one of constructing software from pre-defined building blocks, which are wired together to create a useful software application. Inter-connection technologies are clearly important in this: if you can t get two components to actually communicate at all, it s obviously unlikely you re going to be able to build an application from them! Interconnection technologies like.net enable components written in different programming languages (managed C++, C#, VB.NET, etc.) to communicate either on a single machine in a distributed machine environment. This - in conjunction with other services such as MTS (Microsoft s object transaction monitor environment) - provides a development infrastructure that can underpin an enterprise CBD approach. Similarly Sun s J2EE, although limited to the Java language, provides an alternative component interconnection environment. But, coming back to the original question, what is the motivation behind components? If you take a second or two to think about it, it s apparent the plug and play vision of CBD is primarily intended to reduce the cost and time to market of software development, without compromising on software quality. This is achieved by re-using existing components, which may be either bought from external third parties (of which there are a number now) or developed in-house. So the primary motivation behind components is re-use. Re-use has been one of the holy grails of software development since I started in working in the software industry some eighteen years ago. Re-use can and does happen (all those applications running under Microsoft Windows re-use a core kernel of code supplied by Microsoft, and standard programming language libraries that have been re-used for years). Methodology and programming language enhancements - such as the wide-spread adoption of the object-oriented software development paradigm have increased the potential for achieving re-use quite dramatically (polymorphism is particularly important in this).

4 Component Based Development and Advanced OO Design Page 4 of 12 Component inter-connection technologies are yet another step in the right direction, so why isn t all software developed by plugging components together? The answer to this question lies in the answers (or rather the lack of them) to a number of more fundamental questions: What actually is a component? What makes a well designed re-usable component? How do you achieve re-use of both business (domain) and technology (infrastructure) components? What architectural issues need to be addressed to achieve component re-use? The remainder of this paper discusses the answers to these questions. 3. What is a component? This may sound like a surprisingly obvious question, but a cursory view of magazine articles, and even some recently published books, shows us that the term component is in danger of becoming all things to all men and consequently completely meaningless. Here s how Ratio sees it. Firstly, a component is an binary (non-source code) unit of deployment. By unit of deployment I mean it is a constituent part of a larger application such as a.class file in Java, an assembly under.net, a.dll file under Windows, or even a.o file under Unix. A component is something that would be typically shown as one of the building blocks of an application using deployment diagrams in UML. The emphasis on non-source code is to ensure that components are used in an unmodified fashion. If you change the source of a component you are effectively creating a new component - with all the consequent costs of additional testing, maintenance, duplication (or worse: non-duplication) of bug fixes and so on. Secondly, a component implements (one or more) well-defined interface(s). This means, purely and simply, that the mechanisms by which the component can be called by its client developers (it s Application Programming Interface if you like) is clearly defined and hopefully documented. Note that defining a component interface is more than just defining a set of method or procedure calls. It is equally important to document the component s behaviour (the semantics of its interfaces). Thirdly, a component provides access to an inter-related set of functionality, in the sense that each of the methods or procedures exposed by the interface(s) are in some way related to each other (otherwise, why are they in the same component?)

5 Component Based Development and Advanced OO Design Page 5 of 12 Finally, and most likely forgotten, a component may have its behaviour customised in welldefined manners - without access to the source code. This is an important aspect of components if the re-use vision is ever to be achieved. Whilst low-level (technically oriented) infrastructure components such as graph-drawing widgets may be self-contained, any reusable business (domain) component is likely to require some mechanism by which its behaviour can be modified. Whilst the core functionality of the component will always be the same, different applications may require slightly different functionality (for example if business rules vary across applications). From the above I hope the following points should be clear: an object is not a component. Object exists at run-time, whilst components are binaries that are deployed. Having said this, components are very likely to be implemented using object technology, and it is not unforgivable that we may talk about the objects (or classes) in a component as a short-hand for the classes that when compiled together will create a binary component. All enterprise Java beans (EJBs) are not components. Even ignoring the run-time versus deployment issue, a single enterprise Java bean is unlikely to be usable (let alone reusable) without other EJBs to collaborate with. Similarly, all.net (or for that matter any other) classes are not destined to be components in their own right. The majority of components will be made up of many classes. The customisable nature of components brings them closer to the territory previously occupied by frameworks. A framework (such as Microsoft Foundation Classes, or Java Swing) will typically implement call-backs of one form or another - in OO terms, the developer typically implements an interface defined in the framework, and this has the effect of the framework invoking developer code at its convenience. Customisable components are often implemented in exactly the same fashion. 4. Well designed components So we ve decided that a component is a (potentially) re-usable unit of deployment with a well-defined interface, however this, on its own, is not sufficient to guarantee that a component is actually of any use to any one. Components must be designed well if they are to be usable or re-usable. In many ways, the criteria that define a well-designed component are no different to the criteria that have been used to underpin good modular software design for many years. Components should be highly cohesive internally - they should be implemented by a set of highly collaborative classes and should be loosely coupled where possible one component should not rely on another component being there (although in certain circumstances this is unavoidable - in which case one component can be said to be dependent on another).

6 Component Based Development and Advanced OO Design Page 6 of 12 Examining the design issue more deeply, we can divide the attributes of a well designed component into four major areas: Functionality. A component should implement the right functionality, and this means the component designer must have a good understanding of the context(s) in which their component is to be used. The most elegantly designed, beautifully coded component in the world is of no use if no-one uses it! For customisable components it is important the designer understand the variations in functionality that may be required. Interface. Interfaces must be well designed and easy to use. The Interface Segregation Principle (ISP) [Martin-96.3] helps here, stating that different interfaces should be provided for classes of types of client developer (although internally all interfaces should be implemented using a common set of underlying classes). It is also important that component interfaces present a clean abstraction to the component user. An interface that presents a clean abstraction will use concepts (classes, types) that are familiar to its client developers, and in particular will hide irrelevant implementation detail. Granularity. Considerable thought needs to go into the scope (breadth-wise and depth-wise) of the functionality provided by a component. Here, a number of additional design principles can be of assistance, in particular: the re-use release equivalence principle or RREP [Martin-96]. The RREP states that the unit of re-use is the same as the unit of release in other words that it is important to release components at the right granularity); the common closure principle or CCP [martin-96] - which says we should package things together (into single components) that are likely to change together; the common re-use principle or CRP [martin-96], by which classes that are reused together are packaged together in a single component. An important corollary of the CRP is that classes that aren t always re-used together shouldn t be packaged together as a component. This means, in effect, that if you find a number of components share some common behaviour, it will be necessary to factor this behaviour out into a new lower-level component on which the aforementioned component will be dependent (fans of Extreme Programming XP - call this the OAOO or once and only once rule). Of particular importance to CBD is separating the re-usable from the non re-usable. Dependency management.

7 Component Based Development and Advanced OO Design Page 7 of 12 Good dependency management is key to component based design. You must have a clear idea exactly what (in terms of other components) your component is dependent on, and what it isn t dependent on. Good dependency management is supported by the following design principles: The acyclic dependency principle or ADP [Martin-97]. This principle states that the dependencies between a set of components should not have any cycles between them. Consider two components which are mutually (and hence cyclically) dependent on each other each requiring the other when deployed. In such circumstance we should surely ask why do we need two components? If the components can t be deployed separately, then the reality of the situation is that we re actually dealing with a single component, and that releasing the two components separately can only make the client developers life more difficult! The stable dependencies principles or SDP [Martin-97]. The SDP states that a component should only depend on components that are more stable (less likely to change) than itself. Violating this rule means that the dependent component is likely to be in a continuing state of flux as its author strives to keep up with the changes being make to the components it is dependent upon. This principle ties in nicely with the Architectural Reference Model (CBD-ARM) I m going to discuss in the next section. 5. Architecture and re-use Having discussed some aids to good component design, I m now going to take a look at the closely related issue of software architecture. Here I m using the term architecture to mean the structural inter-relationships between the components that make up a system, be they developed in-house or bought from third parties An architectural reference model for CBD (CBD-ARM) Figure 1 provides a layered architectural reference model [Collins-Cope+2000]which helps us discuss architecture in more detail, and assists in good component design. Note that the layers presented in this model are placeholders for components not components themselves (and hence the model presented does not preclude dependencies between non-adjacent layers), and that dependencies (between components) are created by either directed association (shown as a line with an simple arrowhead in UML) or implementation of an abstract interface (shown as a line with an open triangle arrowhead in UML). The layers of the model may be summarised as follows: Highest (and most specific) in the layering is the application interface layer. This layer is responsible for managing the interaction between the 'outside world' and the lower layers within the application. It typically consists of components providing GUI interface functionality - managing the interface to human users, and/or components providing external system interfaces - managing the interface to external systems. This

8 Component Based Development and Advanced OO Design Page 8 of 12 layer often contains what Jacobson et al. call boundary classes [Jacobson+94]. Components in this layer are unlikely to ever be re-used. Interaction with external world clerk GUI debit dialog box central banking system file exchange manager * class is a subclass of 1-1 directed association 1-many directed association Component (<<component subsystem>>) debit control App.debit rules Application specific use of account component Account debit rule checker Generic account component DB transaction manager * persistent class Bespoke persistence component... GUI dialog... Other platform services (e.g. RBDMS) GUI Environment - eg. Windows/Motif Figure 1 the CBD -ARM The example application shown in figure 1 shows two classes packaged as components within this layer. The GUI debit dialog box class implements an application specific dialog (to enter a debit). The file exchange manager class reads an external file format. Both classes use the application specific debit class from the layer below to process the information they receive from the outside world. Below this is the application specific layer. This layer is comprised of components that encapsulate the major business processes and associated business rules that are automated within the application. Typically, the components in this layer will contain many classes akin to Jacobson s (use case) 'control' objects [Jacobson+94], although it is important to note that this layer also acts as the wiring layer for the (potentially reusable) components in the layer below. Again, components in this layer are unlikely to be re-used. The example application shown in figure 1 shows two classes packaged within an application specific debit component. Control flows to the debit class when it is called

9 Component Based Development and Advanced OO Design Page 9 of 12 by classes in the higher level interface layer. The debit class will then drive account component in the layer below to implement its functionality. This will typically involve several method calls on account component interface. The other class in this component the app. debit rules class- implements the debit-rule checker interface (derived from the lower level account component) to customise its behaviour. Next is the business domain specific layer. This layer consists of components that encapsulate the interface to one or more business classes. Although specific to the domain (area of business) of the application, these components should be seen as at least potentially re-usable amongst a number of applications. This layer typically contains the 'entity' classes discussed by Jacobson et al in [Jacobson+94]. The example application in figure 1 shows an account component in this layer. The account component interface is driven by higher layer components to undertake account related activities - such as the debiting and crediting of money to or from a particular account. As discussed in the previous point, the account component provides a debit rule checker interface (abstract class) to enable its behaviour to be customised (e.g. can go overdrawn, can't go overdrawn, etc.) This is an example of the Open/Closed Principle or OCP [Meyer-97, Martin-96.2] in action. Then comes the technical infrastructure layer. This layer is made up of custom (not bought in) components that are potentially re-usable across any domain, providing general purpose 'technical' services such as persistence infrastructure, general programming infrastructure (e.g. lists, collections), general purpose observer mechanisms, and so on. Our example application in figure 1 shows a general purpose persistence component (framework if you like) in this layer. Finally, and most re-usable of all, is the platform software layer. This is comprised of standard or common-place pieces of software that are purchased to underpin the application (e.g. operating systems, distribution infrastructure, CORBA/DCOM, etc.) The example application in figure 1 shows a relational database and a GUI class library forming the basis of the underlying application. A number of simple rules assist the component developer when using this model: 1) there should be a simple and clear mapping between component structure and source code structure (the simplest being a 1-1 mapping); 2) there should be a 1 to 1 mapping between component structure and stereotypedpackages in UML (assuming UML is being used during the design process) we recommend use of the «component subsystem» stereotype; 3) the level of a component is the highest level of any of its constituent classes;

10 Component Based Development and Advanced OO Design Page 10 of 12 4) components should not (and by the above definition, cannot) cross layers; 5) component dependencies should be either within the same layer or to a lower layer. Even then, dependencies to components within the same layer should be avoided if at all possible; 5.2. Technical versus domain architecture Considerations of architecture can be broadly separated into two categories: the technical architecture - which is concerned with the underlying platform that needs to be in place to build the application in the first place (does it use Oracle, does it use MQ Series, is it.net based, is it J2EE based, does it run on Windows, etc.); and the domain architecture the business domain related components you buy or build to implement business specific functionality. The CBD-ARM just discussed splits rather neatly along these lines: the technical architecture being made up of components in the platform and infrastructure layers, and the domain architecture being made up of components in either the interface, application or domain layers. A coherent approach to CBD requires that architectural issues are addressed at both levels. It s unlikely you ll be able to re-use two components together if one is based on J2EE and Oracle, and the other is based on.net and SQL-Server, so a coherent technical architecture is clearly a pre-requisite for any serious component based development to succeed Re-use of business or domain components Re-use of domain components (those implementing business or domain related functionality, rather than general purpose technical functionality) requires a similar focus on the appropriate layers of the CBD-ARM. It s interesting to note that the vast majority of commercially available components fall clearly into the technical component category providing general purpose functionality such as graph drawing, XML parsing, and so on. Re-use of business components, in our experience, most often occurs internally within organisations if you work for a large company, just ask yourself and how often you and your colleagues re-invent the wheel! The CBD-ARM is specifically intended to encourage this, with its separation of application and domain layers, and has underpinned many of the re-use programmes we have worked on with our clients. 6. Other issues Although strictly beyond the scope of this paper, its worth mentioning a few other issues that crop up when trying to get CBD really happening:

11 Component Based Development and Advanced OO Design Page 11 of 12 Process You can t just expect components to pop out of thin air during development. To get component re-use happening seriously, you must have a development process that supports component identification and component evaluation part of an overall focus on architecture (as discussed earlier) early in the development lifecycle. Despite their claims, commercially available OO development processes pay scant attention to these issues. Note also that even when potentially re-usable components are identified, experience shows that two or three development iterations are required before the components become truly re-usable. Funding A particularly sticky issue is who pays for re-usable component development. If, as with many, your organisation expects the project manager and their team to deliver software projects within an agreed budget, you can t really complain when they have little or no interest in re-use! We ve seen different organisations attack this issue in different fashions, with varying degrees of success. Developer ethos and reliability Many developers are wary of software developed by others, particularly if they have experience of unreliable software being delivered to them. Changing this requires that internal components must undergo the same level of testing and reliability checking as applications intended for real end users(!) Organisational structure Once you have a component in place, there will inevitably be requests for enhancements and bug-fixes. Some form of support team will clearly be necessary. Communication and internal marketing One of the biggest blocks we ve found to internal component re-use is a complete lack of what is best called internal component marketing. No-one is going to re-use something they don t know exists. Even when they do know about a pre-existing component, developers will want to discuss what it does and how it does it in much the same way they would if they were buying a software product from an external third party. Evangelising the benefits of a re-usable component library requires skills more akin to those expected of sales and marketing staff and this can present problems. 7. Summary In this paper I ve discussed some of the wider issues pertaining to CBD and the closely related topic of advanced OO design. Whilst component inter-connection facilities such as those provided by J2EE and.net are clearly important, there are many other equally important issues to be considered if the vision of CBD is to be achieved, even partially. High on the list of additional priorities are having a common understanding of what exactly constitutes a component, having a good understanding of the more advanced principles of OO

12 Component Based Development and Advanced OO Design Page 12 of 12 design that assist in component development, and having a clear understanding of the architectural issues surrounding CBD. Further information on the issues discussed in this paper can be found in the references that follow (or you can markcc@ratio.co.uk) 8. References [Martin-96] Robert C. Martin, Granularity, C++ Report, Nov-Dec [Martin-97] Robert C. Martin, Stability, C++ Report, Feb [Collins-Cope+2000] Mark Collins-Cope and Hubert Matthews, A Reference Architecture for Component Based Development, OOIS 2000 (proceedings published by Springer). Also available at See also UML is Upside Down Issue 4 of ObjectiveView Magazine [Jacobson+94] Ivar Jacobson, Magnus Christerson, Partrik Jonsson, Gunnar Övergaard, Object Oriented Software Engineering - A Use Case Driven Approach, Addison-Wesley, [Meyer-97] Bertrand Meyer, Object Oriented Software Engineering (second edition) - Prentice Hall Professional Technical Reference, Published [Martin-96.2] Robert C. Martin, The Open Closed Principle, C++ Report, Jan [Martin-96.3] Robert C. Martin, The Interface Segregation Principle, C++ Report, Aug Licence and copyright Copyright Ratio Group Lid. The material presented in this paper is taken from the Ratio training course Component Based Development and the Advanced Principles of OO Design (course code RAT111). For further information on this course and additional related papers please call +44 (0) , info@ratio.co.uk. or see If you d like to discuss the contents of this paper, feel free to markcc@ratio.co.uk. Licence is granted for the use of this paper for personal development purposes. Academic institutions may copy and distribute this material to students with the proviso that a link or reference to the original material (in the form of a URL link to the Ratio Group website) is clearly displayed, and that the material is distributed as is. Commercial exploitation of this material by third-parties is strictly prohibited unless agreed in advance with Ratio Group.

Open Closed Principle (OCP)

Open Closed Principle (OCP) Open Closed Principle (OCP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles

More information

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021 Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1 Topics The development process Planning Designing Implementing 2 1. The development process How to organise activities related to the creation,

More information

Principles of Object-Oriented Design

Principles of Object-Oriented Design Principles of Object-Oriented Design Part II 1 The Law of Demeter Any object receiving a message in a given method must be one of a restricted set of objects. 1. Strict Form: Every supplier class or object

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

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

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve? Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going

More information

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles Abstraction Design fundamentals in OO Systems Tool for abstraction: object Object structure: properties and values for those properties operations to query and update those properties We refer to the collection

More information

The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP)

The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP) Package Cohesion Principles The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP) Portions Copyright 2000 by Robert C. Martin. Page 1 The Release

More information

CHAPTER 5: PRINCIPLES OF DETAILED DESIGN

CHAPTER 5: PRINCIPLES OF DETAILED DESIGN CHAPTER 5: PRINCIPLES OF DETAILED DESIGN SESSION II: STRUCTURAL AND BEHAVIORAL DESIGN OF COMPONENTS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E.

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005

Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005 Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson 1 of 25 Introduction Chapter 1 of Object Design covers topics that aid understanding of Responsibility-Driven Design Object

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

Components and Application Frameworks

Components and Application Frameworks CHAPTER 1 Components and Application Frameworks 1.1 INTRODUCTION Welcome, I would like to introduce myself, and discuss the explorations that I would like to take you on in this book. I am a software developer,

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

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

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages CS211 Lecture: Design Quality; Cohesion and Coupling; Packages Objectives: Last revised October 4, 2004 1. To introduce the notion of design quality, tradeoffs, and some principles of quality design 2.

More information

Object-Oriented Design

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

More information

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve? Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going

More information

Up and Running Software The Development Process

Up and Running Software The Development Process Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running

More information

17.11 Bean Rules persistent

17.11 Bean Rules persistent 17.10 Java Beans Java beans are a framework for creating components in Java. AWT and Swing packages are built within this framework Made to fit in with graphic development environments such as Jbuilder

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT March 2015 EXAMINERS' REPORT Programming Paradigms General comments on candidates'

More information

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet.

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet. Project Name The Eclipse Integrated Computational Environment Jay Jay Billings, ORNL 20140219 Parent Project None selected yet. Background The science and engineering community relies heavily on modeling

More information

Software Engineering Chap.7 - Design and Implementation

Software Engineering Chap.7 - Design and Implementation Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,

More information

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

Technical Briefing. The TAOS Operating System: An introduction. October 1994

Technical Briefing. The TAOS Operating System: An introduction. October 1994 Technical Briefing The TAOS Operating System: An introduction October 1994 Disclaimer: Provided for information only. This does not imply Acorn has any intention or contract to use or sell any products

More information

One Device to Rule Them All: Controlling Household Devices with a Mobile Phone

One Device to Rule Them All: Controlling Household Devices with a Mobile Phone One Device to Rule Them All: Controlling Household Devices with a Mobile Phone William Shato Introduction This project was undertaken as part of a seminar course in Mobile Computing. While searching for

More information

Crash Course in Modernization. A whitepaper from mrc

Crash Course in Modernization. A whitepaper from mrc Crash Course in Modernization A whitepaper from mrc Introduction Modernization is a confusing subject for one main reason: It isn t the same across the board. Different vendors sell different forms of

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

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

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

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT

E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT E nterprise adoption of Windows 10 isn t likely to follow the same pattern as for Windows 7, and that s a good thing, writes columnist Brian Madden. And even

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.

More information

Programming Style and Optimisations - An Overview

Programming Style and Optimisations - An Overview Programming Style and Optimisations - An Overview Summary In this lesson we introduce some of the style and optimization features you may find useful to understand as a C++ Programmer. Note however this

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

History of object-oriented approaches

History of object-oriented approaches Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented

More information

Adaptive Approach for Developing Client-Driven E-Commerce Systems

Adaptive Approach for Developing Client-Driven E-Commerce Systems Proceedings of the 6th WSEAS International Conference on Applied Computer Science, Tenerife, Canary Islands, Spain, December 16-18, 2006 237 Adaptive Approach for Developing Client-Driven E-Commerce Systems

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

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /

More information

System Name Software Architecture Description

System Name Software Architecture Description System Name Software Architecture Description Author Name Contact Details Version Date template 2011 Eoin Woods & Nick Rozanski 1 / 25 1. Version History Version Date Author Comments 1 July 08 Eoin Woods

More information

AC : EXPLORATION OF JAVA PERSISTENCE

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

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p. Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

Model Driven Development of Component Centric Applications

Model Driven Development of Component Centric Applications Model Driven Development of Component Centric Applications Andreas Heberle (entory AG), Rainer Neumann (PTV AG) Abstract. The development of applications has to be as efficient as possible. The Model Driven

More information

The Object-Oriented Paradigm

The Object-Oriented Paradigm ch01.fm Page 3 Friday, June 8, 2001 11:58 AM CHAPTER 1 The Object-Oriented Paradigm Overview This chapter introduces you to the object-oriented paradigm by comparing and contrasting it with something familiar:

More information

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Agent-Enabling Transformation of E-Commerce Portals with Web Services Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:

More information

5. Application Layer. Introduction

5. Application Layer. Introduction Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The

More information

On UML2.0 s Abandonment of the Actors- Call-Use-Cases Conjecture

On UML2.0 s Abandonment of the Actors- Call-Use-Cases Conjecture Vol. 4, No. 6 Special issue: Use Case Modeling at UML-2004 On UML2.0 s Abandonment of the Actors- Call-Use-Cases Conjecture Sadahiro Isoda, Toyohashi University of Technology, Toyohashi 441-8580, Japan

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

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

Object-Oriented Design

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

More information

The 10 Minute Guide to Object Oriented Programming

The 10 Minute Guide to Object Oriented Programming The 10 Minute Guide to Object Oriented Programming Why read this? Because the main concepts of object oriented programming (or OOP), often crop up in interviews, and all programmers should be able to rattle

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

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

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture Sadahiro Isoda Toyohashi University of Technology Toyohashi 441-8580, Japan isoda@tutkie.tut.ac.jp Abstract. UML2.0 recently made a correction

More information

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy CS112 Lecture: Fundamental Concepts of Object-Oriented Software Development Last revised 1/13/04 Objectives: 1. To review/introduce key concepts of object-orientation: object, class, data members (class

More information

Course 319 Supplementary Materials. Effective User Manuals

Course 319 Supplementary Materials. Effective User Manuals Course 319 Course 319 Supplementary Materials www.learningtree.com 1 Course 319 Originally published in the April, 2000 issue of the Smart Access newsletter from Pinnacle Publishing (www.pinpub.com). Peter

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Modular Java Applications with Spring, dm Server and OSGi

Modular Java Applications with Spring, dm Server and OSGi Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction

More information

Using JBI for Service-Oriented Integration (SOI)

Using JBI for Service-Oriented Integration (SOI) Using JBI for -Oriented Integration (SOI) Ron Ten-Hove, Sun Microsystems January 27, 2006 2006, Sun Microsystems Inc. Introduction How do you use a service-oriented architecture (SOA)? This is an important

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

Evaluation of Visual Fabrique (VF)

Evaluation of Visual Fabrique (VF) Evaluation of Visual Fabrique (VF) Dr Peter Lappo www.smr.co.uk Scope and Method This is a review of Visual Fabrique (VF) V1.0.371 EAP Release. In order to conduct this evaluation I followed the tutorial

More information

Business Process Testing

Business Process Testing Business Process Testing Software Version: 12.55 User Guide Go to HELP CENTER ONLINE http://admhelp.microfocus.com/alm/ Document Release Date: August 2017 Software Release Date: August 2017 Legal Notices

More information

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT) OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE () Ahmed Hayajneh, May 2003 1 1 Introduction One of the most popular object-oriented development techniques today is the Object Modeling

More information

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Architectural Design. Architectural Design. Software Architecture. Architectural Models Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems

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

Smallworld Core Spatial Technology 4 Smallworld MAGIK : The object oriented language for an object oriented world

Smallworld Core Spatial Technology 4 Smallworld MAGIK : The object oriented language for an object oriented world Smallworld Core Spatial Technology 4 Smallworld MAGIK : The object oriented language for an object oriented world 2004 General Electric Company. All Rights Reserved GER-4235 (09/04) Abstract In the late

More information

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

ava with Object-Oriented Generic Programming+ Java Java with Object-Oriented + Generic Programming by Paul S. Wang sofpower.com

ava with Object-Oriented Generic Programming+ Java Java with Object-Oriented + Generic Programming by Paul S. Wang sofpower.com J Java J with Object-Oriented Generic Programming+ ava Java with by Paul S. Wang Object-Oriented + Generic Programming sofpower.com Java with Object-oriented and Generic Programming Paul S. Wang Department

More information

PAGE - 16 PAGE - 1. Sometimes, the solution is just a benchmark away..

PAGE - 16 PAGE - 1. Sometimes, the solution is just a benchmark away.. PAGE - 16 PAGE - 1 Sometimes, the solution is just a benchmark away.. Post Box 301532, Riyadh 11372, Kingdom Of Saudi Arabia. Tel: +966 1 229 1819 Fax: +966 1 229 1801 PAGE - 2 PAGE - 3 The base of automation

More information

Diagnosing Java code: Designing extensible applications, Part 3

Diagnosing Java code: Designing extensible applications, Part 3 Diagnosing Java code: Designing extensible applications, Part 3 Examine when, where, and how black box extensibility works best Level: Introductory Eric Allen (eallen@cs.rice.edu), Ph.D. candidate, Java

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

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

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

More information

BIG MODELS AN ALTERNATIVE APPROACH

BIG MODELS AN ALTERNATIVE APPROACH 2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.

More information

Practical Model-Driven Development with the IBM Software Development Platform

Practical Model-Driven Development with the IBM Software Development Platform IBM Software Group Practical Model-Driven Development with the IBM Software Development Platform Osmond Ng (ong@hk1.ibm.com) Technical Consultant, IBM HK SWG 2005 IBM Corporation Overview The Challenges

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? A few observations, opinions, pros & cons COMP 320 / 420 Spring, 2018 Mr. Weisert Where did the UML come from? Object-oriented

More information

Software Architectures

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

More information

OO Package Design Principles

OO Package Design Principles 4 4.1 Packages Introduction 4.2 Packages in UML 4.3 Three Package Design Principles 4.4 Development Environment (Three more principles) 4.5 Summary 1 4.1 Packages Introduction What is a package? Classes

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

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

Promoting Component Reuse by Separating Transmission Policy from Implementation

Promoting Component Reuse by Separating Transmission Policy from Implementation Promoting Component Reuse by Separating Transmission Policy from Implementation Scott M. Walker scott@dcs.st-and.ac.uk Graham N. C. Kirby graham@dcs.st-and.ac.uk Alan Dearle al@dcs.st-and.ac.uk Stuart

More information

Chapter 8 Web Services Objectives

Chapter 8 Web Services Objectives Chapter 8 Web Services Objectives Describe the Web services approach to the Service- Oriented Architecture concept Describe the WSDL specification and how it is used to define Web services Describe the

More information

Towards The Adoption of Modern Software Development Approach: Component Based Software Engineering

Towards The Adoption of Modern Software Development Approach: Component Based Software Engineering Indian Journal of Science and Technology, Vol 9(32), DOI: 10.17485/ijst/2016/v9i32/100187, August 2016 ISSN (Print) : 0974-6846 ISSN (Online) : 0974-5645 Towards The Adoption of Modern Software Development

More information

Your Data Demands More NETAPP ENABLES YOU TO LEVERAGE YOUR DATA & COMPUTE FROM ANYWHERE

Your Data Demands More NETAPP ENABLES YOU TO LEVERAGE YOUR DATA & COMPUTE FROM ANYWHERE Your Data Demands More NETAPP ENABLES YOU TO LEVERAGE YOUR DATA & COMPUTE FROM ANYWHERE IN ITS EARLY DAYS, NetApp s (www.netapp.com) primary goal was to build a market for network-attached storage and

More information

User-Centered Development

User-Centered Development Software Lifecycle CS470 User-Centered Development User-centered development refers to a design process for creating a system that meets the needs of the user Users should be included in the design process

More information

[Compatibility Mode] Confusion in Office 2007

[Compatibility Mode] Confusion in Office 2007 [Compatibility Mode] Confusion in Office 2007 Confused by [Compatibility Mode] in Office 2007? You re Not Alone, and Here s Why Funnybroad@gmail.com 8/30/2007 This paper demonstrates how [Compatibility

More information

How To Construct A Keyword Strategy?

How To Construct A Keyword Strategy? Introduction The moment you think about marketing these days the first thing that pops up in your mind is to go online. Why is there a heck about marketing your business online? Why is it so drastically

More information

Comprehensive Guide to Evaluating Event Stream Processing Engines

Comprehensive Guide to Evaluating Event Stream Processing Engines Comprehensive Guide to Evaluating Event Stream Processing Engines i Copyright 2006 Coral8, Inc. All rights reserved worldwide. Worldwide Headquarters: Coral8, Inc. 82 Pioneer Way, Suite 106 Mountain View,

More information

Microsoft Core Solutions of Microsoft SharePoint Server 2013

Microsoft Core Solutions of Microsoft SharePoint Server 2013 1800 ULEARN (853 276) www.ddls.com.au Microsoft 20331 - Core Solutions of Microsoft SharePoint Server 2013 Length 5 days Price $4290.00 (inc GST) Version B Overview This course will provide you with the

More information

Architecting great software takes skill, experience, and a

Architecting great software takes skill, experience, and a 7KH0RGHO9LHZ&RQWUROOHU'HVLJQ 3DWWHUQ 0RGHO -63'HYHORSPHQW Content provided in partnership with Sams Publishing, from the book Struts Kick Start by James Turner and Kevin Bedell IN THIS CHAPTER The Model-View-Controller

More information

PLATFORM TECHNOLOGY UNIT-5

PLATFORM TECHNOLOGY UNIT-5 1. Write in brief about the J2EE enterprise edition? Java is one of the most commonly used and mature programming languages for building enterprise applications. Java development has evolved from small

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

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

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN PATTERN - INTERVIEW QUESTIONS DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions

More information