0% found this document useful (0 votes)
39 views3 pages

Software Engineering Notes Part1

The document outlines key concepts in software engineering, including the Laws of Software Evolution, which emphasize the necessity of continuous adaptation and maintenance of software systems. It introduces the W2H5 framework for understanding project requirements and the FURPS model for classifying software quality attributes. Additionally, it discusses the phases of Requirements Engineering and the methodology of White Box Testing, highlighting its advantages and challenges.

Uploaded by

zaidzaman52
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)
39 views3 pages

Software Engineering Notes Part1

The document outlines key concepts in software engineering, including the Laws of Software Evolution, which emphasize the necessity of continuous adaptation and maintenance of software systems. It introduces the W2H5 framework for understanding project requirements and the FURPS model for classifying software quality attributes. Additionally, it discusses the phases of Requirements Engineering and the methodology of White Box Testing, highlighting its advantages and challenges.

Uploaded by

zaidzaman52
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 Concepts

Laws of Software Evolution

The Laws of Software Evolution were proposed by Lehman and Belady. These laws describe how software

systems evolve over time and emphasize that software must adapt or risk becoming obsolete.

1. **Continuing Change** - Software must continuously evolve to remain useful.

2. **Increasing Complexity** - Software becomes more complex unless work is done to reduce it.

3. **Self-Regulation** - Evolution processes are self-regulating with predictable trends.

4. **Conservation of Stability** - Over time, the global activity rate in evolving software remains constant.

5. **Conservation of Familiarity** - Developers must limit the rate of system growth to maintain user

familiarity.

6. **Continuing Growth** - To remain useful, software must be enhanced with new functionality.

7. **Declining Quality** - Without maintenance, software quality degrades over time.

8. **Feedback System** - Software evolution is multi-level, multi-loop, and feedback-driven.

These laws help guide long-term software maintenance and planning.

W2H5 Framework

W2H5 is a structured framework for understanding all aspects of a situation or system in software

engineering.

- **What?** - What is the problem, task, or requirement?

- **Why?** - Why is it needed or important?

- **Who?** - Who are the stakeholders or users?

- **When?** - When should it be implemented?

- **Where?** - Where will it be used or deployed?

- **Which?** - Which components or tools are involved?

- **How?** - How will it be carried out?


Software Engineering Concepts

This framework is especially helpful in requirements gathering and project planning.

FURPS Model

FURPS is a model used to classify software quality attributes into functional and non-functional requirements.

- **F - Functionality**: Features, capabilities, and security.

- **U - Usability**: User interface, ease of use, and user support.

- **R - Reliability**: Uptime, recoverability, and accuracy.

- **P - Performance**: Speed, efficiency, and resource usage.

- **S - Supportability**: Maintenance, extensibility, and compatibility.

It ensures all quality aspects of a software system are covered.

Requirements Engineering

Requirements Engineering (RE) is the process of discovering, analyzing, specifying, validating, and

managing software requirements.

**Phases:**

1. **Elicitation**: Collecting needs via interviews, workshops, etc.

2. **Analysis**: Resolving conflicts and checking feasibility.

3. **Specification**: Documenting in an SRS (Software Requirements Specification).

4. **Validation**: Ensuring requirements match user needs.

5. **Management**: Tracking changes and maintaining traceability.

**Types of Requirements:**

- Functional: Specific behaviors or functions.


Software Engineering Concepts

- Non-functional: Performance, usability, etc.

- Domain: Constraints specific to the application area.

A well-executed RE process improves software quality and user satisfaction.

White Box Testing

White Box Testing involves testing internal structures or workings of an application, rather than its

functionality.

**Key Techniques:**

- Statement Coverage

- Branch Coverage

- Path Coverage

- Condition Coverage

- Loop Testing

**Pros:**

- Thorough testing of internal logic

- Detects hidden code-level bugs

**Cons:**

- Requires code knowledge

- Time-consuming

Typically performed by developers to verify correctness of logic and paths in the code.

You might also like