Вы находитесь на странице: 1из 19

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
Requirements definition High- and low-level design Implementation of design Testing and verification Delivery Operation Maintenance

understand the problem


specify what program will do how it meets requirements code it detect errors, show correctness turn over to customer use the program 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 doesnt wear out. It doesnt 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

Вам также может понравиться