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 | ![2001-08-30 14:57:43.0](facet.gif) |
can automate business process | ![2001-08-30 14:57:43.0](facet.gif) |
can be divided in many ways: | ![2001-08-30 14:57:43.0](facet.gif) |
is better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors | ![2001-08-30 14:57:43.0](facet.gif) |
is a subtopic of 1.9 - Difficulties And Risks In Software Engineering as a Whole | ![2001-08-30 14:57:43.0](facet.gif) |
is typically initially developed as a prototype | ![2001-08-30 14:57:43.0](facet.gif) |
is a kind of system | ![2001-08-30 14:57:43.0](facet.gif) |
must have well-described requirements if other systems or subsystems are going to use its services or communicate with it | ![2001-08-30 14:57:43.0](facet.gif) |
should be designed for flexibility right from the start | ![2001-08-30 14:57:43.0](facet.gif) |
undergoes evolution over its life-span | ![2001-08-30 14:57:43.0](facet.gif) |
system | can have specification which is then implemented by a collection of components | ![2001-08-30 14:57:52.0](facet.gif) |
exists even if its components change over the course of time, or are replaced by equivalent components | ![2001-08-30 14:57:52.0](facet.gif) |
has scope | ![2001-08-30 14:57:52.0](facet.gif) |
has part component | ![2001-08-30 14:57:52.0](facet.gif) |
has part hardware | ![2001-08-30 14:57:52.0](facet.gif) |
has part module | ![2001-08-30 14:57:52.0](facet.gif) |
has part software | ![2001-08-30 14:57:52.0](facet.gif) |
has part subsystem | ![2001-08-30 14:57:52.0](facet.gif) |
is divided up into subsystems | ![2001-08-30 14:57:52.0](facet.gif) |