0% found this document useful (0 votes)
8 views14 pages

Lecture2_Software Characteristics (1)

Software engineering involves the systematic design, development, testing, and maintenance of software, which is defined as a collection of programs and data. Key characteristics of software include functionality, reliability, usability, efficiency, maintainability, and portability, each affecting the software's performance and user experience. Unlike hardware, software does not wear out and is continuously custom-built, emphasizing the importance of maintainability in software development.

Uploaded by

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

Lecture2_Software Characteristics (1)

Software engineering involves the systematic design, development, testing, and maintenance of software, which is defined as a collection of programs and data. Key characteristics of software include functionality, reliability, usability, efficiency, maintainability, and portability, each affecting the software's performance and user experience. Unlike hardware, software does not wear out and is continuously custom-built, emphasizing the importance of maintainability in software development.

Uploaded by

nigamanudita
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Software

Characteristics
What is Software Engineering?
 Software is defined as a collection of computer
programs, procedures, rules, and data.

 Software engineering is the process of designing,


developing, testing, and maintaining software.

 Software engineering is a systematic, disciplined,


cost effective techniques for software development.
Key Characteristics of Software
 Software Characteristics are classified into six major
components.
Functionality
 Functionality refers to the set of features and capabilities that a software
program or system provides to its users.
 It is one of the most important characteristics of software, as it determines
the usefulness of the software for the intended purpose.
 Examples of functionality in software include:
 Data storage and retrieval
 Data processing and manipulation
 User interface and navigation
 Communication and networking
 Security and access control
 Reporting and visualization
 Automation and scripting
Reliability
 Reliability is a characteristic of software that refers to its ability to perform its
intended functions correctly and consistently over time.
 Reliability is an important aspect of software quality, as it helps ensure that
the software will work correctly and not fail unexpectedly.
 Examples of factors that can affect the reliability of software include:
 Bugs and errors in the code
 Lack of testing and validation
 Poorly designed algorithms and data structures
 Inadequate error handling and recovery
 Incompatibilities with other software or hardware

 To improve the reliability of software, various techniques, and methodologies


can be used, such as testing and validation, formal verification, and fault
tolerance.
Usability
 It refers to the extent to which the software can be used
with ease. the amount of effort or time required to learn how
to use the software.
Efficiency
 Efficiency is a characteristic of software that refers to its ability to use resources such as
memory, processing power, and network bandwidth in an optimal way.
 High efficiency means that a software program can perform its intended functions
quickly and with minimal use of resources, while low efficiency means that a software
program may be slow or consume excessive resources.
 Examples of factors that can affect the efficiency of the software include:
 Poorly designed algorithms and data structures
 Inefficient use of memory and processing power
 High network latency or bandwidth usage
 Unnecessary processing or computation
 Unoptimized code
 To improve the efficiency of software, various techniques, and methodologies can be
used, such as performance analysis, optimization, and profiling.
Maintainability
 It refers to the ease with which modifications can be made in a software
system to extend its functionality, improve its performance, or correct
errors.
Portability
 A set of attributes that bears on the ability of software to be transferred
from one environment to another, without minimum changes.
Characteristics of Software in Software
Engineering
1. Software is developed or engineered; it is not manufactured in
the classical sense:

 Although some similarities exist between software development


and hardware manufacturing, few activities are fundamentally
different.

 In both activities, high quality is achieved through good design,


but the manufacturing phase for hardware can introduce quality
problems than software.
Continue…
2. The software doesn’t “wear out.”:

 Hardwarecomponents suffer from the growing effects of


many other environmental factors. Stated simply, the
hardware begins to wear out.

 Softwareis not susceptible to the environmental maladies


that cause hardware to wear out.

 When a hardware component wears out, it is replaced by a


spare part.

 There are no software spare parts.


Continue…

Figure: Failure Curve for Software in Software


Engineering
Continue…
3. The software continues to be custom-built:

 A software part should be planned and carried out with the goal
that it tends to be reused in various projects.

 Current reusable segments encapsulate the two pieces of


information and the preparation that is applied to the
information, empowering the programmer to make new
applications from reusable parts.

 In the hardware world, component reuse is a natural part of the


engineering process.
Exercises
1. Why is the primary goal of software development now shifting
from producing good quality software to good quality
maintainable software?

2. How can poor error handling in software contribute to decreased


reliability?

3. How does the fact that software does not "wear out" impact the
maintenance and evolution of software systems compared to
hardware systems?

You might also like