Now I am trying to explain here is some implementation issues faced by software
During software engineering process, the critical stage is system implementation. At this stage the executable version of the software is created.
Some of the important implementation issues are:
Making use of existing code during the software development is called reuse .
The only significant reuse is reuse of functions and objects in programming libraries.
Software reuse is possible at different levels. These reuse levels are as follows:
Abstraction level: At this level of reuse the software is not directly reused. Instead, the knowledge of successful abstractions is used in the design of the intended software system.
Object level : At this level of reuse , instead of writing the code, the ready objects from the library are directly used.
Component level: At this level the components can be reused. The components are basically the collection of objects and object classes that can be reused on the application software.
System level: At this level entire application system can be reused.
The time spent in looking for software to reuse and analyzing it to check whether the identified software meets the requirements or not.
The required reusable software can be bought. For large off-the-shelf systems this cost can be high.
The cost can be added up while adapting and reconfiguring the reusable software components in order to fulfill the requirements of the system being developed.
The cost also gets increased when integrating reusable software elements with each other and with the new code being developed for your system.
The process of managing the changes in the software system is called configuration management.
The aim of configuration management is to support system integration process so that all developers can access the project code and documents in controlled way.
Version management: by version management, it is possible to keep track of all the versions and corresponding changes made in those versions. Due to version management there can be co-ordination in the programs developed by various programmers.
System integration: System integration helps the developers to define what versions of components are used to create each version of a system. This description is then used to build a system automatically by compiling and linking the required components.
Problem tracking: During this configuration management activity support is provided to report bugs and other problems, and to allow all the developers to see who is working on these problems.
Host is the machine on which the software is developed
Target is the machine on which the software is run.
Most of the software development is host target development. The host target development is a kind of software development in which the software is developed on one computer and is run on another.