Unit III - Software
Unit III - Software
Unit III - Software
Prof. S.D.Shirbahadurkar
Contents:
• Types of software
• Waterfall Model
• Matrices & software limitations
• Risk abatement & failure prevention
• Software bugs & testing
• Good programming practices & user
interfaces
• Embedded, Real time software
Why Software w.r. t. Electronics Product
•All Electronics computing Product, Automobile product
•Communication Industries, Complex traffic network
•Software have major cost in product
•Software maintenance & testability
•Problems with software are uncontrollable
•Personal capability & Product complexity
•Common mistake : Much confidence in software
•Improve software in area like code generation, reliability ,
maintainability , correctness
Process to produce software : plan, measure & document
Types of Software : Prerequiste
• Algorithm: List of the instruction, recipes for action
• Algorithms have effect: Utility, success and failure of S/W
• Data structure: Way of design processing architecture
• Handling the amount of data, understand each Algorithm, its
limitation, its boundary
• Habit of collection algorithms for future Programming
• Language: w.r,t, Embedded System –
firm ware, peripheral interface & drivers, OS,
User interface,
Application program
Types of Software:
Types of Software:
Types of Software:
• Algorithms
• Languages
• Methods
• Selection
• Purchase
9
SE Vs Computer Science(CS)
SE deals with practical problems
• Complex software products (I)
• Processes (II)
• Methods/Models (III)
• People (IV)
CS is concerned with
• Theories
• Methods
Algorithms, data structures, programs,
formal grammars, abstract machines,
complexity, numerical methods…
10
Software applications
Potential applications
• System software
• Real-time software
• Business software
• Engineering and scientific software
• Embedded software
• Personal computer software
• Web-based software
• Artificial Intelligence software
• Research software
• ML, Data Analysis, Application base
11
Software failures
Complex software systems failures and bugs:
• Taurus (1993): the planned automated transaction
settlement system for London Stock Exchange cancelled
after five years of development
• Ariane 5 (1996): rocket exploded soon after its launch due
an error conversion (16-bit floating point into 16-bit
integer)
• The Mars Climate Orbiter assumed to be lost by NASA
officials (1999): different measurement systems (Imperial
and metric)
http://infotech.fanshawec.on.ca/gsantor/Computing/
FamousBugs.htm
12
However…
Important progress:
Processes
A software process (II) consists of a set of activities and
associated results which lead to the production of a software
product (I) Summerville p43
Fundamental activities:
• Software specification
• Software design and implementation
• Software validation
• Software evolution
Software developed from scratch or by extending and modifying
existing systems
Software specifications (Ss)
Ss refers to services requested (functional aspects) and
constraints (non-functional component) – called
requirements engineering
• Feasibility study
• Requirements elicitation and analysis
• Requirements specification
• Requirements validation
Software product
Software validation
The validation is the process of checking that “the correct system” was
implemented – inspections and reviews
• Unit testing
• Module testing
• Sub-system testing
• Systems testing
• Acceptance testing
Software evolution
Software evolution process: changes made to a software product after the
system development (but not always) - maintenance
• General Specification
• Functional performance specification
• Requirements specification
• Design specifications
Design
• System preparation & setup
• Operating system & procedure
• Communication & I/O
• Monitoring procedures
• Fault recovery & special
procedure
• Diagnostic features
Programming:-
Models, Metrics & Software
Limitations:
• Models:
Waterfall
Prototyping
Spiral
Prototyping model for s/w development
Spiral model of s/w development
Testing & Verification
• Internal Reviews
• Black Box Testing
• White Box Testing
• Alpha Testing
• Beta Testing
Software Bugs & Testing
Phases of Bugs
• Intent
• Translation
• Execution
• Operation
Nature of Bugs
Debugging
Inspection & Reviews
Testability
Maintenance:
• Bug number
• Bug description
• Severity
• Date
• Target device configuration
• Person responsible for fixing the bug
• Current status
Characteristics of Testable Software
• Operable
▫ The better it works (i.e., better quality), the easier it is to test
• Observable
▫ Incorrect output is easily identified; internal errors are automatically
detected
• Controllable
▫ The states and variables of the software can be controlled directly by the
tester
• Decomposable
▫ The software is built from independent modules that can be tested
independently
continued..
• Simple
▫ The program should exhibit functional, structural, and code simplicity
• Stable
▫ Changes to the software during testing are infrequent and do not
invalidate existing tests
• Understandable
▫ The architectural design is well understood; documentation is available
and organized
Test Characteristics
• A good test has a high probability of finding an error
▫ The tester must understand the software and how it might fail
• A good test is not redundant
▫ Testing time is limited; one test should not serve the same purpose as
another test
• A good test should be “best of breed”
▫ Tests that have the highest likelihood of uncovering a whole class of errors
should be used
• A good test should be neither too simple nor too complex
▫ Each test should be executed separately; combining a series of tests could
cause side effects and mask certain errors
Two Unit Testing Techniques
• Black-box testing
▫ Knowing the specified function that a product has been designed to
perform, test to see if that function is fully operational and error free
▫ Includes tests that are conducted at the software interface
▫ Not concerned with internal logical structure of the software
• White-box testing
▫ Knowing the internal workings of a product, test that all internal
operations are performed according to specifications and all internal
components have been exercised
▫ Involves tests that concentrate on close examination of procedural detail
▫ Logical paths through the software are tested
▫ Test cases exercise specific sets of conditions and loops
White-box Testing
• Uses the control structure part of component-level design to derive the
test cases
• These test cases
▫ Guarantee that all independent paths within a module have been exercised at
least once
▫ Exercise all logical decisions on their true and false sides
▫ Execute all loops at their boundaries and within their operational bounds
• Exercise internal data structures to ensure their validity
• Enables the test case designer to derive a logical complexity measure of
a procedural design
• Uses this measure as a guide for defining a basis set of execution paths
• Test cases derived to exercise the basis set are guaranteed to execute
every statement in the program at least one time during testing
Black-box Testing
• Complements white-box testing by uncovering different classes of
errors
• Focuses on the functional requirements and the information domain
of the software
• Used during the later stages of testing after white box testing has
been performed
• The tester identifies a set of input conditions that will fully exercise
all functional requirements for a program
• The test cases satisfy the following:
▫ Reduce, by a count greater than one, the number of additional test cases
that must be designed to achieve reasonable testing
▫ Tell us something about the presence or absence of classes of errors, rather
than an error associated only with the specific task at hand
Black-box Testing Categories
• Software performance
• Measuring productivity
• Planning work items
• Measuring Productivity
• Debugging
• Estimating cost
Software Metrics Baseline Process
Software
Engineering
Process
Measures
Software Data
Project Collection
Metrics
Metrics
Software Computation
Product
Indicators
Metrics
Evaluation
Categories of Software Measurement Electronic
Product
Design-
SGK
1. Issues
2. Development Plan
3. Safety & Reliability
4. Fault Tolerance
1.Issues
• Consider nature of s/w
• s/w never fulfil conventional boundaries of
stability
• s/w fault are difficult to handle than physical
defect
2.Safety & Reliability
• Make each module independent
• Reduce complexity of each task
• Isolate tasks from external influences, both h/w
& timing
• Communicate through a single, well defined
interface between tasks.
3. Fault Tolerance
• How system prevents or responds bugs,
errors, faults or failures?
4.Development Plan
• Meeting
• Planning
• Designing
• Testing
• Debugging
User Interface:
Defines Guidelines & Development
Embedded & Real Time s/w
• Case studies & design Examples:
1. Golf course /farm sprinkler system
2. Agro electronics – parameters control for
polyhouse, open farming , remote control
application ,GIS & control
3. House hold applications
Embedded & Real Time s/w