Directory Image
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Privacy Policy.

Software development life cycle offers steps for designing and developing software

Author: Ritesh Mehta
by Ritesh Mehta
Posted: Sep 04, 2017

There are numerous defined and designed software development approaches being used and employed during the software development process. The approaches are also known as software development process models. Each and every process model adheres to a certain life cycle to ensure success in the process. The development phases are used by developers, engineers and technicians to plan for, design, build, test and deliver information systems. The same as anything manufactured on an assembly line, the software development life cycle aims in producing high quality systems that meet or even exceed the expectations of the clientele, based on customer requirements, through delivering systems that move through every clearly defined phase, within specific time frames and cost estimates.

Computers are complex and usually link several traditional systems supplied potentially by the different software vendors. In order to manage the complexity level, a number of development life cycle methodologies or models have been made, including Waterfall, Spiral, Agile, Rapid prototyping, Incremental and Synchronize and stabilize. The SDLC models describe phases of the software cycle and in the order to which the phases are performed. Every phase creates deliverables needed by the next phase in the cycle. The requirements are translated into design and code is produced in accordance t the design which is called development phase.

Software development life cycle concept applies to an array of software and hardware configurations, since a system could be composed of hardware alone, software alone or a combination of both. The life cycle is composed of several clearly defined methods. The cycle provides steps to be followed for designing and developing a product more efficiently. The SDLC framework includes the steps below:

1. COMMUNICATION

Is the first step or phase wherein the user initiates the request for a desired product. The user contacts the service provider and negotiates terms. There will be a submission of the request to the vendor in writing.

2. GATHERING OF REQUIREMENT

This works to carry on a project. The development team holds discussions with the different stakeholders from problem domain and tries bringing out as much information as possible on the requirements. These are contemplated and segregated into user needs, system needs and functional needs. Moreover, these are collected using several given practices such as:

  • studying existing or obsolete system
  • doing interviews of users and developers
  • referring to database or gathering answers from questionnaires

3. FEASIBILITY STUDY

After the gathering of the requirement, the team of developers comes up with a rough plan of the process. On this phase, the team analyzes if the system could made to fulfill all user requirements and if there's a possibility of the program being no more useful. It is determined if the project is practically, financially and technologically feasible for a company to take up. There are numerous algorithms available that help developers conclude the software project feasibility study.

4. SYSTEM ANALYSIS

During this phase, the developers decide on a roadmap of the plan and try to bring up the best model suitable for the project. System analysis includes comprehending the product limitations, learning related problems or changes to be made in existing systems beforehand, identify and address the impact of the task on the organization, the personnel and others. The team analyzes the scope and plans the resources and schedule accordingly.

5. SOFTWARE DESIGN

Inputs from users and the information gathered are the inputs of this step. The output comes in the form of two designs, the logical and physical. Engineers create meta-data and data dictionaries, data-flow diagrams, logical diagrams and in some instances pseudo codes.

6. CODING

This is also known as the programming phase. The software design implementation begins in terms of writing a program code in a suitable programming language and the development of error-free executable programs effectively.

7. TESTING

A study reveals that fifty percent of the whole software development process must be tested. Errors could ruin the system from critical level to its removal. Testing software is performed while coding by the developers and thorough testing is made by testing experts at different levels of code, like module testing, program testing, product, in-house testing and testing the product at the user's end. Determining errors early and finding remedy is key to a reliable package.

8. INTEGRATION

The program may have to be integrated with the databases, libraries and other programs. This stage is involved in integrating of freeware with outer world entities.

9. IMPLEMENTATION

This means installing the program on the user machines. There are times when software needs post-installation configurations at user end. A package that is tested for adaptability and portability and integration related issues are solved during this phase.

10. OPERATION AND MAINTENANCE

This stage confirms the operation of the system in terms of less errors and more efficiency. If needed, users are trained on or assisted with the documentation on how to operate and how to keep the program operational. The package is maintained on a timely manner through updating the code in adherence to the changes happening in user end technology or environment. This step could face challenges from unidentified problems in real world and hidden bugs.

11. DISPOSITION

As time passes, the program could decline on the performance front. It could become completely obsolete or may require intense upgrade. Therefore, there is an urgent need to eliminate a major part of the system could arise. The phase includes archiving data and the required components, closing the system down, planning a disposition activity and terminating it at an appropriate end-of-system time.

The software development paradigm helps a developer or developers to choose a strategy to develop the product. The paradigm has its own set of tools, procedures and methods, clearly expressed and defines the life cycle. Some of the development models are as follows:

WATERFALL MODEL

Is the simplest model and assumes that everything is carried out and perfectly taken place as planned in the previous phase and there is no need to think about past problems that could arise in the next stage. This model will not work smoothly if there are concerns left at the previous stage. This method is best suited when developers have already designed and developed same software before and aware of all the domains.

ITERATIVE MODEL

This leads to the development process in iterations. It projects a process of development in a cyclic manner, repeating each step after each SDL process cycle. The system is first developed on a very small scale and all the steps followed are taken into consideration. On every next iteration, more modules and features are designed, coded, tested and added to the system. Each cycle creates a program, which in itself complete and with more features and capabilities compared to a previous one. After every iteration, the management team could perform work on managing risk and preparing for the next iteration. Since a cycle includes a small part of the entire process, it is easier to manage the development process but takes a lot of resources.

SPIRAL MODEL

This is a combination of both, the iterative model and SDLC model. It could be seen as if one chooses one SDLC model and combined with a cyclic process. This considers risk, often which goes unnoticed by most models. The model begins with determining constraints and objectives of the freeware at the beginning of the iteration. The next phase is prototyping the system that includes risk analysis.

V-MODEL

This provides a means of testing a system at every stage in a reverse manner. At each step, test plans and test cases are made for verifying and validating the product in accordance to the requirement of the phase. For instance, in gathering of requirement, the test team prepares all test cases in response to the requirements. Later, when a product is developed and ready for testing, test cases of this step verify the system against the validity towards requirements at this phase. This makes verification and validation parallel.

BIG BANG MODEL

Is the simplest in its form and requires little planning, plenty of programming and funds. This is conceptualized around the big bang of universe. When putting together lots of funds and programming, one could achieve the best software. For this model, a very small amount of planning is needed. It does not follow any process, or in some instances the client is not sure regarding the requirements and future needs. This is not suitable for big projects but good for learning and experimenting.

About the Author

Ritesh Mehta is the Sales Director at TatvaSoft Australia, a Software & mobile app development company. For Over 15 years, he has been professionally active in financial management, software development.

Rate this Article
Leave a Comment
Author Thumbnail
I Agree:
Comment 
Pictures
Author: Ritesh Mehta

Ritesh Mehta

Member since: Apr 26, 2017
Published articles: 70

Related Articles