11.10.2004 Software Engineering 2004 Jyrki Nummenmaa 1 INSTALLATIONS • Software installation accommodates software to a target environment. • Elements to be set up during installation may include: – Executables – Libraries – Help files / Manuals – Documentation – Application configuration files – System configuration files (like Windows registry) – Data files for the executable – Database
33
Embed
11.10.2004Software Engineering 2004 Jyrki Nummenmaa 1 INSTALLATIONS Software installation accommodates software to a target environment. Elements to be.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Software installation accommodates software to a target environment.
• Elements to be set up during installation may include:– Executables– Libraries– Help files / Manuals– Documentation– Application configuration files– System configuration files (like Windows registry)– Data files for the executable– Database
• Makefile– Designer of installation writes a file, which describes the
files in the installation, the dependencies between files (E.g. file A needs files B and C etc.) and how to make files (E.g. make file A by gcc –g –o A B C)
– The make program studies, which files are not up-to-date and makes them.
• Installation wizard– A program, which – possibly interactively – runs the
• Other software should continue to function.• Avoid interrupts because of e.g. system reboots.• Even simultaneous installations should be possible.• Do not change general configuration files in a way
that effects other software.• Make minimal changes to the system.• Use disk space and other resources sparingly.• Respect the technical and political policies of the
environment.• Do not leave unnecessary things behind (temp files
• Study the requirements – they may contain requirements for installation or other relevant information.
• The success of the installation depends largely on how the software has been built.
• Conclusion: The installation requirements should be taken into account when making the software – not only when the installation procedures are built and the software already exists!
• Particular difficulties are ahead, if we are making a large distributed system – then pay
• An installation is dynamic, if some parts of the system are being installed (typically upgraded) as the other parts of the system continue to function.
• In particular, dynamic installation does not tolerate a reboot of a device.
• A reboot would be most inappropriate in the mobile phone example.
• For mobile phones (and most other embedded systems), a dynamic automatic installation is desired.
• S3. The SWRUs may only discuss through explicite message exchange. In particular, they may not share variables.
• S4. Each SWRU must have an independent control of its execution and it should be possible to execute them independently (e.g. in a separate computer if message exchange uses networking).
• The conditions S1-S4 ensure that running down one component does not create problems for the others.
• The conditions S1-S3 are quite close to the principles of encapsulation in OO programming.
• S5. Each SWRU must support dynamic installation. There must be a possibility to store the internal state (like the contents of required variables) and to restore this state. ’
• S6. A SWRU is able to inform the message passing system on when its non-availability starts and end.
• S7. The message passing system can buffer messages for non-available components.
Version compatibility example (In compatibility matrix M, 1 means compatible, 0 not)
C1.V1 C1.V2 C1.V3 C2.V1 C3.V3 C3.V4 C4.V3 C4.V4
C1.V1 1 1 1 1 1 0 1 1
C1.V2 1 1 1 1 1 1 1 1
C1.V3 1 1 1 1 1 1 1 0
C2.V1 1 1 1 1 1 1 1 1
C3.V3 1 1 1 1 1 1 1 1
C3.V4 0 1 1 1 1 1 1 1
C4.V3 1 1 1 1 1 1 1 1
C4.V4 1 1 0 1 1 1 1 1
Assume we have a configuration A={C1.V1, C2.V1,C3.V3}Assume we have a configuration A={C1.V1, C2.V1,C3.V3}and we want to get C={C3.V4, C4.V4}. What are the implications?and we want to get C={C3.V4, C4.V4}. What are the implications?
• Embedded systems: phones, cars, espresso machines, ball point pens (some slight exaggeration here for the current situation, but in the future many more devices will contain software…)
• Normal interaction with these devices does not contain discussions on installation.
• The user may not even know that the device contains software.
• In particular mobile devices may need new installations to adjust to changing environment.
Input:a) A version-compatible configuration A of software S fulfilling
conditions V1-V3 and S1-S6b) The set C of new components (or new versions of them) Output:
A version compatible configuration A’ containing C.Method:1. Using A and C, compute such a set D of component versions
that CD and when the component versions in D are installed into A, we get a version-compatible configuration. If such set D does not exist, stop the installation.
• If there are few available versions, then it may be possible to check all possibilities exhaustively and find a suitable set D with minimal size (or find out that such a set does not exist).
• Othewise smarter computational methods are required and they are not discussed here.