This course is a comprehensive overview of systems analysis and design concepts and techniques and their application to IT projects. The course compares and contrasts the major systems development life cycles (SDLCs) commonly used in software systems development as well as the dominant development paradigms - the structured versus object oriented approaches.The presentation of the material focuses on the engineering pragmatics of getting a working system built, deployed and operational without attempting to promote one specific paradigm or technology over another. The benefits and costs of the Agile approach versus the waterfall or an iterative SDLC, and the choice of the OO approach or the structured approach are presented. The goal is to teach students to make realistic cost-benefit analysis of these technologies in a real world environment.How the standard engineering development cycle is implemented in each of these SDLCs is traced from requirements to solution specification to design and planning to construction and project management. The issues of operational maintenance, change management and system retirement are also examined in each SDLC.The OO and structured paradigms are both ways of analyzing, thinking about and designing systems, and each has its own set of modelling methods, documentation styles, requirements representation and design approaches. The underlying ideas of each of these are examined to provide students with both an ability to choose the approach that is most appropriate for new projects, and to understand how to work with modernization of legacy systems. However the bulk of the material presented is based on the object oriented paradigm and Agile processes.All of the theory presented is reinforced with examples, real world case studies, hands on exercises and projects.
The course has no prerequisites other than a general understanding of information technology.
5 Days/Lecture & Lab
The course is appropriate for project managers, developers, architects, business and systems analysts, data modelers and anyone else who is involved in the planning, design and building of software systems.