Evolution of System Development Methodologies


INTRODUCTION:

System development methodologies in their variant forms are the oldest and most widely used approaches to analyze the development procedures used when developing, changing, or acquiring a system in the information technology arena. Although most of the methodologies have evolved over the years as a response to the ever-changing scenarios and paradigm shifts that pertain to the building and acquiring of software, the core principles remain as applicable as they were in the preceding methodologies. The traditional life cycle stages have undergone several iterations to meet the current needs of the technological world and the deployment of software in business, industrial, and governmental setups. ITI is an international company established in the United Arab Emirates city of Dubai. The company is currently hosted by a domain name extension of .ae and wants to change the domain name extension to .com to have a global outlook. The case presents a real-world information setting where different software development methodologies can be applied to affect the changes to the company’s domain name. It is therefore important to carry out an analysis of the various software development methodologies, and their application in an environment like that of ITI, and based on the observation made, a conclusion be drawn on the best applicable methodology that can be used to implement the changes on the domain name of ITI company. 

Evaluating different systems lifecycle models: 
Due to the difference in the project requirements, it is fundamental to choose the software development methodology based on the specific needs of the project. The different requirements give the developers and programmers the best development approach to be used during the implementation of the system. Various system development methodologies exist in the information and technology environment. Despite the different approaches being drawn to make the methodologies more appropriate for use in the computing environment, all the methodologies adopt the traditional development methodology sequence in one way or another. The only difference between the new methodologies and the traditional methodology is the iterations. This makes the traditional methods of the waterfall and prototyping the most stable and better to implement for the case at ITI Company.  

1. Waterfall method: 
The waterfall method of software development belongs to the linear sequential flow of software development methodologies. The progress flow is arranged in a sequential flow downwards like a waterfall throughout the software implementation phases. Every phase of the development process begins after the preceding phase is complete, meaning that the waterfall method does not define the process of going back to the previous phase and implementing changes. It is appropriate for projects that are initiated from proposal requests and not for projects that focus on mutating requirements. Since its invention, the waterfall method has remained the most used and familiar software development methodology for software developers. As classic as it may look, the waterfall methodology involves seven sequentially arranged steps. 

System analysis, requirements, and validation: 
This is the first phase of software development in the waterfall method, and it involves the analysis of the already existing system to identify the problems and issues to be rectified. In a new system development scenario, analysis is done on the environment to identify the problem that can be solved by the proposed system. As such, the problem of the domain name being limited to the United Arab Emirates will be identified and a proposal made to change the extension to have a global look. 

System requirements validation: 
During this phase, all the requirements raised by the company and the hosting company are analyzed to meet the project objectives. A mapping of the system requirements against the hosting companies is presented for inspection by the software development team. The management will be expected to progress to the analysis.  

System preliminary design and validation: 
During this phase, a model of the proposed system is developed implying that the development team shall develop a model name with a .com extension for implementation tests before the real domain name is created. 

System detailed design and validation: 
After the successful integration of the new domain name, the development team shall embark on the creation of the real domain name keeping in mind the various changes likely to have affected the implementation of the domain name. 

System debugging and deployment: 
During this phase, the new system is made to run in an assimilated environment to the real environment in which the software is expected to run. After the system works effectively, the new system is installed in the actual environment.  

System testing and validation: 
The new system is tested, and training is carried out to acquaint the user with the operation of the new system. As such, the new domain name will be made available for use by the hosting company, and the users will access and comment on the functionality of the new domain system. 

System rollout and maintenance: 
After effectively and successfully implementing the new domain extension in the environment, code loads shall be performed periodically to the system to check if the need arises for any upgrades or downgrades of the system or the domain name of the company. 
Although the original design of the waterfall methodology did not involve having a reference to the previous step, current software development platforms have given room to a slight back step between each stage. 2. Prototyping method: 

Prototyping is a software development methodology that involves the creation of models that work as the real software to be developed is expected to work. It is based on the concept of visualization where the component of the software being developed is used to represent the real software to avoid misunderstanding the customer requirements. As a result, no iterations are required as is the case in agile development methodologies or new software development methodologies. The creation of the model gives the software developer a chance to approach the inflexibility that comes along with the waterfall method. The effort is generally drawn towards creating the actual model as opposed to documentation. This enables the developer to have functioning software in the early stages of the development process. The presence of the prototype enables the user to examine the software under development and identify any errors in the early stages of development. Prototyping adopts the incremental approach where the software is developed in cycles until the user is satisfied with the final product.
There are four types of prototyping methodologies; throwaway prototyping where the unfit prototypes are discarded rather than forming part of the final software, and the evolutionary prototyping method where the software model is evolved to the final system by iteratively involving the user until satisfaction is achieved. There is incremental prototyping where the final product is developed as separate models that are merged at the end of the development process into the overall design of the software. Finally, there is extreme prototyping, which is the best method when implementing web-based applications. Extreme prototyping is broken down into three phases that are based on the preceding phase. The first phase represents the static prototype which is a composition of mainly HTML pages. Using the simulated services layer, the screens are programmed into fully functional web pages in the second phase. The third phase involves mainly the implementation. As discussed before, waterfall and prototype models have advantages and disadvantages hence the company must decide on which life cycle model to choose to achieve the company’s goals. Furthermore, the following three questions will help to decide which model to select. 
1. Does it meet the requirements? 
2. Can it be completed during the time frame? 
3. Can it be completed within the budget? 

Importance of following a procedural/staged lifecycle in a system investigation:
The procedural lifecycle is important during system investigation because it provides the developer with a systematic approach, which enables the implementation of iterative processes. This is made possible through preliminary investigation, requirement analysis, system design, system coding, system implementation, and maintenance. 

Waterfall approach of feasibility study:
A feasibility study is conducted in a waterfall approach to help the developers select the best system with the capability to meet the performance requirements. It is a measure to help the user know that the analyst can evaluate the solution. 

Analyzing the waterfall approach:
Analyzing the waterfall approach makes the designing of the system architecture easier for the developer and presents both the developer and the user with an idea of how the final design of the system will look like.  

Designing the waterfall approach:
Designing in the waterfall approach helps the developers to develop a technical design for the problem as brought out in the analysis and requirements phases. The documentation that is always done in the designing phase helps other developers to make changes to the system in future integrations.

Implementing waterfall approach:

The implementation of the waterfall approach helps both the developer and the user to have the software under development in a working environment where it can be exploited to meet the user’s expectations.  

Testing waterfall approach: 
Upon completing the implementation of the software, testing the approach helps the developer ascertain that the user is comfortable using the software and that the software meets the requirements of the user. The developer uses user cases to check if the test cases have been created and are executable.

Review the waterfall approach: 
Reviewing the waterfall is important as it helps in drafting the final report on the progress of the project and identification of any required integrations to the software under development. The waterfall method does not have iterations; hence, the review highlights the errors in the project and provides a basis for the analysis of the system.

Leave a Reply

Your email address will not be published. Required fields are marked *