3 Software Architecture

Size: px
Start display at page:

Download "3 Software Architecture"

Transcription

1 Software Architecture and Software Configuration Management Bernhard Westfechtel, Aachen Reidar Conradi, Trondheim Abstract This paper examines the relations between software architecture and software configuration management. These disciplines overlap because they are both concerned with the structure of a software system being described in terms of components and relationships. On the other hand, they differ with respect to their focus (specific support for programming-in-the-large versus general support for the management of software objects throughout the whole life cycle). Several problems and alternatives concerning the integration of both worlds are discussed. 1 Introduction Software architectures play a central role in the development and maintenance of a software system. A software architecture description defines the structure (high-level design) of a software system in terms of components and relationships. It describes the interfaces between components and serves as the blueprint of the system to be implemented. It can be used for generating implementations (complete ones or frames to be filled in by programmers), make files to drive system building, overall test plans, etc. Software configuration management (SCM) is the discipline of managing the evolution of complex software systems. To this end, an SCM system provides version and configuration control for all software objects created throughout the software life cycle. In addition, it supports system building (creation of derived objects from their sources), release management, and change control. These disciplines overlap considerably. In particular, both software architectures and software configurations describe the structure of a software system at a coarse level. Detailed address: Lehrstuhl für Informatik III, RWTH Aachen, D Aachen. Phone: , Fax: , bernhard@i3.informatik.rwth-aachen.de. This work was partially carried out during a research stay at NTNU. Support from NTNU is gratefully acknowledged. Detailed address: Norwegian University of Science and Technology (NTNU), N-7034 Trondheim, Norway. Phone: , Fax: , Reidar.Conradi@idi.ntnu.no. On the other hand, they differ with respect to their focus (specific support for programming-in-the-large versus general support to manage software objects throughout the whole life cycle). In this paper, we examine the relation between software architecture and SCM 1. Section 2 takes a brief look at the software process. Sections 3 and 4 discuss software architecture and softeware configuration management (SCM), respectively. Section 5 investigates the relation between software architecture and SCM. Finally, some conclusions are drawn in Section 6. 2 Software Process There is a great variety of software processes. We will here make some brief, general observations on the relation between software architecture and SCM. Software processes are often organized into phases which group logically related activities [12]. However, the notion of phase does not imply a strict, temporal order. Unlike the waterfall model, current software processes and in particular those for component-based development are highly incremental. Therefore, we will try to avoid the notion of phase in the following. There are many ways of decomposing the software process into phased activities, such as requirements engineering, programming-in-the-large (design), and programmingin-the-small (coding). There are also cross-phase activities, such as quality assurance and software configuration management. Figure 1 depicts a simplified view of the software process. The roles of SCM and software architecture and their mutual relation may be characterized as follows: 1 This topic is also addressed in [18], however, with different conclusions. SCM supports the management of software objects throughout the whole lifecycle. This includes requirements specifications, software designs, source code, test data, project plans, etc. That is, the software architecture descriptions is just one of the documents managed by SCM.

2 3 Software Architecture Figure 1. Software process (simplified view) SCM provides general services such as version and configuration control, that all kinds of software tools may use. In this way, the same services need not be implemented over and over again, and they are offered in an application-independent way. Software architecture is concerned with the high-level design of a software system. In contrast to SCM, design is primarily concerned with technical and creative tasks. Since the software architecture description defines the overall organization of the software system, it serves as a central document which can be used for prioritizing requirements or organizing programming and testing tasks. There is also an overlap with SCM concerning software configuration descriptions and their system models. However, the scope is software architecture is confined to programming-in-the-large. In contrast, software configurations cover the whole software lifecycle. Even though the software architecture plays a central role, it enters the scene only after requirements engineering. Therefore, an overly architecture-centered perspective would neglect the importance of requirements engineering. Particularly for incremental software processes, consistency throughout the software lifecycle has to be maintained. When the requirements are changed, the software architecture has to be modified accordingly. This requires support for traceability over the whole lifecycle, and which should be assisted by SCM. The perpetual negotiation between requirements, architectural design and available COTS products implies that the scope of architectural considerations must be widened in both ends. Although not being a new invention, the discipline of software architecture has recently attracted much attention [8]. A software architecture description outlines the organization of a software system. The creation of software architectures (in some notation) is commonly referred to as architectural design, which is a part of programming-in-thelarge. The software architecture plays a central role in the software process: It can be used to organize implementation and test activities and to structure the repository of software objects. However, this works only to a limited extent. In particular, software processes are driven by the requirements stated by the customer. The software architecture depends on the requirements definition, which is important to manage customer relationships. It also depends on the availability and assessment of COTS components, as mentioned before. A wide variety of languages have been proposed and used for describing software architectures, including module interconnection languages, architecture description languages, and object-oriented modeling languages. These languages vary considerably with respect to their underlying syntax and semantics. Module interconnection languages [13] describe software architectures in terms of modules and their export and import interfaces. Modules may be composed into subsystems. Some module interconnection languages also support version control. Object-oriented modeling languages such as e.g. the UML [1] are based on classes which are organized into inheritance hierarchies and are connected by associations. Classes may be grouped into packages, which are similar to subsystems. In addition to the static composition of a software system, OO modeling languages usually provide constructs for defining behavior, e.g., by state diagrams. Architecture description languages [14, 2, 11] deal with components rather than modules, implying a potentially coarser granularity. Components have interfaces and are related by connectors, which are often treated as first-class objects. In addition to a syntactic description, there are some languages which describe the semantics of components and connectors, e.g., by drawing upon specification languages such as CSP and Z. In general, languages for defining software architectures offer rich facilities for expressing system structure (components, dependencies, interfaces), but they are less powerful with respect to system evolution. That is, version control is beyond the scope of most of these languages (note, however, e.g. [19]). With respect to version control, we may further distinguish between revisions and variants (temporal versions and co-existing alternatives, respectively). 2

3 Even if version control is not addressed explicitly, it may be supported implicitly. Architectural design strives for reusability, and often tries to anticipate changes in the requirements. Architectural languages therefore provide mechanisms to improve reusability and to handle anticipated evolution. These mechanisms effectively introduce different kinds of variants: Genericity. All instances of a generic (parameterized) class may be considered variants, differing with respect to the actual generic parameters (e.g., stacks of integers, booleans, etc.). Inheritance. All subclasses may be seen as variants of a common superclass, defining the common parts of their interfaces and implementations. Interfaces and realizations. For a given interface, there may be multiple realization variants or several contributing realizations. Likewise, the same realization may offer alternative interfaces, e.g. private, group, or public. This kind of version control is characterized as follows: Usually, architectural languages deal only with variants. They do not address revision control (note, however, the work reported in [19]). Variant control is performed on a semantic level. For example, all realizations of a module may be required to implement the same interface. All of these variants must be represented in the software architecture description, so that the designer may select among them. As a common example, consider a library of data structures offering different variants of sets, bags, lists, etc. However, these mechanisms alone are not sufficient to deal with architectural evolution. In particular, they do not take unplanned evolution into account. Unplanned evolution cannot be handled solely within the software architecture. In addition, we require support for evolution of the architecture as a whole (see Section 5). 4 Software configuration management SCM [16] is concerned with the management of all software objects (artifacts, documents) created throughout the software lifecycle. This includes requirements definitions, software architecture descriptions, implementations, test plans, test data, project plans, etc. These are arranged into software configurations by means of various kinds of relationships such as hierarchies and dependencies, and supplemented by version rules (see below). Software configurations cover the whole lifecycle. In particular, they go beyond programming-in-the-large. From the SCM perspective, the software architecture description has to be managed like any other document. In particular, the relationships between the requirements definition and the software architecture description have to be maintained. Generally, SCM has to support traceability over the whole lifecycle. In order to provide services applicable to a wide range of applications, SCM systems usually abstract from the contents of software objects (black boxes seen from the SCM system). Software objects are treated as raw text files or binary files. It is up to the application-specific software tools or humans to interpret the contents of software objects. Due to this abstraction, SCM systems can be applied even outside the software engineering domain. An important service provided by an SCM system is version control. Version control is offered as a general service so that applications need not take care of it by themselves. Many different version models have been proposed [3]. Commercial systems are usually based on version graphs that are organized into branches each of which consists of a sequence of revisions. To ensure consistent selections of versions over a large set of software objects, the user may define version rules. These rules are evaluated and serve as filters to establish a uni-version workspace (corresponding to a bound configuration) in which normal software tools can operate. The software tools are thus shielded from versioning, i.e., they are not aware of the versions they are working on. Thus, version control in SCM systems may be characterized as follows: It deals with arbitrary software objects. It covers both revisions and variants. Versions do not have deep semantics. In general, versions may differ in arbitrary ways. Thus, SCM may support any kind of evolution, whether planned or ad-hoc. It simply does not make any assumption about the kinds of changes performed and later recorded. To shield software tools from versioning, SCM systems establish a uni-version workspace. Even though SCM covers the whole software lifecycle, a great deal of the functionality of an SCM system is dedicated to implementation-related tasks. In addition to providing a repository for versioned source files, this includes build tools for creating derived objects such as compiled and linked programs. These build tools can be driven by make files [6] that define the dependencies between source and derived objects and the build actions such as compile and link 3

4 steps. The dependencies in the make files represent structural information relevant for the software architecture, but this is done at a low level of abstraction. Make files are often derived from source text and are therefore not usable as high-level descriptions, which architecture description languages intend to provide. System models are better suited for this purpose. A system model defines the components of a system, as well as their relationships. A system model is usually described at the level of source objects, but it may also contain rules for producing the derived objects. In the following we focus on source objects. System models can either be expressed in some system modeling language, or they can be represented by objects and relationships in the repository underlying the SCM system. In the context of this paper, it is important to distinguish between two kinds of system modeling approaches: System models dealing with design (and implementation) objects. Examples include e.g. Intercol [15], Adele [4], and PCL [17]. Systems are described in terms of modules, export and import interfaces, subsystems, etc. These system modeling approaches compete with architectural languages. Compared to these, they are less expressive with respect to system composition and consistency. On the other hand, they go beyond architectural languages with respect to version control. System models dealing with arbitrary software objects. These models are used to represent software configurations throughout the whole software lifecycle. Examples include Jasmine [10] and DSEE [9]. Such system modeling approaches are very general, i.e., they do not make any assumptions with respect to the software objects and relationships making up a software configuration. They could even be applied to hardware components. 5 Software Architecture vs. SCM Table 1 summarizes the relation between software architecture and SCM as discussed so far. In the sequel, we present seven theses to characterize this relation. Thesis 1 Architectural design vs. the whole lifecycle: Software architecture and SCM overlap since they both deal with the overall organization of a software system. However, while software architecture refers to programming-inthe-large, SCM addresses the whole software lifecycle (and can even be applied outside the software domain). This has been illustrated in Figure 1. While there is a region of overlap, there are also disjoint regions. Architectural languages provide more high-level support for system composition and consistency. On the other hand, SCM also deals with non-design objects (requirements definitions, test plans, project plans, documentations, etc.) and offers version control, which is only partly covered by software architecture. As a consequence of this observation, we confine the notion of software architecture to programming-in-the-large and do not extend it to other phases. In contrast, the term software configuration applies to all kinds of software objects and their relationships. Thesis 2 Tool integration bottom-up or top-down: The relation between software architecture and SCM can be studied under different assumptions concerning tool integration. It makes a big difference whether we assume bottom-up integration or top-down integration. Bottom-up integration means that existing tools are integrated after the fact (tool-kit approach, integration of legacy systems). Since vendors of SCM systems usually strive for reusability, they make no assumptions concerning the tools to be integrated with the SCM system. Vice versa, the vendors of application tools usually do not want to become dependent on a specific SCM system (this independence may be achieved e.g. by a virtual workspace). This is illustrated in Figure 2. Figure 2. Bottom-up integration In the case of top-down integration, new tools are designed and implemented as a whole, resulting in a tightly integrated software engineering environment [12]. Ideally, tools have a uniform user interface, use the same database, etc. In this case, there is only a single design tool, a single SCM system, etc., all being part of the overall environment. While this is a viable approach as well (for a single vendor), we assume bottom-up integration in the following because it seems to be more relevant for designers of SCM systems. Thesis 3 Different system description languages: Since there are many architectural description languages with different syntax and semantics, an SCM system system must not prescribe a specific language for describing software 4

5 software architecture SCM coverage programming-in-the-large (high-level design whole lifecycle software objects components, modules, classes,... all kinds of software objects relationships inheritance, import, port connections,... all kinds of relationships semantic level high (syntactic or semantic consistency) fairly low granularity overall organization, but also detailed interface descriptions overall organization (software objects as black boxes) versions variants variants and revisions version selection usually hard-wired rule-based Table 1. Comparison of software architecture and SCM architectures. In contrast, the software architecture description has to be handled like any other document. Some SCM systems offer a module interconnection language to describe software architectures. However, using such a language enforces a specific way of modeling software architectures. Given the wide variety of architectural languages, we must conclude that architecture modeling is application-specific. Thus, a system modeling language offered by an SCM system should be considered as a poor man s architecture description language. That is, the user can adopt that language as an option in the absence of a full-fledged architecture description language. This lesson has been learned e.g. in Adele. Adele I [4] offered a predefined module interconnection language derived from Intercol [15]. This made it difficult to model non-design objects, and it forced the user to adopt the predefined language for programming-in-the-large. For example, even a simple textual document was required to have an interface and a body. In Adele II [5], there is a predefined system model that the user may or may not use. In addition, the user may define any desired system model for organizing software objects. Thesis 4 Unavoidable redundancy in system descriptions: Under the constraints of bottom-up integration, there is no hope to unify software architectures and software configurations in the sense that only a single, integrated description needs to be maintained. A certain amount of redundancy is therefore inevitable. In [18], it is (correctly) argued that multiple descriptions of the software architectures result in redundancy and increased modeling support. However, the vision of an integrated approach assumes top-down integration. That is, a new system is built where the notions of software architecture and software configuration are unified from the beginning. A user of such a system would have to commit to this conceptual world. Mostly, however, there are constraints concerning the notations and tools used throughout the software lifecycle. For example, if a company adopts UML, there is not a free choice of the basic architectural language any more. Thus, a system giving unified, but built-in support for software architectures and software configurations will not qualify for being used in that company. In short: Redundancy is bad, but we must live with it. To cope with redundancy, tools are required which extract the overall organization of a software system from the software architecture into a (part of) a software configuration model. Vice versa, we may propagate the structural information contained in a software configuration model into a software architecture description. In general, incremental tools are required which perform transformations in both directions and assist in keeping software architectures and software configurations consistent with each other. Note the analogy with trying to keep architectural descriptions, UML diagrams, make files, program code, documentation, test data etc. etc. consistent with each other. The world is simply not consistent or unified! Thesis 5 Planned evolution is easy: Architectural design deals with architectural evolution at a semantic level. In particular, variants can be represented within the software architecture description (as realization variants, subclasses, or instances of generic modules). In this way, planned evolution may be taken care of. That is, to some extent version control is supported within the software architecture description. Architectural design attempts to ensure that software architectures are reusable, and that they remain stable even under changing requirements. For example, we may define a neutral file system interface which can be mapped onto different actual file systems, confining platform changes to a single spot in the architecture. Or we may build up class hierarchies which may be extended with subclasses on demand, e.g., when a new variant of some data structure is offered to client programmers. However, reusable components are discovered, not planned ahead (Ralph Johnson in [7]). For instance, how to design stable and functional class hierarchies in the first attempt? 5

6 Thesis 6 Unplanned evolution is hard: SCM offers general version control services for all kinds of applications. These address not only variants, but also revisions. Version control is performed at a fairly low semantic level. The SCM system deals with versioning of the architecture, covering in particular unplanned evolution. Thus, software architecture descriptions are placed under version control, like all other software objects. If a software architecture description is composed of multiple software objects (the usual case), configuration control is also required. Version control provided by an SCM system can be used e.g. to handle change requests that imply architectural restructuring, to maintain competing architectural variants for the purpose of comparison and evaluation, to handle concurrent changes (e.g., fixes in an old release while the new release is being developed on the main branch), etc. Thesis 7 Evolution at different abstraction levels: Altogether, the evolution of software architectures has to be dealt with at two levels: structured version control within the architecture (planned changes) and unstructured version control of the architecture (unplanned changes). These two levels complement each other and cannot be unified easily. We may further characterize the two levels as follows: At the architectural level, we may deal with semantic changes and planned evolution. Interfaces, inheritance, genericity, etc. have a well-defined meaning. Therefore, evolution cannot be delegated to an SCM system which treats software objects as black boxes. In addition, we may have to use multiple variants simultaneously, while the user of an SCM system has to pre-select one version to work on. At the SCM level, we handle global changes of any kind (in particular, unplanned evolution). Handling these changes at the architectural level would defeat the very purpose of an SCM system: to relieve software tools from tasks which can be taken care of by general services. For example, version and configuration control would have to be rebuilt in an architectural design tool. Moreover, there would be no way of keeping track of global changes throughout the software lifecycle. Such version control on different levels is quite common. Consider e.g. C program files with conditional compilation statements placed under version control tools such as SCCS or RCS. 6 Conclusion In this paper we have examined the relation between software architecture and SCM. One of our main conclusions is that architectural design should be left to the architects. That is, an SCM system should provide general support for software configurations of arbitrary software objects, but it should not compete with architectural description languages. Similarly, architectural designs should be placed under version control like other software objects. If the software architecture is distributed over multiple documents, a configuration of these architecture documents constitutes a part of the overall software configuration covering the whole lifecycle. On the other hand, we should confine the scope of software architecture as well. Since the software architecture plays a central role in the software process, the vision of an architecture-centered process is quite tempting. In such a process, the software architecture is used as a skeleton for organizing software objects. Users employ the software architecture as the central structure for requirements negotiation, browsing, generation of implementation frames and test plans, etc. However, the total software process can only be partially covered this way, especially for incremental development models. We may rather argue that a software process should be requirements-centered (or user-centered). That is, requirements coming from the user should drive the process. Likewise, we have to consider the functionality, availability and risks of reusable COTS modules with possibly unknown internal structure as part of architectural design and associated requirements negotiation. Thus many non-design objects and relationships must be considered in the architecture phase. Likewise, a SCM system has to manage software objects created in all lifecycle phases, and it also should support traceability from the initial or negotiated requirements to the finally delivered code. References [1] G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide. Addison Wesley, Reading, Massachusetts, [2] P. C. Clements. A survey of architecture description languages. In Eigth International Workshop on Software Specification and Design, Mar [3] R. Conradi and B. Westfechtel. Version models for software configuration management. ACM Computing Surveys, 30(2): , June [4] J. Estublier. A configuration manager: The Adele data base of programs. In Proc. Workshop on Software Engineering Environments for Programming-in-the-Large, pages , Harwichport, Massachusetts, June

7 [5] J. Estublier and R. Casallas. The Adele configuration manager. In W. F. Tichy, editor, Configuration Management, volume 2 of Trends in Software, pages John Wiley & Sons, New York, [6] S. I. Feldman. Make A program for maintaining computer programs. Software Practice and Experience, 9(4): , Apr [7] E. Gamma, R. Johnson, R. Helm, and J. Vlissides. Design Patterns Elements of Reusable Object-Oriented Software. Addison Wesley. 416 p, [8] D. Garlan and M. Shaw. An introduction to software architecture. In V. Ambriola and G. Tortora, editors, Advances in Software Engineering and Knowledge Engineering. World Scientific, Singapore, [9] D. B. Leblang and G. D. McLean. Configuration management for large-scale software development efforts. In Proc. Workshop on Software Engineering Environments for Programming-in-the-Large, pages , Harwichport, Massachusetts, June [10] K. Marzullo and D. Wiebe. Jasmine: A software system modelling facility. In Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, ACM SIGPLAN Notices 22(1), pages , Palo Alto, California, Dec [11] N. Medvidovic and R. Taylor. A framework for classifying and comparing architecture description languages. In Proc. 6th European Software Engineering Conference, LNCS 1301, pages Springer Verlag, Sept [12] M. Nagl, editor. Building Tightly-Integrated Software Development Environments: The IPSEN Approach. LNCS Springer Verlag, Berlin, Germany, [13] R. Prieto-Diaz and J. Neighbors. Module interconnection languages. Journal of Systems and Software, 6(4): , Nov [14] M. Shaw and D. Garlan. Formulations and formalisms in software architecture. In J. van Leeuwen, editor, Computer Science Today Recent Trends and Developments, LNCS 1000, pages Springer Verlag, Heidelberg, [15] W. F. Tichy. Software development control based on module interconnection. In Proc. IEEE 4th International Conference on Software Engineering, pages 29 41, Pittsburgh, PA, Sept IEEE Computer Society Press. [16] W. F. Tichy. Tools for software configuration management. In J. F. H. Winkler, editor, Proc. International Workshop on Software Version and Configuration Control, pages 1 20, Grassau, Germany, Teubner Verlag. [17] E. Tryggeseth, B. Gulla, and R. Conradi. Modelling systems with variability using the PROTEUS configuration language. In J. Estublier, editor, Software Configuration Management: Selected Papers SCM-4 and SCM-5, LNCS 1005, pages , Seattle, Washington, Apr Springer Verlag. [18] A. van der Hoek, D. Heimbigner, and A. L. Wolf. Software architecture, configuration management, and configuration distributed systems: A menage a trois. Technical Report CU-CS , University of Boulder, Colorado, Jan [19] A. van der Hoek, D. Heimbigner, and A. L. Wolf. Capturing architectural configurability: Variants, options, and evolution. Technical Report CU-CS , University of Boulder, Colorado, Dec

Software Architecture and Software Configuration Management

Software Architecture and Software Configuration Management Software Architecture and Software Configuration Management Bernhard Westfechtel and Reidar Conradi Lehrstuhl für Informatik III, RWTH Aachen Ahornstrasse 55, D-52074 Aachen bernhard@i3.informatik.rwth-aachen.de

More information

Requirements for Software Deployment Languages and Schema

Requirements for Software Deployment Languages and Schema Requirements for Software Deployment Languages and Schema Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Software Engineering Research Laboratory Department of Computer Science University of Colorado

More information

Business Modeling with UML

Business Modeling with UML Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their

More information

Chap 1. Introduction to Software Architecture

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)

More information

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, ivica.crnkovic@mdh.se 2 ABB Corporate Research,

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering

MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering Thomas Buchmann, Alexander Dotor and Bernhard Westfechtel Angewandte Informatik 1, Universität

More information

Configuration Management Models in Commercial Environments

Configuration Management Models in Commercial Environments Technical Report CMU/SEI-91-TR-7 ESD-9-TR-7 Configuration Management Models in Commercial Environments Peter H. Feiler March 1991 Technical Report CMU/SEI-91-TR-7 ESD-91-TR-7 March 1991 Configuration Management

More information

Structuring Product-lines: A Layered Architectural Style

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

More information

A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development

A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development (Position paper) Lothar Hotz and Andreas Günter HITeC c/o Fachbereich Informatik Universität Hamburg Hamburg,

More information

Processing Requirements by Software Configuration Management

Processing Requirements by Software Configuration Management Processing Requirements by Software Configuration Management Ivica Crnkovic 1, Peter Funk 1, Magnus Larsson 2 1 Mälardalen University, Department of Computer Engineering, S-721 23 Västerås, Sweden {ivica.crnkovic,

More information

Software Configuration Management A Road Map

Software Configuration Management A Road Map Software Configuration Management A Road Map Jacky Estublier DassaultSyst mes / LSR, Grenoble University, Actimart, AllŽe de Roumanie 38610 Gieres France jacky@imag.fr ABSTRACT This paper, in the first

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

A Configuration Management Model for Software Product Line

A Configuration Management Model for Software Product Line A Configuration Management Model for Software Product Line Liguo Yu 1 and Srini Ramaswamy 2 1 Computer Science and Informatics Indiana University South Bend South Bend, IN 46634, USA ligyu@iusb.edu 2 Computer

More information

Data Modeling Basics

Data Modeling Basics Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy

More information

A Process View on Architecture-Based Software Development

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

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:

More information

Introduction to software architecture

Introduction to software architecture Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is software architecture?................................. 7 1.1.1

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish (parrish@cs.ua.edu) Brandon Dixon (dixon@cs.ua.edu) David Hale (dhale@alston.cba.ua.edu) Department of Computer Science

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.

More information

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

More information

Round-Trip Software Engineering Using UML: From Architecture to Design and Back

Round-Trip Software Engineering Using UML: From Architecture to Design and Back Round-Trip Software Engineering Using UML: From Architecture to Design and Back Nenad Medvidovic Alexander Egyed David S. Rosenblum Computer Science Department University of Southern California Los Angeles,

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

Designing Real-Time and Embedded Systems with the COMET/UML method By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

Practical Experiences of Agility in the Telecom Industry

Practical Experiences of Agility in the Telecom Industry Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box

More information

Version Models for Software Configuration Management

Version Models for Software Configuration Management Version Models for Software Configuration Management REIDAR CONRADI Norwegian University of Science and Technology, Trondheim AND BERNHARD WESTFECHTEL Aachen University of Technology After more than 20

More information

Reuse and Capitalization of Software Components in the GSN Project

Reuse and Capitalization of Software Components in the GSN Project Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi (Ph.D. Student, NTNU) Reidar Conradi Ericsson AS, Grimstad, Dept. Computer and Information

More information

Aspects of Lyee Configuration Management

Aspects of Lyee Configuration Management Aspects of Lyee Configuration Management Volker GRUHN, Raschid IJIOUI, Dirk PETERS, Robert QUECK, Clemens SCHÄFER Chair for Applied Telematics / e-business, Universität Leipzig, Klostergasse 3, D-04109

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

The Role of the Software Architect

The Role of the Software Architect IBM Software Group The Role of the Software Architect Peter Eeles peter.eeles@uk.ibm.com 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation

More information

Quality Ensuring Development of Software Processes

Quality Ensuring Development of Software Processes Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software

More information

Introduction to software architecture

Introduction to software architecture Open Learning Universiteit Unit 1 Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is softwarearchitecture?.................................

More information

Component Based Development in Software Engineering

Component Based Development in Software Engineering Component Based Development in Software Engineering Amandeep Bakshi, Rupinder Singh Abstract--In today s world, Component Based development is an active research area for more than a decade in software

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

A Classification and Comparison Framework for Software Architecture Description Languages

A Classification and Comparison Framework for Software Architecture Description Languages 1 of 24 A Classification and Comparison Framework for Software Architecture Description Languages Nenad Medvidovic and Richard N. Taylor Abstract Software architectures shift the focus of developers from

More information

Software Architecture Document

Software Architecture Document Software Architecture Document Natural Language Processing Cell Version 1.0 Natural Language Processing Cell Software Architecture Document Version 1.0 1 1. Table of Contents 1. Table of Contents... 2

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Enterprise Architecture: Practical Guide to Logical Architecture

Enterprise Architecture: Practical Guide to Logical Architecture Objecteering Practical Guides Enterprise Architecture: Practical Guide to Logical Architecture Author: Version: 1.0 Copyright: Softeam Softeam Consulting Team Supervised by Philippe Desfray Softeam 21

More information

Separating Concerns in Software Logistics

Separating Concerns in Software Logistics Separating Concerns in Software Logistics Danny Greefhorst Software Engineering Research Centre PO Box 424, 3500 AK The Netherlands greefhor@serc.nl Software logistics deals with the storage, administration,

More information

CS314: Course Summary

CS314: Course Summary CS314: Course Summary Prof. Robert B. France Dept. of Computer Science Colorado State University Robert B. France 1 1 Software Development Issues Explored - 1 Software engineering basics Why do we need

More information

Development/Maintenance/Reuse: Software Evolution in Product Lines

Development/Maintenance/Reuse: Software Evolution in Product Lines Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Configuration Management

Configuration Management 83 Chapter 6 Configuration Management Published as: Configuration Management in Component Based Product Populations, Rob van Ommering, 10th International Workshop on Software Configuration Management,

More information

Performance Engineering of Component-Based Distributed Software Systems

Performance Engineering of Component-Based Distributed Software Systems Performance Engineering of Component-Based Distributed Software Systems Hassan Gomaa 1 and Daniel A. Menascé 2 1 Dept. of Information and Software Engineering School of Information Technology and Engineering

More information

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

Towards an Integration of Business Process Modeling and Object-Oriented Software Development Towards an Integration of Business Process Modeling and Object-Oriented Software Development Peter Loos, Peter Fettke Chemnitz Univeristy of Technology, Chemnitz, Germany {loos peter.fettke}@isym.tu-chemnitz.de

More information

Component Based Development Methods - comparison

Component Based Development Methods - comparison Component Based Development Methods - comparison Dan Laurenţiu Jişa Abstract: This paper realizes a comparison among three of the best known component based development methods, emphazing on the earlier

More information

Software Engineering

Software Engineering Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in

More information

Introducing Reference Models in ERP Development

Introducing Reference Models in ERP Development Introducing Reference Models in ERP Development Signe Ellegård Borch IT University of Copenhagen elleborch@itu.dk Introduction Business process reference modelling is not a new topic in the ERP software

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Software Configuration Management. Context. Learning Objectives

Software Configuration Management. Context. Learning Objectives Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Generating Aspect Code from UML Models

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 Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Universiti Teknologi MARA. The Implementation of Software Configuration Management in MSC Organizations

Universiti Teknologi MARA. The Implementation of Software Configuration Management in MSC Organizations Universiti Teknologi MARA The Implementation of Software Configuration Management in MSC Organizations Siti Mastura Bt. Sheikh Abu Bakar Thesis submitted in fulfillment of the requirements for Bachelor

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

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

More information

Large Scale Order Processing through Navigation Plan Concept

Large Scale Order Processing through Navigation Plan Concept Large Scale Order Processing through Navigation Plan Concept João Eduardo Ferreira 1, Osvaldo K. Takai 1, Kelly R. Braghetto 1, and Calton Pu 2 1 Department of Computer Science, University of São Paulo

More information

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT Cléver Ricardo Guareis de Farias, Marten van Sinderen and Luís Ferreira Pires Centre for Telematics and Information Technology (CTIT) PO Box

More information

Lightweight Data Integration using the WebComposition Data Grid Service

Lightweight Data Integration using the WebComposition Data Grid Service Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed

More information

The Concern-Oriented Software Architecture Analysis Method

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 f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan

More information

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK IBM Software Group Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK Jean-Louis Maréchaux Software IT Specialist IBM Rational

More information

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Software Engineering for Software-Intensive Systems: III The Development Life Cycle Software Engineering for Software-Intensive Systems: III The Development Life Cycle Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de Outline I Introduction II Foundations III The Development

More information

Scenario-based Requirements Engineering and User-Interface Design

Scenario-based Requirements Engineering and User-Interface Design Scenario-based Requirements Engineering and User-Interface Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria kaindl@ict.tuwien.ac.at

More information

Software Configuration Management: State of the Art, State of the Practice

Software Configuration Management: State of the Art, State of the Practice Software Configuration Management: State of the Art, State of the Practice Karol Frühauf 1 and Andreas Zeller 2 1 INFOGEM AG Informatiker Gemeinschaft für Unternehmensberatung Rütistrasse 9, CH-5401 Baden,

More information

Modelling Configurable Products and Software Product Families *

Modelling Configurable Products and Software Product Families * Modelling Configurable Products and Software Product Families * Tomi Männistö 1,2, Timo Soininen 1 and Reijo Sulonen 1 1 Helsinki University of Technology, Software Business and Engineering Institute PO

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process Software Engineering for Software-tensive Systems: Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de line I troduction II Foundations IV Requirements V Analysis & Design VI Implementation

More information

OOT Interface Viewer. Star

OOT Interface Viewer. Star Tool Support for Software Engineering Education Spiros Mancoridis, Richard C. Holt, Michael W. Godfrey Department of Computer Science University oftoronto 10 King's College Road Toronto, Ontario M5S 1A4

More information

Life-Cycle Aware Modelling of Software Components

Life-Cycle Aware Modelling of Software Components Life-Cycle Aware Modelling of Software Components Heiko Koziolek 1, Steffen Becker 3, Jens Happe 2, and Ralf Reussner 2 1 ABB Corporate Research Wallstadter Str. 59, 68526 Ladenburg, Germany 2 Chair for

More information

COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED DEVELOPMENT

COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED DEVELOPMENT Integrated Design and Process Technology, IDPT-2002 Printed in the United States of America, June, 2002 2002 Society for Design and Process Science COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED

More information

A methodology for secure software design

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 ed@cse.fau.edu 1. Introduction A good percentage of the

More information

Enterprise Integration: operational models of business processes and workflow systems *

Enterprise Integration: operational models of business processes and workflow systems * Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and

More information

An Integrated Quality Assurance Framework for Specifying Business Information Systems

An Integrated Quality Assurance Framework for Specifying Business Information Systems An Integrated Quality Assurance Framework for Specifying Business Information Systems Frank Salger 1, Stefan Sauer 2, Gregor Engels 1,2 1 Capgemini sd&m AG, Carl-Wery-Str. 42, D-81739 München, Germany

More information

Configuration Management for Reusable Software

Configuration Management for Reusable Software Configuration Management for Reusable Software William B. Frakes Computer Science Department Virginia Tech wfrakes@vt.edu Abstract This paper discusses the configuration management of reusable software,

More information

Reusable Connectors in Component-Based Software Architecture

Reusable Connectors in Component-Based Software Architecture in Component-Based Software Architecture Abdelkrim Amirat, Mourad Oussalah To cite this version: Abdelkrim Amirat, Mourad Oussalah. Reusable Connectors in Component-Based Software Architecture. Ninth international

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

TOGAF usage in outsourcing of software development

TOGAF usage in outsourcing of software development Acta Informatica Pragensia 2(2), 2013, 68 76, DOI: 10.18267/j.aip.25 Section: Online: aip.vse.cz Peer-reviewed papers TOGAF usage in outsourcing of software development Aziz Ahmad Rais 1, Rudolf Pecinovsky

More information

Versioning and Evolution Control of Models in Software Configuration Management System

Versioning and Evolution Control of Models in Software Configuration Management System Research Journal of Information Technology 5(3): 72-80, 2013 ISSN: 2041-3106; e-issn: 2041-3114 Maxwell Scientific Organization, 2013 Submitted: March 13, 2013 Accepted: April 29, 2013 Published: September

More information

25.1 Translational Frameworks (MDA with transformations)

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.

More information

A Multi-Variant Approach to Software Process Modelling

A Multi-Variant Approach to Software Process Modelling A Multi-Variant Approach to Software Process Modelling Keynotes: Wolfgang Hesse 1 and Jörg Noack 2 1 c/o FB Mathematik/Informatik, Philipps-Universität Marburg/Germany email: hesse@informatik.uni-marburg.de

More information

Software Development in the Large!

Software Development in the Large! Software Development in the Large! Peter Eeles Executive IT Architect, IBM peter.eeles@uk.ibm.com IBM Rational Software Development Conference 2007 2007 IBM Corporation Agenda IBM Rational Software Development

More information

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 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,

More information

Basic Concepts. Software Architecture Lecture 3. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Basic Concepts. Software Architecture Lecture 3. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Formally define software architecture Distinguish

More information

Non-Functional Requirements for COTS Software Components

Non-Functional Requirements for COTS Software Components Non-Functional Requirements for COTS Software Components Ljerka Beus-Dukic School of Computing and Mathematics University of Northumbria at Newcastle Ellison Building, Newcastle upon Tyne NE1 8ST, United

More information

Software Architecture, Configuration Management, and Configurable Distributed Systems: A Ménage a Trois

Software Architecture, Configuration Management, and Configurable Distributed Systems: A Ménage a Trois Software Architecture, Configuration Management, and Configurable Distributed Systems: A Ménage a Trois André van der Hoek, Dennis Heimbigner, and Alexander L. Wolf Software Engineering Research Laboratory

More information

Concern Driven Software Development

Concern Driven Software Development Concern Driven Software Development Omar Alam School of Computer Science, McGill University, Montreal, Canada Omar.Alam@mail.mcgill.ca Abstract Model Driven Engineering (MDE) has achieved success in many

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 5 Integrated Object-Oriented Methodologies: OPM and Catalysis 1 Object Process Methodology (OPM) Introduced by Dori in 1995 Primarily intended

More information

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS Ashraf A. Shahin 1, 2 1 College of Computer and Information Sciences, Al Imam Mohammad Ibn Saud Islamic University (IMSIU) Riyadh, Kingdom of Saudi

More information

From Object Oriented Conceptual Modeling to Automated Programming in Java

From Object Oriented Conceptual Modeling to Automated Programming in Java From Object Oriented Conceptual Modeling to Automated Programming in Java Oscar Pastor, Vicente Pelechano, Emilio Insfrán, Jaime Gómez Department of Information Systems and Computation Valencia University

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

Secure Database Development

Secure Database Development Secure Database Development Jan Jurjens () and Eduardo B. Fernandez (2) () Computing Department, The Open University, Milton Keynes, MK7 8LA GB http://www.jurjens.de/jan (2) Dept. of Computer Science,

More information

CSC 742 Database Management Systems

CSC 742 Database Management Systems CSC 742 Database Management Systems Topic #4: Data Modeling Spring 2002 CSC 742: DBMS by Dr. Peng Ning 1 Phases of Database Design Requirement Collection/Analysis Functional Requirements Functional Analysis

More information

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction CS 3141: Team Software Project Introduction Ali Ebnenasir Department of Computer Science Michigan Technological University Acknowledgement Betty H.C. Cheng Software Engineering Systematic approach for

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

Architectural Consistency Checking in Plugin-Based Software Systems

Architectural Consistency Checking in Plugin-Based Software Systems Architectural Consistency Checking in Plugin-Based Software Systems Timo Greifenberg Software Engineering RWTH Aachen University http://www.se-rwth.de greifenberg@se-rwth.de Klaus Müller Software Engineering

More information

A Cooperative Approach to Support Software Deployment Using the Software Dock

A Cooperative Approach to Support Software Deployment Using the Software Dock A Cooperative Approach to Support Software Deployment Using the Software Dock Technical Report CU-CS-871-98 Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Department of Computer Science University

More information

Framework Development for Large Systems

Framework Development for Large Systems Framework Development for Large Systems Dirk Bäumer 1, Guido Gryczan 2, Rolf Knoll 3, Carola Lilienthal 2, Dirk Riehle 4, and Heinz Züllighoven 2 Abstract Frameworks are a key asset in large-scale object-oriented

More information

On the Use of Model Transformations for the Automation of the 4SRS Transition Method

On the Use of Model Transformations for the Automation of the 4SRS Transition Method On the Use of Model Transformations for the Automation of the 4SRS Transition Method Sofia Azevedo 1, Ricardo J. Machado 1, and Rita Suzana Pitangueira Maciel 2 1 Universidade do Minho, Portugal {sofia.azevedo,rmac}@dsi.uminho.pt

More information

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien Software Architecture Schahram Dustdar Distributed Systems Group TU Wien 1 Main Topics Software Architecture: Introduction Architecture and Architecture Disciplines Architectural Requirements Architectural

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,

More information

Designing Configuration Management Tools for Dynamically Composed Systems

Designing Configuration Management Tools for Dynamically Composed Systems Designing Configuration Management Tools for Dynamically Composed Systems Bradley Schmerl Department of Computer Science, Clemson University, Clemson, SC 29634, USA Chris Marlin School of Informatics and

More information