CS1504 - Software Engg.
CS1504 - Software Engg.
Course Objective:
To introduce the concepts of software engineering for software development, design and implementation.
Prerequisite
Students must have the knowledge of basic concepts of Data Structures and Operating Systems.
Course Material
Lecture notes discussed in the classes
Notes/Papers (circulated in the class)
Recommended Textbooks
o Rajib Mall, Fundamentals of Software Engineering, Prentice Hall India.
o Pankaj Jalote, An Integrated Approach to Software Engineering, Narosa Publishing House.
Reference Books
o Pressman, R. S. and Lowe, D., “Software Engineering: A Practitioner’s Approach”, Tata
McGraw-Hill.
o M K Lal, “Knowledge Driven Development, Cambridge Press
o Sommerville, I., “Software Engineering”, 9th Ed., Pearson.
Evaluation Scheme
Mid Sem exam 30%
Assignments / Quiz / Performance / Attendance 30%
End Sem Exam 40%
Details of Course
Sl. Contents Contact
No. Hours
1. Introduction to Software and Software Engineering – Software Crisis, Software 3
classification, Evolution of software engineering methodologies, Software engineering
challenges, Software engineering principles.
2. Software Processes – Software process model, Elements of software process, 3
Characteristics of software process, Process classification, Software development process
models.
3. Software Project Management – Project management essentials, project management team, 4
Project life cycle, Project management process, Software configuration management, Risk
management.
4. Project Planning and Estimation – Project planning activities, Software metrics and
measurements, Project size estimation, Effort and cost estimation techniques/models, 4
Staffing and Personnel planning, Project scheduling and milestones.
5. Software requirement analysis and specifications – Software requirements applicability to
small, medium, and large-scale systems, Requirements analysis, Structured analysis, Data-
oriented analysis, Object- oriented analysis, Prototyping analysis, Requirement 6
specification, Formal requirements specification and verification, Requirements validation,
Requirements management.
6. Software Design – Software design process, design principles, technical design, objectives
of design, design metrics, modularity, module coupling and cohesion, relation between 6
cohesion and coupling; Design strategies: Bottom up design, top down design, hybrid
design, function oriented design, Design verification.
7. Object-Oriented Design using UML – Object oriented analysis and design, Unified
Modeling Language (UML), UML building blocks, UML diagrams, Object oriented 4
analysis and design process.
8. Coding – Coding principles, Coding styles, coding errors, coding process, Code 3
verification, Code documentation.
9. Software Testing – Testing fundamentals, Test planning, Black-box testing and White-box
testing, Levels of testing – Unit testing, Integration testing, System testing and Acceptance 4
testing, Regression testing, Debugging approaches.
10. Software Quality and Reliability – Software quality concepts, Verification and Validation,
The cost of Quality, Software Quality Assurance, Best practices of software engineering, 3
Software Reliability metrics, Reliability growth models.
11. Software Maintenance, Software Reuse and CASE tools. 2
Total 42