Transcript [Site Name]

The Product
Developed by Reneta Barneva, SUNY Fredonia
Software
Software is the product that software
engineers design and build.
It encompasses:

programs

documentation

data
Developed by Reneta Barneva, SUNY Fredonia
Software
Virtually everyone uses it directly or
indirectly.
It is important because it affects
practically every aspect of the human
life: commerce, culture, education,
services.
Developed by Reneta Barneva, SUNY Fredonia
Software Life Cycle
Problem analysis
understand the problem
Requirements definition
specify what program will do
High- and low-level design
how it meets requirements
Implementation of design
code it
Testing and verification
detect errors, show correctness
Delivery
turn over to customer
Operation
use the program
Maintenance
change the program
Developed by Reneta Barneva, SUNY Fredonia
The Evolving Role of
Software
Software is an information transformer producing, managing, acquiring, modifying,
displaying, and transmitting information that can
be as simple as a single bit or as complex as
multimedia presentation.
Developed by Reneta Barneva, SUNY Fredonia
The Evolving Role of
Software
Developed by Reneta Barneva, SUNY Fredonia
The Evolving Role of
Software
The role of computer software has undergone
significant change over a time span of little more than
50 years.
Reason: Improvement of hardware performance
Naisbitt predicted a transformation from an industrial
society to information society.
The lone programmer has been replaced by a team of
software experts -> importance of applying the
software engineering principles.
Developed by Reneta Barneva, SUNY Fredonia
The Evolving Role of
Software
However, still the software development
experience the same problems:
• It takes long to finalize the software
• It is expensive
• All the errors cannot be detected
• It is difficult to measure the progress as
software is being developed.
Developed by Reneta Barneva, SUNY Fredonia
Software Characteristics
1. Software is a logical rather than a physical system
element -> it is developed, not manufactured in the
classical sense.
2. Software doesn’t “wear out.” It doesn’t depend on
dust, vibration, abuse, temperature extremes, etc.
Hardware failure
Developed by Reneta Barneva, SUNY Fredonia
Software Characteristics
Software failure
During its life, software will undergo
maintenance -> changes -> new defects -> …
-> The failure rate level begins to rise.
Developed by Reneta Barneva, SUNY Fredonia
Software Characteristics
When a hardware component wears out it is
replaced by a spare part.
No software spare parts.
Every software error indicates an error in the
design or in the following life cycle stages.
-> Software maintenance require much more
efforts than software maintenance.
Developed by Reneta Barneva, SUNY Fredonia
Software Characteristics
3. Although the industry is moving towards
component-based assembly, most software
continues to be custom built.
Hardware manufacturing: the engineer draws the
digital circuit, does some fundamental analysis, and
then assemblies it through some chips. Every chip
has well defined function and interface.
Software development: the idea of reusability of
software, however it has only begun to be achieved
on a broad scale.
In the 60s: scientific subroutine libraries (limited
domain application)
Today: to reuse not only algorithms, but also data ->
OO approach. GUI has been built in such a way.
Developed by Reneta Barneva, SUNY Fredonia
Software Applications
It is difficult to develop meaningful generic
categories.
Information determinacy: refers to the
predictability of the order and timing of information.
Software can be
• Determinate, e.g. a program for numeric analysis
calculation.
• Indeterminate: multiuser operating system:
interruptions, the output varies as a function of the
environment and time.
Developed by Reneta Barneva, SUNY Fredonia
Software Applications
System software: collection of programs
written to service other programs:
• compilers, editors, file management
utilities
• operating systems, drivers,
telecommunication processors
Real-time software: analyzes real-world
events as they occur. Includes:
• data gathering component,
• analysis component,
• control/output component.
Developed by Reneta Barneva, SUNY Fredonia
Software Applications
Business software:
• payroll systems,
• accounting systems,
• inventory systems,
• banking software
Engineering and scientific software:
Biology, volcanology, mathematics,
chemistry, physics, medicine, space shuttle
orbital dynamics, etc.
Include: numerical analysis, CAD, system
simulation.
Developed by Reneta Barneva, SUNY Fredonia
Software Applications
Embedded software:
Resides in ROM. Used to control products
and systems for the customer.
• Washing machines
• Cars
• ATM, etc.
Personal computer software:
Word processors, spreadsheets,
entertainment, database management,
external networks, etc.
Intuitive interface.
Developed by Reneta Barneva, SUNY Fredonia
Software Applications
Web-based software:
Includes hypertext, pictures, music, motion
video, and applets.
Artificial Intelligence:
Uses non-numerical algorithms to solve
complex problems: pattern recognition, neural
networks, theorem proving, expert systems,
natural language recognition, etc.
Developed by Reneta Barneva, SUNY Fredonia
Software Myths
Standards exist:
Standards vary a lot.
We have the newest hardware:
Computer-aided software engineering
(CASE) tools are much more important than
hardware.
If we are behind the schedule, we will add
more programmers:
This slows down the work.
Developed by Reneta Barneva, SUNY Fredonia
Software Myths
Developed by Reneta Barneva, SUNY Fredonia