In this post let us look at the different phases of IT life cycle in detail. The aim of this post is to give you a quick and short introduction to it life cycle. This will be of good help if you are moving to the IT field, preparing for an interview or an enthusiastic student. The formal term for IT life cycle is Software Development life-cycle (SDLC). We will refer to both these terms in this post and be informed that both refers to the same thing.
IT Life Cycle – The need for it
The simple question first. Why do you need a formal life cycle. Why can’t you just start with the development and move forward as it comes. To answer this we need to understand that every industry follows its own life cycle processes to make the industry efficient, predictable and defect free. Consider the case of manufacturing sector. Let us take a car manufacturing company for example. They don’t just go and make cars out of the blue. They have formal processes defined for that. They plan, design, manufacture, test and finally deploy to the market. IT is no different. Here also we need to make it a formal process so that it works with predictable and measurable outcomes.
Let us now look at the various IT Life cycle stages.
IT Life Cycle – Models
Before we define the stages let us understand that there are different models available for defining the processes for software development. Some of the common models are
- Waterfall Model
- Spiral Model
- Agile Model
- Iterative Model
The processes and the order of those processes are different in different models. But as a beginner you need to understand the Waterfall model first. Other models are optimizations to the waterfall model in bringing in more agility, turn around time and market volatility management to the IT. Once you understand the waterfall model you can easily understand other models.
IT Life Cycle – Waterfall Model
Waterfall model formally defines the below stages for SDLC
- Requirements specification (Requirements analysis)
- Software design
- Implementation and Integration
- Testing (Validation)
- Deployment ( Installation)
In a strict waterfall model the order of the stages is very important. Only after the stage 1 is complete it moves to the next stage. The stages cannot run in parallel. The order of execution is extremely important.
Stage 1: Requirements specification ( Requirement Analysis)
In this stage, the first task is to create a Software Requirements Specification (SRS). An SRS is a document detailing the behavior of a system to be developed and may include a set of use cases that describe interactions the users will have with the software. This is a document which says i want to build a software with so and so features and may also specify how the different users will interact with the software. In short this is a requirement specification document. For example consider the case of a child asking for a toy to his / her father. Child may say – “I want a toy duck that moves with me wherever I go”. This is simple requirement specification. But a real world software requirement specification will be more elaborate than this.
An SRS may also contain attributes mentioning the non functional requirement for the system. Non Functional requirements are things related to the usability, security, scalability, maintainbility, exstensibility etc.
Once you have an SRS, you need to analyze it to understand it well. You will create more documents or pictures to capture your understanding in detail and to communicate with all stakeholders to get their approval. The requirements should be documented, actionable, measurable, testable, traceable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. Requirement analysis is typically done by an analyst and may employ different methods to communicate , document and refine the requirements. Analyst may employ use cases, conduct focus group meetings, presentations etc to formally complete the requirement analysis.
Quick definition for a Use case
Use case provides a set of scenarios that convey how the system should interact with a human user or another system, to achieve a specific business goal. Use cases typically avoid technical jargon and instead use terms that a business user can understand.
Stage 2: Software Design
Software design phase involves understanding the requirements in detail by the design team, translating those requirements into system components and finally creating a high level design and low level design. The high level design includes the Software architecture for the system under construction, mechanisms in place to adhere to the Non functional requirements etc. Low level design involves modelling the components to be developed, the algorithms to be developed and the interfacing between various components of the software. Output of the design phase is a Software Architecture document including system model, Low level design document and or model.
Stage 3: Implementation and Integration
This is the phase where we actually develop code and create the system from the design. We may need to integrate various components to create the functioning system. These components may be in house and sometime may be external. Based on the mechanisms detailed in the design, the integration has to happen to link the different components to create a functional system. In plain language , this is the coding phase.
This is the stage where a working system is validated against the requirements. This is achieved by comparing the workings of the system with the expected behavior documented in test cases.
There are different techniques applied to the test the system. Most common approach is the white box testing and black box testing. White box testing involves testing the internals of the system like testing a single component, unit or a sub system. A Tester may write low level test cases to test the inner workings of the system. White box testing involves testing various API’s exposed by the system or used by the system to pull / push data to other systems.
A black box testing is the technique of testing the functionality of the system without worrying about the inner workings. A tester considers it as a black box and tests the business functionality expected from the system. Testing the use case is a form of black box testing.
Deployment ( Installation)
This phase deals with installing the system for customer or stakeholders to test validate or expose to the users in production. This phase involves various roles like a build manager, release manager, system administrator, database administrator etc. Please note systems are not moved to production directly. Typical process involves moving to production like environment knows as staging where it is thoroughly tested by the business users and once it is found to be stable and usable, it is moved to the production environment.
This is a critical phase where the software may need to be enhanced, to be corrected for any flaws detected and finally support the software. Companies may enter into long term maintenance contracts for the software they have developed or developed by a third party. Maintenance task is easy for well designed, well documented, properly coded system and a night mare for a badly designed or developed system.
This concludes the first part of the IT Life Cycle tutorial. Hope you have got an idea into what is an SDLC.