Efficient configuration management of automotive software
|
|
|
- Buddy Owens
- 9 years ago
- Views:
Transcription
1 Efficient management of automotive software Cornelia Heinisch STZ Softwaretechnik Volker Feil, Martin Simons DaimlerChrysler Abstract The need for managing s of automotive software is growing significantly as a consequence of the continuously increasing volume of software in vehicles and due to the possibility to exchange software in vehicles over their lifetime. In this paper, we discuss concepts for selection, verification, and update and show an evolution for the step-wise introduction of these concepts to gain an efficient management of automotive software. We propose a model that defines automotive hardware and software releases and describes the dependencies between these releases. This model forms the basis for an update management which enables the download and installation of new software releases into cars to maintain the car s software over its lifetime. We illustrate and discuss a prototypical realization, which takes the proposed concepts into account. 1 Introduction The history of management (CM) goes back to the early Fifties and has its roots in the aerospace industry. In the Apollo Space Program, thousands of changes were tracked using a defined management process. At that time, the tracked changes belonged almost exclusively to hardware elements. For a long time, management has been used also successfully for software. Elementary to Software Configuration Management (SCM) is the term, where a consists of items (for example source code files, documents, executable system parts, etc.) and a tested is called a baseline. SCM goes back to the mid Seventies and began with the introduction of the first SCM tools SCCS (Source Code Control System) [1] and Make [2]. Since that time the discipline of SCM has continuously evolved: RCS (Revision Control System) [3] replaced SCCS in 1985 and one year later RCS was extended to CVS (Concurrent Versions System) [4]. A was created by labeling or marking a particular version of each file belonging to the system. Today, tools like Rational ClearCase [5] support the developers in SCM. The basic functionality offered by these tools is still the same as in the predecessor tools RCS and CVS. The term software management is used in diverse areas ([7], [8]). According to [6], the most relevant aspects in today s SCM tools are: version management, selection, concurrent development, build management, release management, workspace management, and change management. In this paper, we consider software management with respect to selection, verification, and update, because we believe that these aspects are the most relevant to get an efficient management of automotive software. For being efficient a management must efficiently handle the increasing complexity of automotive software (see section 3.1). The key to success is to use hierarchical dependencies between items for selection, to define dependencies between items to verify the correctness of a and to use a update concept which allows to update individual system parts. Section 2 introduces selection (section 2.1), verification (section 2.2), and update (section 2.3) precisely and section 3 discusses these three management concepts as parts of an efficient management for automotive software. The subsection 3.1 describes a way from a completely implicit management to a completely explicit management and subsection 3.2 discusses a prototypical realization of an efficient management of automotive software. An outlook towards an efficient selection is given in subsection 3.3. The paper concludes with a summary in section 4.
2 2 Configuration management concepts In this section we introduce concepts for selection, verification and update. 2.1 Configuration selection Configuration selection (also known as construction) determines which items belong to a. A item (CI) is a physical entity (source code file, header file, documentation, executable, subsystem, etc.) which is subject to control. A CI can be an aggregation of other CIs, organized in a hierarchy. Any member of this hierarchy can exist in several versions, each being a separate CI. This means, a CI is a version of a node in the hierarchy. Typically, modern SCM tools allow a hierarchical composition of SCM components to build up an overall system baseline, where a SCM component is a set of related files and directories (the CIs) that are versioned and baselined as a single unit [5]. A CI can be atomic, like documents and modules, or composed, like libraries and systems. According to [9], versions of a SCM component are also CIs at a higher level. A composed CI which forms an executable system part is called a version. Depending on the complexity and on the fact whether a system under construction will be distributed or not, the system is fragmented into one or more SCM components. These SCM components can be composed to larger SCM components (subsystems) in a hierarchical structure. If a version of the overall software system meets the requirements of the customer it is released and called a software release. While the management of the developers deals with the management of source code files, typically complete executable software systems are delivered to customers in the form of releases. These software systems contain executable components which have been generated from a of source code files. Figure 1 shows a hierarchical structure of CIs. The atomic CIs (A V1,..., A V4, B V1, B V2, C V1, C V2, E V1, E V2, F V1,..., F V3, G V1) are grouped in two SCM components D and H. A SCM component consists of a tuple of CIs. selection I V1 system baseline / version D V2 component baselines / versions composed CIs D V1 SCM component I H V1 A V4 A V3 A V2 A V1 B V2 B V1 C V2 C V1 E V2 E V1 F V3 F V2 F V1 G V1 atomic CIs SCM component D SCM component H Figure 1: A system baseline made up of component baselines For the SCM component D (A V1,..., A V4, B V1, B V2, C V1, C V2), the component baselines D V1 (A V2, B V2) and D V2 (A V4, B V2, C V2) are defined, and for SCM component H (E V1, E V2, F V1,..., F V3, G V1) the component baseline H V1 (E V2, F V2) is defined. Different versions of a SCM component (component baseline) are represented by different tuples. Two tuples are different, if they contain different combinations of CIs. A CI is a version of a node in case of software a node is represented by a file. For example, the CIs (A V1, A V2, A V3, A V4) are different versions of a single file. Typically, a baseline contains just one distinct version of a file. Configuration selection (baselining) is performed by considering dependencies in hierarchies between father nodes and child nodes. One characteristic of defining system baselines by selecting specific atomic CIs and specific component baselines is that all CIs belonging to a specific have to be selected manually there are no rules, that verify whether the selected really is a valid that can be built, deployed, and installed, and which is running correctly. Therefore selection (baselining) is still a tough job, despite good tool support.
3 2.2 Configuration verification Configuration verification uses dependency descriptions (consistency criteria [10]) between composed CIs of a SCM component to verify the correctness of a selection. Figure 2 shows dependencies used for verification. D V1 D V2 I V1 SCM component I dependencies used for verification H V1 composed CIs Figure 2: Dependencies used for verification Dependencies between composed CIs at the same level of a hierarchy, are used for verification. These dependencies are used to verify whether a set of versions forms a valid. This verification can take place during selection and after selection, e.g., during system installation or at system start-up. Having selected a specific CI the verification can assist selection by suggesting all CIs which can or should be added to the. Dependencies between atomic CIs (source code level) are not in the scope of this paper. It would be too complex to describe the dependencies between these atomic CIs (source code files, documentation, header files, etc.) to assist selection of a component baseline. The only relevant dependencies between atomic CIs would be those which exist between items located in different SCM components. But these dependencies can also be defined between the composed CIs themselves one level higher in the hierarchy than the atomic CIs. We distinguish between three types of dependencies used for verification: Direct dependencies between versions Dependencies between versions by using interfaces Dependencies between versions by using contracts We describe each kind of dependency description in the following subsections Direct Dependencies between versions Runtime versions are composed CIs which are executable system parts. For example, automotive flashware modules are versions. A flashware module can be seen as a piece of code that can be written into the flash memory (a non-volatile memory device) of an ECU. A flashware module can also contain data like a characteristic curve which is required during the execution of an ECU application. Depending on the flash memory of an ECU and the structure of the ECU application, the software of an ECU can be divided into 1 up to n flashware modules. Today, automotive software is distributed over dozens of interconnected ECUs and is either located in ROM (Read-Only-Memory) or in flash memory. Software located in ROM is inseparably connected with the hardware. Consequently, the complete ECU is a composed CI and forms a version. For each version (e.g. a version of a flashware module) it has to be defined explicitly which other versions it requires to run (see Figure 3). version A V5.0 version B V2.0 version C V1.0 {requires A V5.0 or B V2.0} version D V3.0 {requires C V1.0} Figure 3: Dependency description between versions
4 The challenge is to define for each version for an automotive example that means for each version of a flashware module which dependencies with other versions exist. This procedure is not only time-consuming but is also complex and very error-prone. An additional complexity is introduced by the need to express, if, for example, version C V 1.0 requires A V 5.0 and B V 2.0 or version C V 1.0 requires either A V 5.0 or B V 5.0. Figure 3 shows a possible additional notation to describe the restriction which states that version A V 5.0 is a variant to version B V 2.0 and therefore version C V 1.0 does require just A V 5.0 or B V 2.0. Dependencies between versions based on interfaces make the dependency description between CIs easier and allow a simple and unique notation of variants Dependencies between versions by using interfaces A version can export an interface to indicate which services it provides and can import an interface to indicate which services it requires. An interface contains all call interfaces e.g. all object-oriented method declarations of that methods which are imported or exported, respectively. By using interfaces to describe dependencies between versions it is not necessary that it is separately described by restrictions on which other versions a version is dependent it is sufficient to declare which kind of version, i.e. which interface it requires. A version which defines what is required and what is provided by the usage of interfaces can be called a software component. CORBA (Common Object Request Broker Architecture) [11] is a well-known example of a component-based system. The Object Management Group published the first standard for CORBA in In componentbased systems, components publish their export interfaces (services) in a registry and use it to ask for an import service they require. Components typically run in the context of a framework, which may be distributed and which provides a environment for software components. Another component framework which is more relevant for automotive applications is specified by OSGi (Open Service Gateway Initiative) [12]. Component frameworks as specified by CORBA or by OSGi use dependency descriptions based on interfaces to set up a complete running system. Nowadays, component frameworks can be found in cars of the luxury class. There, a powerful telematics ECU has the resources to integrate a component framework like OSGi. Software components that implement, for example, navigation based services can be loaded, installed, started, stopped and uninstalled dynamically. A flashware module which is the typical representation of a version considering automotive software contains only application code and data and does not contain information about the services it provides and the services it requires. But this information can be added for the purpose of management in the form of an additional information to the CI representing a flashware module. The additional information shows the dependency on an (import) interface or the implementation of an (export) interface. version A V5.0 version B V2.0 interface X V1.0 realize, implements requires, depends on version C V1.0 interface Y V2.0 realize, implements requires, depends on version D V3.0 Figure 4: Dependency descriptions based on interfaces Figure 4 shows a version C which depends on (requires) a version which implements interface X, version 1.0. Two versions (A and B) implement interface X, version 1.0. Compared to an dependency description based on versions this way of describing dependencies is much easier, because no knowledge about the specific versions A and B is necessary. A further advantage: if a version is added which also implements interface X, version 1.0, no additional dependency description has to be added to version C. The limitation of an interface is, that it does not allow to describe in which order the methods have to be called, nor does it allow to describe which timing constraints should be granted. This limitation can be put behind by using contracts to describe dependencies between versions.
5 2.2.3 Dependencies between versions using contracts Contracts provide mechanisms to describe behavioral aspects with the aid of assertions, i.e. pre- and postconditions and invariants (Design by Contract) ([13], [14]). Additional approaches exist to add synchronization and quality of service aspects to contracts [15]. A contract defines the rights and duties between the involved parties. A component providing a service guarantees that the post-conditions will be hold if the pre-conditions are fulfilled. A pre-condition is a condition under which a call of a method is allowed. A post-condition describes the state of the system after the call of a method. The post-condition guarantees that after executing a method the state conforms to certain characteristics, provided that the pre-conditions have been hold before calling the method. Invariants describe certain properties which hold for all methods of a class and not only for individual methods. If the service user guarantees that the pre-conditions will be fulfilled, the service provider guarantees, that the post-conditions will be fulfilled after the service is executed. Then a contract explicitly defines under which conditions a component works correctly. A service user should test in advance, if it is able to fulfill the pre-conditions of the service contract. If this is true, the contract is valid and a valid of components is found. 2.3 Configuration update Configuration update aims to update an installed (a software release) with a new. The first step of updating an out-of-date is to calculate the difference to an up-to-date [16] and to provide instructions for performing the update from the out-of-date to the up-to-date. Consider the following example: software release A with the CIs a, b, c, d, and f is installed in a car and should be updated to B with the CIs b, c, e, and g. The update instructions can be as follows: Delete a, d and f and install e and g, where e may be a new version of d. This additional information can be added to the update instructions and is especially useful in the case where some user defined data of the CI d to be deleted should be transferred to the new version of d which is item e. The update instructions together with the new CIs (in our example e and g) can be packed into an update package. The update package then contains everything required to update a specific installed to a new. The second task of update is to perform the update instructions. This can either be done during non-operation (see section 2.3.1) or during operation (see section 2.3.2) of a system. Configuration update while a system is running is also known as dynamic change management and is additionally used for the migration of entities at. In contrast to a version which represents executable code such as flashware modules or software components an entity exists only at. Typically an entity is instantiated from a version. For example an entity (object, instance) is instantiated from a class file which represents a version Updating s only during non-operation of the system A of a system can be updated safely, if the system is non-operating. The update package containing the new CIs and the instructions is unpacked and the instructions are executed. Before the update instructions are executed it has to be ensured, that the currently installed is identical with the the update package is generated for. Additionally it is important, that all update instructions are executed completely and correctly to gain a valid and a correctly running system. An example of updating s during non-operation can be found in automotive industry. Flashware modules can be exchanged during the vehicle s lifetime e.g. in order to remove errors. These flashware modules can be only exchanged in a workshop during a vehicle diagnosis session. Then, the car is non-driving and therefore its systems are not normally operating but vehicle diagnosis can take place in this special system mode Dynamic change management If there is a dependency between versions as described in section 2.2.1, 2.2.2, and the entities of these versions can interact at. Changing one interacting entity can lead to inconsistencies to all entities that are involved in the interaction. Examples for changes are the migration of an entity to a new environment (e.g. to balance load) as well as the update of an entity. For instance, if the entity is realized as a software component that consists of a set of objects, it can be dynamically updated by
6 exchanging some old objects with new ones. However, what shall happen with the local variables of an obsolete method that are stored in the execution stack of the environment? Which instruction shall be executed, if the instruction that is pointed from the instruction pointer of the environment is no more existing? Familiar dynamic update management approaches ([17],[18]) avoid the dealing with these questions, because they prevent the changing of an interacting entity. Then, this update management is responsible for the monitoring of this prevention: Only operable entities are allowed to interact. Only noninteracting entities are allowed to become non-operable in order to get changed. The concepts of dynamic change management (that includes dynamic update management) are relevant for managing long running, non-interruptible programs. For instance, such kind of programs run in satellites. However, for automotive software the update management in non-operational state is more interesting, because the vehicle s software running is interrupted at every drive break. 3 Concepts for management of automotive software In this section we apply the introduced basic concepts for selection, verification and update to the management of automotive software and show a way to an efficient management. The next subsection describes an evolution from an implicit to an explicit management of automotive software. 3.1 From implicit to explicit management For managing the s of small systems, which consist of only a few software modules, it is sufficient to consider points in time where old versions are replaced by new versions. For example, if there is a new version replacing an old one with the same functionality it is deployed to a specific server and made available for end-of-line production. Henceforth, the new version is used in end-of-line production. Such a point-in-time-related selection has the following consequence: Every time, once new versions are deployed, vehicles with identical functionality will have a different from vehicles manufactured before this point in time. If the number of items to be managed is not very high and if no update is performed over the lifecycle of a car, such an implicit selection will be sufficient (see the bottom left quadrant in Figure 5). update implicit selection / verification implicit selection / no verification explicit selection / verification low mid high number of CIs Figure 5: Relevance of verification and selection If software is exchangeable over the lifecycle of a car - for example in workshops where some flashware modules but also whole ECUs have to be exchanged because of damage, corrective maintenance or because of new functionality is ordered - it has to be verified which flashware modules/ecus have to be exchanged additionally to get a valid again. Consider the following example: In the case an ECU is damaged the complete ECU will be exchanged. If the old version of the ECU is no longer available an ECU with a newer version will be mounted. In this case it has to be ensured that the software within this ECU is still compatible with the software in the other ECUs. To solve this problem dependencies between versions can be introduced. These dependencies describe which version requires which other versions and can be used in the workshops to verify if a is still valid when a version should be added or exchanged. By this way verification is introduced using direct dependencies between versions (see the upper left quadrant in Figure 5). To make the
7 dependency description between versions easier and more reliable interfaces or contracts can be introduced between versions. A further step is to introduce an explicit selection. That means, valid software releases are defined explicitly. By this step the number of s which can be built into a car can be limited and a verification has only to be executed during the selection, when a new software release is defined. The number of distinct s built into vehicles can be limited, because only predefined software releases are allowed to be built or installed in a car and consequently only updates to predefined software and hardware releases are allowed. Possible other s which may be also valid considering the dependency descriptions are not allowed. In very large and distributed systems it is highly recommendable to reduce the delivered s by an explicit selection in order to reduce possible sources of errors (see the right quadrant in Figure 5). The explicit definition of software releases is also advantageous to perform updates. In the case it is known which software release is installed and to which software release an update should be performed, the difference between the installed and the new can be calculated and an update package can be automatically generated. This makes update very efficient, because no verification is required to perform an update of a. If different parties or the customers themselves are allowed to install software on a single platform, it is not possible to easy determine which software release is installed. But if only one authority is allowed to manipulate a system it can be known in advance or easy determined which software release is inside a car. The continuously increasing software volume in vehicles and the possibility to exchange software in vehicles over their lifetime requires an explicit selection and the definition of dependencies based on interfaces or contracts to assist selection. Furthermore the explicit selection enables an efficient update. 3.2 Prototypical realization of management In this section we discuss a model in which automotive hardware and software releases are defined. This model is used in a prototype to realize an efficient update management for automotive software Configuration model for automotive software In section 2.1 we only discussed software-related CI (e.g. versions). In this section we additionally introduce ECUs as hardware-related CI. A of software-related CIs which is released is called a software release and a of hardware-related CIs which is released is called a hardware release. In this section we introduce a model in the form of an Entity Relationship Model (ERM). This model defines automotive software and hardware releases (see Figure 6). hardware release 1... n 1... n software release n n n ECU n n n 1... n 0... n flashware module 0... n 1... n coding value is executable in is configured by Figure 6: ERM for the definition of automotive software and hardware releases Specific to automotive software is that the software is either located in ROM or in flash memory. As discussed in section 2.2.1, software located in ROM is inseparably connected with the hardware. This is the reason why in Figure 6 an ECU hosts 0 up to n flashware modules. Zero holds where the ECU software is located in ROM and 1 up to n holds where the software is located in flash memory. Vice versa one flashware module is executable in 1 up to n ECUs. Typically a flashware module can only be executed in exactly that hardware it is compiled for. But if there are two devices with changes in hardware that do not influence the
8 controller architecture it is possible to have two distinct ECUs which are able to execute the same flashware modules. Coding values are used to activate or deactivate a functionality which is implemented in a flashware module. That means if a specific functionality is not ordered by a customer it might just be deactivated by a specific coding value. These coding values are used, for example, in end-of-line programming or in workshops to adjust the ECU software to reflect the ordered functionality. A flashware module can be configured by 0 up to n coding values and vice versa a coding value can be used for the of 1 up to n flashware modules. A hardware release consists of n ECUs and a software release consists of flashware modules and corresponding coding values. The relationship between software releases and hardware releases describes which software release is executable on which hardware release. This is a relevant information for updating automotive software without exchanging hardware. This means a remote update of a software release is only possible, if the new software release is executable at the same hardware. The discussed model explicitly defines software and hardware releases and forms the basis for an update management which is implemented in a prototype and discussed in the next section Prototype We implemented a prototype which enables the download and installation of new software releases into cars to maintain the car s software over its lifetime. The architecture of the prototype allows the transport of update packages to the car over various media as shown in Figure 7: Transport may occur by wireless links such as GSM, GPRS, UMTS, or DAB directly out of the infrastructure, by wired links in a workshop, by wireless links such as Bluetooth or WLAN from a flashware access point (maybe also in a workshop), or via portable media such as CD-ROM or USB memory stick. The main components at the vehicle side the Flashware-Reprogramming-Controller and the Installation-Configuration-Controller run within an OSGi- Service-Gateway (a compact component framework). The Flashware-Reprogramming-Controller contains the (re)programming logic to install flashware modules in ECUs connected to the various subnetworks and the Installation-Configuration-Controller is the vehicle side part of the update management. This component is responsible for executing the update instructions of an downloaded update package and for controlling the installation procedure. We present in [19] a comprehensive description of those components and the architecture at the vehicle side. Driver Flashware- Reprogramming- Controller Installation- Configuration- Controller Bluetooth, W-LAN by wire GSM, GPRS, UMTS, DAB flashware access point Internet simplified infrastructure Release / Update Management ECU ECU n portable media CD-ROM, Memory-Stick A B..... various possiblilities for the transportation of new software releases model encapsulated flashware modules Figure 7: Main components of a software download architecture The release management has to protocol which software release is installed in which vehicle and the update management has to calculate the difference between a new software release which has been assigned to a vehicle and the currently installed software release. An update package is generated consisting of flashware modules encapsulated in container constructs. In our prototype we used OSGi bundles as container constructs. These containers will be transferred to the vehicle, unpacked and the content the flashware modules will be installed in the destination ECUs. 3.3 Outlook: Towards an efficient selection For explicit selection of large or/and distributed systems hierarchies are typically introduced according to section 2.1. If we consider distributed systems, the hierarchies are build by physical aspects. That means versions (e.g. flashware modules) are composed to subsystems (e.g. ECUs), these subsystems are composed to larger subsystems (e.g. all ECUs connected to a vehicle sub-network). This cascading principle continues until the complete system is assembled. By introducing such hierarchies the complexity of selection can be reduced significantly and each subsystem can be tested separately. This principle cannot be assigned to management of automotive software straightforwardly.
9 Configuration management of automotive software has to consider that customers can choose within each production series from a large amount of optional equipment (the so-called features). Different features such as radar-assisted cruise control, heated front seats, etc., lead to different software releases. Consider the following example: When ordering a car, a customer has the option to equip the chosen vehicle with 0 up to 20 optional equipment features such as radar-assisted cruise control, heated front seats, Keyless-Go (the car can be unlocked without a key by carrying a chip card in the pocket and can be started by pressing a button), Teleaid (automatic call for help when an accident happens), etc.. Therefore, our customer has 2 20 (more than one million) possibilities to order a new car of a given production series. This also implies that more than one million software releases have to be defined, tested, and maintained. In addition to variants which can be selected by the customer, there are further variants to consider, for example country variants. In the case of country variants, the look and feel (e. g. for a navigation system) as well as the hardware used can change dependent on the delivery market. A customer selectable feature may require various CIs in different subsystems. As a consequence, for each subsystem containing a CI which is required for the feature, a variant has to be defined. If a lot of optional equipment features require CIs located in different subsystems a lot of variants of each subsystem have to be defined and tested. By this way the advantages of decomposing a system hierarchically into subsystems decrease and it seems to be more suitable to define software releases for the individual features. In future work, we will tackle the challenging question whether versions of automotive software should be decomposed into subsystems in a hierarchical manner or whether software releases for individual features should be defined or whether a combination of both is most suitable. 4 Summary In this paper, we discussed management with respect to selection, verification and update. Explicit selection reduces the number of s used in the cars due to the limited number of releases. Configuration verification uses either explicit or implicit dependencies between versions, where implicit dependencies are specified by interfaces or contracts. Configuration verification is required if the number of items is very high or a update is performed during the lifecycle of a vehicle. If selection is performed explicitly it is sufficient to execute a verification during selection. Moreover, update profits from an explicit selection - it can be performed efficiently by calculating the difference of the currently installed and the new software release. Update packages containing update instructions and versions to be installed are generated automatically in order to be loaded into the car. These update packages will be installed by executing the associated update instructions. An OSGi-based prototype implementing such an efficient update for automotive software has been discussed. Software and hardware releases are defined in a model and update packages consisting of OSGi-bundles are generated automatically. OSGi-bundles are loaded into the car and the flashware modules encapsulated in the bundles are installed in the destination ECUs. 5 Acknowledgement We would like to thank the master students Ralf Lohrmann, Qinghua Cheng and Volker Kugler for valuable discussions as well as our colleagues from Mercedes-Benz PKW Development and the Center for Diagnosis and Flash Technologies and in particular Prof. Dr. Wolfgang Rosenstiel of the University Tübingen and Prof. Dr. Joachim Goll of the University of Applied Science Esslingen. 6 Contact Cornelia Heinisch: Volker Feil: Martin Simons: [email protected] [email protected] [email protected]
10 7 References [1] M. J. Rochkind, The Source Code Control System, IEEE Trans. Software Eng., vol. 1, no. 4, pp , 1975 [2] S. I. Feldmann, Make A Program for Maintaining Computer Programs, Software Practice and Experience 9, , 1979 [3] W. F. Tichy, RCS A System for Version Control, Software Practice and Experience, 1991 [4] B. Berliner, CVS II: Parallelizing Software Development, Proceedings of the USENIX Winter Technical Conference, 1990 [5] B. A. White, Software Configuration Management Strategies and Rational Wesley, ISBN: , 2000 [6] A. P. Dahlqvist, U. Asklund, I. Crnkovic u. a. Product Data Management and Software Configuration Management Similarities and Differences, Association of Swedish Engineering Industries, 2001 [7] K. Frühauf, A. Zeller, Software Configuration Management: State of the Art, State of the Practice, 9th International Symposium System Configuration Management, Toulouse, France, 1999 [8] S. A. MacKay, The State of the Art in Concurrent, Distributed Configuration Management, Software Configuration Management: Selected Papers SCM-4 and SCM-5, Seattle, WA, April, J. Estublier ed., LNCS (1005), Springer-Verlag, pp , 1995 [9] L. Bendix, A. Dattalo, F. Vitali, Software Configuration Management in Software and Hypermedia Engineering: A Survey, "Handbook of Software Engineering and Knowledge Engineering", page , 2001 [10] J. Estublier, Software Configuration Management: A Roadmap, ICSE Future of SE Track, 2000 [11] [12] [13] B. Meyer, Object-Oriented Software Construction, Second Edition, Prentice Hall, 1997 [14] N. Tran, C. Mingins, D. Abramson, Managed Assertions for Component Contracts, IDPT June 2003 [15] A. Beugnard, J Jézéquel, N. Plouzeau, D. Watkins, Making Component Contracts Aware, IEEE Computer, July 1999 [16] A. Hoek, D. Heimbigner, A. L. Wolf, Versioned Software Architecture, ISAW3, pages 73 76, 1998 [17] X. Chen: Extending RMI to support dynamic re of distributed systems, Proceedings of the 22 nd International Conference on Distributed Computing Systems, ICDCS 2002, Vienna, Austria, 2002 [18] J. Kramer, J. Magee: The evolving philosophers problem: Dynamic change management, IEEE Transactions on Software Engineering, vol. 16, no. 11, pp , 1990 [19] C. Heinisch, M. Simons, Loading flashware from external interfaces such as CD-ROM or W-LAN and programming ECUs by an on-board SW-component, SAE World Conference, March 2004
Software Configuration Management. http:\\www.francisxavier.ac.in
Software Configuration Management Outline Introduction what is SCM, who are involved, why it is imp? what are the steps? Basic Concepts of SCM Configuration Management Activities Configuration Management
Software Configuration Management. Wingsze Seaman COMP250SA February 27, 2008
Software Configuration Management Wingsze Seaman COMP250SA February 27, 2008 Outline CM and SCM Definitions SCM History CMMI and SCM SCM Tools SCM/Dynamic Systems SCM/Software Architecture Resources 2
What Is Software Configuration Management?
C H A P T E R 1 What Is Software Configuration Management? The title of this chapter asks such a simple question, the answer to which, one would think, ought to be known by anyone with any kind of record
AUTOSAR Software Architecture
AUTOSAR Software Architecture Robert Warschofsky Hasso-Plattner-Institute für Softwaresystemtechnik Abstract. AUTOSAR supports the re-use of software and hardware components of automotive electronic systems.
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?
Books: Software Configuration Management 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java (Chapter 13) Outline of the Lecture Purpose of Software Configuration
Configuration & Build Management
Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration
Chapter 13 Configuration Management
Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 13 Configuration Management Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software
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, [email protected] 2 ABB Corporate Research,
Explicit Connectors in Component Based Software Engineering for Distributed Embedded Systems. Dietmar Schreiner and Karl M.
Explicit Connectors in Component Based Software Engineering for Distributed Embedded Systems Dietmar Schreiner and Karl M. Göschka Vienna University of Technology Institute of Information Systems, Distributed
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,
REQUIREMENTS FOR THE WORKFLOW-BASED SUPPORT OF RELEASE MANAGEMENT PROCESSES IN THE AUTOMOTIVE SECTOR
REQUIREMENTS FOR THE WORKFLOW-BASED SUPPORT OF RELEASE MANAGEMENT PROCESSES IN THE AUTOMOTIVE SECTOR Ulrich Bestfleisch, Joachim Herbst DaimlerChrysler AG Research and Technology Data and Process Management
Software Configuration Management. Addendum zu Kapitel 13
Software Configuration Management Addendum zu Kapitel 13 Outline Purpose of Software Configuration Management (SCM) Motivation: Why software configuration management? Definition: What is software configuration
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
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
Modular Communication Infrastructure Design with Quality of Service
Modular Communication Infrastructure Design with Quality of Service Pawel Wojciechowski and Péter Urbán Distributed Systems Laboratory School of Computer and Communication Sciences Swiss Federal Institute
Software Configuration. Management Issues in Product Development
Software Configuration Management Issues in Product Development A Annie Ibrahim, Muhammad Waseem (National University of Computer and Emerging Sciences, Lahore) Abstract After more than 20 years of research
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
Chapter 13 Configuration Management
Chapter 13 Configuration Management Using UML, Patterns, and Java Object-Oriented Software Engineering Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software
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)
Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication
01PC-422 Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication Pascal Jost IAS, University of Stuttgart, Germany Stephan Hoffmann Vector CANtech Inc., USA Copyright
3SL. Requirements Definition and Management Using Cradle
3SL Requirements Definition and Management Using Cradle November 2014 1 1 Introduction This white paper describes Requirements Definition and Management activities for system/product development and modification
10g versions followed on separate paths due to different approaches, but mainly due to differences in technology that were known to be huge.
Oracle BPM 11g Platform Analysis May 2010 I was privileged to be invited to participate in "EMEA BPM 11g beta bootcamp" in April 2010, where I had close contact with the latest release of Oracle BPM 11g.
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,
CycurHSM An Automotive-qualified Software Stack for Hardware Security Modules
CycurHSM An Automotive-qualified Software Stack for Hardware Security Modules Dr. Frederic Stumpf, ESCRYPT GmbH Embedded Security, Stuttgart, Germany 1 Introduction Electronic Control Units (ECU) are embedded
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
Verification and Validation of Software Components and Component Based Software Systems
Chapter 5 29 Verification and Validation of Software Components and Component Based Christina Wallin Industrial Information Technology Software Engineering Processes ABB Corporate Research [email protected]
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
ECU State Manager Module Development and Design for Automotive Platform Software Based on AUTOSAR 4.0
ECU State Manager Module Development and Design for Automotive Platform Software Based on AUTOSAR 4.0 Dhanamjayan P.R. 1, Kuruvilla Jose 2, Manjusree S. 3 1 PG Scholar, Embedded Systems, 2 Specialist,
OPNET Network Simulator
Simulations and Tools for Telecommunications 521365S: OPNET Network Simulator Jarmo Prokkola Research team leader, M. Sc. (Tech.) VTT Technical Research Centre of Finland Kaitoväylä 1, Oulu P.O. Box 1100,
Chapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
Mobile application architectures
Mobile application architectures Pasi Alatalo*, Jarkko Järvenoja*, Jari Karvonen**, Ari Keronen*, Pasi Kuvaja* *Department of Information Processing Science, University of Oulu, P.O.Box3000, FIN-90014
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
IST STREP Project. Deliverable D3.3.1u Middleware User s Guide Multi-Radio Device Management Layer. http://www.ist-plastic.org
IST STREP Project Deliverable D3.3.1u Middleware User s Guide Multi-Radio Device Management Layer http://www.ist-plastic.org Project Number : IST-26955 Project Title : PLASTIC Deliverable Type : Report
WISE-4000 Series. WISE IoT Wireless I/O Modules
WISE-4000 Series WISE IoT Wireless I/O Modules Bring Everything into World of the IoT WISE IoT Ethernet I/O Architecture Public Cloud App Big Data New WISE DNA Data Center Smart Configure File-based Cloud
Pattern-based J2EE Application Deployment with Cost Analysis
Pattern-based J2EE Application Deployment with Cost Analysis Nuyun ZHANG, Gang HUANG, Ling LAN, Hong MEI Institute of Software, School of Electronics Engineering and Computer Science, Peking University,
Software Configuration Management Related to Management of Distributed Systems and Services and Advanced Service Creation
Software Configuration Management Related to Management of Distributed Systems and Services and Advanced Service Creation Vladimir Tosic 1, David Mennie 2, Bernard Pagurek 1 1 Network Management and Artificial
CS 565 Business Process & Workflow Management Systems
CS 565 Business Process & Workflow Management Systems Professor & Researcher Department of Computer Science, University of Crete & ICS-FORTH E-mail: [email protected], [email protected] Office: K.307,
Quotes from Object-Oriented Software Construction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
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
Global Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2
STAR JPSS Algorithms Integration Team Version 1.2 NOAA Center for Weather and Climate Prediction (NCWCP) NOAA/NESDIS/STAR 5830 University Research Ct College Park, MD 20740 Revisions Version Description
Best Practices for Verification, Validation, and Test in Model- Based Design
2008-01-1469 Best Practices for Verification, Validation, and in Model- Based Design Copyright 2008 The MathWorks, Inc. Brett Murphy, Amory Wakefield, and Jon Friedman The MathWorks, Inc. ABSTRACT Model-Based
Java-based Functionality and Data Management in the Automobile. Prototyping at BMW Car IT GmbH. by Alexandre Saad, BMW Car IT GmbH, Munich/Germany
Java-based Functionality and Data Management in the Automobile. Prototyping at BMW Car IT GmbH. by Alexandre Saad, BMW Car IT GmbH, Munich/Germany The amount of electronic and software elements in vehicles
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
Software Component Specification Using Design by Contract
Software Component Specification Using Design by Contract Yi Liu and H. Conrad Cunningham Department of Computer and Information Science University of Mississippi 237 Kinard Hall University, MS 38677 USA
Activity Mining for Discovering Software Process Models
Activity Mining for Discovering Software Process Models Ekkart Kindler, Vladimir Rubin, Wilhelm Schäfer Software Engineering Group, University of Paderborn, Germany [kindler, vroubine, wilhelm]@uni-paderborn.de
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2
Designing the SRT control software: Notes to the UML schemes Andrea Orlati 1 Simona Righini 2 1 - I.N.A.F. Istituto di Radioastronomia. 2 Dip. Astronomia - Università degli Studi di Bologna. Dicembre 2008
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
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Safety and security related features in AUTOSAR
Safety and security related features in Dr. Stefan Bunzel Spokesperson (Continental) Co-Authors: S. Fürst, Dr. J. Wagenhuber (BMW), Dr. F. Stappert (Continental) Automotive - Safety & Security 2010 22
A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems
A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems Carlos Cetina, Pau Giner, Joan Fons and Vicente Pelechano Research Center on Software Production Methods Universidad Politécnica de
EVITA-Project.org: E-Safety Vehicle Intrusion Protected Applications
EVITA-Project.org: E-Safety Vehicle Intrusion Protected Applications 7 th escar Embedded Security in Cars Conference November 24 25, 2009, Düsseldorf Dr.-Ing. Olaf Henniger, Fraunhofer SIT Darmstadt Hervé
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
A Methodology for the Development of New Telecommunications Services
A Methodology for the Development of New Telecommunications Services DIONISIS X. ADAMOPOULOS Centre for Communication Systems Research School of Elec. Eng., IT and Mathematics University of Surrey Guildford
Trends in Embedded Software Development in Europe. Dr. Dirk Muthig [email protected]
Trends in Embedded Software Development in Europe Dr. Dirk Muthig [email protected] Problems A software project exceeds the budget by 90% and the project time by 120% in average Project Management
Definition of a Software Component and Its Elements
I' Chapter 1 Definition of a Software Component and Its Elements Bill Councill George T. Heineman 1.1 Introduction The goal of this chapter is to rigorously define terms that describe the best practices
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
HDDtoGO. User Guide. User Manual Version 3.4 2004-2010 CoSoSys SRL 2010 A-DATA Technology Co., Ltd. HDDtoGO User Manual
HDDtoGO User Guide User Manual Version 3.4 2004-2010 CoSoSys SRL 2010 A-DATA Technology Co., Ltd. HDDtoGO User Manual Table of Contents Table of Contents...1 1. Introduction...2 2. System Requirements...3
COMOS Platform. Worldwide data exchange for effective plant management. www.siemens.com/comos
COMOS Platform Worldwide data exchange for effective plant management www.siemens.com/comos COMOS Effective data management across the entire plant lifecycle COMOS Platform the basis for effective plant
F15. Towards a More Mature Test Process. Anne Mette-Hass. P r e s e n t a t i o n
Towards a More Mature Test Process Anne Mette-Hass International Conference On Software Testing, Analysis & Review November 19-23 Stockholm, Sweden P r e s e n t a t i o n F15 Friday 23rd November, 2001
Crystal Gears. The Next Generation Personal Desktop Call Recording Solution. Why Crystal Gears
The Next Generation Personal Desktop Call Recording Solution Crystal Gears Crystal Gears (CG as short) is a new next generation desktop digital recording system like no other before. By widely compatible
Review of Mobile Applications Testing with Automated Techniques
Review of Mobile Testing with Automated Techniques Anureet Kaur Asst Prof, Guru Nanak Dev University, Amritsar, Punjab Abstract: As the mobile applications and mobile consumers are rising swiftly, it is
The Service Availability Forum Specification for High Availability Middleware
The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum [email protected], [email protected],
Mastering increasing product complexity with Collaborative Systems Engineering and PLM
Mastering increasing product complexity with Collaborative Systems Engineering and PLM Thierry Ambroisine Dassault Systèmes 10 rue Marcel Dassault, 78140 Vélizy Villacoublay, France [email protected]
Configuration Management for Reusable Software
Configuration Management for Reusable Software William B. Frakes Computer Science Department Virginia Tech [email protected] Abstract This paper discusses the configuration management of reusable software,
ITIL A guide to service asset and configuration management
ITIL A guide to service asset and configuration management The goal of service asset and configuration management The goals of configuration management are to: Support many of the ITIL processes by providing
Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX
APPENDIX A Introduction Understanding TCP/IP To fully understand the architecture of Cisco Centri Firewall, you need to understand the TCP/IP architecture on which the Internet is based. This appendix
Patterns for Secure Boot and Secure Storage in Computer Systems
Patterns for Secure Boot and Secure Storage in Computer Systems Hans Löhr, Ahmad-Reza Sadeghi, Marcel Winandy Horst Görtz Institute for IT Security, Ruhr-University Bochum, Germany {hans.loehr,ahmad.sadeghi,marcel.winandy}@trust.rub.de
PIE. Internal Structure
PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution
Enhancing ECA Rules for Distributed Active Database Systems
Enhancing ECA Rules for Distributed Active Database Systems 2 Thomas Heimrich 1 and Günther Specht 2 1 TU-Ilmenau, FG Datenbanken und Informationssysteme, 98684 Ilmenau Universität Ulm, Abteilung Datenbanken
SERENITY Pattern-based Software Development Life-Cycle
SERENITY Pattern-based Software Development Life-Cycle Francisco Sanchez-Cid, Antonio Maña Computer Science Department University of Malaga. Spain {cid, amg}@lcc.uma.es Abstract Most of current methodologies
A new approach to automotive electric/electronic engineering life-cycle management
IBM Software Automotive A new approach to automotive electric/electronic engineering life-cycle management Managing engineering data and processes using a single source of truth 2 A new approach to automotive
SEMANTIC-BASED AUTHORING OF TECHNICAL DOCUMENTATION
SEMANTIC-BASED AUTHORING OF TECHNICAL DOCUMENTATION R Setchi, Cardiff University, UK, [email protected] N Lagos, Cardiff University, UK, [email protected] ABSTRACT Authoring of technical documentation is a
Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development
Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,
Software Configuration Management and Change Management
School of Innovation, Design and Engineering Mälardalen University Västerås, Sweden - April, 2009 - Sha Liu Master Thesis in Computer Science Software Configuration Management and Change Management Supervisor:
OPNET - Network Simulator
Simulations and Tools for Telecommunications 521365S: OPNET - Network Simulator Jarmo Prokkola Project Manager, M. Sc. (Tech.) VTT Technical Research Centre of Finland Kaitoväylä 1, Oulu P.O. Box 1100,
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure
CSE 120 Principles of Operating Systems Fall 2000 Lecture 3: Operating System Modules, Interfaces, and Structure Geoffrey M. Voelker Modules, Interfaces, Structure We roughly defined an OS as the layer
An Overview of Challenges of Component Based Software Engineering
An Overview of Challenges of Component Based Software Engineering Shabeeh Ahmad Siddiqui Sr Lecturer, Al-Ahgaff University, Yemen Abstract Nowadays there is trend of using components in development of
Configuration Management in Software Development Life Cycle
13 Configuration Management in Software Development Life Cycle Tejinder Kaur Sanjay Bhatnagar Deepali StudentComputer Application Associate Prof. Computer Assistant Prof. Computer Department, GZS PTU Applications
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
Software design (Cont.)
Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java
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,
How to realize software evolution of existing BOSS via ZTE SEEM
How to realize software evolution of existing BOSS via ZTE SEEM Zhan Zhang Abstract Due to long-term construction and accumulation for different purposes, telecom carriers normally have very complex IT
