Encapsulating Crosscutting Concerns in System Software
|
|
|
- Eustace Lester
- 10 years ago
- Views:
Transcription
1 Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com ABSTRACT System software has to encapsulate crosscutting concerns properly. Aspect Orientation (AO) is a paradigm that supports modularization of crosscutting concerns. But as AO is relatively new it still lacks support suited for the industry in many domains, e.g. support for the programming languages C and C++ which are heavily used in the embedded domain exists but not yet in the desired scope and quality. To compensate for missing tools and languages we need architectural solutions for the problems around crosscutting concerns. Different system software layers, starting from simple libraries to full blown component containers can be used to provide support for concerns that cut across whole applications. Patterns can help to establish good architectures for this purpose. This position paper briefly describes how design patterns can be evaluated for their suitability to solve problems caused by crosscutting concerns. Keywords System Software, Patterns, Frameworks, Components, Aspect Oriented Programming. 1 INTRODUCTION This position paper documents experiences in building runtime system software in several domains. The company, for which the authors work, typically does not build commercial off-the-shelf (COTS) system software, but it develops software for its hardware products. Those hardware products stem from several domains, including telecommunication, medical systems or automotive systems. Associated with the hardware product families, are the software product families, needed to operate the hardware. Such software product families need to be supported with frameworks or even custom made component containers, which play the role of system software for the software application developers. As system software they foster reuse and help to develop good software in short development cycles. With our experience in building platforms for product families we want to contribute to the field of system software. During the last years, the authors saw several attempts to build frameworks for system families fail, because the architects of the frameworks were not aware of the crosscutting concerns in the system. Because the project did not capture and localize the concerns in the architecture, the project faced several problems, such as redundant implementations of the same functionality, wastage of system resources, missing resource consumption traceability, uniform error handling and communication strategies resulting in cumbersome integration. This paper describes how crosscutting concerns can be captured and localized in system software and how patterns can help to build software that separates concerns properly. Section 2 will explain our view on system software. Section 3 lists the software artifacts used to localize crosscutting concerns, while section 4 enumerates selected patterns for building architectures considering crosscutting concerns. The paper concludes with a brief discussion of related work and a conclusion in section 5 and 6, respectively. 2 SYSTEM SOFTWARE According to [FODC00], system software is defined as: Any software required to support the production or execution of application programs but which is not specific to any particular application. System software can be aligned in to two categories: Production software Production software includes tools that help developers in the process of designing, writing and managing software e.g. compilers, linkers, debuggers, profilers or complete IDEs, but also version control, building tools, tracers, runtime checkers and analyzers, Run-time software Software that is needed for execution of applications at run-time or integrated in the application, e.g. OS, supporting libraries, middleware, services like persistency or event services, frameworks or even component containers, that offer their own runtime environment. Figure 1 shows typical layers in software. The layers range from application software, to middleware, to the operating 1
2 system. Besides those layers, also the supporting compilers, configuration management software, etc. is considered as system software. Applications Frameworks OS, Runtime Services Middleware Appl.Server Libraries Dev. Tools (Compiler, CM, Profiler ) Figure 1: System Software Software production tools, such as compilers and profilers, are stand-alone applications and are usually not part of any delivered system in our organization; therefore they are not of interest for us in the context of this paper. System software that runs or is part of the application software, such as frameworks and component containers, faces different challenges than stand-alone software. It has to be built for reuse in various projects, or even domains, of which many requirements are not known up front. Additionally, the run-time system software has to be built to integrate into other software. System software, in our context, mainly deals with resource provisioning and management (OS), communication (communication middleware), event handling (application frameworks), and GUI management (GUI frameworks). In the next chapter we give an overview on the different kinds of run-time system software and explain how they can be used to support the localization of crosscutting concerns. 3 CAPTURING CROSSCUTING CONCERNS IN SYSTEM SOFTWARE Depending on the layer, shown in Figure 1, and the domain it is used in, system software has to handle one or several of the following crosscutting concerns: Adaptability to application needs, e.g. configuration of middleware, and exchangeability. Optimized resource management, e.g. memory management or thread management. Transparent, non-invasive inter-process and network communication. Initialization and destruction for efficient start up and secure shutdown in resource restricted systems Event dispatching and handling The listed crosscutting concerns (also referred to as aspects) are non-functional. Many domains also have additional functional aspects, for example mobile phones require messages to be passed without copying of the message data, or the sharing of personalization information across all applications in an automotive multimedia system. Generally, AO tries to achieve the following goals via encapsulation and localization of crosscutting concerns (CCC): Modularity The code for one CCC should be located in one source code file. Uniformity A CCC should be treated uniformly in the whole application. Non-invasiveness It should be possible to change or extend the implementation of the CCC non-invasively. Transparency The CCC should be transparent to the developers. Reusability Reusable software components have to be developed that can not know about the environment and the crosscutting concerns they will be reused for. The previous two lists show the big overlap between the problems faced in system software and the promised solutions of AO. Encapsulation of Crosscutting Concerns Once the crosscutting concerns are identified, there are several ways how to capture them in an architecture: The simplest way for handling crosscutting concerns is to provide an implementation in form of a library together with guidelines how to properly use this functionality. This is something that is usually done for simple crosscutting concerns such as tracing and logging, but also for resource management, where a library is provided that is the only access point for acquiring and releasing a specific resource. Libraries offer a collection of functions for dealing with crosscutting concerns, frameworks do more. They not only provide reusable code, but also influence the architecture, for example by the inversion of the control flow. Also, frameworks often address several related functionalities, e.g. GUI frameworks implement GUI elements and the mechanisms to deal with user events. Frameworks need to be extensible, therefore they typically are built using patterns, like Strategy and Interceptor, which allow framework users to extend and customize the framework functionality. Component containers are advanced frameworks, separating technical concerns, such as resource and
3 lifecycle management, from business concerns, containing the actual logic and functionality. They provide a run-time environment for components that relieves the developer from the technical concerns. Commercial component containers are often only suited for business or finance applications because they mostly cover only enterprisespecific technical concerns, but not those of typical embedded software or at least not as configurable or lightweight as required. Aspect-oriented (AO) programming seems to be the most appropriate way of implementing crosscutting concerns in a modular way. AO brings a number of advantages. Appling AO crosscutting concerns can be modularized in exactly one place, they can be weaved in or out as needed, and their implementation and application is transparent to the developer. On the downside, AO is a rather young paradigm and there are not enough proven languages and tools on the market, yet. Except AspectJ [Kicz97] [Referenz to AJDT] no language can claim to provide industrial strength stability and tool support. AspectJ is an AO extension to Java, especially in embedded systems the dominant languages are C and C++. AspectC++ is a noble attempt to provide the same functionality for C++ as AspectJ does for Java, but the language and the tools (a plug-in for an MS IDE) are not widely used and can t be considered stable enough to implement critical features in reusable system software. When trying to achieve the goal of reusability for a family of applications, traditional platforms define extension points where the application developer plugs in application logic in a prescribed way usually through base classes, interfaces and templates. System software defines a contract; applications use its functionality by fulfilling their part of the contract. For typical framework approaches the application has to know how to handle the system software, but not vice versa. The programming model of AspectJ like languages is different. Since the connection between the aspect and application code often requires detailed knowledge of the application code, it is a lot harder to preimplement generic, reusable system software. Further, how will the quality of the resulting software be ensured after introducing so many variation points? The original assets the software that should be augmented by an aspect - are typically not designed to be extended; for example join points are defined only later, independent of the software to be extended. So other alternatives are needed, as long AO, as the most appropriate way to modularize crosscutting concerns in system software, is not mature enough to get picked. 4 PATTERNS FOR BUILDING EXTENSIBLE ARCHITECTURES Since AO is still in its infancy, but crosscutting concerns have to be handled properly, we evaluate how patterns, as alternative concepts, can be used to build libraries, frameworks, and component containers, which fulfill the requirements like non-invasiveness, exchangeability, reusability, and modularity for crosscutting concerns. This is an architectural approach to solve crosscutting concern related problems. In a first step, we study the rich pattern literature to find design and architectural patterns that help to address the above mentioned requirements. The table on the last page shows part of our current state of evaluation of design and architectural patterns regarding their usefulness to capture crosscutting concern related problems. All selected patterns touch the area of extensibility and/or integration of concerns, which were our selection criteria. For AO it is not relevant if the reason for encapsulating a crosscutting concern is to make the implementation easily exchangeable, to make the encapsulation transparent, or to make the encapsulated concern reusable. With AO mechanisms they are all addressed at once. Investigating design patterns shows, that they are focused on specific problems of separating the concern. But this is not really a problem, since often, only one or a small number of the above mentioned requirements have to be fulfilled at the same time. Applying one or two patterns is often sufficient to solve the specific problem related to a crosscutting concern. For example Decorator [GOF95] helps to add functionality transparently without changing the decorated class and thus can be used to add part of a crosscutting concern implementation without polluting the original class. Additionally, an Abstract Factory [GOF95] helps to hide the decorated functionality from the client. If the goal is reuse the crosscutting functionality the above combination of patterns can not be used, since the decorator class has to provide the same interface as the decorated class. The concern implementation therefore needs to be encapsulated, for example by a Strategy [GoF95]. Further, if the concern is resource management specific, one or several patterns of [POSA3], such as Pooling or Caching can be used directly. Because patterns (can only) address specific forces in encapsulating and localizing crosscutting concerns, they have to be categorized accordingly. This is the intend of the attached table. The table contains the following information: Patlet: a short description of the pattern. Addressed problem: what is the main problem the pattern solves? Modularity: does the pattern help modularize a crosscutting concern; how does it help?
4 Uniformity: does the pattern help implement a CCC uniformly throughout a system? Non-invasive exchangeability and extensibility: does the pattern help to exchange the crosscutting concern implementation without having to change all the places the concern crosscuts? Transparency: does the pattern help to keep a concern implementation and application transparent to the application developer? Reusability: does the pattern support the reusability of the concern code and/or of the component code that is crosscut by the concern? Improvability with AO (AspectJ): could AO improve the implementation of the pattern? Or does AO make the pattern obsolete? Possible solution in AspectJ: describes the AspectJ means we would use to implement the patter For every pattern one to three + say how well it is suited to address a specific problem, a - indicates that the pattern is not suited at all to solve the problem. The additional text explains the rating. Several patterns fulfill one or several of these criteria, but none of them fulfills all of them the same way AO does. Also, many patterns that are useful in localizing crosscutting concerns can further benefit from an AO implementation, as can be seen in the last but one column of the table. Let s take the Strategy pattern [GoF95] as an example. Strategy encapsulates application logic and makes it exchangeable transparently. It pretty well modularizes the logic, but still depends on the state of the entity to be extended (Modularity: ++). It is not meant to be used to solve one crosscutting concern uniformly over a whole application, rather targets one specific task (Uniformity: -) but it keeps exchanging of the contained logic perfectly transparent to clients (Non-invasiveness +++). The implementation of Strategy is not completely transparent to the client, since the client has to hold an instance and trigger the Strategy s functionality (Transparency +). A strategy requires state information and can only be reused if the required state is provided (Reusability +). We want to continue evaluating patterns for a pattern catalogue that is dedicated to problems related to crosscutting concerns only. The next step after that will be the evaluation of successful product family frameworks to find the best practices for encapsulating crosscutting concerns in design and architecture beyond the currently documented patterns. By recovering how to capture and localize crosscutting concern in system software by traditional means, we hope to also learn more about how to use AOP for capturing and localizing crosscutting concern in system software in the future. 5 RELATED WORK Jan Hannemann and Gregor Kiczales implemented all 23 GoF design pattern in AspectJ [Han02] and found out that modularity and reusability were improved with AspectJ [Kicz97] remarkably. Books like Patterns for Concurrent and Distributed Objects, [POSA2], Patterns for Resource Management [POSA3], or Security Patterns [SPC02], are a few examples for pattern collections and languages that offer solutions to problems that partially stem from crosscutting concerns in specific domains. The work of Eide et al [ER+02] analyzed patterns regarding their static and dynamic structures. As solution the authors suggest to make participants of pattern implementations easier to exchange, based on the understanding that participants in the pattern literature [GoF] can only be objects. 6 CONCLUSION In this paper we gave a brief overview over the different layers of system software and how they localize crosscutting concerns. We argued that AO is not yet mature enough to be used in the domains of interest to us. Thus we investigated how patterns can help to build crosscutting concern aware architectures for system software. We started to evaluate design and architectural patterns that can help building frameworks and component containers that solve the problems crosscutting concerns bring up. Doing this we raise the awareness of architects and designer for crosscutting concerns. This not only supports contemporary software development, but also paves the way for AO technologies in the future. REFERENCES [ERR+02] E. Eide, A. Reid, J. Regehr, and J. Lepreau, Static and Dynamic Structure in Design Patterns, ICSE 2002, 2002 [FODC00] The Free On-line Dictionary of Computing [GoF95] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns-Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 [Hann02] J. Hannemann, G. Kiczales, Design Pattern Implementation in Java and AspectJ. Proceedings of OOPSLA 2002 [Kicz97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda and C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect Oriented Programming. In Proc. of European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science Vol. 1241, pp , 1997.
5 [PLOPD4] N.B. Harrison, B. Foote, H. Rohnert, The Role Object Pattern in Pattern Languages of Program Design 4, p [POSA1] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture A System of Patterns, John Wiley and Sons, 1996 [POSA2] D. Schmidt, M. Stal, H. Rohnert, and F. Buschmann, Pattern-Oriented Software Architecture Patterns for Concurrent and Distributed Objects, John Wiley and Sons, 2000 [POSA3] M. Kircher and P. Jain, Pattern-Oriented Software Architecture Patterns for Resource Management, John Wiley and Sons, 2004 [SPC02] Security Patterns Community: Security Patterns Homepage
6 Pattern Name Patlet Addressed Modularity Uniformity Non-invasive problem, domain exchangeability, extensibility Transparency Reusability Comparison with AO (AspectJ) Possible solution in AspectJ Decorator Attach additional extending responsibilities to an object existing dynamically. This provides functionality a flexible alternative to subcalssing for extending functionality Proxy Provide a surrogate or transparent placeholder for another integration object +;each decorator -; localized to one '+++; a decorator class ++ transparent -, decorator has +++; with AspectJ no comparable to encapsulates one concern class can be directly for developer of to implement code changes before/around for a single class, it is not exchanged within a chain original class but the decorated necessary when advice using the suited to encapsulate of decorators, no effect not at class s inserting a new method arguments concerns that span several classes on the decorated class instantiation time interface decorator class into a as pointcut context chain of decorators +++, encapsulates -, one proxy for ++, though proxy classes additional functionality, several classes not have to be instantiated but not meant to applicable, since instead of original class encapsulate crosscutting signature has to functionality match +++ -, interfaces have to match +++, adherence to all kinds of advice interface not necessary, therefore reusable for several classes Visitor Represent an operation to encapsulation of +++, Visitor encapsulates ++, only for the ++, extending the tree ++, every class -, visitor is +++, AO allows to introduction be performed on the operations on additional operations on tree structure structure with a new has to implement specific to implement the Visitor new method elements of an object tree structures an existing tree structure possible node type requires the an accept method visited classes' non-invasively even structure. Visitor lets you adaptation of the new functionality in case of extending define a new operation class; new visitors can be the original class without changing the added non-invasively hierarchy classes of the elements on which it operates. of Strategy Make application logic extension of base ++, encapsulates specific -, just locally +++, it is the main +, the original +, if the state of ++, additional Introduction with exchangeable. functionality code, but depends on the purpose to exchange entity must the entity is (specific to the new methods and state of the entity to be application logic. foresee a hook. represented extended application all kinds of extended. similarly. logic) state might get advices. weaved in. Interceptor Allow functionality to be extending added transparently to a functionality framework and trigger call chains automatically when certain events occur. +++, interceptor also execution before and after in implementation can target join points possible advices with calls several classes join points Resource Lifecycle Manager Decouples the management encapsulated +, localizes the lifecycle ++, resources are +++, allows to exchange +, resource users ++, the -, aspects must have replace existing of the lifecycle of resources lifecycle management of one or managed the resource management need to use the implementation knowledge with acquisition and from their use by management; several resources; uniformly strategies transparently; resource lifecycle of the resource regards to when and release calls with introducing a separate domain: resource transparently provides throughout the to support new types of manager instead lifecycle how resources are around advices Resource Lifecycle management pooling and caching of application resources, its interface of existing manager can acquired or released; Manager, whose sole resources; manages might need to get resource get reused pointcuts are hard to responsibility is to manage and maintain the resources interdependencies transparently extended. providers; changes to the define of an application. strategies are transparent Policy Enforcement Point Isolate policy enforcement consistent +++; localizes policy +++, guarantees +++, strategy easily - only transparent policy introduction and to a discrete component of enforcement of related activities to one uniform policy exchangeable with additional enforcement could be before advices an information system; security policies; point handling framework made transparent ensure that policy domain: security support enforcement activities are performed in the proper sequence.
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
Aspect-Oriented Programming
Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Corporate Technology, Siemens
Composing Concerns with a Framework Approach
Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago [email protected] 2 Concurrent
Aspect-Oriented Web Development in PHP
Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto [email protected] Abstract. Aspect-Oriented Programming (AOP) provides another way of
Structuring Product-lines: A Layered Architectural Style
Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland
Chap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,
Patterns in a Nutshell
Patterns in a Nutshell http://www.enteract.com/~bradapp/ January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form
Using an Aspect Oriented Layer in SOA for Enterprise Application Integration
19 Using an Aspect Oriented Layer in SOA for Enterprise Application Integration Chinthaka D. Induruwana School of Computer Science, University of Manchester, Kilburn Building, Oxford Road M13 9PL [email protected]
Patterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture
How to Model Aspect-Oriented Web Services
How to Model Aspect-Oriented Web Services Guadalupe Ortiz Juan Hernández [email protected] [email protected] Quercus Software Engineering Group University of Extremadura Computer Science Department Pedro
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
The Service Revolution software engineering without programming languages
The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)
A Management Tool for Component-Based Real-Time Supervision and Control Systems
A Management Tool for Component-Based Real-Time Supervision and Control Systems Sandro Santos Andrade, Raimundo José de Araújo Macêdo Distributed Systems Laboratory (LaSiD) Post-Graduation Program on Mechatronics
Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.
Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional
A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS
UDC: 004.42 Original scientific paper A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS Dragutin Kermek 1, Tomislav Jakupi 2, Neven Vr ek 1 1 University of Zagreb,Faculty
A COMPARISON OF AOP BASED MONITORING TOOLS
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVI, Number 3, 2011 A COMPARISON OF AOP BASED MONITORING TOOLS GRIGORETA S. COJOCAR AND DAN COJOCAR Abstract. The performance requirements of a software system
Toward Configurable Access Control for. Healthcare Information Systems
Toward Configurable Access Control for Healthcare Information Systems Kung Chen a and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science, Academia
A Process View on Architecture-Based Software Development
A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany
Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement
Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Michael Falkenthal 1, Dierk Jugel 1, Alfred Zimmermann 1, René Reiners 2, Wilfried Reimann 3, Michael
Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona
Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester
The Software Container pattern
The Software Container pattern Madiha H. Syed and Eduardo B. Fernandez Dept. of Computer and Elect. Eng. and Computer Science Florida Atlantic University, Boca Raton, FL 33431, USA [email protected], [email protected]
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
The Nature and Importance of a Programming Paradigm
Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić [email protected] Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns
rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
Design Patterns for Managing Product Lifecycle Information
Design Patterns for Managing Product Lifecycle Information Introduction Kary Främling, Timo Ala-Risku, Mikko Kärkkäinen, Jan Holmström The increasing demands on product lifecycle management means that
Design Pattern Management System: A Support Tool Based on Design Patterns Applicability
Design Pattern Management System: A Support Tool Based on Design Patterns Applicability Zakaria Moudam, Radouan Belhissi, Noureddine Chenfour Computer Science Department Faculty of Sciences Dhar Mehraz
A methodology for secure software design
A methodology for secure software design Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic University Boca Raton, FL 33431 [email protected] 1. Introduction A good percentage of the
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
The Command Dispatcher Pattern
The Command Dispatcher Pattern Can also be called: Command Evaluator Pattern. Benoit Dupire and Eduardo B Fernandez {[email protected], [email protected]} Department of Computer Science and Engineering.
Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.
Architectural Patterns Architectural Patterns Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm
Using AOP Techniques as an Alternative Test Strategy
Using AOP Techniques as an Alternative Test Strategy Lian Yang [email protected] Abstract Ever since its inception [1], researchers and software professionals saw that Aspect-oriented Programming (AOP)
SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface
SOA and BPO SOA orchestration with flow Jason Huggins Subject Matter Expert - Uniface Objectives Define SOA Adopting SOA Business Process Orchestration Service Oriented Architecture Business Level Componentisation
Unification of AOP and FOP in Model Driven Development
Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify
Using MDA in Web Software Architectures
Using MDA in Web Software Architectures SANTIAGO MELIA, CRISTINA CACHERO AND JAIME GOMEZ 1 Universidad de Alicante, Spain The new challenges posed by the Internet market have increased the need for Web
SOA: The missing link between Enterprise Architecture and Solution Architecture
SOA: The missing link between Enterprise Architecture and Solution Architecture Jaidip Banerjee and Sohel Aziz Enterprise Architecture (EA) is increasingly being acknowledged as the way to maximize existing
Introduction. Observation Patterns. Accounting Patterns. How to use Patterns
Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page
PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS
PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS M. Taleb, A. Seffah Human-Centred Software Engineering Group Concordia University, Montreal, Quebec, Canada Phone: +1 (514) 848 2424 ext 7165 and/or ext
Embedded Software Development with MPS
Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,
Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader [email protected]
Glassbox: Open Source and Automated Application Troubleshooting Ron Bodkin Glassbox Project Leader [email protected] First a summary Glassbox is an open source automated troubleshooter for Java
Component-Based Software Development with Aspect-Oriented Programming
Vol. 4, No. 3 Special issue: GPCE Young Researchers Workshop 2004 Component-Based Software Development with Aspect-Oriented Programming Michael Eichberg, Departement of Computer Science, Darmstadt University
i-questionnaire A Software Service Tool for Data
i-questionnaire A Software Service Tool for Data Analysis in e-business 1 ANDY S.Y. LAI, 2 Y.C. POON 1, Department of Information and Communications Technology, Hong Kong Institute of Vocational Education,
How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
Aspect Oriented Programming. with. Spring
Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science University of Magdeburg,
Application. Frameworks. Object-Oriented. Mohamed E. Fayad and Douglas C. Schmidt, Guest Editors
Object-Oriented Application Frameworks Computing power and network bandwidth have increased dramatically over the past decade, yet the design and implementation of complex software remain expensive and
Introducing a Graduate Course on. called Aspect-Oriented Software Development
Int. J. Engng Ed. Vol. 21, No. 2, pp. 361±368, 2005 0949-149X/91 $3.00+0.00 Printed in Great Britain. # 2005 TEMPUS Publications. Introducing a Graduate Course on Aspect-Oriented Software Development*
CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE
CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012
Designing an Enterprise Application Framework for Service-Oriented Architecture 1
Designing an Enterprise Application Framework for Service-Oriented Architecture 1 Shyam Kumar Doddavula, Sandeep Karamongikar Abstract This article is an attempt to present an approach for transforming
Distributed Systems Development: Can we Enhance Evolution by using AspectJ?
Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Cormac Driver Siobhán Clarke Distributed Systems Group, Computer Science Department, Trinity College Dublin, Ireland {Cormac.Driver,
25.1 Translational Frameworks (MDA with transformations)
Literature TU Dresden Fakultät für Informatik Institut für Software- und Multimediatechnik 25. From Code Frameworks to Model-Driven Architecture (MDA) and Component-Based Software Development (CBSD) Prof.
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
Jenerator Generative Programming for Java
Jenerator Generative Programming for Java Markus Völter 1 and Andreas Gärtner 2 1 MATHEMA AG, Germany [email protected] 2 Universität Passau, Germany [email protected] Abstract. Generative
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
Treating Interfaces as Components
IVNET 05, Porto, June, 22nd 2005, 1 Treating Interfaces as Components Manuel Schwarzinger [email protected] Joachim Fröhlich [email protected] The Problem The Problem is not new! The old
XPoints: Extension Interfaces for Multilayered Applications
XPoints: Extension Interfaces for Multilayered Applications Mohamed Aly, Anis Charfi, Sebastian Erdweg, and Mira Mezini Applied Research, SAP AG [email protected] Software Technology Group, TU
Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.
Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University
A Tool Suite for the Generation and Validation of Configurations for Software Availability
A Tool Suite for the Generation and Validation of Configurations for Software Availability A. Gherbi 1, A. Kanso 1, F. Khendek 1, M. Toeroe 2 and A. Hamou-Lhadj 1 1 Concordia University, Montréal, Canada
A Review of an MVC Framework based Software Development
, pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University
Design of Data Archive in Virtual Test Architecture
Journal of Information Hiding and Multimedia Signal Processing 2014 ISSN 2073-4212 Ubiquitous International Volume 5, Number 1, January 2014 Design of Data Archive in Virtual Test Architecture Lian-Lei
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB
September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets
Variability in Service-Oriented Systems: An Analysis of Existing Approaches
Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University
Web Application Framework: Review
RESEARCH ARTICLE Web Application Framework: Review Rimjhim Mishra [1], Dr.Pankaj Kumar [2] Department of Computer Science and Engineering SRMGPC, Lucknow India OPEN ACCESS ABSTRACT Architecture has its
White Paper: 5GL RAD Development
White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor
Concern Driven Software Development
Concern Driven Software Development Omar Alam School of Computer Science, McGill University, Montreal, Canada [email protected] Abstract Model Driven Engineering (MDE) has achieved success in many
The Concern-Oriented Software Architecture Analysis Method
The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten [email protected] s0002550 Dr. ir. Bedir Tekinerdoǧan
Teaching Object-Oriented Software Design within the Context of Software Frameworks
Teaching Object-Oriented Software Design within the Context of Software Frameworks Zoya Ali, Joseph Bolinger, Michael Herold, Thomas Lynch, Jay Ramanathan, Rajiv Ramnath The Ohio State University, [email protected],
see >analyze >control >align < WhitePaper > planningit: alfabet s Logical IT Inventory
see >analyze >control >align < WhitePaper > planningit: alfabet s Logical IT Inventory planningit: alfabet s Logical IT Inventory 2 A transparent IT Landscape IT planning takes place in a rapidly changing
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
Efficient database auditing
Topicus Fincare Efficient database auditing And entity reversion Dennis Windhouwer Supervised by: Pim van den Broek, Jasper Laagland and Johan te Winkel 9 April 2014 SUMMARY Topicus wants their current
