Object-Oriented Analysis and Design & Software Engineering with Project (OOSP)
Duration: 15 weeks (full-time)
This module has two objectives. First is to impart a good understanding to the students in concepts, methods, tools and application of Object-oriented Analysis and Design (OOAD) techniques using UML and secondly to provide a strong foundation in knowledge and application of Software Engineering methods and techniques in developing software systems.
The Object-oriented (OO) approach is ubiquitous in designing software systems today. It is therefore imperative for software professionals to have knowledge of OOAD and know how to apply it in problem solving. The OO approach uses the concept of “Objects” for modeling and designing a solution for a problem. An object is characterized by unique identity, state and behavior. Objects communicate and interact with each other via messages. In the OO approach, objects are used to abstract real world entities from the problem domain for representation in the software domain. A good OO design helps to achieve quality goals of reusability, extensibility and maintainability. The Unified Modeling Language (UML) is an open method used to specify, visualize, modify, construct and document the artifacts of an object-oriented software system under development. The module will teach the OO modeling and design techniques using UML diagrams with tool support and include exercises and an assignment for practice of the techniques taught. The OOAD and UML part will be of 2 weeks duration.
Today, software plays an important role in bringing ease of use, efficiency, accuracy, productivity in almost all domains of human activities - banking, telecommunications, government applications, education, defense, satellite control systems, social networking, etc,. These are large software applications and some are critical systems. Software errors in such large applications can undesirably affect the lives, livelihood and businesses of many people. Studies also reveal that software maintenance costs are far greater (about 70% of total SW life cycle cost) than software development cost. Such reliable software systems cannot be built, just by a few programmers, cooperating in an adhoc way. It needs an “engineering approach” and hence software engineering has emerged as an important discipline in software development. “Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” -- IEEE. The module will impart students a sound understanding of the concepts, methods and tools used in the core software development activities namely in – requirements, design, construction, testing and also the supporting activities of project management, quality assurance, configuration management, team management and process management. The software engineering concepts and methods part will be about 6 weeks duration.
The module includes a project component wherein the students have to work in teams and attempt to put into practice the software engineering methods learned to develop a software solution to a given problem by performing all the SDLC activities viz. requirements analysis, design, testing, coding, project management and configuration management along with doing the necessary technical documentation based on standard templates. The project component will be about 8 week duration.