In: Computer Science
Systems Analysis
8. Explain how Agile techniques for systems analysis and design are different from the structured or other object oriented methodologies. Discuss the advantages and disadvantages of the methods and the conditions under which you would use them. (25 points)
Systems analysis is a method of figuring out the basic elements of a project and deciding how to combine them in the best way to solve a problem. In order to improve the systems analysis processes, different approaches have been developed. Some of the major approaches are:
Traditional waterfall design
Waterfall model is the earliest SDLC approach that was used for software development. It is very simple to understand and use. It is a step by step approach to the systems development lifecycle (SDLC) which consists of phases or activities. Each phase must be completed before the next phase can begin and there is no overlapping in the phases. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards. One of the main disadvantage of this system is that, it is difficult to estimate time and cost for each phase of the development process and is not a good model for complex and object-oriented projects.
Agile Methodologies
An Agile methodology does not follow an SDLC. It is a different kind of methodology. It emphasis focus on people or individuals rather than on the roles that people perform. Agile methodologies attempt to capture and use the dynamics of change inherent in software development in the development process itself rather than resisting the ever-present and quickly changing environment. Unlike the waterfall model in agile model very limited planning is required to get started with the project. The main disadvantage of this methodology is, the project can easily get taken off track if the customer representative is not clear what final outcome that they want and also there is lack of necessary design and documentation phase.
Object Oriented analysis and design
Object modelling develops the static structure of the software system in terms of objects. It combines data and processes into objects. A set of diagrams or models is used to represent various views and functionality of the system and is known as Unified Modeling Language (UML). Similar to the agile methodologies, this approach is similar in the way of iterative development approach. The basic problem for this model is that the functionality is restricted within objects. This may pose a problem for systems which are intrinsically procedural or computational in nature.
The approaches of all these analysis methods have different ways of implementing and process details. The traditional approach is perhaps the most straightforward method for systems analysis and design. However, for smaller projects agile methods may be more suitable. If the project heavily emphasized on project scalability and component reusability object-oriented design could be the best choice.