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

Reference Notes

The document outlines the principles, components, and characteristics of Software Engineering, emphasizing a structured approach to development that ensures quality and efficiency. Key principles include modularity and maintainability, while components are defined by criteria such as reusability and independent deployment. Additionally, it highlights that software is custom-built, flexible, and does not wear out like hardware.

Uploaded by

newmovies1638
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)
2 views3 pages

Reference Notes

The document outlines the principles, components, and characteristics of Software Engineering, emphasizing a structured approach to development that ensures quality and efficiency. Key principles include modularity and maintainability, while components are defined by criteria such as reusability and independent deployment. Additionally, it highlights that software is custom-built, flexible, and does not wear out like hardware.

Uploaded by

newmovies1638
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/ 3

Unit1: Chapter1

1.​ Explain the principle of Software Engineering.


The principles of Software Engineering emphasize a structured approach to software
development, focusing on systematic design, development, and maintenance to ensure
quality and efficiency. Key principles include modularity, scalability, and maintainability,
ensuring that software is reliable, adaptable, and able to meet evolving user needs.

This diagram illustrates the relationship between principles, techniques, methodologies,


and tools.

a)​ principles, which are fundamental beliefs or guidelines that underlie a particular
field or approach.
b)​ methods and techniques, which are specific ways of doing things that are based
on those principles.
c)​ methodologies, which are frameworks or structures that guide the application of
methods and techniques.
d)​ tools, which are specific instruments, software, or other resources used to carry
out the techniques and methodologies.
2.​ Explain the components of Software Engineering.
The definition of a software component, as outlined by Clemens Szyperski and David
Messerschmitt, emphasizes the following five criteria:

1. Multiple-use: The software component should be designed for use in different systems
or contexts, supporting reusability and reducing the need to develop similar functionality
repeatedly.

2. Non-context-specific: The component should not be tightly coupled with any particular
application or system, allowing it to be used in various environments without
modification.

3. Composable with other components: The component should be able to be combined


with other components to form larger systems, ensuring modularity and flexibility in
system design.

4. Encapsulated: The internal workings of the component should be hidden from external
entities, exposing only the necessary interfaces for interaction. This ensures that users
of the component do not need to understand its internal implementation.

5. A unit of independent deployment and versioning: The component should be


deployable independently, meaning it can be updated, maintained, and versioned
without impacting other components or parts of the system. This criterion supports
modular development and reduces dependency-related issues.

These five criteria define a software component as a flexible, reusable, and


independently maintainable unit that can be integrated into different systems while
maintaining separation of concerns and modularity.

3.​ Explain the characteristics of software engineering.

The key characteristics of software are as follows:

1.​ Most software is custom-built, rather than assembled from existing


components: While most software is still custom-built, recent trends have moved toward
component-based development. Modern reusable components now encapsulate both
data and the processing required to manipulate that data, allowing software engineers to
build new applications by reusing parts. For example, graphical user interfaces (GUIs)
today are often constructed using reusable components such as windows, menus, and
interaction mechanisms, with all the necessary data structures and processing details
included in libraries for interface construction.
2.​ Software is developed or engineered; it is not manufactured in the classical
sense: Although there are similarities between software development and hardware
manufacturing, the two activities are fundamentally different. Both require good design to
achieve high quality, but manufacturing for hardware can introduce quality issues that
are absent in software. While both fields rely on human effort, the relationship between
the people involved and the work produced is distinct. Software projects primarily incur
costs in the engineering phase, meaning they cannot be managed like manufacturing
projects.
3.​ Software is flexible: One of the defining features of software is its flexibility. It
can be developed to perform almost any task, which is often a significant advantage
when needing to accommodate change. Reuse of components from libraries helps
reduce development effort. Today, not only algorithms but also data structures are
reused, improving efficiency and flexibility.
4.​ Software doesn’t wear out: Unlike hardware, software does not experience
wear-out. The "bath-tub curve," commonly used in reliability studies for hardware, shows
that hardware failure rates typically follow three phases: a high failure rate during the
initial burn-in phase, a stable period during the useful life phase, and an increase in
failure rates during the wear-out phase. Software, however, does not degrade in this
manner, as it is not subject to physical wear and tear. While software may require
updates or maintenance, it does not "wear out" like hardware.

You might also like