1st year     2nd year     3rd year     4th year    



B.Tech. IV (CO) Semester - 7

L

T

P

C

CO401 : SOFTWARE ENGINEERING (CS-I)

3

1

2

5

COURSE OBJECTIVES
  • Introduce the concepts and methods required for the construction of large software intensive systems.
  • To make students understand the importance of requirement analysis.
  • Enable students with detailed knowledge of techniques for the analysis and design of complex software intensive systems.
  • To make students understand steps to design and test the software.
  • To make students aware of importance of documentation.
COURSE OUTCOMES
After successful completion of this course, student will be able to
  • Understand various phases of software development lifecycle.
  • Analyze the requirements systematically and develop the model using standard tools and methodologies.
  • Apply key aspects of software engineering processes for the development of a complex software system.
  • Keep abreast of current trends in the area of software engineering.
COURSE CONTENT
  • Introduction
  • (02 Hours)

    Software Process - Software Engineering Development Life Cycle – Software Qualities - Problems with Software Production – Brooke’s No Silver Bullet

  • Software Life -Cycle Models
  • (04 Hours)

    Build-and-Fix, Waterfall, Rapid Prototyping, Incremental, Spiral, Comparison, ISO 9000 – CMM levels – Comparing ISO 9000 and CM

  • Software Requirements and Analysis
  • (06 Hours)

    Techniques - Feasibility Analysis - Requirements Elicitation – Validation - Rapid Prototyping - OO Paradigms vs. Structured Paradigm - OO Analysis  - CASE tools

  • Software Specificaiton
  • (12 Hours)

    Specification Document – Specification Qualities, Uses, Classification – Operational Behavioral – DFD,  UML, Petri nets – Descriptive Specifications – ER Diagrams, Logic , Algebraic Specs -   Comparison of various techniques and CASE tools

  • Introducation to Formal Approach
  • (06 Hours)

    Formal Specifications, Software Verification & Validation, Cleanroom  Engineering, - Formal approaches,  Model Checking – SPIN Tool for Distributed Software

  • Case Tools, ISO and Capability Maturity Model
  • (04 Hours)

    CASE Tools - Stepwise Refinement - Cost-Benefit Analysis - Scope of CASE -  Versions control – Current State of the art in Software Engineering-Current State of the art

  • Software Testing Principles
  • (06 Hours)

    Non-execution & Execution based testing – Automated Static Analysis – Test-case selection  - Black-Box and Glass-Box Testing - Testing Objects - Testing vs. Correctness Proof

  • Advanced Topics
  • (02 Hours)

  • Tutorials will be based on the coverage of the above topics separately
  • (14 Hours)

    (Total Contact Time: 42 Hours + 14 Hours = 56 Hours)

    PRACTICALS

    1. Lab assignments on Static Analysis Tools for program quality improvement
    2. Software Requirements Analysis, Design, Implementation and Testing of the mini-projects assigned in the class (to be done necessarily group-wise in groups of at least three students)
    3. Formal Software Verification using SPIN tool with Model design in PROMELA as per the assignments.

    BOOKS RECOMMENDED

    1. Ghezzi, Jazayeri, Mandrioli: "Fundamentals of Software Engineering", 2/E, Pearson Education, 2002
    2. Sommerville: "Software Engineering", 2006 ed, Pearson Education, 9/E, 2010
    3. Roger S Pressman: "Software Engineering A Practitioner's Approach, McGraw-Hill 7/E, 2010      
    4. Pankaj Jalote: "An Integrated approach to SE", Narosa, 3/E, 2005
    5. Stephen R Schach: "Software Engineering with JAVA", TMH, 1999
    6. Stephen R Schach: "Object Oriented and Classical Software Engineering", McGraw-Hill 8/E, 2010