Workshop on Generative Programming 2002 (GP2002) Austin (Texas), April 15,

Size: px
Start display at page:

Download "Workshop on Generative Programming 2002 (GP2002) Austin (Texas), April 15,"

Transcription

1 Workshop on Generative Programming 2002 (GP2002) Austin (Texas), April 15, Satelite of the 7th International Conference on Software Reuse (ICSR7) Background The goal of generative programming is to replace manual search, adaptation, and assembly of components with the automatic generation of needed components on demand. Generative technology has been in practical use for decades (e.g., compiler development, application generation, automatic configuration management, preprocessing, meta-programming). However, developing new domain-specific languages (DSLs), application generators, and component generators has been extremely hard, as it requires being knowledgeable and experienced both in language design and compiler development. Recent developments such as XML technologies and template meta-programming revived the interest in generative programming by making it more accessible to developers. Objectives The workshop aims to bring together practitioners, researchers, academics, and students to discuss the state-of-the-art of generative techniques and their impact on software reuse. The goal is to share experience, consolidate successful techniques, and identify the most promising application areas and open issues for future work.

2 Topics of interest impact of generative techniques on component-based development and software reuse. assessing risks and benefits of deploying generative techniques. maintenance of generators. reuse of generic components, generators, generator components, configuration languages, and other generative programming assets across boundaries of projects and/or organizations. styles of generative programming (application generators, generators based on XML technologies, template languages (e.g., JSP), template meta-programming, transformational systems, intentional languages, aspects, subjects, etc), particularly their uses and limitations. generation of code artifacts, such as application logic, UIs, database schemas, and middleware integration. generation of non-code artifacts such as test cases, documentation, tutorials, and help systems. capturing configuration knowledge, for example, in DSLs, and extensible languages. influence on software architecture (e.g., building and customizing frameworks and applying patterns). testing generic and generative models. industrial applications of generative technology. Workshop format The workshop will aim to foster discussion and interaction rather than presentations. Presentations will serve to introduce a case study, provoke discussion by presenting a controversial point of view, or introduce new points of view. However, all participants will be given a chance to make a short presentation. All accepted position papers will be published on this workshop page prior to the workshop and the participants will be asked to read the papers prior to the workshop. Schedule Presentations of the position papers will consist of a 10 minute talk followed by 5 minutes of answering questions from the audience. The questions are meant only for clarification. Discussion is postponed to the afternoon pro-and-contra sessions where each paper is discussed by two volunteers that defend opposing views. The audience is invited to provide additional arguments. The workshop will be closed with an open discussion session aimed at identifying and summarizing open issues and topics for future work. Morning session Invited talk by Krzysztof Czarnecki Appropriate Software Technology for Longitudinal Health Research Projects, Bruce MacLeod (University of Southern Maine), James Phillips (Population Council, New York). A construction process for artifact generators using a CASE Tool, Luiz Paulo Alves Franca (Brazil), Arndt von Staa (PUC-Rio, Brazil). A Unified Approach to Component Assembly Based on Generative Programming, Wei Zhao (University of Alabama), Barrett R. Bryant (University of Alabama), Rajeev R. Raje (Indiana University), Mikhail Auguston (New Mexico State University), Andrew M. Olson (Indiana

3 University), Carol C. Burt (University of Alabama). Lowering Software Product Line Adoption Risks with Generative Technology, Charles W. Krueger (BigLever Software Inc., Austing, Texas). Compressed XML Encoding -- A Syntax-directed Approach, Baltasar Trancón y Widemann, Markus Lepper, Jacob Wieland. DMS: Practical Code Generation and Enhancement by Program Transformation, Ira D. Baxter (Semantic Designs, Inc.). New Structures for Transformation-Based Generators, Ted J. Biggerstaff (Austin, Texas). Grammars as Feature Diagrams, Merijn de Jonge (CWI, The Netherlands), Joost Visser (CWI, The Netherlands). Techniques for Generating Communicating Systems, James M. Neighbors (Bayfront Technologies, Inc.). Afternoon session Invited talk by James Neighbors Pro-and-contra issue 1: XML & generative programming Pro-and-contra issue 2: Roadblock to industrial application of GP Pro-and-contra issue 3: Incremental adoption of generative techniques Pro-and-contra issue 4: Using code fragments in generators Pro-and-contra issue 5: Generators based on transformation rules Pro-and-contra issue 6: Maintenance of generators Pro-and-contra issue 7: Reuse of generative programming assets across product families The issues of the pro-and-contra sessions are still tentative. Workshop participants are encouraged to suggests different or further issues, and to volunteer as debaters for particular issues. Organizing committee Joost Visser (Joost.Visser@cwi.nl) Merijn de Jonge (Merijn.de.Jonge@cwi.nl) Ted Biggerstaff (tbiggerstaff@austin.rr.com) Craig Cleaveland (craig@craigc.com) Krzysztof Czarnecki (czarnecki@acm.org) André van der Hoek (andre@ics.uci.edu) Stan Jarzabek (stan@comp.nus.edu.sg) Shriram Krishnamurthi (sk+80@cs.brown.edu)

4

5 Appropriate Software Technology for Longitudinal Health Research Projects Bruce MacLeod 1 and James Phillips 2 The goal of our research is to automate the software development process for longitudinal studies of health in developing countries. Longitudinal studies follow subjects over a period of time and note changes to the subjects that are relevant to the research investigation. At any time during the data collection phase, the time series data can be analyzed to test a casual hypothesis or the efficacy of an intervention. From a computing and software generation perspective, the problem gets more interesting with the understanding that many different types of subjects can be under study (individuals, locations, families ); relationships between subjects can be a significant part of the study (marriages, residency at a location ); and there are many different types of events that can occur to subjects (illness, migration, death, ). In addition, almost all studies require some mechanism to specify logical consistency rules such as an individual can only have one biological mother and father, events can only be recorded for resident individuals, or only young children attend a primary school. Finally, issues of security, privacy, and Internet based access are becoming increasingly important parts of many projects. All these considerations are compounded by the relative lack of expertise and resources in the developing country sites where such studies are located. Given that many of these projects never happen or fail because of data management issues, solving this problem could have a tremendous impact on the feasibility and effectiveness of many health research projects. With over two decades of experience working on these problems we know that developing appropriate software for the majority of longitudinal health research projects presents a significant challenge, but with the generative programming concepts that are available today, we feel that a comprehensive solution is feasible. Participation in the generative programming workshop would provide an opportunity for us to describe this interesting case study, learn more about appropriate technologies for addressing this important problem, and get feedback on our design ideas. Our current research agenda is informed by our earlier work on a more specialized software framework for longitudinal health and demographic research, known as the Household Registration System (HRS). The HRS is a FoxPro database application that was developed in the early 1990s and disseminated to support rural field research laboratories in developing countries that require continuous monitoring of a population. The HRS is in use in numerous study sites, 11 of which are located in sub-saharan Africa. 3 The HRS provides rudimentary software generation tools that allow sites to generate new data entry screens, add database fields to a data entry screen, and tailor the attributes of the system via a dialog box interface. Even with these relatively primitive generative capabilities, the use of the HRS has significantly reduced dependency on imported computer programming support, shortened the time to set up a robust software system, and improved the integrity of experimental data for longitudinal projects. Currently, the HRS is a stand alone software framework developed for large, rural research stations and is not particularly well suited for smaller studies, projects in urban settings, or those that require the use of mobile and Internet based technologies. The core ideas of the HRS can be applied to a far broader range of health research projects. Smaller studies, with a focus on part of a population (cohort studies), can be viewed as a proper subset of the larger demographic problem addressed by the HRS. Panel studies, where an entire renumeration of the population is undertaken during every sample round, could be viewed as a change in the composition of the data collected during an observation. To meet the demands of this broader range of studies, a new software architecture is needed. It must support many forms of data entry, including wireless, Internet-based, and handheld and it must support different database packages. The software architecture should contain a library of commonly used data types (mothers, children, schools, health centers, ). Finally, it should have software generation tools so that new systems can be readily developed. Our goal is to develop a system that will support both the solitary researcher in a remote African village using a small handheld computer as well as a larger urban health research station that combines information from field workers, laboratories, and research scientists and requires Internet-based dissemination of research results for advocacy purposes 4. 1 Computer Science Department, University of Southern Maine, Portland Maine Research Division, Population Council, New York, NY There have been over 200 downloads of the HRS system from the Web site ( so we do not know of all uses of the system. We do know that the HRS is in use in Ghana, the Gambia, Mali, Burkina Faso, Mozambique, Tanzania (three sites), Kenya (two sites), Uganda, and Indonesia. Ongoing HRS-supported studies concern malaria transmission and prevention, HIV transmission, HIV and malaria synergism, pneumococcal pneumonia, cerebral spinal meningitis, family planning service impact, reproductive health, health care reform, and other issues. 4 Many of the details of this software architecture are outlined in the paper Next generation Data Systems for Longitudinal Health and Demographic Studies presented at the National Academy of Sciences workshop on Leveraging Longitudinal Data, July, 2001.

6 Building a generative software environment for longitudinal health research studies will be done in three stages. First, logical categories need to be establish to help characterize the entities in the research project s data model. The categories should provide enough specification power to distinguish between functionally different entities, but be sufficiently flexible to support the definition of most project specific data. Next, a software framework is needed to provide data entry, management, reporting, and analysis support. Finally, software generation capabilities need to be integrated into the environment inorder to eliminate or substantially reduce the software development burden currently imposed on health and demographic research scientists. The remainder of this document presents preliminary results and ideas for future work. We believe that four categories are sufficient to distingush the functional characteristics of entities in health research data models: Invariants : Subjects and the attributes of subjects under study that remain relatively constant during the course of the study. Examples include Individuals, Buildings, Community Health Centers, or Families. Only those attributes that remain constant during the course of the study are associated with the invariant. For an individual these attributes might include name, gender, mother ID, and Father ID. Episodes : Associate one or more invariants for a period of time. Examples include an individual s residency at a location, a marriage relationship, or an individual s stay in a hospital. Events : Represent a single point in time occurrence that affects an invariant. Examples include an individuals visit to a community health center, a migration from the research study area, a death, blood sample, or a vaccination inoculation. Observations : Represent the studies observation of an invariant or a collection of invariants. Any changes in episodes or new events are recorded during an observation. Examples include an observation of a household where the demographic status of all individuals who belong to that household is updated, or an observation of a community health center where the events of individuals coming to the clinic with a malaria induced fever are recorded. Essentially, episode and event entities record the changes that are associated with invariant entities and observations are the way in which a study finds new invariants, events and episodes. For example, the departure of a student to the university could be represented by a migration (an event) that occurs to an individual (an invariant). The migration event would terminate a residency (an episode) associated with that individual in a particular location (another invariant). The student s departure would be recorded when a field worker visited (an observation) the location that the student was resident at. The entities associated with a project will be specified in a properly designed XML file with labels to identify the category. The semantics associated with the four categories provide a foundation for the generation of longitudinal health research systems. The data collected by a study come from observations and the changes that occur in the study are maintained by event and episode entities. Data entry forms for an observation must allow for the entry of any event or episode that can be associated with invariants of the observation. Software generation tools should allow the builder to choose the set of events and episodes that could be recorded by a particular type of observation. Longitudinal data analysis routines can also be generated using the semantics associated with the four categories. Much of the analysis done in longitudinal health projects result in age-specific, time varying ratios of incidence divided by total exposure. Incidence (of disease, pregnancy,..) is usually associated with events. The time interval associated with an episode, such as the residency time at a location or the time in a relationship, represents an exposure to risk. Software generation techniques can be used to build analysis modules by linking events with appropriate episodes. Ideally, we will build on open source projects that currently address the generation of three-tiered architectures. We are currently looking quite closely at XSLT technology and the dbforms project 5. Another significant issue for our work is the specification of logical consistency constraints on the data; ideally, the specification would be XML-based. The specification should allow for predefined functions to be accessed, as well as support the definition of new functions. It would be especially useful to have the means to attach consistency checks to different tiers in the architecture. The capabilities of the XML schema and the Simkin project seem to provide a significant part of the capabilities we are looking for 6. Participation in the generative programming workshop would provide an opportunity for us to present an interesting and important problem as well as provide an opportunity to seek guidance on the challenges we face in this endeavor

7 A construction process for artifact generators using a CASE Tool Luiz Paulo Alves Franca Programare Informática Av. Americas 500 bl 13 sl Rio de Janeiro, RJ, Brazil Tel: +(55)(21) luizp@ism.com.br Background Arndt von Staa Departamento de Informática, PUC-Rio Rua Marquês de São Vicente Rio de Janeiro, RJ, Brazil Tel: +(55)(21) arndt@inf.puc-rio.br Since 1992 we are using application and artifact generators. The first application generator was capable to generate fully operational Clipper programs from entity relationship diagrams. Data validation and specific business rules were implemented though escape routines bound to the diagram elements. The generator was build using the meta-case Talisman [1]. Diagrams, data dictionary, as well as escape routines were all stored in Talisman s repository. Programs written in Talisman s language generated the application exploring and manipulating its repository. Even though this meta-case facilitated the construction of the generator, this approach required highly skilled developers as well as a fair amount of effort in order to code the generating program. In 1996, we used Talisman s facilities to build a generator for Web-based applications that manipulate software metrics databases. During this project, we realized that we could design a generic process to construct artifact generators using meta-case Tools. In other occasions we developed tools that generate and maintain C++ and C code fragments and corresponding technical documentation. Overview of the artifact generator construction process The generator construction process departs from an example of a simple artifact within the target application s domain. This artifact as well as its specification must be thoroughly verified and validated, since the generator will replicate its structure. The example may be build as a sequence of examples of increasing complexity and scope leading to an incremental generator development and maintenance process. Given the example, all commonalities (frozen spots) and variabilities (hot spots) are identified [3], as well as the properties that the example s specification must satisfy. The example is then modified in order to contain specific generator tags at all variable points. These tags establish the transformation tags that describe how the specification is accessed and transformed in order to produce the corresponding code within the resulting artifact. The code file enriched with tags is called the artifact meta-description file. A library of transformation rules, written in the meta-case manipulation language, must be developed. This library can be built on demand as the conversion from the artifact meta-file to the generator is defined. Typical functions extract data from the meta-case repository, adapt them and present them to the generator. The artifact meta-description file must now be transformed into the artifact descriptor component. This component corresponds to the application domain dependent part of the generator. The independent part is formed by the library of transformation rules and by generation control code. This transformation has been completely automated. A utility program reads the artifact metadescription file and replaces each tag by the corresponding transformation rule. By means of a quite

8 simple tool the tagged example is transformed into code, which is combined with the transformation library and generation control code, yielding the generator code to be internalized by the meta- CASE tool. Finally, the meta-case must be programmed to adequately edit the specification s representation language. In our examples this is either a modified version of entity relationship diagrams and corresponding data dictionary, or a class structure diagram. The proposed process has been used to build and upgrade generators that, given a data model, generate a web-based application capable of browsing and updating the corresponding database. The generated applications are able to carry out basic operations such as maintenance of tables extracted from the model, preserving the 1:N and N:N relations defined in the model, including auto-relations, and a simplified form of inheritance. The following generators have been built: - A three layer client-server architecture: composed of an interface layer (HTML + JavaScript), a business layer (Java servlet), and a database layer (Relational database, JDBC). In our experiments we used both the Talisman meta-case and Rational Rose CASE tools as the generator development environment. - A three layer client-server architecture using Delphi. - A client-server architecture using VisualBasic. - A client-server architecture using Centura/SQLWindows. - A html generator of the specification documents. Benefits of this approach - Due to the use of a meta-case tool, most of the development effort usually needed to build the input components of the generator (e.g. the application specification editor) became almost negligible. - Since the construction of the artifact generator is based on a simple and correct example, it has been quite easy to identify the set of transformation points and the nature of these transformations assuring the exact reproduction of the example artifact from its specification. It also became easy to determine the exact composition of the specification. Thus, the specification will not contain fields that are not necessary, reducing the amount of work when specifying an artifact. By means of a reasonably simple set of tests it has been possible to verify whether the generator generates correct code for all cases within the established application domain. - The artifact meta-description file reduces the impedance-matching problem between the specification and implementation domains. In this file, transformation tags mark specification dependencies. The remainder of the file corresponds to frozen spots, which should be simply replicated in the target artifact. The artifact meta-description file is also a good means to verify by inspection the correctness and completeness of the derived generator. - The generator replicates the artifact meta-description file rather than the pure code file. Using a simple tool the tags can be removed yielding correctly compilable code. Hence to evolve the generator it is necessary only to add the expanded example s code and adequately tag it. By means of the generator constructor tool a new version of the generator can be constructed. This same process can be used to correct the generator in case the example or the original tagging are found to be incorrect.

9 - The first experiment led to the creation of a library of transformation rules. Due to the possibility to reuse this library, in subsequent experiments the need to create new rules eventually ebbed out. Problems found with this approach - Transformation rules depend on the CASE Tool scripting language. In our experiments, when adapting the generator to use Rational Rose, we had to convert the whole library of transformation rules originally written in Talisman s language, to a new library written in Visual Basic. We also had to modify the utility program that converts the artifact metadescription file into the generator component. - The syntax of the transformation tags was designed to facilitate the transformer utility, reducing the readability and shareability of the artifact meta-description file. - In order to increase maintainability of the generated artifacts, version information should be part of the repository. This would allow, for example, to compute the difference between data schemas, allowing the correct and complete generation of database structure updating programs. XML solution Currently we are examining the adoption of XML/XMI [4] and Java to solve the problems found in our approach. Since most of the modern CASE tools are capable to generate XML/XMI files from their repository we believe that we can achieve partial tool independence. Total independence may not be possible since some tools may prevent the use of escape code. In any case we expect that the library of transformations rules will require very little changes when adapting the generator to a new CASE tool. Furthermore the transformations tags should be defined using XML syntax, hence adding rules to the DTD. This approach will permit an artifact meta-description file to be edited through any XML editor. It also assures that generator code can be build for different programming or scripting languages using a same XML DTD. References [1] Staa, A.; Manual de Referência: Talisman: Ambiente de Engenharia de Software Assistido por Computador; Rio de Janeiro, Brazil; 1993; (in Portuguese). [2] Hohenstein, U.; An Approach for Generating Object-Oriented Interfaces for Relational Databases ; In Proceedings of the Second International Symposium on Constructing Software Engineering Tools; 2000; pp [3] Cleaveland, C.; Building Application Generators ; IEEE Software 5(4); 1988; pp [4] Cleaveland, C.; Program Generators with XML and JAVA; Prentice-Hall, 2001.

10

11 A Unified Approach to Component Assembly Based on Generative Programming * Wei Zhao 1 Barrett R. Bryant 1 Rajeev R. Raje 2 Mikhail Auguston 3 Andrew M. Olson 2 Carol C. Burt 1 The UniFrame project consists of a unified meta-component model (UMM) for distributed component-based systems (DCS), and a Unified Approach (UA) for integrating components [7]. The core parts of the UMM are: components, service and service guarantees, and infrastructure. A creation of a software solution for a DCS using UA comprises of two levels: a) the component level -- developers create components, test and validate the appropriate functional and non-functional (Quality of Service -- QoS features and deploy the components on the network, and b) the system level -- a collection of components, each with a specific functionality and QoS, are obtained from the network, and a semiautomatic generation of a software solution for a particular DCS is achieved. It is assumed that different developers will provide on a network a variety of possibly heterogeneous components for specific problem domains. For a specific problem, a search process will identify relevant components from those available on the network. Once these are identified, the task is to integrate these disparate components in a specific solution for the DCS under construction. The UA assumes that the generation environment is built around a generative domain-specific model (GDM) [4, 5] supporting component-based system assembly. The distinctive features of UA are: The developer of a distributed application presents to the UA-based system a query, describing the required characteristics, in a structured form of a natural language. The query is processed using the domain knowledge (such as key concepts from a domain) and a knowledge-base containing the UMM descriptions of the components for that domain. The domain knowledge and the knowledge-base are parts of the GDM. From this query a set of search parameters is generated which guides headhunters to perform a component search of the networked environment.. Headhunters are special components responsible for locating components deployed by the developers for the specific domain under consideration [8]. The headhunters discover a set of applicable components that satisfy the functional and QoS requirements as indicated by the developer of the distributed system. The developer expresses the QoS requirements by selecting an appropriate set of parameters from a catalog of parameters [2]. After the components are fetched, the distributed application is assembled according to the generation rules embedded in the GDM. This assembly requires the creation of glue/wrapper interface between various components. Two-Level Grammar (TLG) [3] is used to specify the generative rules and provides the formal framework for the generation of the glue/wrapper code. This is implemented according to the process of translating TLG specifications into executable code as described in [6]. QoS parameters are divided into two categories: a) static and b) dynamic. Static QoS parameters (e.g. dependability) are processed during the generation. Dynamic QoS parameters (e.g., response time) result in the instrumentation of generated target code based on event grammars [1], which at run time produce the corresponding QoS dynamic metrics, to be measured and validated. * This material is based upon work supported by, or in part by, the U. S. Army Research Laboratory and the U. S. Army Research Office under contract/grant numbers DAAD and MA, and by the U. S. Office of Naval Research under award number N Department of Computer and Information Sciences, University of Alabama at Birmingham, Birmingham, AL , U. S. A., {zhaow, bryant, cburt}@cis.uab.edu. 2 Department of Computer and Information Science, Indiana University Purdue University Indianapolis, Indianapolis, IN 46202, U. S. A., {rraje, aolson}@cs.iupui.edu. 3 Computer Science Department, New Mexico State University, Las Cruces, NM 88003, U. S. A., mikau@cs.nmsu.edu.

12 QoS parameters given in the query provide a special dimension to the generated code - the instrumentation necessary for the run-time QoS metrics evaluation. Based on the query, the user has to come up with a representative set of test cases. Next the implementation is tested using the set of test cases to verify that it meets the desired QoS criteria. If it does not, it is discarded. After that, another implementation is chosen from the component collection. This process is repeated until an optimal (with respect to the QoS) implementation is found, or until the collection is exhausted. In the latter case, the process may request additional components or it may attempt to refine the query by adding more information about the desired solution from the problem domain. If a satisfactory implementation is found, it is ready for deployment. The case study for the generative approach is a bank account management system. It is assumed that different client and server components for a bank domain are available on the network. These components (belonging to a category, i.e., server/client) do offer the same functionality but different QoS features. After requesting the construction of this system, assume that the headhunters found the following components: JavaAccountClient, JavaAccountServer, and CorbaAccountServer. The first two adhere to the Java-RMI model and the third one is developed with CORBA technology. The UMM specifications associated with the components indicate that the two server components have the same functionality but CorbaAccountServer has better service guarantees and meets the QoS specified in the system query, thus the final system should assembled from the Java client and the CORBA server. Based on the generation rules embedded in GDM, a proxy server for the Java client component, a proxy client for the CORBA server component, a bridge driver between the two proxies and some other installation helper files can be generated to form an integrated account system. The assembled system will be deployed if it meets the desired QoS criteria. If the system succeeds then a new set of UMM specifications will be generated for the integrated system to insure that it is available for the discovery by other head-hunters, i.e., to act as a component of other possible application systems. References: [1] M. Auguston, A. Gates, M. Lujan, Defining a Program Behavior Model for Dynamic Analyzers, Proc. SEKE '97, 9th Int. Conf. Software Eng. Knowledge Eng., 1997, pp [2] G. J. Brahnmath, R. R. Raje, A. M. Olson, M. Auguston, B. R. Bryant, C. C. Burt, A Quality of Service Catolog for Software Components. Proc. Southeastern Software Eng. Conf. (to appear), [3] B. R. Bryant, B.-S. Lee, Two Level Grammar as an Object-Oriented Requirements Specification Language. Proc. 35 th Hawaii Int. Conf. System Sciences, [4] J. C. Cleaveland, Program Generators with XML and Java, Prentice-Hall, [5] K. Czarnecki, U. W. Eisenecker, Generative Programming: Methods, Tools, and Applications. Addison-Wesley, [6] B.-S. Lee, B. R. Bryant, Automated Conversion from Requirements Documentation to an Object- Oriented Formal Specification Language. Proc. ACM Symp. Applied Computing (to appear), [7] R. R. Raje, M. Auguston, B. R. Bryant, A. M. Olson, C. C. Burt, A Unified Approach for the Integration of Distributed Heterogeneous Software Components. Proc. Monterey Workshop Engineering Automation for Software Intensive System Integration, 2001, pp [8] N. N. Siram, R. R. Raje, B. R. Bryant, A. M. Olson, M. Auguston, C. C. Burt, An Architecture for the UniFrame Resource Discovery Service. Submitted for publication, 2002.

13 Lowering Software Product Line Adoption Risks with Generative Technology 1 Position Statement Charles W. Krueger 1 Software product line techniques often focus in the cost/risk/benefit profile for the Conventional and New Software Product Line lines in the following graph and claim success based on the relative slopes. However, the y-intercept of most software product line approaches often measured in many person-years and millions of dollars represents a significant risk of its own and an adoption barrier for most organizations. In order for the software product line approach to be widely adopted in the industry, this adoption barrier must be eliminated. Conventional $ Cost New Software Product Line Software Mass Customization Adoption Barrier # Products To address this problem, we take a generative approach that allows existing one-ofa-kind software, tools, techniques, and organizational structures to be incrementally transitioned into a Software Mass Customization practice. Reuse of existing software, tools, techniques, and organizations removes the adoption barrier associated with re-architecting, re-designing, re-implementing, re-tooling, re-organizing, and shifting paradigms. The leverage of this approach comes from separation of concerns. Existing software engineering technology and techniques are sufficient for most of the software product line engineering tasks except for managing variation. We add a separate technology to the conventional technology mix that is specifically focused on managing product line variation at the artifact level. This approach is illustrated in the following diagram. It shows a software mass customization production line that generates different custom software products by assembling different collections of files, according to a feature model that express the possible customizations. There are three technology components to this generative approach to software mass customization: 1. Author s address: BigLever Software, Inc., Laurel Hill Cove, Austin, TX 78730, USA, Tel: +1 (512) Fax: +1 (512) ckrueger@biglever.com. WWW:

14 1. Software mass customization Infrastructure. The software mass customization infrastructure consists of special-purpose files and directories that are added to your software in order to create a software mass customization production line, or the generator. The infrastructure supports feature modeling, variation points at the source file level, logic to map from feature model to variation point instantiation, and product definition. 2. Software mass customization Development Environment. The software mass customization development environment is used to browse, create, organize, and maintain the infrastructure for your software mass customization production line. 3. Software mass customization Actuator. The software mass customization actuator will activate your software mass customization production line in order to generate custom instances of the software product Software Mass Customization Infrastructure 2. Software Mass Customization Development Environment Custom Product Instances 3. Software Mass Customization Actuator Your Software 2 Experience The fundamental ideas described above evolved from the author s PhD thesis research[5]. These concepts have been researched, developed, and applied in practice over the last 15 years[2][3][4]. The approach is currently being commercialized and actively deployed into practice by BigLever Software, Inc. as a collection of technology and services to aid software development organizations make the transition to software product line practice[1]. 3 Expected Contributions Software mass customization, as interpreted in this work, offers a unique perspective on software product lines and generative programming that can lower the adoption barrier from years to hours. This claim itself promises to generate much lively discussion and practical insight! We take an extremely pragmatic approach to sound computer science principles to place generative programming and software product lines within the grasp of the software industry. The lessons learned should be valuable to the participants of this generative programming workshop.

15 3. References [1] BigLever Software, Inc. Austin, TX. [2] Krueger, C. Using Separation of Concerns to Simplify Software Product Family Engineering. Proceedings of the Dagstuhl Seminar No : Product Family Development. April Wadern, Germany. [3] Krueger, C. Easing the Transition to Software Mass Customization. Proceedings of the 4th International Workshop on Product Family Engineering. October Bilbao, Spain. Springer-Verlag, New York, NY. [4] Krueger, C. Software Reuse ACM Computing Surveys. 24, 2 (June), [5] Krueger, C Modeling and Simulating a Software Architecture Design Space. Ph.D. thesis. CMU-CS , Carnegie Mellon University, Pittsburgh, PA.

16

17 ! "$# &%('*),+-./ 01%2! &'324 F BGIHKJML2NPOQ69B(B0R1ST69?>UWV(=XENPY(YNP?ZR\[69C F^] HKJMNZ8_69B2L `1N ]?av169?agb^cr\b9d9db egf$h$i2j0kli m,noqpsrtvuwno&oqxzyxz{ oq}q~ u o/ƒ uwr s{ rtwnw{ t x xzy/pstwrq{ rw }Auw ˆp; Šx<o&}AuwrWy/ oqnw}a /pšuwr { $Œ2 zž /Ž Z Z a > š 1 œ ž Ÿ^ x ~W{ x$ x< xz su ˆ2xz yx< x<oq{ $ 1 { y/xz x< /{P ˆo/u t oq{ ª ªp;rt u9uw sy<«e ~x $ Mo/uwr xzrw t xzrx<oa{ u o ²±Z³ Ÿ9{ rxa 9 xzry/pšuwr u 2 /~x µ$ & ²¹Z³Wˆ{ oayx<oet xzrx<oq{ u o }<{ s Šxz º*» ¼ Œ ½¾ /~W{ 7À9pŠxz ; Wy$Á^µ& & Ŵo/u^ WnW}<psrt ˆ{ oqyx<oay<ÿ2{ r QÂrW{ s ŠÀà /~x y oqp;}a / ŠÀÄ À9ˆ(xz Q 7 Å W{ /{ psrw psrtlt xzrwx<oq{ u o$œ& ÇÆ,ÈÉ Mu o Ê µ Ë0µlÌ ~x s{ x<o, ÍÇu { oqxª xzy/pštwrxz Q uä (ẍ nyxz IpsrI{ ˆpŠˆ(xz spsrx u }Aoqxz{ xª{î~pštw~w ŠÀ { n uw v{ xz t xzrx<oq{ /pš xï Moq{ x< u o/ƒ, Mu o0p;r x<o/ˆo/x< x<o>ðp}auw ˆp; Šx<o }AuwrWy/ oqnw}a /pšuwr Ñ ³ «~xçˆ{ oqyx<ozÿ { m7 m yˆ(xz}> pš MÀ9psrWt{ ròpsr x<oa xz Wps{ x,{ y oa{ }A &yà^r /{P à o/x<xl ªu9 xz 1p;rà $ ÓŸ{ r Ä{ª}Au o/o/xzyˆ(uwrw psrt Ê µ ˵ psrw psrtly/nwŵˆ(u o/ /psrt P{ sp; W{ /pšuwrî{ rw à 9p;y/pŠ u o y ÍÀ9 sx&ˆ{ x<oarä ª{ /}q~wp;rtª{ o/x,{ s ( x<oqpš xz Î Mo/uw Ô{ y/psrtw sx7p;rˆn Ït oq{ ª v{ o yˆ(xz}<pšâ}<{ /pšuwr\ì ~x v{ Ŵˆpsrtu 3m, 3mKyÀ^r /{P Äp;r u oa ª{ /pšuwrãuwr uv{ªy oqp;}a 3 À9ˆ2xy/À9y xz Õy/nW}a~ { y3 /~W{ u Ê µ ˵ ÖØ{ yïˆ2x<oq u oq ªxz ª 9À Œ Æ,ÈÎÙ0Ŵo/u xzy { snw{ sx&psr x<oq ªy u ª{ p;r /{ psr{ ps spš ÍÀ Ÿ y/{ Mx< ÀÎ{ rw x<úv}<pšxzrw}aà Ÿ 2u /~Òpsrà /~xt xzrx<oa{ xz Ò}Au^ xl{ rw ÄpsrÄ~{ rw ^ oqps xzrãxa 9 xzrwyqpšuwrwy<ì Û Ü Ý egf$þàß á1jóâ2â(ãqf$h äg~ps Šx u o/ƒ^psrtluwrîœ Æ,Èßw x&}<{ x,{ }Ao/uwyqyÇ{ xz}q~wrpså nwx ƒ^ru rv oquw /~x${ Št x<ẅoq{ p;} /~x<u o/à u Ó Mo/x<ẍ { /{ À9ˆ2xzy ÖØ}A æìšÿ1x ̲tÌŠŸ* èça³øù/«,é>ê ëì í î ïñð òmóôqõzì ôqðqì ô<óaöàõa ö&øó/ô>éqé>ò_ ëwìùæ $}AuwnW ; Ò (x{ Ŵˆ spšxz uä $ ÓŸ1xA ^ˆ Šuwps /psrtãyà9r /{P TÖ_m, 3m Ù&p;r u oa ª{ /pšuwrq u o x<oapš 9p;rt u ˆ /ps ªpŠú<xz I}<{ ruwrwp;}<{ Eyx<oqps{ xzrw}au^ WpsrtwyÏ Mu o (u /~Ä oq{ rwyq{ }A /pšuwrwy { rw ˆ2x<oay/psy xzr y u oq{ t xu { sps à 7 Q û u^}<nw xzr /y<ì äüxl&psy/~ã uªo/x<ˆ(u o/ 3uwrÒuwno xa ^ˆ(x<oqpŠxzrW}Ax,uwrÄ /~Wxl{ n uw ª{ xz Qt xzrx<oq{ /pšuwròu m, 3m$ yˆ(xz}<pšâ} }Au9 Wxz}<yÎ{ r Å utŵo/u ˆ(uwyxÒ /~WxÒt xzrx<oq{ $ps xz{ u, { s{ rw}<p;rt /~xqt xzrx<oqps}<pš ÍÀýu 7 þ{ tw{ p;rwy ~WpŠtw~x<o3x<Ú }<pšxzrw}aàäpsrä uw ª{ p;r^ yˆ(xz}<pšâ}$yx< /psrtv u o }AoapŠ /ps}<{ 1 Wpsyq}<nWy/y/pŠuwr\Ì Á9À^r /{P 9 WpŠoqxz}A xz Q}Auw ˆo/xzy/y/pŠuwrÒÇu oqƒ9ÿ Ö_o/uwntw~W sàùç ;pšƒ x /~Wpsyz«ÿ$rW x<o& /~x{ y/yqnw Ŵ /pšuwrò /~W{ {, u^}<nw xzr Ópsy0}Auwr u oa u{7twpš xzrt oq{ ª v{ ozÿ nw}q~ u 2 /~x ª{ oqƒ9nˆ (xz}auw xzyeoqxz WnWrW W{ r <Ì µ y /{ o/ 0 /{ t,}<{ r 2x uw ªpŠ xz pš /~WxÇxz Šxz ªxzr 0rW{ xïpsy0nwrwpså9nxz ŠÀ7 x< x<oq vpsrxz À, /~xït oq{ v ª{ ozÿ { r xzrw Q /{ tî}<{ rq (xluw ªpŠ xz pš EruÎ}Auwr /psr9nw{ /pšuwrqu E /~x}<no/o/xzr xz sxz xzr y$}auwr xzr,psy&ˆ(uwy/y/pš sx Ÿ { oqpš nw xîrw{ ªxzÿ }<{ r (x uw ªpŠ xz ýpš { oqps n xzÿ { o/xä{ Š { À9ytwps xzrtp;rûy /{ r W{ oq ûu oq x<ox< /} Ì ç

18 Ó xzr ~xzrv /~x<o/x psyçyuw x& o/x<xz Wuw u 1}q~Wuwps}Ax$p;r /~x t oa{ ª ª{ ozÿ9x ̲tÌŠŸ^ ~xzr Mxz{ /no/xzy spšƒ x u ö l{ o/ẍ nwyxz 1ŸuwrW sàã{vr nw (x<o u 0 pš /y3ˆo/u ˆ(u o/ /pšuwrw{ ( uª /~WxŠ zõqíexzr o/u ˆ9ÀÄu 0 /~W{ &}a~uwps}ax ˆ(uwpsr nwy 3 (x{ s su9}<{ xz 1Ì ~9nWy<Ÿ9 /~x7 o/x<xa y oqn}a /no/x7u { rî 7 Q Wu9}<nW ªxzr Ï}<{ rã (x$}auw ˆo/xzy/yxz à oq{ v{ /ps}<{ s ŠÀ Ÿ^ru uwrw ŠÀ7o/xz Wn}<psrt y u oq{ t xïy/pšú<xç{ rw lyˆ(x<xz Wp;rt nˆ oq{ ry/ ªpsy/yqpŠuwr1Ÿz nw *ÖØpsrl}<{ y/x*u W{ oanwy xz ly/uwnoq}ax Ù { syu&xz sps ªpsr{ /psrtï /~x*uz x<oq~xz{ u 7 ˆ{ oqy/psrt { r { sps W{ /pšuwr\ì ~x y oqps}a x<o /~x*t oq{ v ª{ ozÿ /~xi u o/xix<úv}<pšxzr Îp;yv /~xü}auw ˆo/xzy/y/pŠuwr\Ì ~Wp;y ª{ ƒ xzyãpš Ã{ oq{ }A /pš xü Mu oã /~x xzrw}au9 psrt u $ psry /{ rw}axzyço/x<ŵo/xzyxzr /psrt~wpštw~ ŠÀ y oqnw}a /noqxz W{ /{^Ÿy/n}q~Ã{ yï}auwrâwtwnoq{ /psuwrî { /{^Ÿ9oqxz u x oq{ rwy/{ }A /psuwrwyö_x ̲tÌ Á µ Ù/Ÿ3u o { y oq{ }A Òy/À9r /{Pǵ oqx<xzyö_ ~W{ à xnwyxpš à Mu o<ù/ì7 ^pšuwnwy { Ŵˆ sp;}<{ /pšuwrwy p;rw}< snw xlxz l (xz W xz yà^y xz ªy$ pš /~Q /pštw~ / ŠÀÒ sp; ªpŠ xz Ĉ(x<oqy/p;y xzr 7y u oq{ t x Ÿ\{ y$ xz s { y ÍÇuQƒ x<àü xz}q~wruw su twpšxzyu Ï /~xªägägäþ«u ps sx}au^ xòö_&~x<o/xv ª{ r Àü{ ^ ~u^} }Auw Ŵo/xzyqy/pŠuwr y/}q~wxz xzy ~W{ x{ Šoqxz{ À (x<xzrãŵoqu ˆ2uwy/xz (Ù*{ rw Ä & Q *Ì Á9À^r /{P 9 WpŠoqxz}A xz }Auw Ŵo/xzy/yqpŠuwr }Auw psrwxzyq xz s pš /~ t xzrx<oq{ è ˆno/ˆ(uwyxû{ { Ŵ /pš xt À9 xa y o/xz{ }Auw ªŴo/xzy/y/psuwr { st u oqpš /~W ªyzŸ2x ̲tÌŠŸ \xz ˆ(xz è 1pŠ Äu o&n( ª{ r\ì xz}<{ nwyxª /~Wẍ Mu oq x<o,xa 9 ˆ ŠuwpŠ /y yuwnoq}axzyu Woqxz WnWrW W{ r}aà7rwu { P{ ps ;{ Šx* u$ /~xï s{ x<ozÿ (u /~ }<{ r (xçx2xz}a /pš xz sàl}auw l psrxz uò}auw Ŵoqxzy/y}Auw ˆ sxaí}auw ˆ(uwnWr ü u9}<n xzr /y7 /~{ l}auwr /{ p;r o/x<xa y oanw}a /no/xz üˆ{ o/ /y{ y, xz s { y ŴoquwyxªÖ_u o p;rw{ o/àv W{ /{9Ù/Ì! j*ḧ "$# $ˆ(xzrå nxzy/ /pšuwrwy0{ rw ˆ(uwy/y/pŠ sxó u ˆps}<y0u 2 Wpsy/}<nWyqy/pŠuwrlp;rW}< snw x «äg~w{ E}< s{ yqy0u { Ŵˆ ;ps}<{ /pšuwrwy}<{ r { }A /nw{ s ŠÀ (xzrx<âw o/uw }Auw ªŴo/xzy/yxz 7 ÄxzrW}Au^ Wpsrtwy&% äüuwn s pš 0 (xç u o/ /~ ~Wps Šx u,ŵo/u ˆ(uwyxÏ{ y /{ rw W{ oa WpŠúz{ /pšuwrî u Ŵo/uw ªu x7p;r x<o/u ˆ(x<oq{ ps spš ÍÀ Ÿ u o y/~wuwnw s ÎpŠ Ï 2x$o/xzy oaps}a xz à uª Šu Šx< xz 1 W{ /{ xzrw}au^ Wpsrt pš /~Wpsr uwrẍ { ˆˆ sps}<{ /pšuwr'%(&u Ky/x< x<o/ẍ p;y /~xps ˆ{ }A &uwrqo/u nwy/ /rxzy/y$psrw}<no/oqxz Ä À o/xz WnW}Axz Òo/xz WnWr W{ rw}aà Ÿ{ rw Q}AuwnW s QpŠ (x Mxz{ y/pš ŠÀÃo/xz ªxz WpŠxz )%*&u }AuwnW s Òˆ(x<oqy/psy xzr}aàîpsyqy/nxzy<ÿ x ̲tÌ*m, 3m x< uw snw /pšuwr1ÿ (x~w{ rw W sxz )% + j-,zjóá1jçḧ.ejóâ èç>³ ÌWÊ { ry/yuwr { rw ÄÊÌWÊwxznoapsrtÌ/uw ŠÀ ÍÀ ˆps},}Auw ˆ{ }A ˆoqpsr /psrt{ rw Ĉ{ oqyqpsrtì0ùær103óñ õaôqôqð òmë32 é 4 ì6587:9ó aøôqí ë<;wê ö&ø^ Pé>ò=9^ö ë10ïó >2wóñí ööòmë32?@7a;cb@0d EFE Ÿ\çHGGG9Ì ²±Z³ ûì2 x<ŵˆ(x<ozÿi$ì( oq{ rw}ij uwr À ä ps xz v{ rwr1ÿ({ rw IÊWÌ(ägpsxz s{ rw 1Ì7 Qp;rWps ú<ẍ ª{ o/ƒ nˆlknmò ${ ñ noa{ oapš /psrtîy/~uwnw s ÒtwnWps ẍ /~x xzy/pstwròu Ç xa 9 /nw{ E ªu9 xz ;psrtv Mo/uwr xzrw Wy<Ì,ùñrPOE ëõ>ôíø2ìq9wí R zð ôžòmë32tsu7@vxwzy[y\ Ÿ2 uw snw xl± ± ±PÑ u /]_^O ;Ì2Á9Ŵoqp;rt x<ozÿ^ uz xz l (x<o,±``ç Ì ²¹Z³,Ì0{ o/o Ìba^dcI]CVeV ôqfzôaó/ôaë2õaôr í ë9wížìhgji,noqn1ÿ3kl3lfm:npoqorqr3r:sptvulw[xasyfxqzof{qy 9Ì Ñ ³ $Ì\ oq{ rw}ij uwrüàiä ps xz ª{ rwr\ÿ\ Ì x<ŵˆ(x<ozÿ\{ rw ÊÌ1ägpsxz s{ rw 1Ì µ$n uw ª{ /ps} }AuwrWy/ oqnw}a /pšuwrüu 7 Q \ { yxz ü u9uw syyx<xzr{ yl ªx< /{P Ŵo/u t oq{ ª vpsrtìv uò{ Ŵˆ(xz{ opsr1«µ$n uw ª{ xz Á9u M Ï{ o/x Çrtwpsrx<x<oqp;rẗ Ê uwnoqrw{ ŸWÁ^ˆ2xz}<p;{ (ùæy/yqnx,uwrä 7 Q û xz}a~wruw Šu twpšxzyzÿ±`ẁ±9ì }~ ƒ ˆ NŠ/ hšlœv & AŽ> j X : / j q Œƒ Œv š'œ& & : vž œhÿ ƒ œ& b Q N ƒ ƒ ƒ j & v : ª) ž œ& : j œ& X œ: & «I q = Q v œ& 6 ƒ ž & ˆ ±>² j³až Œv j &ž _ ž & vœ& v žp j qµ/ ±

19 DMS: Practical Code Generation and Enhancement by Program Transformation Ira D. Baxter Semantic Designs, Inc. Abstract The DMS Software Reengineering Toolkit is generalized compiler technology used to carry out practical, custom automated analyses, enhancement and code generation for large-scale software systems. The core component of DMS is a rewriting engine, enabling the principal benefit: reuse of generative knowledge cast as source-to-source transformations. However, the core issue for realizing a practical system is scale, along a number of axes. DMS provides for scale in encoding and working with multiple domain languages, at multiple levels of abstraction, for million-line source/target systems, using parallel computation as a foundation. 1 Experience with Generative Systems This author has been working with generative systems since the early 70s, when he discovered the classic MetaII paper on compiler-compilers [Schorre64], in which an extensible self-compiling compiler-compiler is provided in a total of 10 pages. (This paper is still an astoundingly good read). These techniques were used to implement C-like system-programming languages for 16 bit minicomputers, and Pascal-like commercial BASIC compilers for 8 bit microprocessors in the 80s. Early experience with Draco [Neighbors84], a multidomain program transformation system, lead to automated porting between LISP dialects between two very different platforms [ABFP86]. The ideas behind the port eventually lead to a theory of Design Maintenance by capture, revision, and replay of transformational designs [Baxter90, Baxter92, BaxPidg97], driven by designs that explain program functionality, performance, implementation, and rationale [Baxter01b]. The Sinapse [Kant91] system was used to synthesize high-performance supercomputer FORTRAN codes from high-level specifications consisting of partial differential equations and implementation hints, via program transformation. My work on Sinapse led to understanding the value of conventional compiler technology (parsing, semantic analysis) and optimizations (flow analysis, common subexpression elimination, etc.) in generating good code, and the synergy between parallelism and information flows. Failure to handle scale was one of the key contributors to the termination of the Sinapse project; as carrying out such syntheses in a pure transformation/rewriting system (such as Mathematica, the foundation of Sinapse) took over 1 day for 5-10K SLOC. The vision of Design Maintenance as a practical, scalable tool is the driver behind the present commercial implementation of the DMS Software Reengineering Toolkit [DMS2001]. DMS is presently available industrial strength reengineering and code-generation applications. Future versions should be capable of reverse-engineering low-level applications back to specifications [BaxMeh97]. 2 DMS We believe that DMS provides the right generative technology base, in which reusable implementation knowledge (rather than code) is cast in the form of: 1) Specification parsers using robust GLR/Tomita [Tomita86, vandenbrand98] parsers, to simplify the problem of defining arbitrary human-readable specification languages and acquiring specification instances to drive generative processes. (The DMS vision includes the notion of graphical domains, but this is not presently implemented). 2) Source-to-source transformations ( component implementation knowledge ). These a. implement optimizations with a domain and refinements between domains [Neighbors84]. (Unlike Draco, procedural and mixed transformations are also practical under DMS.) b. are tightly integrated with the parsing and lexing technology to enable use with real languages (such as C++, Java, Progress) c. are executed by an associative/commutative rewrite engine, enabling good symbolic simplification for arbitrary arithmetic and Boolean formulas 3) High-level reusable knowledge about sequencing of transformations, 4) Domain-language specific analysis procedures usually implemented generatively by DMS from attribute evaluator specs Copyright 2001 Semantic Designs, Inc. 1

20 5) A parallel execution foundation (PARLANSE) to maximize the amount of computational horsepower available for analysis or transformation (the attribute evaluators are compiled by DMS into parallel PARLANSE code based on attribute information flow). Some other generative methods, while widely available and therefore initially attractive, fail to handle scalability issues and will ultimately lead their users to long-term problems. We offer two examples, which we think, will not stand up in the long term: 1) C++ template metaprogramming, which being Turing capable can compute any result. However it is just as hard to program as a Post System, does not handle domain notations (being only C++ templates!) and does not appear practical for generating very large systems 2) XML-based code generation, which provides program transformations in a functional programming paradigm directly on trees. Manipulating large trees functionally will scale poorly, and one cannot use domain-specific notations directly either in specification or the rewrite rules. We believe that the argument that XML is a practical, human readable domain specific notation as specious, as it requires the user to twist his notion of domain nations to XML s model of nested tags. Clearly this is a failure if you want to model partial differential equations directly. 3 Applications of DMS DMS has been used for a number of practical industrial applications, most focused on reengineering but some on generation: 1) Removal of dead preprocessor conditionals from C source code (tens of rules) [BaxMeh01] 2) Detection of duplicate ( cloned ) code (procedural analysis implemented in parallel), and macroized removal of clones (tens of rules) [BaxterEtAl98] 3) Insertion of test-coverage probes for Java (with nearly trivial generalization to other languages) (roughly a hundred rules) [Baxter01a] 4) Porting JOVIAL (a legacy DOD language) to C, including translation of macros (work in progress, several thousand rules) 5) Generation of factory controller code from factory manufacturing process descriptions Copyright 2001 Semantic Designs, Inc. (thousands of rules, several layers of domain languages and refinements, very strong Boolean formula simplification) 6) Generation of fast XML parsers from XML DTDs (work in progress; tens of rules) 7) DMS Self application: References a. Generation of fast UNICODE lexers b. Generation of million-line parallel attribute evaluators, via DMS-based attribute evaluators c. Planned PARLANSE optimization [ABFP86] G. Arango, I. Baxter, C. Pidgeon, P. Freeman, TMM: Software Maintenance by Transformation, IEEE Software 3(3), May 1986, pp [Baxter90] I. Baxter, Transformational Maintenance by Reuse of Design Histories Ph.D. Thesis, Information and Computer Science Department, University of California at Irvine, Nov. 1990, TR [Baxter92] I. Baxter Design Maintenance Systems, Comm. of the ACM 35(4), 1992, ACM. [Baxter01a] I. Baxter, Branch Coverage For Arbitrary Languages Made Easy: Transformation Systems to the Rescue!, IWAPATV2/ICSE2001, Publications/TestCoverage.pdf [Baxter01b] I. Baxter, Breaking the Software Development Roadblock: Continuous Software Enhancement By Design Maintenance, Software Design and Productivity Workshop, Vanderbilt University 2001, Ira%20Baxter%20(Breaking%20the%20Software %20Development).doc [BaxMeh97] I. Baxter and M. Mehlich. Reverse Engineering is Reverse Forward Engineering. 4th Working Conference on Reverse Engineering, 1997, IEEE [BaxMeh01] I. Baxter, M. Mehlich, Preprocessor Conditional Removal by Simple Partial Evaluation, AST01/WCRE2001, 2001, IEEE. [BaxPidg97] I. Baxter and C. Pidgeon. Software Change Through Design Maintenance. International Conference on Software Maintenance, 1997, IEEE [BaxterEtAl98] I. Baxter, et. al Clone Detection Using Abstract Syntax Trees, International Conference on Software Maintenance, 1998, IEEE. [DMS2001] DMSToolkit.html. [Kant91] E. Kant, F. Daube, E. MacGregor, and J. Wald. Scientific Programming by Automated Synthesis. In: M.R. Lowery and R.D. McCartney (eds.). Automating Software Design. MIT Press, [Neighbors84] J. Neighbors. The Draco Approach to Constructing Software from Components. IEEE Transactions on Software Engineering 10(5): , [Schorre64] V. Schorre, Meta-II: a Syntax Oriented Compiler Writing Language, Proc 19th ACM National Conference, 1964, AFIPS] [Tomita86] M. Tomita, Efficient Parsing for Natural Languages, Kluwer Academic Publishers, [vandenbrand98], M van den Brand, et al, Current Parsing Techniques in Software Renovation Considered Harmful, Sixth International Workshop on Program Comprehension, 1998, IEEE 2

Automating Feature-Oriented Domain Analysis

Automating Feature-Oriented Domain Analysis Automating eature-oriented Domain Analysis ei Cao, Barrett R. Bryant, Carol C. Burt Department of Computer and Information Sciences University of Alabama at Birmingham caof, bryant, cburt@cis.uab.edu Zhisheng

More information

QoSPL: A QoS-Driven Software Product Line Engineering Framework for Distributed Real-time and Embedded Systems

QoSPL: A QoS-Driven Software Product Line Engineering Framework for Distributed Real-time and Embedded Systems QoSPL: A QoS-Driven Software Product Line Engineering Framework for Distributed Real-time and Embedded Systems Shih-Hsi Alex Liu 1, Barrett R. Bryant 1, Jeff Gray 1, Rajeev Raje 2, Mihran Tuceryan 2, Andrew

More information

Integration With the Business Modeler

Integration With the Business Modeler Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design

More information

3.4 Data-Centric workflow

3.4 Data-Centric workflow 3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

DesignMinders: A Design Knowledge Collaboration Approach

DesignMinders: A Design Knowledge Collaboration Approach DesignMinders: A Design Knowledge Collaboration Approach Gerald Bortis and André van der Hoek University of California, Irvine Department of Informatics Irvine, CA 92697-3440 {gbortis, andre}@ics.uci.edu

More information

White Paper on RFP II: Abstract Syntax Tree Meta-Model

White Paper on RFP II: Abstract Syntax Tree Meta-Model White Paper on RFP II: Abstract Syntax Tree Meta-Model OMG Architecture Driven Modernization Task Force August 18, 2004 Contributors: Philip Newcomb, The Software Revolution, Inc. Ed Gentry, Blue Phoenix,

More information

Integrating Domain Specific Modeling into the Production Method of a Software Product Line

Integrating Domain Specific Modeling into the Production Method of a Software Product Line Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary J. Chastek Software Engineering Institute John D. McGregor Clemson University Introduction This paper describes

More information

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology International Workshop on Energy Performance and Environmental 1 A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology P.N. Christias

More information

QoS-aware model-driven SOA using SoaML

QoS-aware model-driven SOA using SoaML QoS-aware model-driven SOA using SoaML Niels Schot A thesis submitted for the degree of MSc Computer Science University of Twente EEMCS - TRESE: Software Engineering Group Examination committee: Luís Ferreira

More information

Microsoft SharePoint Server 2013 Plan, Configure & Manage

Microsoft SharePoint Server 2013 Plan, Configure & Manage Microsoft SharePoint Server 2013 Plan, Configure & Manage Course 20331-20332B 5 Days Instructor-led, Hands on Course Information This five day instructor-led course omits the overlap and redundancy that

More information

Formalizing OO Frameworks and Framework Instantiation

Formalizing OO Frameworks and Framework Instantiation Formalizing OO Frameworks and Framework Instantiation Christiano de O. Braga, Marcus Felipe M. C. da Fontoura, Edward H. Hæusler, and Carlos José P. de Lucena Departamento de Informática, Pontifícia Universidade

More information

Two-Level Grammar as the Formalism for Middleware Generation in Internet Component Broker Organizations * Wei Zhao **

Two-Level Grammar as the Formalism for Middleware Generation in Internet Component Broker Organizations * Wei Zhao ** Two-Level Grammar as the Formalism for Middleware Generation in Internet Component Broker Organizations * Wei Zhao ** Abstract During the software production of any business domain, we will encounter components

More information

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price. Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which

More information

Software Reuse and Component-Based Software Engineering

Software Reuse and Component-Based Software Engineering Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering

More information

Modules. CS2023 Winter 2004

Modules. CS2023 Winter 2004 Modules CS2023 Winter 2004 Outcomes: Modules C for Java Programmers, Chapter 7, sections 7.4.1-7.4.6 Code Complete, Chapter 6 After the conclusion of this section you should be able to Understand why modules

More information

Internet Application Developer

Internet Application Developer Internet Application Developer SUN-Java Programmer Certification Building a Web Presence with XHTML & XML 5 days or 12 evenings $2,199 CBIT 081 J A V A P R O G R A M M E R Fundamentals of Java and Object

More information

Migrating to Object Data Management

Migrating to Object Data Management Migrating to Object Data Management Arthur M. Keller * Stanford University and Persistence Software Paul Turner Persistence Software Abstract. We discuss issues of migrating to object data management.

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

Formal Methods in Describing Architectures

Formal Methods in Describing Architectures Presented at the 1995 Monterey Workshop on Formal Methods and Architecture Introduction Formal Methods in Describing Architectures Dr. Paul C. Clements Software Engineering Institute 1 Carnegie Mellon

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

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

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

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

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

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

More information

Software Architecture Recovery based on Dynamic Analysis

Software Architecture Recovery based on Dynamic Analysis Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box 68511 ZIP 21945-970 Rio de Janeiro

More information

FORMAL METHODS FOR QUALITY OF SERVICE ANALYSIS IN COMPONENT-BASED DISTRIBUTED COMPUTING

FORMAL METHODS FOR QUALITY OF SERVICE ANALYSIS IN COMPONENT-BASED DISTRIBUTED COMPUTING Integrated Design and Process Technology, IDPT 2003 Printed in the United States of America, December, 2003 2003 Society for Design and Process Science FORMAL METHODS FOR QUALITY OF SERVICE ANALYSIS IN

More information

Variability Implementation Techniques for Platforms and Services (Interim)

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

More information

Knowledge enrichment through dynamic annotation

Knowledge enrichment through dynamic annotation Knowledge enrichment through dynamic annotation Abstract This paper describes a technique for interceding between users and the information that they browse. This facility, that we term dynamic annotation,

More information

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,

More information

Marshaling and Unmarshaling Models Using. Entity-Relationship model

Marshaling and Unmarshaling Models Using. Entity-Relationship model Marshaling and Unmarshaling Models Using the Entity-Relationship Model* Fei Cao, Barrett R. Bryant, Wei Zhao, Carol C. Burt Department of Computer and Information Sciences University of Alabama at Birmingham

More information

HyperFrame - A Framework for Hypermedia Authoring

HyperFrame - A Framework for Hypermedia Authoring HyperFrame - A Framework for Hypermedia Authoring S. Crespo, M. F. Fontoura, C. J. P. Lucena, D. Schwabe Pontificia Universidade Católica do Rio de Janeiro - Departamento de Informática Universidade do

More information

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Gilles Ardourel, Marianne Huchard To cite this version: Gilles Ardourel, Marianne Huchard. Teaching Encapsulation and

More information

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

More information

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability. BPS Suite and the OCEG Capability Model Mapping the OCEG Capability Model to the BPS Suite s product capability. BPS Contents Introduction... 2 GRC activities... 2 BPS and the Capability Model for GRC...

More information

Design concepts for data-intensive applications

Design concepts for data-intensive applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Design concepts for data-intensive applications Attila Adamkó Department of Information Technology, Institute of

More information

Conceptual Model for a Software Maintenance Environment

Conceptual Model for a Software Maintenance Environment Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:

More information

INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL

INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL J. E. BURGE, D. C. BROWN AI in Research Group Department of Computer Science WPI, 100 Institute Road Worcester, MA 01609, USA Abstract. One goal for having

More information

Requirements Engineering for Enterprise Systems

Requirements Engineering for Enterprise Systems Association for Information Systems AIS Electronic Library (AISeL) AMCIS 2001 Proceedings Americas Conference on Information Systems (AMCIS) December 2001 Requirements Engineering for Enterprise Systems

More information

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Muhammad Ali Babar National ICT Australia Ltd. and University of New South

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

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Fundamentals of STEP Implementation

Fundamentals of STEP Implementation Fundamentals of STEP Implementation David Loffredo loffredo@steptools.com STEP Tools, Inc., Rensselaer Technology Park, Troy, New York 12180 A) Introduction The STEP standard documents contain such a large

More information

1 Version management tools as a basis for integrating Product Derivation and Software Product Families

1 Version management tools as a basis for integrating Product Derivation and Software Product Families 1 Version management tools as a basis for integrating Product Derivation and Software Product Families Jilles van Gurp, Christian Prehofer Nokia Research Center, Software and Application Technology Lab

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Combining Different Business Rules Technologies:A Rationalization

Combining Different Business Rules Technologies:A Rationalization A research and education initiative at the MIT Sloan School of Management Combining Different Business Rules Technologies:A Rationalization Paper 116 Benjamin Grosof Isabelle Rouvellou Lou Degenaro Hoi

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

ITM DEVELOPMENT (ITMD)

ITM DEVELOPMENT (ITMD) ITM Development (ITMD) 1 ITM DEVELOPMENT (ITMD) ITMD 361 Fundamentals of Web Development This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jquery, and graphical applications

More information

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

From Oracle Forms to Oracle ADF and J2EE

From Oracle Forms to Oracle ADF and J2EE From Oracle Forms to Oracle ADF and J2EE Modernizing Oracle Forms applications to Oracle Application Development Framework and the J2EE Architecture PITSS.CON 8.0.0 White Paper, June 2009 Introduction...

More information

An RDF NetAPI. Andy Seaborne. Hewlett-Packard Laboratories, Bristol

An RDF NetAPI. Andy Seaborne. Hewlett-Packard Laboratories, Bristol An RDF NetAPI Andy Seaborne Hewlett-Packard Laboratories, Bristol andy_seaborne@hp.com Abstract. This paper describes some initial work on a NetAPI for accessing and updating RDF data over the web. The

More information

Usually software system variants, developed by Clone-and-own approach, form

Usually software system variants, developed by Clone-and-own approach, form ABSTRACT Usually software system variants, developed by Clone-and-own approach, form a starting point for building Software Product Line. To migrate software systems which are deemed similar to a product

More information

Defining Domain-Specific Modeling Languages

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

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

Analyzing the Web Services and UniFrame Paradigms 1

Analyzing the Web Services and UniFrame Paradigms 1 Analyzing the Web Services and UniFrame Paradigms 1 Natasha Gupta 2 Rajeev R. Raje 2 Andrew Olson 2 Barrett R. Bryant 3 Mikhail Auguston 4 Carol Burt 3 Abstract The software realization of today s distributed

More information

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Dietmar Schreiner 1,2 and Karl M. Göschka 1 1 Vienna University of Technology Institute of Information

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema Introduction The advanced XML Schema handling and presentation capabilities of Stylus Studio have valuable implications

More information

Automated Improvement for Component Reuse

Automated Improvement for Component Reuse Automated Improvement for Component Reuse Muthu Ramachandran School of Computing The Headingley Campus Leeds Metropolitan University LEEDS, UK m.ramachandran@leedsmet.ac.uk Abstract Software component

More information

Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment

Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment Shigeo Sugimoto Research Center for Knowledge Communities Graduate School of Library, Information

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

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

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Delft University of Technology Software Engineering Research Group Technical Report Series Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve

More information

THE GLOBUS PROJECT. White Paper. GridFTP. Universal Data Transfer for the Grid

THE GLOBUS PROJECT. White Paper. GridFTP. Universal Data Transfer for the Grid THE GLOBUS PROJECT White Paper GridFTP Universal Data Transfer for the Grid WHITE PAPER GridFTP Universal Data Transfer for the Grid September 5, 2000 Copyright 2000, The University of Chicago and The

More information

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components 2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of

More information

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

X-S Framework Leveraging XML on Servlet Technology

X-S Framework Leveraging XML on Servlet Technology X-S Framework Leveraging XML on Servlet Technology Rajesh Kumar R Abstract This paper talks about a XML based web application framework that is based on Java Servlet Technology. This framework leverages

More information

Eight units must be completed and passed to be awarded the Diploma.

Eight units must be completed and passed to be awarded the Diploma. Diploma of Computing Course Outline Campus Intake CRICOS Course Duration Teaching Methods Assessment Course Structure Units Melbourne Burwood Campus / Jakarta Campus, Indonesia March, June, October 022638B

More information

GSAW Software Architectures: What are we Building? March 1999

GSAW Software Architectures: What are we Building? March 1999 GSAW 1999 Software Architectures: What are we Building? March 1999 Roger J. Dziegiel, Jr AFRL/IFTD 525 Brooks Rd Rome, NY 13441-4505 (315)330-2185 dziegielr@rl.af.mil Arch1 Architecture & Generation Parameterized

More information

A Lightweight Language for Software Product Lines Architecture Description

A Lightweight Language for Software Product Lines Architecture Description A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN

More information

Quality of Service-Driven Requirements Analyses for Component Composition: A Two-Level Grammar++ Approach 1

Quality of Service-Driven Requirements Analyses for Component Composition: A Two-Level Grammar++ Approach 1 Quality of Service-Driven Requirements Analyses for Component Composition: A Two-Level Grammar++ Approach 1 Shih-Hsi Liu 2, Fei Cao 2, Barrett R. Bryant 2, Jeff Gray 2, Rajeev R. Raje 3, Andrew M. Olson

More information

Authoring and Maintaining of Educational Applications on the Web

Authoring and Maintaining of Educational Applications on the Web Authoring and Maintaining of Educational Applications on the Web Denis Helic Institute for Information Processing and Computer Supported New Media ( IICM ), Graz University of Technology Graz, Austria

More information

Using Architectural Models at Runtime: Research Challenges

Using Architectural Models at Runtime: Research Challenges Proceedings of the European Workshop on Software Architectures, St. Andrews, Scotland, May 2004. Using Architectural Models at Runtime: Research Challenges David Garlan and Bradley Schmerl Department of

More information

Accelerates Timelines for Development and Deployment of Coatings for Consumer Products.

Accelerates Timelines for Development and Deployment of Coatings for Consumer Products. May 2010 PPG Color Launch Process Accelerates Timelines for Development and Deployment of Coatings for Consumer Products. Inspire Market Feedback/Sales Design Color Develop Designer Mass Production Marketing

More information

Collaborative Framework for Testing Web Application Vulnerabilities Using STOWS

Collaborative Framework for Testing Web Application Vulnerabilities Using STOWS Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology ISSN 2320 088X IMPACT FACTOR: 5.258 IJCSMC,

More information

Designing a System Engineering Environment in a structured way

Designing a System Engineering Environment in a structured way Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan

More information

A Design Rationale Representation for Model-Based Designs in Software Engineering

A Design Rationale Representation for Model-Based Designs in Software Engineering A Design Rationale Representation for Model-Based Designs in Software Engineering Adriana Pereira de Medeiros, Daniel Schwabe, and Bruno Feijó Dept. of Informatics, PUC-Rio, Rua Marquês de São Vicente

More information

Content Management for the Defense Intelligence Enterprise

Content Management for the Defense Intelligence Enterprise Gilbane Beacon Guidance on Content Strategies, Practices and Technologies Content Management for the Defense Intelligence Enterprise How XML and the Digital Production Process Transform Information Sharing

More information

Exploring the Concept of Temporal Interoperability as a Framework for Digital Preservation*

Exploring the Concept of Temporal Interoperability as a Framework for Digital Preservation* Exploring the Concept of Temporal Interoperability as a Framework for Digital Preservation* Margaret Hedstrom, University of Michigan, Ann Arbor, MI USA Abstract: This paper explores a new way of thinking

More information

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

2 nd UML 2 Semantics Symposium: Formal Semantics for UML 2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany

More information

National Data Sharing and Accessibility Policy-2012 (NDSAP-2012)

National Data Sharing and Accessibility Policy-2012 (NDSAP-2012) National Data Sharing and Accessibility Policy-2012 (NDSAP-2012) Department of Science & Technology Ministry of science & Technology Government of India Government of India Ministry of Science & Technology

More information

Transitioning to Symyx

Transitioning to Symyx Whitepaper Transitioning to Symyx Notebook by Accelrys from Third-Party Electronic Lab Notebooks Ordinarily in a market with strong growth, vendors do not focus on competitive displacement of competitor

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Document Control Information

Document Control Information Document Control Information Document Details Document Name Purpose of Document Document Version Number 3.1 Document Status Document Owner Prepared By The ITIL Intermediate Qualification: Service Operation

More information

Style-specific techniques to design product-line architectures

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

More information

Full file at

Full file at Chapter 2 Data Warehousing True-False Questions 1. A real-time, enterprise-level data warehouse combined with a strategy for its use in decision support can leverage data to provide massive financial benefits

More information

XML-based production of Eurostat publications

XML-based production of Eurostat publications Doc. Eurostat/ITDG/October 2007/2.3.1 IT Directors Group 15 and 16 October 2007 BECH Building, 5, rue Alphonse Weicker, Luxembourg-Kirchberg Room QUETELET 9.30 a.m. - 5.30 p.m. 9.00 a.m 1.00 p.m. XML-based

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Automatic Generation of Workflow Provenance

Automatic Generation of Workflow Provenance Automatic Generation of Workflow Provenance Roger S. Barga 1 and Luciano A. Digiampietri 2 1 Microsoft Research, One Microsoft Way Redmond, WA 98052, USA 2 Institute of Computing, University of Campinas,

More information

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper December 2011

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper December 2011 Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide An Oracle White Paper December 2011 Disclaimer The following is intended to outline our general product direction.

More information

Computing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS

Computing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS Computing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS Optional for Reviews During the 2018-2019 Accreditation Cycle Mandatory for Reviews During the 2019-2020 Accreditation

More information

Self-Adaptive Middleware for Wireless Sensor Networks: A Reference Architecture

Self-Adaptive Middleware for Wireless Sensor Networks: A Reference Architecture Architecting Self-Managing Distributed Systems Workshop ASDS@ECSAW 15 Self-Adaptive Middleware for Wireless Sensor Networks: A Reference Architecture Flávia C. Delicato Federal University of Rio de Janeiro

More information

Control-M and Payment Card Industry Data Security Standard (PCI DSS)

Control-M and Payment Card Industry Data Security Standard (PCI DSS) Control-M and Payment Card Industry Data Security Standard (PCI DSS) White paper PAGE 1 OF 16 Copyright BMC Software, Inc. 2016 Contents Introduction...3 The Need...3 PCI DSS Related to Control-M...4 Control-M

More information

The NIH Collaboratory Distributed Research Network: A Privacy Protecting Method for Sharing Research Data Sets

The NIH Collaboratory Distributed Research Network: A Privacy Protecting Method for Sharing Research Data Sets The NIH Collaboratory Distributed Research Network: A Privacy Protecting Method for Sharing Research Data Sets Jeffrey Brown, Lesley Curtis, and Rich Platt June 13, 2014 Previously The NIH Collaboratory:

More information

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

A Study on Website Quality Models

A Study on Website Quality Models International Journal of Scientific and Research Publications, Volume 4, Issue 12, December 2014 1 A Study on Website Quality Models R.Anusha Department of Information Systems Management, M.O.P Vaishnav

More information

Technical aspects of VTL to SQL translation Prepared by Regional Statistical Office in Olsztyn, Poland

Technical aspects of VTL to SQL translation Prepared by Regional Statistical Office in Olsztyn, Poland Working Paper. UNITED NATIONS ECONOMIC COMMISSION FOR EUROPE CONFERENCE OF EUROPEAN STATISTICIANS Work Session on Statistical Data Editing (The Hague, Netherlands, 24-26 April 2017) I. Introduction A.

More information