Monday, August 15, 2016

Requirement Tracing - Software Engineering

Requirement Tracing: 
Requirement Tracing | Software Engineering
Requirement Tracing | BSCSCAFE

It is a process of linking requirements to the others according to the relationship. It also includes documenting, capturing and agreeing on requirements and controlling the every change that was made to the requirements in both the directions forward and reverse.

Tracing Tools: 
A computer program for storing all the requirements of all specification of a technical system under development, which are arranged in a tree and linked each one to the parent.

Methods of Requirement Tracing: 

  1. Vertical Tracing: A high level documentation which maps the requirements to all the phases of software development cycle. 
  2. Horizontal Tracing: It identifies the relationship between requirements. Every requirement has a test case. When requirement changed it will used to identify the test case prepared for it.


Friday, August 12, 2016

Prototyping - Software Engineering II

Prototyping
Prototyping | bscscafe

Prototyping:

An activity of releasing pre-built sample or first version  of a process or concept to run, in which a few of function are implemented and refined through number of stages to the final system.

Prototyping Process:

  1. Identify Basic Requirement: when we are going to build a first version of a product we have to collect the some of the main and basic requirements to work the main features of a product. 
  2. Develop Initial Prototype: Now we have identified the requirements, It’s time built an initial version or release to demonstrate the basic functionality of a prototype. 
  3. Review: Now collect reviews from the user, related testing unit to refine the functionality and specifications. 
  4. Enhance the Prototype: As everything is going fine, we have defined the requirements, develop initial release, reviews are collected and now work according to the reviews to build a complete system through looping these four steps.

Prototyping Process
Prototyping Process

Types of Prototypes: 


  1. Throwaway Prototyping: A small part of the system is developed to understand the requirement that is given to the end-user to try-out and then discarded soon rather than becoming a part of final system also called Rapid Prototyping. 
  2. Evolutionary Prototyping:A process of creating a mature system in which an initial prototype is provided to the end-user to get feedback and refine the same piece of code through the number of stages to approach the final system. 
  3. Incremental Prototyping: Each function is developed as a separate prototype, at the end all the prototypes are merged to into a final system. 
  4. Extreme Prototyping: It breaks down all the system into three phases especially used for web application development, each one is based on the proceeding one.

    • First phase is Static Phase, consisting of HTML pages, 
    • Second one is coding program, making sure screen are fully functional. 
    • Third and last is implement all the services


Advantages of Prototyping:


  • Improves the quality of developed system. 
  • Reduces time and cost. More communication, less misunderstanding


Disadvantages of Prototyping: 


  • Can leads to delay in the development if the user throwaway the prototype. 
  • Developer consume so much time on the sub system and attached to it. 
  • It increases the cost if the project prolonged

Thursday, August 11, 2016

Software Testing - Software Engineering II


Software Testing:

It is a process of running or executing a program with the intent of finding the bugs and evaluating either it is satisfying the specified requirements or not. Software Tester ensures that the application meets the requirements, response correctly, completes its functions in time and compatible with environment.
Software Testing
Software Testing | BSCSCAFE

Software Testing Methods:


  1. Static Testing:Is used to discover the defects and error of application by manually reading the source code, documentation without executing the actual application. Done during verification process. 
  2. Dynamic Testing: Is used to examine the dynamic behavior of application by executing the actual application. Giving input values and looking for the expected results. Done during validation process. 
  3. The Box Approach: This approach is divided into two test. First one is (i) White-Box Testing and second one is (ii) Black-Box Testing.
    1. White-Box Testing: this test is done by looking into the internal structure, functionality, code or logic of application. It requires a programming knowledge. Also known as glass-box testing, clear-box testing, open-box testing, logic driven, path driven testing. 
    2. Black-Box Testing: this type of test is done by without looking into the code and internal structure of application. Unlike White-Box testing programming skills are not required.


Testing Levels:

Software Testing Levels
Software Testing Levels | BSCSCAFE
  1. Unit Testing: Individual units of an application are tested to determine whether they are working properly. Unit is the smallest testable part of an application. Every unity is tested in isolation and are independent. 
  2. Integration Testing: When two or more units are passed through unit testing are combined to test interface of them. Used to expose the defects in the interfaces and interaction between the components. 
  3. Component Interface Testing: After bypassing integration testing, handling of data being passed from one unit to other unit is checked. It could be either extreme data values or data types. 
  4. System Testing: A complete integrated system is tested to verify that the system meets all the requirement of the end-user.


Testing levels from the perspective of the customers:


  1. Low-Level Testing(LLT): It is a group of tests for different level components of system or application. 
  2. High-Level Testing(HLT): It is group of test for whole product or application.

Wednesday, August 10, 2016

Software Verification and Validation - Software Engineering II


Software Verification and Validation
Software Verification and Validation | BSCSCAFE


Verification and Validation are two independent procedures that are used together to make sure that a product, service or system meets requirements and specifications that it fulfill the needs of end-user.


Software Validation: 


It is a process to verify that the product being built is according to the needs of the end-user and all the specifications of a product satisfies the user expected requirements. The product is actually meets the user need. It is done by Dynamic Testing and reviews. 


Are we building the right product for the user?

Software Verification: 


It is a process to make sure that we are building the product in a right way and product is being processed according to the needs of the user. The service or system being built is according to the set of requirement and designed specification. It is a process that evaluates whether product or system compiles with the initial specification or condition. Process chosen for the software development is right.


 Are we building the product in a right way?

There are two Verification approaches:



  1. Dynamic Verification: It is carried out while execution by checking dynamic behavior of the code or software. It is categorized into following three small families. 
    1. Test in the small: A process that tests a single class or function. Each function is tested individually at a very small level. 
    2. Test in the large: A test that tests a group of classes. 
    3. Acceptance test: A test that checks approval standards for a software. 
  2. Static Verification: it is a process of checking the software source code to meet the end-user requirements by investigating, mathematical calculation and logical evaluation before execution.



Efficiency:


When a software shows productivity, responsiveness or stability under a particular work load and stress produces desired results.


Correctness:


When it is said that algorithm is correct with respect to the specification. Total Correctness: which requires that the algorithm terminates but in Partial Correctness which simply requires if a value is returned it will be correct.


Integration: 


It is a process of concatenating functionally multiple units of a product to function together properly as a complete system. System is consisted upon multiple subsystems. 


Methods of Integration:



  1. Vertical Integration: is a process of integrating units and subsystems of a product according to their functionality. It make integrating quick and cheaper as compared to the other methods. 
  2. Star Integration: in this method every subsystems and units are inter-connected to every other remaining subsystems. Sometimes this method is preferable because of flexibility. Long term and costly projects.
  3. Horizontal Integration: this methods uses a specialized subsystem for the communication between the interface and other subsystems. Horizontal Integration cost’s high.