CS504 : Software Engineering - I

Course Overview

Course Synopsis

The course focuses on the development techniques for industrial level software. The intent of the course is to equip students with the concepts to help them get a strong base in software industry. In particular the course discusses initial software engineering related concepts, different development methodologies (like structured development, object-oriented development etc), Software architecture, effective coding practices and testing in broad.

Course Learning Outcomes

At the end of the course, you should be able to:

  • Extract and analyze software requirements
  • Develop some basic level of software Architecture/Design
  • Apply standard coding practices
  • Apply different testing techniques
  • Describe debugging and its effectiveness.


Course Calendar

1 Introduction to Software Engineering
2 Introduction to Software Development
3 Requirements Engineering
4 Requirements Engineering (Contd.)
5 Relationship of Several components of Software Requirements
6 Relationship of Several components of Software Requirements (contd.)
7 Source & Sink Analysis
8 State Transition Diagrams
9 Typical Processes
Assignment No. 1
10 Prototyping & GUI Design
11 Software Design (01)
12 Software Design (02)
Quiz No.1
13 Object Oriented Analysis & Design
14 Object Oriented Analysis
15 The Notation
16 Derivation of the Object Model – The Coad Methodology
GDB No.1
17 Identify Structures
18 Case Study of Connie’s Convenience Store - A point of Sale System
Quiz No.2
19 Identify Structures (Cont.)
20 Interaction Diagrams
21 Message Types
22 Software & System Architecture
23 Architectural Views
24 Architectural Models
Mid Term Exam
25 Zero Install
26 Introduction to Design Patterns
27 Observer Pattern
28 Good Programming Practices & Guidelines
29 File Handling Tips for Java & C++
30 Layout & Comments in Java and C++
31 Switch Statement
Assignment No. 2
32 Clarity through Modularity
33 Common Mistakes
34 Portability
Quiz No.3
35 Exception Handling
36 Software Verification and Validation
37 Testing Vs.Development
Quiz No.4
38 Equivalence Classes or Equivalence Partitioning
39 White Box Testing
40 Unit Testing
41 Inspection Vs Testing
42 Debugging
43 Bug Classes
44 Holistic Approach
45 Summary
Final Term Exam