Here, The Course Note and syllabus of Software Engineering at the 4th semester of the Diploma in Computer Engineering/IT CTEVT.
Software Engineering
EG 2202 CT
Total: 8 hours/week
Year: II Lecture: 4 hours/week Semester: II Tutorial: 1 hour/week
Practical: 3 hours/week Course
Course Contents:
Unit 1. | Introduction to system analysis and design 1.1 A modern approach to systems analysis and design 1.2 System development role and responsibilities 1.3 Types of Information systems and systems development | [8] | |
| 1.4 Developing Information systems and the system development life cycle | | |
Unit 2. | Introduction to software engineering | [5] | |
2.1 | Software Engineering Fundamental • General definition • Program versus software • Software process • Software characteristics • Software applications | ||
| 2.2 | Some terminologies: • Deliverables and milestones • Product and process • Measures, metrics and measurement • Software process and product metrics • Generic and customized software product | |
| 2.3 | Roles of management in software development | |
•People, product, process and project
Unit 3. | Software Development Life Cycles Models: 3.1 Build and fix model 3.2 The waterfall model 3.3 Prototyping model 3.4 Iterative enhancement model 3.5 Spiral model 3.6 Rapid application development model (RAD) 3.7 Selection criteria of a lifecycle model | [6] |
Unit 4. | Software Project Management: 4.1 Responsibilities of software project Manager 4.2 Project planning 4.3 Metrics for project size estimation 4.4 Empirical Estimation technique 4.5 COCOMO-A heuristic estimation technique 4.6 Scheduling 4.7 Organization and team structure 4.8 Staffing 4.9 Risk Management 4.10 Software Configuration Management | [6] |
Unit 5. | Software Requirement Analysis & Specification: 5.1 Requirement engineering 5.2 Requirement elicitation • Interviews • Brainstorming series • Use case approach 5.3 Requirement analysis • Data flow diagram • Data dictionary • Entity-Relationship diagram • Software prototyping 5.4 Requirement documentation • Nature of SRS • Characteristics of a good SRS • Organization of SRS | [8] |
Unit 6. | Software Design: 6.1 Design concepts, importance, and objectives 6.2 Modularity • Cohesion • Coupling • Relation between cohesion and coupling 6.3 Strategy of design • Bottom-up approach • Top-down approach • Hybrid approach | [6] |
| 6.4 Function oriented design 6.5 IEEE recommended practices for software design 6.6 Object-oriented design | | |
Unit 7. | Software Metrics: 7.1 Software metrics: what & why? 7.2 Token count 7.3 Data structure metrics 7.4 Information flow metrics 7.5 Metrics analysis | [5] | |
Unit 8. | Software Reliability: 8.1 Basic Concepts 8.2 Software quality 8.3 Software reliability model 8.4 Capability maturity model (CMM) | [5] | |
Unit 9. | Software Testing: | [6] | |
9.1 | Testing process | ||
| 9.2 | Some important terminologies | |
| 9.3 | Functional testing • Boundary value analysis • Equivalence class testing • Decision table-based testing • Special value testing | |
| 9.4 | Structural testing • Path testing • Cyclomatic complexity • Graph metrics • Data flow testing • Mutation testing | |
| 9.5 | Levels of testing | |
| 9.6 | Debugging techniques, tools and approaches | |
| 9.7 | Testing tools | |
Unit 10. | Software Maintenance: 10.1 Introduction 10.2 Maintenance process 10.3 Maintenance model 10.4 Estimation of maintenance costs 10.5 Regression testing 10.6 Reverse engineering 10.7 Software Re-engineering 10.8 Configuration management 10.9 Documentation | [5] |
Practical: [45]
The practical should contain all features mentioned above.