0% found this document useful (0 votes)
0 views8 pages

Software Engineering Notes

Uploaded by

saigudipati9000
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)
0 views8 pages

Software Engineering Notes

Uploaded by

saigudipati9000
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
You are on page 1/ 8

Software Engineering Notes

Unit 1

1. SDLC Life Cycle (Software Development Life Cycle)

SDLC is a process followed for a software project to ensure quality and correctness. It defines the

phases involved in software development, including planning, analysis, design, implementation,

testing, deployment, and maintenance. Each phase has its own deliverables and objectives, helping

manage time, cost, and quality.

Phases:

1. Requirement Gathering: Collecting needs from stakeholders.

2. Feasibility Study: Technical, operational, and financial analysis.

3. Design: System and software design based on requirements.

4. Implementation: Writing the actual code.

5. Testing: Verifying and validating the software.

6. Deployment: Delivering the software to users.

7. Maintenance: Fixing issues, updating features.

2. Software Development Process Models

These models define how to carry out the software development process.

- Waterfall Model: Sequential approach. Each phase must be completed before the next begins.

- Iterative Model: Develops system in small sections. Feedback helps refine each iteration.

- Incremental Model: Each increment adds functionality. Combines elements of waterfall and

iterative.
- RAD (Rapid Application Development): Emphasizes quick development using components and

prototypes.

- V-Model (Verification and Validation Model): Extension of waterfall. Testing phases are planned

parallel to development phases.

3. Umbrella Activities

These are supporting tasks that occur throughout the software process.

- Project tracking

- Risk management

- Software quality assurance

- Formal technical reviews

- Configuration management

- Documentation

- Reusability management

4. Agile Methodologies and Principles

Agile is an iterative and incremental model that emphasizes flexibility and customer satisfaction.

Key Principles:

- Individuals and interactions over tools.

- Working software over documentation.

- Customer collaboration over contracts.

- Responding to change over following a plan.

Popular Agile Methods:

- Scrum

- XP (Extreme Programming)
- Kanban

Unit 2

1. SRS (Software Requirement Specification)

SRS is a document that describes what the software will do and how it will perform.

Key Elements:

- Functional requirements

- Non-functional requirements

- Interface requirements

- Constraints

Importance:

- Acts as a reference for developers and testers

- Helps in cost and time estimation

- Reduces misunderstandings

2. Software Estimation

It is the process of predicting effort, time, and cost for a software project.

Techniques:

- Expert Judgment

- Analogy-based estimation

- Algorithmic models (e.g., COCOMO)

3. Software Scheduling
Scheduling is planning the timeline of project tasks.

Steps:

- Identify activities

- Estimate time for each

- Determine dependencies

- Create timelines (Gantt/PERT charts)

4. Risk Management

It involves identifying, analyzing, and responding to risks.

Steps:

1. Risk Identification

2. Risk Analysis (probability and impact)

3. Risk Planning (mitigation, avoidance)

4. Risk Monitoring

Unit 3

1. UML Diagrams and Notations

UML (Unified Modeling Language) is used for designing and visualizing object-oriented systems.

Types of UML Diagrams:

- Structural: Class, Object, Component, Deployment

- Behavioral: Use case, Sequence, Activity, State

Notations:
- Rectangle for class

- Oval for use case

- Arrow for association or message

2. Behavioral Modelling

Describes system behavior over time.

Examples:

- Use Case Diagram: Shows user interactions

- Sequence Diagram: Shows object interactions in time order

- State Diagram: Shows state changes

3. Structural Analysis

Focuses on static structure of the system.

Tools:

- Data Flow Diagrams (DFD)

- Entity Relationship Diagrams (ERD)

- Structure Charts

Unit 4

1. Design Concepts

Basic principles for good software design:

- Abstraction

- Refinement

- Modularity
- Information Hiding

- Functional Independence

- Refinement

- Architecture

2. Coupling and Cohesion

- Cohesion: Degree to which elements of a module belong together.

- High cohesion is preferred (e.g., a module with related functions).

- Coupling: Degree of dependency between modules.

- Low coupling is better (modules should be independent).

3. Transform and Transaction Mapping

These are design techniques used in structured design.

- Transform Mapping: Applied when input is transformed through a series of functions.

- Transaction Mapping: Applied when user commands trigger different paths.

Unit 5

1. Top-down and Bottom-up Approaches

- Top-down: Starts from the main system and breaks it into sub-systems.

- Easy to understand.

- Bottom-up: Starts from basic modules and integrates upward.

- Promotes reusability.

2. Black Box Testing and Its Types

Testing without knowledge of internal code.


Types:

- Equivalence Partitioning

- Boundary Value Analysis

- Decision Table Testing

- State Transition Testing

- Use Case Testing

3. White Box Testing and Its Types

Testing with knowledge of internal structure.

Types:

- Unit Testing

- Branch Coverage

- Statement Coverage

- Path Coverage

- Loop Testing

4. Cyclomatic Complexity

It measures the complexity of a program using control flow graph.

Formula:

V(G) = E - N + 2P

Where:

- E = Number of edges

- N = Number of nodes

- P = Number of exit points (usually 1)


Example:

If a program has 10 edges, 8 nodes, and 1 exit point, then:

V(G) = 10 - 8 + 2 = 4

Higher complexity means more test cases are needed.

You might also like