Recent Post

Design, Coding, Testing, Implementation and Maintenance

Software Design

Design
 In this phase, the designer plans how a software system should be developed in order to make it functional,reliable, understandable, modifiable and maintainable.
                                     The purpose of design phase is to produce a solution to a problem given in SRS document.

Module Coupling
          Coupling is the measure of degree of interdependence between modules.

NOTE:-
Loosely coupled system are made up to modules which are relatively independent.
Highly coupled system share a great deal of dependent between modules.
Uncoupled modules have no interconnections at all.
A good design will have low coupling.Thus , interfaces should be carefully specified in order to keep low value of coupling.

      Most Desirable <--------------------------------------------------------------------------Least Desirable
                                           Coupling Spectrum

 
Module Cohesion

Cohesion is a measure of degree to which elements of a module are functionally related.
      Least Desirable ----------------------------------------------------------------------> Most Desirable
                                              Cohesion Spectrum

Maximize cohesion and minimize coupling.

Software Testing
Testing is the process of executing a program with the intent of finding errors.Complete or exhaustive is just not possible.
Verification and Validation
   (i) Verification: Checking the software with respect to specifications
   (ii) Validation: Checking the software with respect to customer's expectations.
Acceptance Testing: Testing is conducted the customer to validate all requirements.
Alpha and Beta Testing:
   (i) Used when the software is developed as a product for anonymous customer.
   (ii) The alpha tests are conducted at the developer's site by customer.
   (iii) The Beta tests are conducted by the customer at their site.

* Testing and debugging are two different processes which occurs at same time which identifies bug and the other removes the bug (respectively).

Unit Testing: Test the functionality within the module.
Integration Testing: Tests are focused more on interaction between modules.
System Testing: Tests the software as part of the bigger system for which it was created.
Regression Testing: Ensures that in process of modifying the existing system, the original functionality of the system was not disturbed.
Functional Testing: It is also referred as "Black box Testing" which involves only observation of the output for certain input values.
     (i) Boundary Value Analysis: The basic idea of boundary value analysis is to use input variable values at their minimum, nominal value and maximum.
      (ii) Equivalence Class Testing: Input domain of a program is partitioned into a finite number of equivalence classes such that one can reasonably assume that the test of a representative value of each class is equivalent to a test of any other value.
      (iii) Decision Table Based Testing : A decision table is most widely adapted graphical tool for representing process specification.
Decision tables are useful for describing situation in which a number of combination of actions are taken under varying set of conditions.These  are used to represent and analyze complex logical relationship.


No comments