small software system | can be developed by a programmer working alone | |
is a subtopic of 1.2 - What is Software Engineering? | |
is a kind of software system | |
software system | becomes complex because it is easy to add new features and because software engineers typically add features without fully understanding a system, which may not have been originally designed to accommodate the features | |
can automate business process | |
can be divided in many ways: | |
is better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors | |
is typically initially developed as a prototype | |
must have well-described requirements if other systems or subsystems are going to use its services or communicate with it | |
should be designed for flexibility right from the start | |
undergoes evolution over its life-span | |
system | can have specification which is then implemented by a collection of components | |
exists even if its components change over the course of time, or are replaced by equivalent components | |
has scope | |
has part component | |
has part hardware | |
has part module | |
has part software | |
has part subsystem | |
is divided up into subsystems | |