Software Engineering is a systematic approach needed to develop methods and
... T1 Roger S. Pressman, “Software Engineering A Practitioner's Approach”, ...
Babu Banarasi Das National Institute of Technology and Management Department of Computer Applications Course Outline & Lecture Delivery Schedule Masters of Computer Applications (MCA) NEW Syllabus (Affiliated to G. B. Technical University, Lucknow.) V Semester MCA-513: Software Engineering
A. Introduction Software Engineering is a systematic approach needed to develop methods and procedures for software development, operation, maintenance of software, so that consistently high quality software at low cost could be developed. In essence, the goal of Software Engineering is to take software development closer to science and engineering and away from ad-hoc approaches for development whose outcomes are unpredictable but have been used heavily in the past and still continue to be used for developing software.
B. Objective The objectives of this course are: To provide a good understanding of the concepts of Software development. To provide an opportunity to use basic concepts to solve real world problems. To provide an opportunity to apply the concepts learned through the various procedures, techniques and methodologies implemented during software development life cycle. C. Students Performance Evaluation Scheme: External Semester Examination Internal Performance Assessment 3 Sessional Tests Attendance Teacher Assessment Based on Assignments, Seminars, Group Discusions & Class Participation D. Reading:
: : : : :
100 Marks 50 Marks 30 Marks 10 Marks 10 Marks
I-Text: T1 Roger S. Pressman, “Software Engineering A Practitioner’s Approach”, Fourth Edition, McGraw Hill T2 Rajib Mall, “Fundamentals of Software Engineering”, PHI T3 Pankaj Jalote, “An Integrated Approach to Software Engineering”, Second Edition, Narosa Publishing House II-Reference: R1 Ghezzi, Carlo and Others, “Fundamentals of Software Enginnering”, PHI
R2 Alexis, Leon and Mathews Leon, “Fundamental of Software Engineering”, Vikas R3 Sommerville, Ian, “Software Engineering”, AWL R4 Fairly, “Software Engineering”, New Delhi: TMH E. LECTURE DELIVERY SCHEDULE:
Lecture Session No. 1
2
3
4
5
6
7
Topic (Unit I ) Introduction & SDLC Models Introduction to Software Engineering Emergence of Software Engineering Early Computer Programming High Level Language Programming Control Flow Based Design Object-Oriented Design Notable changes in Software Development Practices Software Components Software Characteristics Introduction to SDLC (Software Development Life Cycle) Phases of SDLC Software Crisis Reasons of Software Crisis Remedies Software Engineering Processes Processes, Projects & Products Component Software Processes Characteristics of Software Process Similarity & Differences from Conventional Engineering Processes Software Quality Attributes Understandability Modifiability Extensibility Maintainability Usability Software Development Life Cycle Models: Water Fall Model Iterative Water Fall Model Advantages & Disadvantages Prototype Model Advantages & Disadvantages
T1 Ch – 01 1-6 T2 Ch -01 1-5
T1 Ch – 01 7-10 T2 Ch -01 6- 12
T2 Ch -01 6- 12
T2 Ch -01 6- 12
T3 Ch -01 16- 18
T1 Ch – 01 12-18 T2 Ch -01 15-17
T2 Ch -01 18-19
8
Spiral Model Advantages & Disadvantages
T2 Ch -01 19 -20
9
Evolutionary Model, Iterative Model Advantages & Disadvantages Revision of all the Models Comparative Study of Different SDLC Models (Unit II) Software Requirement Specification (SRS)
T2 Ch -01 18
10
T2 Ch -01 20-21
11
12
13
14 15
16
17
18
19
20
21
Feasibility Analysis Economic Feasibility Legal Feasibility Technical Feasibility Alternatives Requirement Engineering Process Requirement Elicitation Requirement Analysis Review & Management of User Needs Software Requirement Specification (SRS) Characteristics of a Good SRS Organization of SRS Document IEEE Standards for SRS SRS Template Information Modeling Structured Analysis Data Flow Diagrams (DFDs) Symbols Used in DFDs Designing Rules Developing the DFD Model of a System ER Diagrams Decision Tables Decision Tree Software Quality Assurance Verification & Validation SQA Plans and their Applications Software Quality Framework ISO 9000 Models What is ISO 9000 Why get ISO 9000 How to get Requirements SEI-CMM Model Level 1 Level 2 Level 3 Level 4 Level 5 (Unit III) Software Design Software Design and Software Engineering The Design Process Evolution of Software Design Design & Software Quality Architectural Design Contributors Areas of Applications Architectural Design Process
T1 Ch – 10 253-254
T1 Ch – 22 804-807
T2 Ch – 03 63-79
T1 Ch – 22 810-816 T2 Ch – 05 89-115
T1 Ch – 12 321-326 T1 Ch – 3 65-76
T2 Ch – 09 184-188
T2 Ch – 09 188-191
T1 Ch – 13 341-350
T1 Ch – 14 371-377
22
23 24
25
26
27
28
29
30 31
32
33 34
Transform Flow Transaction Flow Low Level Design Modularization Design Structure Charts Pseudo Codes Flow Charts Coupling & Cohesion Classification of Coupling & Cohesion Design Strategies Function Oriented Design Object Oriented Design Comparison of Both Strategies Software Measurement & Metrics: Measures, Metrics and Indicators Metrics for Software Quality Halestead’s Metrics Software Measurement Size Oriented Metrics Function Oriented Metrics Extended Function Point Metrics Cyclomatic Complexity Measures Control Flow Graphs (Unit IV) Software Testing Testing Fundametal Role and Applications of Testing Software Testing Tools Program Analysis Tools Testing Process Preparation of Test Plan Test Data Preparation Preparation of Test Case Specification Test Case Execution & Analysis Unit Testing Designing Test Cases Driver and Stub Modules Integration Testing Phased Vs. Incremental Integration Testing Structural Testing Control-Flow Based Testing Mutation Testing Alpha & Beta Testing Regression Testing Acceptance Testing Performance Testing Top Down & Bottom Up Testing Strategies: Test Drivers & Test Stubs White Box & Black Box Testing
T1 Ch – 5 131-134 T2 Ch – 3
T1 Ch – 5 138-142 T1 Ch – 5 143-146
T1 Ch – 4 76-84
T1 Ch – 4 78-87
T2 Ch – 8 170-171
T3 Ch – 09 450-453
T2 Ch – 8 160-162 T2 Ch – 8 171- 173 T3 Ch – 09 419-430
T1 Ch – 10 294-300 T1 Ch – 12 361-366 T2 Ch – 08 162-168
35
36
37
38 39
40
41
42
43
44
Branch Coverage Statement Coverage Path Coverage Formal Technical Reviews T2 Ch – 08 158 Code Walk Through 159 Code Inspections Compliance with Design & Coding Standards T2 Ch – 08 156 Coding Guidelines (Unit V) Software Maintenance and Software Project Management Software as an Evolutionary Entity T1 Ch – 28 Need for Maintenance 1057-1060 Categories of Maintenance: Preventive Maintenance Corrective Maintenance Adoptive Maintenance Perfective Maintenance Software Reengineering T1 Ch – 27 761Software Reengineering Process Model 764 Reverse Engineering Reverse Engineering to Understand Processing Reverse Engineering to Understand Data Reverse Engineering User Interfaces Software Configuration Management Activities Change Control Process Software Version Control Introduction to CASE Tools Benefits of CASE CASE Support in Software Life Cycle Prototyping Support Structured Analysis and Design Code Generation Test Case Generator Cost & Effort Estimation Cost Estimation Uncertainties in Cost Estimation Building Cost Estimation Models On Size Estimation COCOMO Model – A Heuristic Estimation Technique Basic COCOMO Model Intermediate COCOMO Model Complete COCOMO Model Software Risk Management Risk Identification Risk Assessment Risk Containment
T1 Ch – 27 771
767-
T1 Ch – 09 218221 T2 Ch – 10 196-201
T2 Ch – 04 160 165
T2 Ch – 2 33 - 37
T2 Ch – 2 52 - 54