Describe the fundamentals of three development methodologies: SDLC, the agile approach, and object- oriented systems analysis and design and how they would be used in an organization.
System Development Life Cycle (SDLC)
Kendal & Kendal (2014) have described the development of an information system to be similar to the building of a house involving 4 developmental stages i.e. planning, analysis, design and implementation. These four stages constitute the SDLC. In an organization when the development of a system is required, proper planning is done about what are the different inputs and desired outputs. What will be the required resources and what would be the expected activities during the developmental life cycle. In the analysis phase questions like who will be the beneficiary of the system and what will be the system used for and where. In the design phase, decides the different software and hardware that will constitute the system and how they will interact with each other. And in the final stage i.e. implementation phase, the actual system is built. It could be acquired from someone else if the design of that system matches the one that is required by the organization.
Agile development approach is based on twelve broad principles which give a flexibility to implement the design of a system based on the changing requirements. This approach does not follow a strict development life cycle and instead focuses on the actual working conditions where the development is taking place and who the customers are. The system is capable of any new requirements arising or changing circumstances and can quickly adopt to it in an organization.
Object-Oriented System Analysis and Design (OOSAD)
It is mostly related to an agile development strategy where a problem is divided in to parts or objects. These objects contain both data and processes. These objects are then designed by different team members and can be combined to work together and form a single information system. Organizations use this approach in software design where different processes are broken down in to modules or objects and different teams or team members work on its design and implementation.