130 likes | 358 Views
Software Reuse Explained. What Is Software Reused?. Reuse-based Software Define. Engineering strategy where the software development process is geared to reusing existing software An approach to development that tries to maximize the reuse of existing software. Application System Reuse
E N D
Software Reuse Explained What Is Software Reused?
Reuse-based Software Define • Engineering strategy where the software development process is geared to reusing existing software • An approach to development that tries to maximize the reuse of existing software. • Application System Reuse • Component Reuse • Object and Function Reuse
Application System Reuse • The whole of an application system may be reused by incorporating it without change into other systems • Application families that have a common architecture, but which are tailored for specific customers, may be developed. • An example of an application system reuse is Microsoft Operating System which is built on the existence of previous OS. Microsoft and other vendors use this reengineering technique because they know that a previous working software is more reliable than a new non-proven software.
Component Reuse • Components of an application, ranging in size from subsystems to single objects, may be reused. • For instance, a pattern-matching system developed as part of a text-processing system may be reused in a database management system.
Object and Function Reuse • Software components that implement a single function, such as a mathematical function, or an object class may be reused. • For example, classes and functions in libraries are freely available for reuse by linking them with newly developed application code.
Software Reuse Explained What Can be Reused?
Reuse of Knowledge • Reuse has grown to include knowledge and documents as well as source code [5][6] • Knowledge: Reusing solutions to problems • Architecture Patterns • Design Patterns • Requirements Reuse • Has a much greater potential than reusing source code12.
Reuse of Artifacts • Documents • UML standardization has facilitated the reuse of requirement, planning and design documents [12] • User Stories • State Diagrams • Sequence Diagrams • Data Flow Diagrams • Test Cases • User Manuals • Interfaces
Reuse of Source Code • Source Code • Most common form of reuse • Code Libraries • Recent developments in component and framework technology have made reuse easier [10] • Provides standard code for common tasks • Programmers can focus on application code rather than interface code (back end rather than front end)
Reuse of Source Code • Examples of framework technology • CORBA (OMG) • Middleware to allow programs in multiple languages and platforms to communicate • .NET (Microsoft) • Provides a vast library • User Interfaces • Numeric Algorithms • Database Connectivity • Web Development • Allows for interoperability across multiple languages • Java EE
Software Reuse Adoption • Software reuse has been largely adopted by most developers • Increased dependability • Tried and tested in working systems • Design and implementation faults should have been found and fixed • Reduced Process Risk • The cost of existing software is already known, whereas the costs of development are always a matter of judgment.
Software Reuse Adoption - Continued • Software reuse has been largely adopted by most developers • Standard Compliance • Some standards, such as user interface standards, can be implemented as a set of reusable components. • For example, if menus is a user interface are implemented as a set of reusable components, all applications present the same menu formats to users.