Software Design & Implementation Activity:
The implementation stage of software development is the process of converting a system specification into an executable system. A software design is a description of the structure of the software to be implemented, the data which is part of the system, the interfaces between system components and, sometimes, the algorithms used. Designers design step by step to meet the finished design to be implemented in programming to crease an executable system out of the specification.
Thus, output of each stage of the design process is the input of the next stage. Stages continue until a finished design is met which includes all the specification and work involved in the development of the software.
Following is a diagram that illustrates software design activity
Design Process Activities are as follows:
- Architectural Design: Architectural design is about identifying the sub-systems or modules of the system and the connections between them.
- Abstract Specification: As per the output of the specification activity, abstract specification and constraints for each sub-system or module is identified.
- Interface Design: For each sub-system, its interface with other sub-systems is designed and documented. This interface specification must be unambiguous as it allows the sub-system to be used without knowledge of the sub-system operation.
- Component Design: Services are allocated to components and the interfaces of these components are designed.
- Data Structure Design: The data structures used in the system implementation are designed in detail and specified.
- Algorithm Design: The algorithms used to provide services are designed in detail and specified.
Implementing the System or Software Development:
Development of an executable program to implement the designed system is actually programming to write source codes. There is no specific rules for programming. One developer might want to start coding a component or part that s/he understands better and another developer might want to start coding a component or part that s/he understands less. However, at the end of the development of a part, developers do test and debug the finished product. This often reveals program defects that must be removed from the program. Defect testing and debugging are different processes. Testing establishes the existence of defects. Debugging is concerned with locating and correcting these defects.