0% found this document useful (0 votes)
12 views34 pages

Software Systems and SDLC

Uploaded by

Isra Asif
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)
12 views34 pages

Software Systems and SDLC

Uploaded by

Isra Asif
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/ 34

DISCLAIMER STATEMENT

• In preparation of these slides, materials have been


taken from different online sources in the shape of
books, websites, research papers and
presentations etc. However, the author does not
have any intention to take any benefit of these in
her/his own name. This lecture (audio, video, slides
etc) is prepared and delivered only for educational
purposes and is not intended to infringe upon the
copyrighted material. Sources have been
acknowledged where applicable. The views
expressed are presenter’s alone and do not
necessarily represent actual author(s) or the
institution. 1
Fatima Jinnah Women University 2

SOFTWARE
DEVELOPMENT LIFE
CYCLE (SDLC)
Changing Nature of Software
System Software:
System software is a collection of programs written to
service other programs
Examples:
Compilers
Editors
File management utilities (process complex but
determinate information structures)

System applications (O.S, Drivers etc) process


indeterminate data
Cont…
Application Software:
Application software consists of standalone programs that
solve a specific business need.
In addition to conventional data processing applications it is
used to control buisness functions in real time

Examples
• Point-of-sale transactions processing
• Real time manufacturing process control
Cont…
Engineering /Scientific Software:
Formally characterized by “number crunching algorithms”,
engineering and scientific software applications range
from astronomy to volcanology, space shuttle etc.

Modern applications within the engineering/scientific area


are moving away from conventional algorithms to CAD,
system simulations etc.
Cont…
Embedded Software
Resides within a product or system and is used to control
and implement features and functions for the system itself
and the users.
• Keypad control for a microwave oven
• Digital functions in an automobile such as fuel control
• Braking System etc

Give other examples???


Cont…
Product Line Software:
Designed to provide a specific capability for use by many
different customers,
It can focus on a limited marketplace or address mass
consumer markets

Examples
Word Processing
Spreadsheets
Computer Graphics
Cont…
Web Applications:
A web application is an application that is accessed by
users over a network such as the Internet or an intranet.
The term may also mean a computer software application
that is coded in a browser-supported
programming language (such as JavaScript, combined
with a browser-rendered markup language like HTML,
PHP) and reliant on a common web browser to render the
application executable.
Cont…
Artificial Intelligence Software:
It is the science and engineering of making intelligent
machines, especially intelligent computer programs. It is
related to the similar task of using computers to
understand human intelligence.
Game Playing
• You can buy machines that can play master level chess
for a few hundred dollars. There is some AI in them, but
they play well against people mainly through brute force
computation--looking at hundreds of thousands of
positions. To beat a world champion by brute force and
known reliable heuristics requires being able to look at
200 million positions per second.
AI Cont…
• Speech recognition
• Understanding natural language
• Computer vision
• Expert systems
Cont…
• In artificial intelligence, an expert system is a computer system that
emulates the decision-making ability of a human expert. Expert
systems are designed to solve complex problems by reasoning with
knowledge, like an expert, and not by following the procedure of a
developer as is the case in conventional programming. The first
expert systems were created in the 1970s and then proliferated in the
1980s. Expert systems were among the first truly successful forms of
AI software.
• An expert system has a unique structure, different from traditional
programs. It is divided into two parts, one fixed, independent of the
expert system: the inference engine, and one variable: the knowledge
base. To run an expert system, the engine reasons about the
knowledge base like a human. In the 80s a third part appeared: a
dialog interface to communicate with users. This ability to conduct a
conversation with users was later called "conversational".
Cont…

Ubiquitous Computing:
Rapid growth of wireless networking soon lead to true
distributed computing

Challenge for software engineers???

To develop systems that will allow small devices and


personal computers to communicate across vast
networks.
Cont…
Open Source:
Source code available to all
Develop source code that is self descriptive
What is a system?
• A purposeful collection of inter-related components
working together to achieve some common objective.
• A system may include software, mechanical, electrical and
electronic hardware and be operated by people.
• System components are dependent on other system components
• Categories of the system
• Technical computer-based systems
• Systems that include hardware and software but the operators and
operational processes are not normally considered to be part of the
system.
• Socio-technical systems
• Systems that include technical systems but also operational processes
and people who use and interact with the technical system.
• Socio-technical systems are governed by organisational policies and
rules.
Characteristics- Socio-technical
system
Emergent properties
• Properties of the system as a whole that depend on the system
components and their relationships.

Non-deterministic
• They do not always produce the same output when presented with
the same input
• Because the system’s behaviour is partially dependent on human
operators.
Legacy systems
• Socio-technical systems that have been developed using
old or obsolete technology.
• Crucial to the operation of a business and it is often too risky to
discard these systems
• Bank customer accounting system;
• Aircraft maintenance system.
• Legacy systems constrain new business processes and
consume a high proportion of company budgets.
Embeds
knowledge of
Uses
Support software Application Business policies
software and rules

Runs-on Runs-on Uses Uses Constrains

System Application Business


hardware data processes
Legacy system components
• Hardware –
• may be obsolete mainframe hardware.
• Support software –
• may rely on support software from suppliers who are no longer in
business.
• Application software –
• may be written in obsolete programming languages.
• Application data –
• often incomplete and inconsistent.
• Business processes –
• may be constrained by software structure and functionality.
• Business policies and rules –
• may be implicit and embedded in the system software.
Quality of Legacy Systems
Poor Quality
• They have inextensible designs
• Mismanaged code
• Poor or non existent documentation
• Test cases and results that were never achieved
• Poorly managed change history
Cont L.S…
Legacy systems must/often evolve for the following
reasons

• Adapted
• Enhanced
• Extended
• Re-architected
Software Evolution
Change (often referred as software maintenance) drives
this process and occurs when errors are corrected,
software is adapted to new environment, customer
requests new features or functions, or when application is
re-engineered.
Seven underlying laws governs this:
Law of continuing change
Law of increasing complexity
Law of conservation of organizational stability
Law of conservation of familiarity
Law of continuing growth
Law of declining quality
Law of feedback system
21

• Continuing change – A software system must continue


to adapt to the real world changes, else it becomes
progressively less useful.
• Increasing complexity – As the software system
evolves, its complexity tends to increase unless work
is done to maintain or reduce it.
• Conservation of familiarity - The familiarity with the
software or the knowledge about how it was developed,
why was it developed in that particular manner etc.
must be retained at any cost, to implement the changes
in the system.
• Continuing growth- In case the software system
intended to resolve some business problem, its size of
implementing the changes grows according to the
nature of changes of the business.
22

• Declining quality –A software system declines in


quality unless rigorously maintained and adapted to a
changing operational environment.
• Feedback systems- The software systems can be
modified or improved based upon the feedback
provided by various components of the system.
• Organizational stability - The evolving software
systems should not affect the organizational stability
as their effects on other processes and procedures
should be minimal.
Software Myths

Software myths: Beliefs' about software and the process


used to build it…

1. Management Myths
Myths: If we get behind schedule, we can add more
programmers and catch up……

Reality: “Adding more people to a late Software project


makes it later”
Myths cont…
2. Customer Myths
Myth: software requirements continually change and can
easily be adapted because software is flexible.
Reality: Impact of change varies.

3. Practitioners Myths
Myth: The only deliverable work product for a successful
project is the working program.
Reality: working program is one part of the software
configuration it needs the documentation for the
foundation of the developed software project.
Critical Systems
• Safety-critical systems
• Failure results in loss of life, injury or damage to the
environment;
• Chemical plant protection system;
• Mission-critical systems
• Failure results in failure of some goal-directed activity;
• Spacecraft navigation system;
• Business-critical systems
• Failure results in high economic losses;
• Customer accounting system in a bank;
System dependability
• Dependability of the system - the most important system
property.
• Reflects the user’s degree of trust in that system –
Trustworthiness.
• Reflects the extent of the user’s confidence
• That it will operate as users expect and that it will not ‘fail’ in normal use.
• Importance of dependability
• Systems neither dependable nor reliable, unsafe or insecure may
be rejected by their users.
• The costs of system failure may be very high.
• Undependable systems may cause information loss with a high
consequent recovery cost.
Dependability
• The dependability of a system equates to its
trustworthiness.
• A dependable system is a system is trusted by its users.
• Principal dimensions of dependability are:
• Availability;
• Reliability; Dependability

• Safety;
• Security
Availability Reliability Safety Security

The ability of the system The ability of the system The ability of the system The ability of the system
to deliver services when to deliver services as to operate without to protect itelf against
requested specified catastrophic failure accidental or deliberate
intrusion
Other dependability properties
• Reparability
• Reflects the extent to which the system can be repaired in the
event of a failure
• Maintainability
• Reflects the extent to which the system can be adapted to new
requirements;
• Survivability
• Reflects the extent to which the system can deliver services under
hostile attack;
• Error tolerance
• Reflects the extent to which user input errors can be avoided and
tolerated.
Dependability achievement
• Fault avoidance
• The system is developed in such a way that human error is
avoided and thus system faults are minimised.
• The development process is organised so that faults in the system
are detected and repaired before delivery to the customer.
• Fault detection
• Verification and validation techniques are used to discover and
remove faults in a system before it is deployed.
• Fault tolerance
• The system is designed so that faults in the delivered software do
not result in system failure.
Diversity and Redundancy
• Redundancy - Where availability is critical
• e.g. in e-commerce systems, companies normally keep backup
servers and switch to these automatically if failure occurs.
• Keep more than 1 version of a critical component available so that if one
fails then a backup is available.
• Diversity - To provide flexibility against external attacks
• Different servers may be implemented using different operating
systems (e.g. Windows and Linux)
• Provide the same functionality in different ways so that they will not fail
in the same way.
• However, adding diversity and redundancy adds
complexity and this can increase the chances of error.
Verification vs Validation
Verification:
• "Are we building the product right”.
• The software should conform to its specification.
• uncovers additional defects and encourages careful
examination of the program for efficiency and other
quality aspects
Validation:
• "Are we building the right product”.
• The software should do what the user really requires.
V&V Process
• Is a whole life-cycle process - V & V must be applied at
each stage in the software process.
• Has two principal objectives
• The discovery of defects in a system;
• The assessment of whether or not the system is useful and
useable in an operational situation.
V& V goals
• Verification and validation should establish confidence
that the software is fit for purpose.
• This does NOT mean completely free of defects.
• Rather, it must be good enough for its intended use
and the type of use will determine the degree of
confidence that is needed.
• V&V Confidence
• Depends on system’s purpose and user expectations
• Software function
• The level of confidence depends on how critical the
software is to an organisation.
• User expectations
• Users may have low expectations of certain kinds of
software.
Static and Dynamic verification
Software inspections. (static verification)
• Concerned with analysis of the static system
representation to discover problems
• May be supplemented by tool-based document and
code analysis
Software testing. (dynamic verification)
• Concerned with exercising and observing product
behaviour
• The system is executed with test data and its
operational behaviour is observed
34

Thank You

You might also like