MCA-513 - bbdnitm

62 downloads 1254 Views 253KB Size Report
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