Course Catalogue

Module Code and Title:       CSC205          Software Engineering         

Programme:                          BCA

Credit Value:                         12

Module Tutor:                       Vijay Gurung

General Objective: This module introduces the basics of software modelling, including requirements specification, analysis and design. The module help student to describe a system and understand the tasks involved in designing a system. The module presents a systematic approach to software testing, in context of the software life cycle and as a branch of software engineering, building on students' prior knowledge of software engineering. 

Learning Outcomes – On completion of the module, learners will be able to:

  1. Prepare a formal specification for a software system.
  2. Identify components of a software design that can be targeted for reuse.
  3. Execute project management activities including planning, scheduling, and risk assessment/management.
  4. Prepare a formal test case for a software testing.
  5. Use tools to create system design diagrams.
  6. Design a class diagram using the UML concept.
  7. Apply software quality assurance principles and practices in a small-scale project.
  8. Describe the technique of rapid software development.

Learning and Teaching Approach:

Approach

Hours per week

Total credit hours

Lecture & discussions

3

45

Lab Practical

2

30

Independent study

3

45

Total

120

 

Assessment Approach:

A. Mini-Project: Portion of the Final Mark: 40%

Students work in groups to complete full sample projects, relatively simple and small in scale but incorporating all elements of the software development life cycle. During this assessment, students should learn and practice various tools and methods for software project development. The assessment is categorized in different phases:

  1. Requirement gathering and analysis: (10%) Business requirements are gathered in this   This phase is the main focus in meetings with managers, stake holders and users are held in order to determine the requirements like; who is going to use the system? How will they use the system? What data should be input into the system? What data should be output by the system? Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model. Students need to submit the report of 1500-2000 words.

Activities: Software Requirement Specification (SRS) Gathering Requirement and Preparing

  1. Design: (10%)In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model.

Activities: Creating system design using tools such as DFD diagram and wireframes.

  1. Implementation / Coding: (5%) On receiving system design documents, the work is divided in modules/units and actual coding is started. Since, in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.

Activities: Sample coding has to be written.

  1. Testing: (5%) after the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.

Activities: creating a test case document to test the code developed.

  1. Deployment: (5%) after successful testing the product is delivered / deployed to the customer for their use.

Activities: Students need to present the project in form of demo.

  1. Maintenance: (5%) Once the developed system is deployed, then actual real-world problems may arise and need to be solved from time to time. This process where support is provided for the developed product is known as maintenance.

Activities: Student need to maintain the change management system and integrate the changes mentioned in the demo session.

B. Midterm Exam: Portion of the Final Mark: 20%

This a college wide examination conducted at the half-way into the semester. This examination is conducted for 1 hour and 30 Minutes and it includes all topics till the half-way point in the subject matter.

 

Areas of assignments

Quantity

Weighting

A. Mini Project

1

40%

B. Midterm Exam

1

20%

Total Continuous Assessment (CA)

 

60%

Semester-end Examination (SE)

 

40%

 

Prerequisites: CAP102, CAP203, CPR202

Subject Matter:

  1. Introduction to Software Engineering
    • Software Engineering Discipline
    • Evolution and Impact
    • Programs Vs Software Products
    • Emergence of Software Engineering
    • Changes in Software Development Practices
    • Computer Systems Engineering
  2. Software Life Cycle Models
    • Use of a Life Cycle Models
    • Classical Waterfall Model- Iterative Waterfall Model – Prototyping Model – Evolutionary Model – Spiral Model
    • Rapid Programming
      • Introduction to Rapid Programming
      • Characteristics of RAD processes
      • Pros & Cons of Rapid Application Development
    • Extreme Programming
      • Introduction to Extreme Programming (XP)
      • Extreme Programming Practices
      • Extreme Programming Scenarios
      • Testing in Extreme Programming
    • Pair Programming
      • Introduction to Pair Programming
      • Pair Programming, Rights and Responsibilities
      • Aspect of Pair Programming
  1. Planning a Software Project
    • Definitions - Size Factors, Quality and Productivity Factors
    • Managerial Issues
    • Planning a Software Project
    • Defining the Problem
    • Goals and Requirements
    • Solution Strategy
    • Planning the Development Process
    • Various Model
    • Planning an Organizational
    • Structure - Planning Activities
  2. Requirements Analysis and Specification
    • Requirements Gathering and Analysis
    • Software Requirements Specification (SRS)
    • Formal System Development Techniques
    • Requirement Analysis Model Overview
      • Aims of Analysis Model
      • Describing Analysis Pattern
      • Producing and analysis model
      • Analysis Model input/output
  1. Design Phase:
    • Detailed Design
    • Design Overview
    • Software Design: Characteristics of a Good Software Design
    • Cohesion and Coupling
    • Neat Arrangement
    • Software Design Approaches
    • Structured Analysis
    • Data Flow Diagrams (DFDs)
    • Design Concepts
      • Abstraction
      • Refinement
      • Modularity
      • Information Hiding
      • Software Architecture
  1. Function-Oriented Software Design:
    • Overview of SA/SD Methodology
    • Structured Design
    • Object-Oriented Vs Function
    • Oriented Design
  2. Object Modelling Using UML:
    • Overview of Object-Oriented Concepts
    • UML
    • Diagrams – Use Case Model – Class Diagrams – Interaction Diagrams – Activity Diagrams – State Chart Diagram
    • Object-Oriented Software Development
    • Design Patterns
    • Generalized OOAD Process
  3. User Interface Design:
    • Characteristics of a User Interface
    • Basic Concepts
    • Types of User
    • Interfaces Component
    • Based GUI Development
    • User Interface Design Methodology
  4. Software cost estimation
    • Introduction - Software Cost Factors
    • Software Cost Estimation Techniques
    • Stating Level estimation
    • Estimating Software
    • Maintenance Costs Software Requirements Definition
    • Software Requirements Specification
    • Specification Techniques
    • Languages and Processors for Requirements
  5. Testing Fundamentals:
    • Objectives, Principles, Testability, Test Case Design
    • White Box & Black Box testing
    • Testing Strategies
    • Verification & Validation, Unit Testing, Integration Testing, Validation Testing, System Testing
  6. Software Quality Assurance
    • Elements of Software Quality Assurance
    • SQA Task, Goals and Metrics
    • The SQA Plan
    • Statistical Software Quality Assurance
      • A Generic Example
      • Six Sigma for Software Engineering
    • The ISO 9000 Quality Standard
    • Software Reliability
      • Measures of Reliability and Availability
      • Software Safety
  1. Practical Components
    • Creation of Software requirement Specification
    • Creating of documents like Test Plan, Test Case, Reporting Bugs and Test Strategies
    • Creation of documents to manage a project including planning, scheduling and risk assessment/management
    • Object Modelling Using UML
    • Software to be used:
      • WinRunner and QTP
      • Agro UML
      • Office Packages

Reading List:

  1. Essential Reading
    • Beizer, B. (2006). Software Testing Techniques. 2nd Ed. Wiley India limited.
    • Pressman, R.S. (2005). Software Engineering. McGraw-Hill, Delhi Iyar J.
    • Favre, Liliana. (2003).UML and the unified process. IRM Press
    • Rod Stephens. 2015).Beginning Software Engineering
  2. Additional Reading
    • Siau, Keng, and T. A. Halpin. (2001). Unified modelling language systems analysis, design and development. Idea Group Pub.
    • Barnes, Joshua. (2007). Implementing the IBM rational unified process and solutions a guide to improving your software development capability and maturity. IBM Press
    • Steve McConnell. (2004). Code Complete: A Practical Handbook of Software Construction

 

Date: May 30, 2015