0% found this document useful (0 votes)
3 views6 pages

Software Engineering Complete Notes

The document provides concise exam notes on key Software Engineering concepts, including characteristics of good software, software development life cycles, and various testing methodologies. It also covers software maintenance, configuration management, and risk analysis, along with tools and models used in the field. The notes are designed for quick revision and highlight important definitions and processes in Software Engineering.

Uploaded by

Prachi Singh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views6 pages

Software Engineering Complete Notes

The document provides concise exam notes on key Software Engineering concepts, including characteristics of good software, software development life cycles, and various testing methodologies. It also covers software maintenance, configuration management, and risk analysis, along with tools and models used in the field. The notes are designed for quick revision and highlight important definitions and processes in Software Engineering.

Uploaded by

Prachi Singh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering Complete Exam Notes

This PDF contains simplified and exam-oriented notes for important Software Engineering topics discussed in the
chat. The notes are written in an easy-to-learn style for quick revision before exams.

Characteristics of Good Software

Correctness, Reliability, Efficiency, Security, Maintainability, Portability and User Friendliness are major
characteristics of good software.

Software Engineering as Layered Technology

Software Engineering consists of layers: Quality Focus, Process, Methods and Tools. Quality is the foundation of all
software activities.

Software Crisis

Software crisis refers to problems such as late delivery, high cost, poor quality and maintenance difficulty in software
projects.

Software Development Life Cycle (SDLC)

Main phases are Requirement Analysis, Design, Coding, Testing, Deployment and Maintenance.

Waterfall Model

A linear model where one phase starts after completion of the previous phase.

Spiral Model

A risk-driven software model involving Planning, Risk Analysis, Engineering and Evaluation.

Requirement Engineering

Process of gathering, analyzing, documenting and validating user requirements.

Requirement Elicitation Techniques


Interviews, Questionnaires, Observation, Brainstorming and Prototyping are common techniques.

Feasibility Study

Checks whether a project is technically, economically, legally and operationally possible.

Types of Feasibility

Technical, Economic, Operational, Legal and Schedule feasibility.

Data Flow Diagram (DFD)

Graphical representation showing movement of data through a system.

Decision Table

A tabular representation of conditions and corresponding actions.

SEI CMM

Capability Maturity Model measures software process maturity in five levels: Initial, Repeatable, Defined, Managed
and Optimizing.

Fire Fighting State

A situation where developers continuously solve emergencies due to poor planning and weak processes.

Software Testing

Process of finding bugs and ensuring software quality and correctness.

Objectives of Testing

Finding defects, verifying requirements, improving quality, reliability and security.

White Box Testing

Testing internal code structure using techniques like statement, branch and path coverage.
Boundary Value Analysis

Testing edge values such as minimum and maximum input limits.

Integration Testing

Testing combined software modules together.

Integration Techniques

Big Bang, Top-Down, Bottom-Up and Hybrid Integration.

System Testing

Testing the complete integrated software system.

Regression Testing

Re-testing software after modifications to ensure old functionality still works.

Mutation Testing

Testing quality of test cases by introducing small changes in code.

Alpha and Beta Testing

Alpha testing is done internally while beta testing is performed by real users.

Error, Fault and Failure

Error is a human mistake, fault is a bug in code and failure is incorrect software behavior.

Code Inspection and Reviews

Inspection, FTR, Peer Review and Walkthrough help detect defects early.

Software Maintenance

Process of modifying software after delivery to fix bugs and improve performance.
Types of Maintenance

Corrective, Adaptive, Perfective and Preventive maintenance.

Software Re-engineering

Improving old software systems without changing their main functionality.

Steps in Re-engineering

Inventory Analysis, Document Restructuring, Reverse Engineering, Code/Data Restructuring and Forward
Engineering.

Software Configuration Management (SCM)

Process of controlling and tracking software changes.

SCM Tasks

Configuration Identification, Version Control, Change Control, Status Accounting and Auditing.

Version Control

Managing multiple software versions using tools like Git.

Project Risk and Technical Risk

Project risk affects budget and schedule while technical risk affects software quality and technology.

CASE Tools

Computer Aided Software Engineering tools automate software development activities.

Software Complexity Measures

Measures complexity using LOC, Halstead metrics and Cyclomatic Complexity.


Function Point

Measures software size based on functionality provided to users.

COCOMO Model

Constructive Cost Model estimates effort, cost and development time.

Person-Month

Represents the work done by one person in one month.

Software Risk Analysis and Management

Process of identifying, analyzing and controlling software project risks.


Ultra Fast Revision Sheet

• SDLC = Requirement → Design → Coding → Testing → Maintenance

• Waterfall = Linear model

• Spiral = Risk-focused model

• White Box = Test internal code

• Regression Testing = Recheck old features after changes

• Boundary Value Analysis = Test edge values

• SCM = Manage software changes

• Maintenance = Fix and improve software

• Re-engineering = Improve old software

• CASE Tools = Software helping make software

• COCOMO = Cost estimation model

• Error → Fault → Failure

You might also like