The course will enable the students to
1. Obtain knowledge of software engineering discipline.
2. Learn various modeling techniques for different perspectives of object-oriented software design(UML)
3. Interpret analysis, design and testing principles for software project development.
4. Demonstrate and evaluate real time projects with respect to software engineering principles.
5. Select appropriate software design & development processes and for software development.
6. Develop skills to construct software of high quality that is reliable and reasonably easy to understand,modify and maintain
Course Learning Outcomes (CLOs):
Learning Outcome (at course level) Students will be able to: | Learning and teaching strategies | Assessment Strategies |
| Approach in teaching: Interactive Lectures, Discussion, Demonstration, Role plays
Learning activities for the students: Self-learning assignments, Effective questions, presentation, flip classroom
|
|
Software Engineering - A layered Technology, The importance of software, software myths, software engineering paradigms, Software Process Models: Linear Sequential Model, Prototyping Model, RAD Model, Evolutionary Software Process Models: Incremental Model, Spiral Model Component Assembly Model, Formal Methods, Fourth-Generation Techniques, Unified Modeling Language, Basic structures and modeling classes, Common Modeling techniques, relationships, common mechanism, class diagrams.
Analysis Concepts and Principles- the Elements of the Analysis Model Data Modifying, Functional Modeling and Information Flow and Behavior Modeling, Mechanics of Structured Analysis, Data Dictionary. Requirement analysis, tasks, analyst, software prototyping, specification principles, representation and the software requirements specification. Basic idea of behavioral modeling in UML. State diagrams, Interaction diagrams, Use case diagrams. Introduction to Open Source Software Engineering Tools: Visual Paradigm, AgroUML.
Software Project Planning- Size Estimation, Cost Estimation, Models, Static, single variable models, Static, Multivariable Models, COCOMO, The Putnam Resource Allocation Model, Risk Identification and Projection: RMMM, Project scheduling and Tracking. Object- oriented concepts and principles. Identifying the elements of an object model. Object oriented projects metrics and estimation.
Software Design Process- Design Principles, Design Concepts: Effective Modular Design, Design Heuristics, Design Documentation, Design Methods: Data Design, Architectural Design, Interface Design, Human Computer Interface Design, Procedural Design. Advanced structured modeling in UML, advanced classes and relationships, interfaces, types and roles, instances and object diagram.
Software Testing- Fundamentals, White Box Testing, Black Box Testing, software testing strategies, verification and Validation, System Testing, Unit testing, Integration testing and Debugging. Software Maintenance Maintainability – maintenance Tasks, Characteristics of a good quality software.