SDLC Overview And Requirements

SDLC Overview And Requirement

Compare and contrast SDLC and 2 other development models (give a brief description of the approach, cover the phases, and highlight the strengths and weaknesses). SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) For anyone to come up with a successful working information system they should employ the use of a suitable system’s development methodology. A system development methodology is a guideline that is used to organize, make and run the entire process of creating an information system. There are several types of software development methodologies and they include: - dynamic systems development model, agile software development, rapid application development, object-oriented software development methodology, joint application development (JAD), prototyping to name a few.

All these methodologies should have phases or steps that guide a software engineer to ensure that the come up with a proper information software hence the system development life cycle(SDLC). below are the most common SDLC methodologies. 1. Waterfall model – it happens to be the oldest SDLC methodology in the book. It is very straight forward: you must complete a phase to proceed to the next stage. Unfortunately for this model you cannot go back to previous phase to correct or change it until you get to the maintenance phase. I would not recommend this model for long term projects or projects that are too dynamic or static in nature nevertheless it is a very simple model to understand. 2. Agile model-I consider this to be the most effective model as it is very realistic. An engineer builds each phase from the previous phase and carries tests and runs after every release. This model encourages a lot of user or customer input. This can play as a double-edged sword as having constant customer input can fine tune the product to meet the exact needs of the customer however the project can easily go south if the customer is not sure what they want or their expectation of the project (Aiello & Sachs,2016). 3. V –shaped model- this model is widely known as the verification and validation model as the engineer should run tests once they are done with a stage before they proceed to the next stage. Just like the water fall model going back to a previous phase is difficult unless you get to the maintenance stage. This model is ideal for short term projects that are not ongoing 4.

Spiral model- this is a model that I would recommend for use when coming up with highly customized projects as there is a lot of user input and refinement of the product since the model employs a repetitive cycle through four development phases. I would emphasis on caution when using this method as an engineer can run the risk of cycle (spiral) that does not end. SDLC models have six phases the phases include: - · Requirement gathering and analysis I like to refer to this is as the system proposal stage. Just as you would need to do on any project let alone information system project you need to identify the problem that you are hoping to solve or identify the purpose of your system. An engineer will be required to carry out a feasibility study (Abadi, Prikladnicki & Dubinsky, 2013).

The feasibility study will include economic feasibility to ascertain whether it makes monetary sense to come up with the software. The feasibility study will also cover on operation feasibility to make sure it achieves what it is intended for. It will also include technical feasibility to familiarize the engineer with the resources and technology that will be needed to make the information system a success. This stage requires a lot of inputs and research from the client and from those who are part of developing the system such as the engineers. · System Design This is by far the most important phase of the SDLC. This stage shifts the paradigm from ‘what’ questions the developers had to ‘how are we going to implement’ questions.

In this stage, the programming language that is going to be used is decided on, the hardware and software that are going to be implemented are decided on how the system is going to look and the interface are decided at this level. Resources sourcing, training, a detailed manual of the expected system, the staff that are going to be involved and the needs and the control process are also decisions that are to be made at this phase. Implementation and coding- in this phase a programmer or a team of programmers are employed to convert the system need to computer understandable instructions through the settled upon programming language. The programs will run the system data and basically run the entire process of the system in the back end of the computer. · Testing This is the running of tests that involve the system and the program.

This is a very crucial stage as it helps do away with any existing bugs. Program tests are done to ensure that the codes are interpreted as expected and running as expected. System tests are carried out to make sure that the system is meeting the functionalities it was made for by running actual data in the system. Through these tests the developers can change, add, remove, and edit programs that are not desirable or find a better solution of working with the said programs. In this stage developers can have pilot-runs to test the functionality of the system · Deployment This refers to the launching of the system to the intended users.

I prefer to refer this as the implementation stage of the SLDC. In this stage user training is done to ensure that the final user does not have challenges while using the system. A user manual is also availed to the users to aid them in better understanding of the system. At this stage if there was an existing system and this new system was meant to come in as a replacement or upgrade. Two procedures can be done to ensure a smooth change over i.e. direct change over- where the old system is totally shut down and the new system takes over or we can have a parallel-run where the old system and the new system run for a while together as the new system is monitored for a while to ensure its working as expected. · Maintenance This is the final stage of the SDLC.

Maintenance can be done periodically to ensure or to confirm if the system is running well, to remove any possible errors that might have popped up while the users were running the system, general study of how the system is operating and upgrade of some system programs to meet user needs that were not being met or requested for. RAPID APPLICATION DEVELOPMENT (RAD) This is a system development model that emphasis on building or developing components or programs parallel to each other as opposed to focus on the completion of a single component and thereafter proceeding to the next component up for development. For rapid application development, the components are time boxed and assembled together to form a working prototype.

This model ensures that systems are developed faster than when using the water fall method it also encourages that components of the system are integrated early in the stage thus making a perfect running prototype fast. RAD is limiting models as it can be used when many designers and developers are available as each can concentrate on specific components. For clients to employ the use of RAD model they must have a capital as it is a capital draining model since all components are developed at once as opposed to the convectional waterfall or v-shaped model where components are developed component after another component. RAD model can be used if you have little time to come up with a system. Below is RAD’s life cycle: - 1.

Planning requirements-in this stage, system requirements are identified. The scope of the project is highlighted and becomes the focal point 2. User design-a lot of user information is gathered in this stage with a special purpose of coming up with the intended software architectural design. At this stage, the first prototype is developed 3. Rapid construction-in this stage the rapid building of components, coding, testing and a final integration of the prototypes take place. At this stage repetition of the prototypes is done to ensure refined prototypes components are achieved. 4. Cutover- this is the final stage where the engineers merge the components to come up with the final system which will be availed to the users. Before system is availed to the users, tests are carried out to ensure everything in the system is working as expected. JOINT APPLICATION DEVELOPMENT (JAD) JAD is a team oriented model that encompasses a lot of customer involvement and the developers to come up with a customized system.

This is contrary to what the traditional models run on as they emphasis on interviewing stake holders instead of having them on board on the development process. This model ensures that user needs are met as there is direct contribution by the user as opposed to the traditional system development approach. The group consensus applied while using JAD ensures systems are developed fast as the requirements are laid out openly as the stake holders are in play (ICAMaT, POLCOM & Savu, 2015. The typical JAD life cycle process include: - 1. planning-in this phase it is decided who are going to be present in the joint taskforce workshops, where the sessions are going to be held, how long the sessions will be and finally the goals of the sessions 2. preparation-in this stage the joint sessions will be scheduled, the materials that are going to be used are going to be availed, and the main purpose of the sessions will be highlighted 3. Design sessions-this is basically the prototype development phase 4. finalization- this is where the prototype is availed to the executives and where a go ahead for full development is given if it satisfies the executive’s needs. Also in this phase user manuals are completed and sign offs for system roll outs are given (McConnell, 1996). Based on your research, which model will you use for your project in this class, and why I would use the joint application development (JAD) as it is a group consensus model when utilized effectively with proper controls can ensure that user requirements are met and the model can meet customized user requirements. JAD is not as capital intensive as RAD and does not have a long development life cycle as compared to the traditional development models such as waterfall.

I think it’s a balanced model that encompasses the good traits of the other two models that I have touched on above. Is a hybrid or the use of a combination of models more appealing to you, and why? I prefer the combination of models as they combination allows you to utilize the good traits of the combined models. Through the combined models you can do away with the weakness of some models through acquiring the strengths of the other models. Combination of models is a perfect example of Unity is strength as strengths of various models are utilized.

References

  • Savu, T. (2015). Advanced Technologies in Designing and Progressive Development of Manufacturing Systems. Zurich: Trans Tech Publishers.
  • Boyde, J. (2014). A down-to-earth guide to SDLC project management: Getting your system development life cycle project successfully across the line using PMBOK®... adaptively.
  • Aiello, B., & Sachs, L. A. (2016). Agile application lifecycle management: Using DevOps to drive process improvement.
  • Abadi, A., Prikladnicki, R., Dubinsky, Y. (2013). 2013 1st International Workshop on Software Development Lifecycle for Mobile (DeMobile): Proceedings. Saint Petersburg, Russia.
  • McConnell, S. (1996). Software Project Survival Guide. Microsoft Press.
  • Pressman, R. S. (2014). Software Engineering: A Practitioner’s Approach. McGraw-Hill Education.
  • Royce, W. W. (1970). Managing the Development of Large Software Systems. Proceedings of IEEE WESCON.
  • Laplante, P. A. (2007). Requirements Engineering for Software and Systems. Artech House.
  • Highsmith, J. (2002). Agile Software Development Ecosystems. Addison-Wesley.
  • Boehm, B. (1988). A Spiral Model of Software Development and Enhancement. Computer, 21(5), 61-72.