0% found this document useful (0 votes)
25 views2 pages

Software Engineering Course Overview

The document outlines the course structure for Software Engineering (CS202), including objectives, outcomes, and detailed unit topics. Key areas of focus include software development processes, requirement analysis, design, testing, and maintenance. The course aims to equip students with knowledge and skills to design, develop, and maintain large-scale software systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views2 pages

Software Engineering Course Overview

The document outlines the course structure for Software Engineering (CS202), including objectives, outcomes, and detailed unit topics. Key areas of focus include software development processes, requirement analysis, design, testing, and maintenance. The course aims to equip students with knowledge and skills to design, develop, and maintain large-scale software systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

SOFTWARE ENGINEERING

Course Code: CS202 Course Credits: 3


Course Category: CC Course (U / P) U
Course Year (U / P): 2U Course Semester (U / P): 4U
No. of Lectures + Tutorials 03 + 00 Mid Sem. Exam Hours: 1.5
(Hrs/Week):
Total No. of Lectures (L + T): 45 + 00 End Sem. Exam Hours: 3
COURSE OBJECTIVES
1. Knowledge of basic SW engineering methods and practices and applications.
2. A general understanding of software process models.
3. Understanding of software requirements and the SRS documents.
4. Understanding of the software design process.
5. Understanding of software coding, testing, and maintenance.
COURSE OUTCOMES
At the end of the course, the students should be able to:
1. Basic knowledge and understanding of the analysis and design of complex systems.
2. Ability to apply software engineering principles and techniques.
3. Ability to design, develop, maintain, and evaluate large-scale software systems.
4. To produce efficient, reliable, robust, and cost-effective software solutions.
5. Ability to perform independent research and analysis.

UNIT I SOFTWARE ENGINEERING


Introduction to software engineering: definitions, role of software engineering, planning a software project,
defining the problem, developing a solution strategy, planning the development process, software engineering
process paradigms, principles of software engineering, software engineering activities, Software Development
Life Cycle (SDLC) Models: Water Fall Model, Prototype Model, Spiral Model, Evolutionary Development
Models, Iterative Enhancement Models, Agile Model, Scrum Model.

UNIT II REQUIREMENT ANALYSIS AND DESIGN


Software Requirement Specification (SRS): Introduction, need of SRS, significance, characteristics of SRS,
Structure of SRS, IEEE standards for SRS design, functional and non-functional requirements, Requirement
gathering and analysis, requirement engineering and management, Decision Tables. Software Quality
Assurance (SQA): Verification and Validation, SQA Plans, Software Quality Frameworks, ISO 9000 Models,
SEI-CMM Model.
UNIT III SOFTWARE DESIGN PROCESS
Software Design: Introduction, design process activities: architectural design, Abstract specification,
Interface design, component design, data structure design, algorithm design modular approach, top-down
design, bottom-up design, design methods: data-flow model: data flow diagram, entity relation-attribute
model: E-R diagram, structural model: structure charts, context diagrams, object models: use case modeling,
use case diagrams, sequence diagrams, cohesion, and coupling. Software Measurement and Metrics: Various
Size Oriented Measures: Halestead’s Software Science, Function Point (FP) Based Measures, Cyclomatic
Complexity Measures: Control Flow Graphs.

UNIT IV SOFTWARE TESTING

Testing Objectives, Unit Testing, Integration Testing, 8 Acceptance Testing, Regression Testing, Testing for
Functionality and Testing for Performance, Top-Down and Bottom-Up Testing Strategies: Test Drivers and
Test Stubs, Structural Testing (White Box Testing), Functional Testing (Black Box Testing), Test Data Suit
Preparation, Alpha and Beta Testing of Products. Static Testing Strategies: Formal Technical Reviews (Peer
Reviews), Walk Through, Code Inspection, Compliance with Design and Coding Standards.
UNIT V SOFTWARE MAINTENANCE
Need for Maintenance, Categories of Maintenance: Preventive, Corrective and Perfective Maintenance, Cost
of Maintenance, Software Re-Engineering, Reverse Engineering. Software Configuration Management
Activities, An Overview of CASE Tools, Constructive Cost Models (COCOMO), Software Risk Analysis
and Management. problem resolution, software maintenance from customers perspective, maintenance
standard: IEEE-1219, ISO-12207,
Text Books:

1. Pankaj Jalote, An Integrated Approach to Software Engineering, Narosa Publishing House, New Delhi
1997.
2. Ian Sommerville, Software Engineering, Pearson Education, 2009.
3. Pressman Roger S., Software Engineering: Practitioner's Approach, McGraw-Hill Inc., 2004.
4. Software Engineering: Software Reliability, Testing and Quality Assurance, Nasib S. Gill, Khanna
Book Publishing Co (P) Ltd., New Delhi, 2002.

Common questions

Powered by AI

Preventive maintenance involves activities aimed at anticipating potential software faults and mitigating them before they occur, focusing on improving software reliability and performance. In contrast, corrective maintenance addresses faults and defects after they are detected, aiming to restore software functionality .

A well-defined SRS should be clear, complete, consistent, and verifiable, providing a detailed description of both functional and non-functional requirements. It should adhere to the IEEE standards for structure, ensuring comprehensive coverage of system objectives, constraints, and interfaces .

Cohesion refers to the degree to which elements within a module belong together, whereas coupling indicates the degree of interdependence among modules. High cohesion within modules and low coupling between modules often lead to a better-structured design that is easier to understand, test, and maintain, as it minimizes the impact of changes in one module on others .

Regression testing is essential as it ensures that new changes or enhancements do not adversely affect existing functionalities. Unlike unit or integration testing, which focuses on specific components or interfaces respectively, regression testing re-validates the system as a whole after changes, thus affirming overall system integrity and stability .

ISO 9000 Models and SEI-CMM frameworks provide structured approaches to process improvements and quality management. They enhance software project outcomes by enabling efficient verification and validation processes, thus ensuring compliance with industry standards and improving product reliability and customer satisfaction .

COCOMO models play a critical role in software project planning by providing an empirical method for estimating the cost, effort, and schedule of a software project. They factor in project size, complexity, team experience, and resource availability to generate realistic and reliable estimates, guiding resource allocation and risk management .

Static testing involves examining code and documentation without execution, helping to identify defects early and reduce development costs through reviews and inspections. Dynamic testing, which involves executing the software with test cases, helps validate the code's functionality against requirements. Using both strategies ensures comprehensive coverage, improving software quality through early defect detection and functional validation .

Software Configuration Management includes activities such as version control, change management, and status accounting. These activities ensure all changes are systematically managed and tracked, preserving the integrity and traceability of project artifacts. Effective SCM avoids conflicts and ensures consistency across project components, contributing greatly to project success .

Reverse engineering focuses on analyzing and understanding existing software to extract design and specification information, often to recreate lost documentation or facilitate maintenance. Software re-engineering, however, involves both the analysis and restructuring or rewriting of software to improve its functionality, performance, or maintainability, often leveraging reverse engineering insights .

The Waterfall model is a linear sequential approach where each phase must be completed before the next begins, emphasizing thorough documentation and planning . In contrast, the Agile model promotes iterative development, where requirements and solutions evolve through collaboration among cross-functional teams, allowing for more flexibility and adaptability in managing changes .

You might also like