Software Engineering Principles

Paper Code: 
MCA 325
Credits: 
04
Periods/week: 
04
Max. Marks: 
100.00
Objective: 
  • To help students to develop skills that will enable them to construct software of high quality, software that is reliable and that is reasonably easy to understand, modify and maintain.
  • To learn various modeling techniques to model different perspectives of object-oriented software design (UML).
13.00
Unit I: 
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.

13.00
Unit II: 
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.

12.00
Unit III: 
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.

12.00
Unit IV: 
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.

10.00
Unit V: 
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.

ESSENTIAL READINGS: 
  • Roger S Pressman, Bruce R Maxim, “Software Engineering: A Practitioner’s Approach”, 7th edition, Tata McGraw Hill, 2014.
  • Ian Sommerville, “Software engineering”, 9th edition, Addison Wesley Longman, 2014.
  • James Rumbaugh. Micheal Blaha, “Object oriented Modeling and Design with UML”, 2nd Edition, 2004.
REFERENCES: 
  • Ali Behforooz, Frederick J. Hudson, “Software Engineering Fundamentals”, 2nd edition, Oxford University Press,2003.
  • Charles Ritcher, “Designing Flexible Object Oriented systems with UML”, Tech Media, 2008.
  • Grady Booch, James Rumbaugh, Ivar Jacobson., “The Unified Modeling Language User Guide”, 2004.
Academic Year: