Hides a secret; communicates through well-defined interfaces; a software fragment; a provider of computational resources or services; a collection of routines, data, objects.
Adjusting the software to changes in the environment.
A plan for evaluating an implemented software system to determine whether it meets all the requirements and constraints specified in a Requirements Specification Document.
Visible to the users of the system.
Module a USES module b if and only if a only works correctly when b works correctly.
The set of functions or services that a module exports or provides to its clients. A contract between the module and its clients.
Do you agree or disagree with this statement? State the case for or against your position. Your argument should include a definition of ``reliability'' as it pertains to software engineering, and a definition of or example of ``disciplined'' design.
Definition of reliable (2 points): dependable; operates as expected over time.
Definition of disciplined (2 points): rigorous; follows a set of rules.
Argument (6 points): Pro, considers qualities, tries to avoid errors, is thorough and complete, is careful and reviews work. Con: reliability is not unintentional or incidental, no guarantee of reliability from discipline alone, depends on implementation not design.
Code and fix model. The cycle ``write code, repeat code'' is repeated indefinitely.
Do-it-twice mode. The first version is a throwaway prototype, and the second version is developed, often using the waterfall model.
Evolutionary model. The functionality is divided into increments, and each increment is developed and delivered to the user; after each delivery, objectives are adjusted if necessary.
Transformation model. Formal requirements are transformed into executable code.
Identify and define two software qualities which are particularly suitable to information systems and which do not apply to all software systems.
See pp. 36-37.
Data integrity. The data is immune to being corrupted when the system malfunctions.
Security. The system protects the data from unauthorized access.
Data availability. The proportion of time and places at which the data is available when it should be.
Transaction performance. The number of transactions carried out per unit of time.
The justification function relies on three pieces of information: the maximum width of a line, the set of white space characters that separate words, and the choice of left justification, right justification, or full (both left and right) justification. The justify function can work as words are entered, or it can be applied to previously existing text. In either case, it considers each word in order, and puts it on the current line, if there is room. If there is not room, then the word is placed on the next line, and the current line is justified as follows. Left justification: no white space is put to the left of the leftmost word, and enough white space is placed to the right of the rightmost word to reach the maximum line width. Right justification: no white space is put to the right of the rightmost word, and enough white space is placed to the left of the leftmost word to reach the maximum line width. Full justification: no white space at either end of the line, and interword spacing is increased by one printer's point per interword space until the maximum width is reached but not exceeded; additional points of white space required to reach the exact maximum width are randomly added to interword spaces.
Give a descriptive specification for the justify function.
After justification is applied to part or all of the text, all lines in that part will have a width no greater than a maximum determined by the user. If left justification is applied, the leftmost parts of the leftmost word in each line will be aligned horizontally. If right justification is applied, the rightmost parts of the rightmost word in each line will be aligned horizontally. In full justification is applied, then each edge of a line is aligned with the corresponding edge of the line above it; this is achieved by increasing the interword spacing in as uniformly as possible.