Title: Software. Software Engineering
1Software. Software Engineering
2Software
- Software is the product that software engineers
design and build. - It encompasses
- programs
- documentation
- data
3Software
- Virtually everyone uses it directly or
indirectly. - It is important because it affects practically
every aspect of the human life commerce,
culture, education, services.
4Software 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
5The 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.
6The Evolving Role of Software
7The 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 -gt
importance of applying the software engineering
principles.
8The 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.
9Software Characteristics
1. Software is a logical rather than a physical
system element -gt it is developed, not
manufactured in the classical sense. 2. Software
doesnt wear out. It doesnt depend on dust,
vibration, abuse, temperature extremes, etc.
Hardware failure
10Software Characteristics
Software failure
During its life, software will undergo
maintenance -gt changes -gt new defects -gt -gt
The failure rate level begins to rise.
11Software 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. -gt Software maintenance require much more
efforts than software maintenance.
12Software 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 -gt OO approach. GUI has
been built in such a way.
13Software 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.
14Software 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.
15Software 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.
16Software 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.
17Software 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.
18Software 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.
19