Building software from reusable components.
Reuse based software engineering
Application system reuse
The bulk of an application system may be reused either by consolidating it without change into other systems are by generating application families.
Components of an application from sources to single objects may be reused.
Software components that execute a single well-defined function may be reused.
Benefits of reuse
Increased reliability - components exercised in working systems.
Reduced process risk - less uncertainty development costs
Effective use of specialists - reuse components instead of people.
Standards compliance - embedded standards in reusable components.
Accelerated development - avoid original development and hence speed up production.
Requirements for design reuse
Design for reuse
Generator based reuse
Program generators include the reuse of standard models and algorithms.
These are set in The generator and parameterized by necessary commands a program is then automatically created.
Generator-based reuse is possible when domain abstractions and their mapping to executable code can be identified.
A domain-specific language is used to design and manage these abstractions.
Types of the program generator
Generator-based reuse is quite cost-effective but its applicability is restricted to a relatively small number of application domains. It is simpler for end-users to generate programs using generators compared to other compound based plans to reuse.
Component development for reuse
Components we use may be specially constructed by generalizing existing components.
The major general the interface, the greater the reusability but it is made more Difficult and so less usable.
The construction cost of reusable components is more expensive than the cost of particular equivalents. This more reusability improvement cost should be an organization rather than a project cost. Generic components may be larger and slower than their specific equivalents.
Names in a component may be changed so that they are not yet managing the production of a particular application entity.
Operations may be appended to produce additional functionality and application-specific operations may be removed.
Application-specific exceptions are removed and exception management is added to increase the robustness of the component.
The component is certified as reusable.
An application product line is a similar set of applications that has a well-known domain-specific design. The general core of the application family is normally each time a new application is needed. All Applications specialized in some way. Application family architectures must be structured in a way that separates different subsystems and allows them to be modified.
Application families specialization
A different version of the application and development of different platforms.
Various versions of the application are designed to handle different external devices.
Different versions of the application are all created for the customer with different requirements.
Software quality assurance Software quality is described as conformance to explicitly state functional and performance requirements, explicitly documented standards and implicit features that are anticipated of all professionally developer software ... Read More
A tunnel establishes a virtual pipe for data packets between a tunnel entry and a tunnel endpoint. Packets entering a tunnel are forwarded inside the tunnel leave the tunnel unchanged. Tunneling, that is, sending a packet through a tunnel, is achieved by using encapsulation ... Read More
The overall structure of the software components and how the success provides a conceptual integrated file system. In other words, architecture is the hierarchical structure of program components, how these components interact, and the structure of data that are used by the components ... Read More
Real-time and distributed system design The real-time system is a software system the correct functioning of the system depends on the results produced by the system the time at which these results are produced ... Read More
Waterfall Model The waterfall model also called classic life cycle requirements is well defined and stable. It suggests a systematic, sequential approach to software development. It begins with customer specification of requirements and processes through planning, modeling, instruction, and deployment ... Read More
Software Design A software design is an essential engineering description of some software product that is to be established. A design can be determined to the customer's requirements and can be assessed for quality against predefined patterns ... Read More