Software Engineering Unit 1 - @Mrsandyy
Software Engineering Unit 1 - @Mrsandyy
in
Importance
Provides clarity and direction throughout project stages.
Facilitates better resource allocation and time management.
Supports risk mitigation by addressing potential challenges early in the process.
Types:
1. Corrective Maintenance: Resolves errors and defects discovered post-release.
2. Adaptive Maintenance: Adjusts software to accommodate environmental changes such
as new operating systems.
3. Perfective Maintenance: Enhances existing features and introduces new
functionalities.
4. Preventive Maintenance: Proactively identifies and resolves potential future issues.
Importance
Ensures software adapts to evolving user needs and environmental changes.
Maintains software usability, reliability, and performance over time.
Prolongs the operational lifespan of software systems.
2. Software Characteristics
2.1 Main Characteristics of Software
Software is different from hardware in several important ways. Some of the primary characteristics
of software are:
1. Intangibility:
Software is intangible, meaning it cannot be physically touched or seen. It is represented by code
that is compiled and executed.
2. Complexity:
Software systems are often large and intricate, with many components that interact with each
other. The complexity of software arises from the need to meet various user needs and external
system requirements.
3. Conformity to specifications:
Software must behave as expected according to the specifications provided by stakeholders. A
software system must meet functional, performance, and security specifications.
Unit 1 Software Engineering mrsandy.in
4. Flexibility:
Software systems can be modified and adapted to new environments or to meet new
requirements. Unlike hardware, software can be changed easily after deployment.
5. Maintainability:
Software needs to be maintained throughout its lifecycle. This includes fixing bugs, improving
performance, and adapting to new technologies.
6. Reusability:
Parts of the software (modules, functions, etc.) can be reused in different systems or applications,
reducing the need to recreate common functionalities.
3. Software Components
Software components are self-contained, modular units of software that encapsulate specific
functionality. They are designed to be reusable, interchangeable, and independent, making them
essential for building complex software systems.
3.1 Major Components of Software
Software is typically composed of several key components, which include:
1. Functional Components:
These components define the functionality of the software and consist of the core logic or
algorithms that carry out the tasks required by users.
2. Non-Functional Components:
These are the supporting aspects of software, including:
Performance: How fast the software operates.
Security: Protection of data and systems.
Scalability: Ability to handle increased workloads.
Usability: How easy the software is to use.
3. User Interface (UI):
Unit 1 Software Engineering mrsandy.in
The part of the software that interacts with the user. A good UI ensures that users can easily
perform tasks and access the software's functionalities.
4. Data Storage:
The software typically requires data storage for information to be retained, retrieved, and
processed. This may involve databases, file systems, or other storage mechanisms.
5. Networking Components:
For software that requires communication with other systems or over the internet, networking
components are crucial for facilitating data transfer and connectivity.
4. Software Applications
It is a type of computer program designed to perform specific tasks for end-users. It serves as a
bridge between the user and the computer's hardware, allowing individuals to accomplish various
objectives without needing to understand the underlying technical details.
4.1 Types of Software Applications
Software can be used for a wide variety of applications. Some common categories include:
1. System Software:
System software manages hardware resources and provides the foundation for running application
software. Examples include operating systems (e.g., Windows, Linux), device drivers, and utility
programs.
2. Application Software:
This includes programs designed to perform specific tasks for the user. Examples include word
processors, web browsers, and spreadsheets.
3. Embedded Software:
Embedded software is designed to operate hardware systems. It is often used in devices such as
cars, medical devices, home appliances, etc.
4. Enterprise Software:
Unit 1 Software Engineering mrsandy.in
These are large-scale applications used by businesses and organizations for tasks such as
customer relationship management (CRM), enterprise resource planning (ERP), and human
resource management (HRM).
5. Mobile Applications:
Software designed specifically for mobile devices such as smartphones and tablets. Examples
include social media apps, games, and productivity tools.