0% found this document useful (0 votes)
11 views

module 1

Software encompasses programs, documentation, and configuration data necessary for operation, with two main types: generic products for the open market and customized products for specific customers. Software engineering is a discipline focused on the systematic production and maintenance of software, employing various methodologies throughout the software life cycle. Key characteristics of software include reliability, correctness, performance, usability, and maintainability, all of which are essential for developing high-quality software products.

Uploaded by

rinsa.rees
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)
11 views

module 1

Software encompasses programs, documentation, and configuration data necessary for operation, with two main types: generic products for the open market and customized products for specific customers. Software engineering is a discipline focused on the systematic production and maintenance of software, employing various methodologies throughout the software life cycle. Key characteristics of software include reliability, correctness, performance, usability, and maintainability, all of which are essential for developing high-quality software products.

Uploaded by

rinsa.rees
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/ 11

What is software?

Software is not just the programs but also it includes


1. all associated documentation
2. configuration data
These are needed to make the software correctly
Software: It is the set of:
1) Instructions (programs) that when executed provide
desired features, functions and performance.
2) Data structures that enable the programs to adequately
manipulate information.
3) Documents that describe the use and operation of the
programs.
• Software engineers are concerned with developing software
products.
• Software products means software (set of programs) which
can be sold to a customer.
• There are two fundamental types of software:
1. Generic products 2. Customized products
Generic products
➢ Developed by an organization or a company and sold on
the open market to any customer who is able to buy
them.
Customized products
➢ These are developed for a particular customer.
➢ A software contractor develops the software especially
for that customer.
What is Software Engineering?
• Software engineering is an engineering discipline that is
concerned with all aspects of software production.
• That is from the early stages of system specification to
maintaining the system after it has gone into use.
• Software engineering is the establishment and use of
engineering principles in order to obtain economically
feasible software that is reliable and works efficiently on
real machines.
• Software engineering is “a systematic approach to the
analysis, design, assessment, implementation, test,
maintenance and reengineering of software.
• In the software engineering approach, several models for
the software life cycle are defined, and many
methodologies for the definition and assessment of the
different phases of a life-cycle model”
Why Learn Software Engineering?
• Software engineers play an important role in today's
information driven society.
• Software engineering is one of the fastest growing
professions with excellent job prospects predicted
throughout the coming decade.
• Software engineering brings together various skills and
responsibilities.
How do software engineers spend their time on the job?
• Software engineers probably spend less than 10% of
their time writing code.
• The other 90% of their time is involved with other
activities that are more important than writing code.
Characteristics of Software
• Software can be characterized by any number of
qualities.
• External qualities, such as usability and reliability, are
visible to the user.
• Internal qualities are those that may not be necessarily
visible to the user, but help the developers to achieve
improvement in external qualities.
• For example, good requirements and design
documentation might not be seen by the typical user, but
these are necessary to achieve improvement in most of
the external qualities.
External qualities
Reliability
▪ Software reliability can be defined informally in a
number of ways.
▪ For example, can the user “depend on” the software?
How do you measure software reliability?
▪ Software reliability can be defined in terms of
statistical behaviour; i.e., the probability that the
software will operate as expected over a specified time
interval.
▪ Let S be a software system and let T be the time of
system failure. Then the reliability of S at time t,
denoted r(t), is the probability that T is greater than t ;
that is, r(t) =P(T > t)
▪ This is the probability that a software system will
operate without failure for a specified period.
▪ Thus, a system with reliability function r(t) = 1 will
never fail
▪ The failure intensity is initially high, as would be
expected in new software as faults are detected during
testing.
▪ The number of failures would be expected to decrease
with time, presumably as failures are uncovered and
repaired.
▪ The bathtub curve is often used to explain the failure
function for physical components that wear out,
electronics, and even biological systems.
▪ We expect a large number of failures early in the life
of a product (from manufacturing defects) and then a
steady decline in failure incidents until later in the life
of that product when it has “worn out” or, in the case
of biological entities, died
Correctness
▪ Software correctness is closely related to reliability
and the terms are often used interchangeably.
▪ The main difference is that minor deviation from the
requirements is strictly considered a failure and hence
means the software is incorrect.
▪ Correctness can be measured in terms of the number
of failures detected over time.
Performance
▪ Performance is a measure of some required behavior
— often with respect to some relative time constraint.
▪ For example,
o the baggage inspection system may be required to
process 100 pieces of luggage per minute.
o a photo reproduction system might be required to
digitize, clean, and output color copies at a rate of
one every two seconds.
▪ One method of measuring performance is based on
mathematical or algorithmic complexity.
▪ Another approach involves directly timing the
behaviour of the completed system with logic
analysers and similar tools.
Usability
▪ Usability is a measure of how easy the software is for
humans to use.
▪ Software usability is synonymous with ease-of-use, or
user-friendliness.
▪ Usually informal feedback from users, as well as
surveys, focus groups, and problem reports are used
to measure/determine usability
Interoperability
▪ This quality refers to the ability of the software system
to coexist and cooperate with other systems.
▪ In many systems, special software called middleware
is written to enhance interoperability.
▪ In other cases, standards are used to achieve better
interoperability.
▪ For example,
o in embedded systems, the software must be able
to communicate with various devices using
standard bus structures and protocols.
▪ Interoperability can be measured in terms of
compliance with open system standards. These
standards are typically specific to the application
domain.
▪ An open system is an extensible collection of
independently written applications that cooperate to
function as an integrated system.
▪ This concept is related to interoperability.
▪ Open systems differ from open-source code, which is
source code that is made available to the user
community for improvement and correction.
▪ An open system allows the addition of new
functionality by independent organizations through the
use of interfaces whose characteristics are published.
▪ Any software engineer can then take advantage of
these interfaces, and thereby create software that can
communicate using the interface.
▪ Open systems also permit different applications
written by different organizations to interoperate
Maintainability, Evolvability and Repairability
▪ A software system in which changes are relatively
easy to make has a high level of maintainability.
▪ Maintainability can be decomposed into two
contributing properties — evolvability and
repairability.
▪ Evolvability is a measure of how easily the system can
be changed to accommodate new features or
modification of existing features.
▪ Repairability is the ability of a software defect to be
easily repaired.
▪ Measuring these qualities is not always easy, and is
often based on anecdotal observation.
▪ This means that changes and the cost of making them
are tracked over time.
▪ Software is portable if it can run easily in different
environments.
Life cycle of a software system
• Producing a software application is relatively simple in
concept: Take an idea and turn it in to a useful program.
• The different steps that we need to take to keep a
software engineering project on track.
• Software Development Life cycle is a process followed
for a software project, within a software organization.
• It consists of a detailed plan describing how to develop,
maintain, replace and alter or enhance specific software.
• The lifecycle defines a methodology for improving the
quality of software and the overall development process.
• The different steps that we need to take to keep a
software engineering project on track
• These are more or less the same for any large project
although there are some important differences
1.Requirements Gathering (Requirements Analysis)
2. Design
3. Development (coding)
4. Testing
5. Deployment (Implementation)
6. Maintenance
Characteristics of good requirements
• Clear
❖ Good requirements are clear, concise, and easy to
understand.
❖ requirements cannot be vague or ill‐defined.
❖ Each requirement must state in concrete
• Unambiguous (not open to more than one interpretation)
❖ As we write requirements, do our best to make sure we
can’t think of any way to interpret them other than the
way we intend.
• Consistent
❖ That means not only that they cannot contradict each
other, but that they also don’t provide so many
constraints that the problem is unsolvable.
❖ Each requirement must also be self‐consistent. (It must
be possible to achieve.)
• Prioritized
❖ We might like to include every feature but don’t have the
time or budget, so something’s got to go.
❖ At this point, we need to prioritize the requirements.
• Verifiable
❖ If we can’t verify a requirement, how do we know
whether we have met it?
❖ Being verifiable means the requirements must be limited
and precisely defined.
MOSCOW METHOD - a common system for prioritizing
application features.
• M - Must.
 These are required features that must be included.
They are necessary for the project to be considered a
success.
• S - Should.
 These are important features that should be included if
possible.
• C - Could.
 These are desirable features that can be omitted if they
won’t fit in the schedule.
• W - Won’t.
 These are completely optional features that the
customers have agreed l will not be included in the
current release
Requirement Categories
➢ Audience‐Oriented Requirements:
• These categories focus on different audiences and the
different points of view that each audience has.
➢ Business Requirements:
• Business requirements layout the project’s high‐level
goals.
➢ User Requirements:
• User requirements (which are also called stake holder
requirements), describe how the project will be used
by the end users.
➢ Functional Requirements:
• Functional requirements are detailed statements of the
project’s desired capabilities.
➢ Non-functional Requirements:
• Non-functional requirements are statements about the
quality of the application’s behaviour or constraints
on how it produces a desired result.
• They specify things such as the application’s
performance, reliability, and security characteristics.
➢ Implementation Requirements:
• Implementation requirements are temporary features
that are needed to transition to using the new system
but that will be later discarded.

You might also like