COTS

  • COTS stands for commercial off the shelf software.
  • We will not build, but buy a software off the shelf. 
  • We spend very little time customizing the software.
  • We use CBSE (component based software engineering) to implement COTS.
    • Idea to develop software systems by selecting appropriate off the shelf components and then assemble them with a well defined software architecture.
    • CBSE has three major functions.
      • Developing software from pre-fabricated, reusable parts.
      • The ability to use those parts in other applications.
      • Easily maintain and customize those parts to produce new functions and features.
  • COTS components.
    • Independent and replaceable part of a system that fulfills a clear function.
    • Works in the context of a well defined architecture.
    • A component communicates with other components by its interfaces.
    • Developed by different developers, using different languages and different platforms.
  • Advantages of COTS.
    • Development cost is reduced.
    • Development time is reduced.
    • Complex systems can be built by reusing pre-existing components.
    • Testing effort is reduced.
  • Challenges with COTS
    • COTS is a black box.
    • Lack of functional and technical requirements.
    • Level of quality is unknown.
    • Unknown development process and methods.
    • Compatibility issues.
    • Uncertain upgrade schedules and quality.
    • Difficulty in regression testing and test automation.
    • Inter-operability and integration issues.
  • COTS testing techniques
    • Black box component testing.
      • To understand the behavior of a component, various inputs are executed, and outputs are analyzed.
      • To catch all types of errors all possible combination of input values should be executed.
      • To make testing feasible test cases are selected randomly from test space.
    • System level fault injection.
      • A technique for improving the coverage of a test by introducing faults to test code paths.
      • Fault, propagate through an observable failure follows a well defined cycle.
      • When executed, a fault may cause an error , which is an invalid state within a system boundary.
      • An error may cause further errors within the system boundary.
      • Each new error acts as a fault.
      • When error states are observed at the system boundary they are termed failures.
      • This is termed the fault error failure cycle.
    • Operational system testing.
      • Complements system level fault injection.
      • System is operated with random inputs(valid and invalid input)
      • Provides more accurate assessment of COTS quality.
      • A key operational testing feature is error detection which ensures, correct functional implementation.
      • Operational testing allows component interaction.
    • Software wrapping.
      • Wrapper generally refers to a type of packaging, such as a flat sheet to enclose an object.
      • It is a piece of code that one builds to isolate the underlying components from other components of the system.
      • A glue component provides the functionality to combine different components.
    • Interphase propagation analysis.
      • Interface, propagation analysis is used by injecting faults at one component.
  • Aggregator design pattern
    • Aggregator design pattern can be implemented as an aggregator service which will call more than one micro services based on the needs and collates the response.
    • Generate a report form two or more micro services .

No comments:

Post a Comment

Recursion

Q What do you understand by a Recursive  Programme? Recursion Is the process of repeating items in a self similar way. In programming langua...