Overview
- Software is designed and built by software engineers.
- Software is used by virtually everyone in society.
- Software engineers have a moral obligation to build reliable software that
does no harm to other people.
- Software engineers view computer software, as being made up of the
programs, documents, and data required to design and build the system.
- Software users are only concerned with whether or not software products
meet their expectations and make their tasks easier to complete.
Software
- Software is both a product and a vehicle for developing a product.
- Software is engineered not manufactured.
- Software does not wear out, but it does deteriorate.
- Currently, most software is still custom-built.
Software Application Types
- System software
- Real-time software
- Business software
- Engineering and scientific software
- Embedded software
- Personal computer software
- Web-based software
- Artificial intelligence software
Software Crisis
- Software failures receive a lot more publicity than software engineering
success stories.
- The software crisis predicted thirty years ago has never materialized and
software engineering successes outnumber the failures.
- The problems that afflict software development are associated more with
how to develop and support software properly, than with simply building
software that functions correctly.
Software Myths
- Software standards provide software engineers with all the guidance they
need. The reality is the standards may be outdated and rarely referred to.
- People with modern computers have all the software development tools. The
reality is that CASE tools are more important than hardware to producing high
quality software, yet they are rarely used effectively.
- Adding people is a good way to catch up when a project is behind schedule.
The reality is that adding people only helps the project schedule when is it
done in a planned, well-coordinated manner.
- Giving software projects to outside parties to develop solves software
project management problems. The reality is people who can’t manage internal
software development problems will struggle to manage or control the external
development of software too.
- A general statement of objectives from the customer is all that is needed
to begin a software project. The reality is without constant communication
between the customer and the developers it is impossible to build a software
product that meets the customer's real needs.
- Project requirements change continually and change is easy to accommodate
in the software design. The reality is that every change has far-reaching and
unexpected consequences. Changes to software requirements must be managed very
carefully to keep a software project on time and under budget.
- Once a program is written, the software engineer's work is finished. The
reality is that maintaining a piece of software is never done, until the
software product is retired from service.
- There is no way to assess the quality of a piece of software until it is
actually running on some machine. The reality is that one of the most
effective quality assurance practices (formal technical reviews) can be
applied to any software design product and can serve as a quality filter very
early in the product life cycle.
- The only deliverable from a successful software project is the working
program. The reality is the working program is only one of several
deliverables that arise from a well-managed software project. The
documentation is also important since it provides a basis for software support
after delivery.
- Software engineering is all about the creation of large and unnecessary
documentation. The reality is that software engineering is concerned with
creating quality. This means doing things right the first time and not having
to create deliverables needed to complete or maintain a software product. This
practice usually leads to faster delivery times and shorter development
cycles.