Project 1
Project 1
- There are literally dozens of real life circumstances to choose from. For example,
software errors that have caused major telephone networks to fail, failures in
avionics that have contributed to plane crashes, computer viruses (e.g.,
Michelangelo) that have caused significant economic losses and attacks on major
e-‐commerce sites.
1.1. By making reference to the distribution of software costs discussed in
Section 1.1.6, explain why it is appropriate to consider software to be more
than the programs that can be executed by end-users of a system.
- Not all software is designed as a simple program that is executed, operating
systems, for example are not mundane programs that an end-user executes to
accomplish some minor task, it is an entire environment that the user utilizes to
execute other tasks. Even more commonly used programs, like the Microsoft
Office suite, isn’t a simple program, it is a platform that communicates with
several other programs to make accomplishing tasks easier and more straight
forward for the user.
2. What are the differences between generic software product development
and custom product development?
- Generic software has no specific target in mind, and development follows that
idea. It is designed from its conception to include every function they may possibly
use, and be accessible in a manner that does not leave the user feeling that the
software is “bloated” or overrun with useless features.
- Custom software, on the other hand, is conceptualized by the customer it is
developed for, and production and development is guided by the customer. This
includes custom components for a specific piece of software will likely not be
included in a generic equivalent of the software title, as it would undoubtedly serve
little to no purpose for the general public, as well as the removal of all
functionality that serves no purpose for the company. This results in a highly
efficient, streamlined program that suits the needs of the customer as well as can be
expected from
any piece of software.
1.3 What are the four important attributes which all software products should
have? Suggest four other attributes that may sometimes be significant.
- There are four attributes that all professional software should have:
1. Software must be maintainable.
- Unmaintainable software is difficult to change to meet new demands. Software
should be able to easily evolve, as change is inevitable in a growing business. It
would be very inefficient if software engineers had to rewrite the software from the
ground up again every time they needed to make a change. Making software
maintainable would include having a well organized framework, good
documentation, clean code, ect. Even when changes are made, these changes must
follow this maintainability rule.