Software Engineering & Architecture

Paper Code: 
CSC 144A
Credits: 
04
Periods/week: 
03
Max. Marks: 
100.00
Objective: 

This course will enable students:

1. To comprehend different techniques of Software Engineering and Quality management.

2.  To identify the role of Software Architecture in Software Engineering.

 

Course Outcomes: 

 

Topics

Teaching Hours

I

Foundations of Software Engineering

Software Development Life Cycle (SDLC): Waterfall, Incremental, Spiral, V-Model, Agile.

Requirement Engineering & Analysis: Requirement gathering, Functional & Non-functional requirements, Formal Specification, Use Cases.

Software Design Principles: Cohesion & Coupling, Software Modularity, Design Patterns.

Function & Object-Oriented Design: Structured Design, UML Diagrams (Class, Use Case, Sequence, Activity, State), Component-Based Software Engineering (CBSE).

12

II

Web Engineering, Software Maintenance & Security Engineering

Web Engineering: Attributes of Web-Based Systems, Web Application Architecture, Web Engineering Process.

Software Re-engineering & Maintenance: Reverse Engineering, Code Refactoring, Software Process Models for Maintenance.

Security Engineering: Security Concepts, Risk Management, Secure Software Development Lifecycle (SSDLC), Secure Coding Practices, OWASP Top 10, AI for Cybersecurity.

 

12

III

Emerging Technologies & Modern Software Development

Service-Oriented Software Engineering: Software as a Service (SaaS), Micro services Architecture, API-Driven Development.

Aspect-Oriented Software Development: Separation of Concerns, Aspects, Join Points & Point Cuts.

 Agile Methods & DevOps: Lean Software Development, CI/CD Pipelines, Infrastructure as Code (IaC), DevOps Practices

12

IV

Software Testing Strategies: Verification & Validation, Test Strategies (Conventional Software Testing, Object-Oriented Testing and Web Application Testing), Validation & System Testing (Alpha & Beta Testing), Recovery, Security, Stress, Performance, and Deployment Testing, Debugging Strategies & Process.

Software Quality Assurance (SQA): Elements of SQA (Tasks, Goals, and Metrics), Formal Approaches to SQA, Six Sigma for Software Engineering, Software Reliability & Safety.

Software Quality Management: Definition of Quality in Software, Garvin’s Quality Dimensions, McCall’s & ISO 9126 Quality Factors, Software Quality Dilemma.

 

 

 

 

12

V

Introduction to Software Architecture:  Architecture in the Software Development Life Cycle, Future of software architecture, the role of Software Architecture and Architects in Software Engineering

Elements of Software Architecture: Components, Connectors, Data.

Creating Architecture: Understanding Quality Attributes, Achieving qualities, creating the architecture, Case Study.

 

 

12

 

REFERENCES: 

Books recommended:

1.         Ian Sommerville, "Software Engineering", Pearson, 10th Edition.

2.       Roger S. Pressman, "Software Engineering: A Practitioner’s Approach", McGraw Hill.

3.      Pankaj Jalote,” An Integrated Approach to Software engineering”, Narosa Publication, Third Edition.

4.       Mary Shaw, David Garlan,” Software Architecture – Perspectives on an emerging discipline”, PHI.

5.       Len Bass, Paul Clements, Rick Kazman,” Software Architecture in Practice”, Pearson Education.

6.      C.Easteal and G.Davies,” Software Engineering Analysis and Design”, Tata McGraw Hill, 6th Edition.

7.      Richard Fairley,” Software Engineering Concepts”, Tata McGraw Hill.

 

Academic Year: