Understanding the various stages of software quality is an important part for my research.
Software Engineering Life-cycle and various stages in Software Engineering
Following are the main phases in Software Development :
1. Problem definition phase : state the problem, characterize it, give it scope.
2. Feasibility : give alternative costs, benefits
3. Requirement Analysis : Specify input, processing , outputs
4. Design phase
5. Implementation phase
6. Testing
7. Operation and Maintenance
Problem Definition Phase
Problem definition involves stating the problem and the scope of the problems and giving a scope to the problem
Feasibility
Feasibility study establishes alternatives and cost-benefit analysis.
Requirement Analysis
Requirement Engineering is the process of establishing the services that the customer requires from a system and the constraints under which it operates and develops.
The requirements themselves are the descriptions of the system services and the constraints that are generated during requirement engineering process.
What is a requirement?
It may range from a high-level abstract statement of a service or a system constraint to a detailed mathematical functional specification.
Requirement can serve a dual purpose:
- May be the basis of the bid for a contract - therefore must be open to interpretation.
- May be the basis of a contract itself so must be defined in detail
Types of Requirements
User Requirements
Statement in natural language plus diagram of the services the system provides and its operational constraints, written for customers
System Requirements
A structured document setting out a detailed description of the system functions, services and operational constraints. Defines what should be implemented so may be the part of the contract between the client and the contractor
Written more from a developer requirement
Functional and Non Functional Requirement
Functional Requirements
Statement of services the system should provide, how the system should react to particular inputs and how the system should behave in a particular situation.
Non Functional Requirements
Constraints on the services or functions offered by the system such as timing constraints , constraints on the development process, standards, etc.
In principle, Requirements are meant to stay away from design. Requirements are meant to state what the system is supposed to do and not how.
The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts.
Modeling
Why we Model?
- It is difficult to understand the system in one shot. Therefore, we have to build a model and try to understand it in terms of components and how those components relate with each other.
- To communicate the desired structure and behavior of our systems.
How we Model?
- The choice of which model we use has a profound influence on how a problem is attacked and how a solution is shaped.
- No single model is sufficient; every complex system is best approached through a set of independent models.
* The best models are connected to reality
Common types of models:
- Data Model
- ER model
- Entity
- Entity set
Implementation Phase
Modular and subsystem programming code will be accomplished during this stage. Unit testing and module testing are done in this stage by the developers. This stage is intermingled with the next in that individual modules will need testing before integration to the main project.
Testing finds errors
* Testing does not GUARANTEE the absence of errors
- Testing is not an activity that starts after implementation
- It starts early with making of software test plan
- The test plans are based on requirements
- Besides the implementation that is code, outcomes of the life cycle phases are to be validated, or are verified formally
- The requirement analysis/design document is validated through peer/customer review.
- Models may be verified through model checkers if formal modeling techniques are used.
- Test driven development
- Tests first and then the development
Operation and Maintenance
The deployment of the system includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important aspect of SDLC. As key personnel change positions in the organization, new changes will be implemented, which will require system updates.
Hello,
ReplyDeleteThe Article on Software Development Lifecyle is very informative give detail information Software Development thanks for Sharing the information about it.Software Testing Company