Software Systems and SDLC
Software Systems and SDLC
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)
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.
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
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
• 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
1. Management Myths
Myths: If we get behind schedule, we can add more
programmers and catch up……
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