Systems Analysis and Development
Types Of System Development Methodologies
A prototype is an early model or sample that is used to test the functionality of a product, to be replicated from or to be learned from. Prototyping is used when an early build of the product or system to demonstrate how the actual product will function with live results. Prototyping is effective because we use a real system for testing compared to a theoretical one.
Easy to see what functionality is missing.
Encourages innovation and flexible minds as new ideas can be easily tested.
Require validation to work, so discrepancies can easily be identified.
Requirements for the product may change significantly after reaching build stage, creating more required work.
Identified non-functional elements may be difficult to document from the demo.
The client may be unaware about what they are looking for or what they want.
Systems Development Life Cycle (SDLC)
The System Development Life Cycle (SDLC) is a process commonly used for planning, creating, testing, and deploying information systems. The SDLC can apply for software, hardware, or a combination of both types of projects. The SDLC is defined by a number of phases by a number of clearly grouped activities, known as phases, used to help develop a finished project or product.
Linear Methodology (Waterfall, Cascade)
The Linear Methodology is a sequential design process in which progress is seen flowing down through stages, like a waterfall. Each phase must be completed before the next phase can begin, making it easy and simple to understand. A review is conducted at the end of each phase to make sure that the project is being carried out correctly and to schedule.
Very simple and easy to interpret.
Phases do not overlap, which allow the developer to prioritize and focus on each phase as it happens.
Great for smaller projects where the requirements are well understood by both the client and the developer.
Interative (Rapid Application Development [RAD])
Rapid Application Development (RAD) is a term used to describe the alternative to the linear methodology. In this methodology, it has less emphasis is putting on planning and more on development. Components (or functions) are developed simultaneously as if they were mini projects. Each component is given a deadline after which all components are gather and made into a working prototype.