Object Oriented Software Engineering   Glossary   Help

!indicates logical NOTlink: chapter2section2.8.html#579, 2001-08-30 14:54:17.0
is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java logical operator2001-08-30 14:54:17.0
!=is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java identity comparison operator2001-08-30 14:54:17.0
%indicates moduluslink: chapter2section2.8.html#578, 2001-08-30 14:54:15.0
is a subtopic of The Basics of Java2001-08-30 14:54:15.0
is an instance of Java arithmetic operator2001-08-30 14:54:15.0
&&indicates logical ANDlink: chapter2section2.8.html#578, 2001-08-30 14:54:15.0
is a subtopic of The Basics of Java2001-08-30 14:54:15.0
is an instance of Java logical operator2001-08-30 14:54:16.0
is an instance of short circuit operator2001-08-30 14:54:16.0
*indicates multiplicationlink: chapter2section2.8.html#708, 2001-08-30 14:54:16.0
is a subtopic of The Basics of Java2001-08-30 14:54:16.0
is an instance of Java arithmetic operator2001-08-30 14:54:16.0
*=has example
example expressionequivalent longer expression
a*=b;a=a*b;
link: chapter2section2.8.html#692, 2001-08-30 14:54:16.0
is a subtopic of The Basics of Java2001-08-30 14:54:16.0
is an instance of Java special operator2001-08-30 14:54:16.0
*^2indicates the multiplicity many2001-08-30 14:54:16.0
is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:54:16.0
is an instance of multiplicity symbol2001-08-30 14:54:16.0
+indicates additionlink: chapter2section2.8.html#578, 2001-08-30 14:54:18.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java arithmetic operator2001-08-30 14:54:18.0
++has example
example expressionequivalent longer expression
a++;
b=a++;
++a;
b=++a;
a=a+1;
b=a; a=a+1;
a=a+1;
a=a+1; b=a;
link: chapter2section2.8.html#669, 2001-08-30 14:54:18.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java special operator2001-08-30 14:54:18.0
can be used in prefix or postfix formlink: chapter2section2.8.html#669, 2001-08-30 14:54:18.0
+=has example
example expressionequivalent longer expression
a+=b;a=a+b;
link: chapter2section2.8.html#692, 2001-08-30 14:54:18.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java special operator2001-08-30 14:54:18.0
-indicates subtractionlink: chapter2section2.8.html#578, 2001-08-30 14:54:17.0
is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java arithmetic operator2001-08-30 14:54:17.0
--has example
example expressionequivalent longer expression
a--;
b=a--;
--a;
b=--a;
a=a-1;
b=a; a=a-1;
a=a-1;
a=a-1; b=a;
link: chapter2section2.8.html#679, 2001-08-30 14:54:17.0
is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java special operator2001-08-30 14:54:17.0
can be used in prefix or postfix formlink: chapter2section2.8.html#679, 2001-08-30 14:54:17.0
-=has example
example expressionequivalent longer expression
a-=b;a=a-b;
link: chapter2section2.8.html#695, 2001-08-30 14:54:17.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java special operator2001-08-30 14:54:18.0
.is a subtopic of The Basics of Java2001-08-30 14:54:16.0
is an instance of Java symbol2001-08-30 14:54:16.0
is used to access an instance variable of an object in Java, for example: b.variableNamelink: chapter2section2.8.html#543, 2001-08-30 14:54:16.0
/indicates divisionlink: chapter2section2.8.html#578, 2001-08-30 14:54:17.0
is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java arithmetic operator2001-08-30 14:54:17.0
/=has example
example expressionequivalent longer expression
a/=b;a=/b;
link: chapter2section2.8.html#698, 2001-08-30 14:54:16.0
is a subtopic of The Basics of Java2001-08-30 14:54:16.0
is an instance of Java special operator2001-08-30 14:54:16.0
1.1 - The Nature of Softwareis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.10 - Software and Software Engineering - Referencesis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.2 - What is Software Engineering?is a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.3 - Software Engineering as a Branch of the Engineering Professionis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.4 - Stakeholders in Software Engineeringis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.5 - Software Qualityis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.6 - Software Engineering Projectsis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.7 - Activities Common to Software Projectsis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.8 - The Eight Themes Emphasized in this Bookis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
1.9 - Difficulties And Risks In Software Engineering as a Wholeis a subtopic of Chapter 1 - Software and Software Engineering2001-08-30 14:54:19.0
10.1 - Basic Definitionsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.10 - Inspectionsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.11 - Quality Assurance in Generalis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.13 - Difficulties and Risks in Quality Assuranceis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.14 - Testing and Inspecting to Ensure High Quality - Referencesis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.2 - Effective and Efficient Testingis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.3 - Defects in Ordinary Algorithmsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.4 - Defects in Numerical Algorithmsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:19.0
10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Racesis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:20.0
10.6 - Defects in Handling Stress and Unusual Situationsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:20.0
10.7 - Documentation Defectsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:20.0
10.8 - Writing Formal Test Cases and Test Plansis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:20.0
10.9 - Strategies for Testing Large Systemsis a subtopic of Chapter 10 - Testing and Inspecting to Ensure High Quality2001-08-30 14:54:20.0
11.1 - What is Project Management?is a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.2 - Software Process Modelsis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.3 - Cost Estimationis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.4 - Building Software Engineering Teamsis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.5 - Project Scheduling and Trackingis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.6 - Contents of a Project Planis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
11.8 - Managing the Software Process - Referencesis a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:54:20.0
2.1 - What is Object Orientation?is a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.10 - Difficulties and Risks in Programming Language Choice and Object-Oriented Programmingis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.11 - Review of Object Orientation and Java - Referencesis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.2 - Classes and Objectsis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.3 - Instance Variablesis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.4 - Methods, Operations and Polymorphismis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.5 - Organizing Classes Into Inheritance Hierarchiesis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarationsis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
2.7 - Concepts that Define Object Orientationis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:54:20.0
3.1 - Reuse: Building on the Work and Experience of Othersis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:20.0
3.11 - Basing Software Development on Reusable Technology - Referencesis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:20.0
3.2 - Incorporating Reusability and Reuse Into Software Engineeringis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:20.0
3.3 - Frameworks: Reusable Subsystemsis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:21.0
3.4 - The Client-Server Architectureis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:21.0
3.5 - Technology Needed to Build Client-Server Systemsis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:21.0
3.7 - Basic Description of OCSF- Client Sideis a subtopic of Chapter 3 - Basing Software Development on Reusable Technology2001-08-30 14:54:21.0
4.1 - Domain Analysisis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.12 - Difficulties and Risks In Domain and Requirements Analysisis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.13 - Developing Requirements - Referencesis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.2 - The Starting Point for Software Projectsis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.3 - Defining The Problem and the Scopeis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.4 - What Is a Requirement?is a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.5 - Types of Requirementsis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.6 - Some Techniques for Gathering and Analyzing Requirementsis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.7 - Types of Requirements Documentis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.8 - Reviewing Requirementsis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
4.9 - Managing Changing Requirementsis a subtopic of Chapter 4 - Developing Requirements2001-08-30 14:54:21.0
5.1 - What is UML?is a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.10 - Difficulties and Risks When Creating Class Diagramsis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.11 - Modelling With Classes - Referencesis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.2 - Essentials of UML Class Diagramsis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.3 - Associations and Multiplicityis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.4 - Generalizationis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.5 - Instance Diagramsis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.6 - More Advanced Features of Class Diagramsis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.7 - Detailed Example: A Class Diagram for Genealogyis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:21.0
5.8 - The Process Of Developing Class Diagramsis a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:22.0
5.9 - Implementing Class Diagrams in Javais a subtopic of Chapter 5 - Modelling With Classes2001-08-30 14:54:22.0
6.1 - Introduction to Patternsis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.10 - The Immutable Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.11 - The Read-Only Interface Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.12 - The Proxy Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.15 - Using Design Patterns - Referencesis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.2 - The Abstraction-Occurrence Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.3 - The General Hierarchy Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.4 - The Player-Role Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.5 - The Singleton Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.6 - The Observer Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.7 - The Delegation Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.8 - The Adapter Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
6.9 - The Facade Patternis a subtopic of Chapter 6 - Using Design Patterns2001-08-30 14:54:22.0
7.1 - User Centred Designis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.3 - Developing Use Case Models of Systemsis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.4 - The Basics of User Interface Designis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.5 - Usability Principlesis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.6 - Evaluating User Interfacesis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.7 - Implementing a Simple GUI in Javais a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:22.0
7.9 - Focusing on Users and Their Tasks - Referencesis a subtopic of Chapter 7 - Focusing on Users and Their Tasks2001-08-30 14:54:23.0
8.1 - Interaction Diagramsis a subtopic of Chapter 8 - Modelling Interactions and Behaviour2001-08-30 14:54:23.0
8.2 - State Diagramsis a subtopic of Chapter 8 - Modelling Interactions and Behaviour2001-08-30 14:54:23.0
8.3 - Activity Diagramsis a subtopic of Chapter 8 - Modelling Interactions and Behaviour2001-08-30 14:54:23.0
8.5 - Modelling Interactions and Behaviour - Referencesis a subtopic of Chapter 8 - Modelling Interactions and Behaviour2001-08-30 14:54:23.0
80-20 rulehas definition A rule that states that 80% of the benefit can often be obtained with 20% of the work; the remaining 20% of the benefit then takes 80% of the work2001-08-30 14:54:23.0
has purpose to justify cutting less important requirements to significantly reduce costs2001-08-30 14:54:23.0
is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:54:23.0
is a synonym of Pareto principle2001-08-30 14:56:56.0
is an instance of rule2001-08-30 14:54:23.0
states that 80% of the benefit can often be obtained with 20% of the work; the remaining 20% of the benefit then takes 80% of the work2001-08-30 14:54:23.0
9.1 - The Process of Designis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:23.0
9.2 - Principles Leading to Good Designis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:23.0
9.3 - Techniques for Making Good Design Decisionsis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:57:54.0
9.4 - Software Architectureis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:24.0
9.5 - Architectural Patternsis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:23.0
9.6 - Writing a Good Design Documentis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:24.0
9.9 - Architecting and designing software - Referencesis a subtopic of Chapter 9 - Architecting and designing software2001-08-30 14:54:24.0
<is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java relational comparison operator2001-08-30 14:54:18.0
<=is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java relational comparison operator2001-08-30 14:54:18.0
=indicates assignmentlink: chapter2section2.8.html#534, 2001-08-30 14:54:18.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java operator2001-08-30 14:54:18.0
==has purpose to compare any two variables to test if they are identical, which means they either refer to the same objects or have the same primitive valueslink: chapter2section2.8.html#602, 2001-08-30 14:54:18.0
is a subtopic of The Basics of Java2001-08-30 14:54:18.0
is an instance of Java identity comparison operator2001-08-30 14:54:19.0
returns a booleanlink: chapter2section2.8.html#601, 2001-08-30 14:54:19.0
>is a subtopic of The Basics of Java2001-08-30 14:54:19.0
is an instance of Java relational comparison operator2001-08-30 14:54:19.0
>=is a subtopic of The Basics of Java2001-08-30 14:54:19.0
is an instance of Java relational comparison operator2001-08-30 14:54:19.0
?:has form
 result = (condition) ? doSomething() : doSomethingElse();
If condition is true, then result is set to the expression following the question mark, otherwise result is set to the expression following the colon
link: chapter2section2.8.html#731, 2001-08-30 14:54:16.0
has purpose to execute one of two alternative expressions, depending on the value of a conditionlink: chapter2section2.8.html#730, 2001-08-30 14:54:16.0
is a subtopic of The Basics of Java2001-08-30 14:54:17.0
is an instance of Java operator2001-08-30 14:54:17.0
can shorten code but can also make code harder to understandlink: chapter2section2.8.html#734, 2001-08-30 14:54:16.0
A Pattern Languagehas author C. Alexander2001-08-30 14:54:24.0
has ISBN number 0-19-501919-92001-08-30 14:54:24.0
is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:54:24.0
is an instance of book about design patterns2001-08-30 14:54:24.0
was published by Oxford University Press2001-08-30 14:54:24.0
was published in 19772001-08-30 14:54:24.0
abbreviationis a kind of kbTop2001-08-30 14:54:24.0
abstractis a subtopic of The Basics of Java2001-08-30 14:54:24.0
is an instance of Java keyword2001-08-30 14:54:24.0
is used to declare abstract classlink: chapter2section2.8.html#943, 2001-08-30 14:54:24.0
is used to declare abstract methodlink: chapter2section2.8.html#940, 2001-08-30 14:54:24.0
abstract classhas definition A class that cannot have any instances2001-08-30 14:54:24.0
has part abstract method2001-08-30 14:54:24.0
has purpose to hold features that will be inherited by two or more subclasses2001-08-30 14:54:24.0
is a kind of class2001-08-30 14:54:24.0
is a subtopic of The Basics of Java2001-08-30 14:54:24.0
can have concrete methods or instance variableslink: chapter2section2.8.html#946, 2001-08-30 14:54:24.0
cannot have instances2001-08-30 14:54:24.0
abstract methodhas purpose to serve as a placeholder, indicating that subclasses must have concrete implementationslink: chapter2section2.8.html#942, 2001-08-30 14:54:24.0
is a kind of method2001-08-30 14:54:24.0
is a subtopic of The Basics of Java2001-08-30 14:54:24.0
abstract operationhas definition An operation in a class that makes logical sense for all subclasses, but that is not implemented in the class2001-08-30 14:54:24.0
is a kind of operation2001-08-30 14:54:25.0
is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:54:25.0
abstract soundhas advantages attracts attention rapidly even if the person is not looking at the screen2001-08-30 14:54:25.0
has example beep2001-08-30 14:54:25.0
has problems
  • can be distracting and annoying
  • can be hard to interpret
  • not usable by deaf people
2001-08-30 14:54:25.0
is a kind of coding technique2001-08-30 14:54:25.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:25.0
abstractionhas definition A representation that captures only essential aspects of something, reducing the complexity apparent to the abstraction's user2001-08-30 14:54:25.0
hides details which can be shown 2001-08-30 14:54:25.0
is a kind of representation2001-08-30 14:54:25.0
is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:54:25.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:25.0
abstraction-occurrencehas antipatterns 2001-08-30 14:54:25.0
has context class diagrams that form part of a system domain model2001-08-30 14:54:25.0
has definition A pattern in which two classes are related by an association, and one of the classes represents an abstraction of the other2001-08-30 14:54:25.0
has forces
  • You want to represent the members of each set of occurrences without duplicating the common information
  • You want a solution that maximizes the flexibility of the system
2001-08-30 14:54:25.0
has problem What is the best way to represent sets of occurrences in a class diagram?2001-08-30 14:54:25.0
has references a generalization of the Title-Item pattern of Eriksson and Penker2001-08-30 14:54:25.0
has related patterns Abstraction-Occurrence Square pattern if the abstraction is an aggregate (and the occurrences are also aggregates)2001-08-30 14:54:25.0
has solution
  1. Create an «Abstraction» class that contains the data that is common to all the members of a set of occurrences.
  2. Then create an «Occurrence» class representing the occurrences of this abstraction.
  3. Connect these classes with a one-to-many association
2001-08-30 14:54:25.0
is a subtopic of 6.2 - The Abstraction-Occurrence Pattern2001-08-30 14:54:25.0
is an instance of design pattern2001-08-30 14:54:25.0
abstraction^2has definition The quality of software in which only the essential aspects of something are captured, reducing the complexity apparent to the user2001-08-30 14:54:25.0
is a kind of software quality2001-08-30 14:54:25.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:25.0
is increased by 2001-08-30 14:54:25.0
acceptabilityhas definition The extent to which customers and users like a system2001-08-30 14:54:26.0
is subjective2001-08-30 14:54:26.0
is a kind of measurement2001-08-30 14:54:26.0
is a kind of software quality2001-08-30 14:54:26.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:26.0
is affected by many factors, including other aspects of usability, graphic design and various aesthetic issues2001-08-30 14:54:26.0
measures how much users like the system2001-08-30 14:54:26.0
acceptance testinghas definition Testing performed by customers, on their own initiative, to decide whether software is sufficiently acceptable to pay for2001-08-30 14:54:26.0
has purpose
  • to decide whether software is of sufficient quality either to purchase or to pay a custom developer
  • to choose between several competing generic products
2001-08-30 14:54:26.0
is a kind of testing performed by users and clients2001-08-30 14:54:26.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:26.0
is performed by customers on their own initiative2001-08-30 14:54:26.0
ACMis a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:26.0
is an abbreviation for The Association for Computing Machinery2001-08-30 14:54:26.0
is an instance of abbreviation2001-08-30 14:54:26.0
ACM/IEEE software engineering code of ethicshas URL www.acm.org/serving/se/code.htm    2001-08-30 14:54:26.0
is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:26.0
is an instance of software engineering web site2001-08-30 14:54:26.0
action2001-08-30 14:54:26.0
is a kind of subject2001-08-30 14:54:26.0
action symbolis a kind of symbol in state diagram2001-08-30 14:54:26.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:54:26.0
is drawn as a slash and the name of the action2001-08-30 14:54:26.0
is drawn as Enter/action or Exit/action in a box inside a state if the action is to be performed when entering or exiting the state2001-08-30 14:54:26.0
is drawn as event/action If the action is to be performed during a transition2001-08-30 14:54:26.0
action^2has definition Something that takes place effectively instantaneously when a transition occurs in a state diagram, or upon entry or exit from a state2001-08-30 14:54:27.0
has example as sending a message, starting a hardware device or setting a variable2001-08-30 14:54:27.0
is a kind of action2001-08-30 14:54:27.0
is a kind of computation2001-08-30 14:54:27.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:54:27.0
is caused by one of the following situations:2001-08-30 14:54:27.0
occurs instantaneously2001-08-30 14:54:27.0
must be simple because it should take place with no noticeable consumption of time2001-08-30 14:54:27.0
activation boxhas definition A box on a lifeline in a sequence diagram indicating the period of time during which an object is actively performing work2001-08-30 14:54:27.0
is a kind of symbol in sequence diagram2001-08-30 14:54:27.0
is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:54:27.0
is drawn as a rectangle2001-08-30 14:54:27.0
represents an object performing computations2001-08-30 14:54:27.0
activityhas definition Something that occurs over a period of time and takes place while the system is in a state2001-08-30 14:54:27.0
is a kind of computation2001-08-30 14:54:27.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:54:27.0
activity diagramhas advantage it can represent concurrent activities2001-08-30 14:54:27.0
has definition A UML diagram showing sequences of activities, typically for multiple threads2001-08-30 14:54:27.0
has part fork2001-08-30 14:54:27.0
has part join2001-08-30 14:54:27.0
has part rendezvous2001-08-30 14:54:27.0
is a kind of UML diagram2001-08-30 14:54:27.0
is a subtopic of 5.1 - What is UML?2001-08-30 14:54:27.0
is usually associated with several classes2001-08-30 14:54:27.0
shows how systems behave internally2001-08-30 14:54:27.0
shows the partition of activities among the existing classes using swimlanes2001-08-30 14:54:27.0
can represent 2001-08-30 14:54:27.0
activitymust be completed before the system leaves the current state as the result of some transition2001-08-30 14:54:27.0
activity symbolis a kind of symbol in state diagram2001-08-30 14:54:27.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:54:27.0
is drawn as a box within the state, containing the word 'do:' followed by a description of what is to be done2001-08-30 14:54:27.0
actorhas definition A role that a user or some other system plays when interacting with your system; a class of user of a system2001-08-30 14:54:28.0
has goals for using the system, and a given user may have different roles from time to time2001-08-30 14:54:28.0
is a kind of user2001-08-30 14:54:28.0
is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:54:28.0
actor symbolis a kind of symbol in UML diagram2001-08-30 14:54:28.0
is a kind of symbol in use case diagram2001-08-30 14:54:28.0
is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:54:28.0
is drawn as a stick man2001-08-30 14:54:28.0
adapterhas context 2001-08-30 14:54:28.0
has definition A pattern found in class diagrams in which you are able to reuse an 'adaptee' class by providing a class, (the adapter) that delegates to the adaptee2001-08-30 14:54:28.0
has forces You do not have access to multiple inheritance or you do not want to use it.2001-08-30 14:54:28.0
has problem How do you obtain the power of polymorphism when reusing a class whose methods have the same function but do not have the same signature as the other methods in the hierarchy?2001-08-30 14:54:28.0
has references one of the Gang of Four patterns.2001-08-30 14:54:28.0
has related patterns facade, read-only interface, proxy2001-08-30 14:54:28.0
has solution
  1. Rather than directly incorporating the reused class into your inheritance hierarchy, instead incorporate an «Adapter» class.
  2. The «Adapter»is connected by an association to the reused class, which we will call the «Adaptee».
  3. The polymorphic methods of the «Adapter» delegate to methods of the «Adaptee».
  4. The delegate method in the «Adaptee» may or may not have the same name as the delegating polymorphic method.
2001-08-30 14:54:28.0
is a subtopic of 6.8 - The Adapter Pattern2001-08-30 14:54:28.0
is an instance of design pattern2001-08-30 14:54:28.0
adaptive maintenancehas definition A type of maintenance performed to change software so that it will work in an altered environment, such as when an operating system, hardware platform, compiler, software library or database structure changes2001-08-30 14:54:28.0
is a kind of maintenance2001-08-30 14:54:28.0
is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:54:28.0
does not result in new capabilities for the user except the ability to operate the software in the changed environment2001-08-30 14:54:28.0
adaptive projectinvolves changing the system in response to changes in the environment in which the software runs2001-08-30 14:54:28.0
is a kind of evolutionary project2001-08-30 14:54:28.0
is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:54:28.0
adding and deleting links of associationsis complex since there is the need to collaborate with other classes to ensure the bi-directional nature of most associations is maintained properly2001-08-30 14:54:28.0
is a kind of responsibility2001-08-30 14:54:28.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:54:28.0
is often omitted from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:54:28.0
address formathas localization issues
  • You should almost never require a specific format for these items since they differ so widely and can change at any time
  • Allow free-form input of whatever the user wants to type
2001-08-30 14:54:29.0
is a kind of locale-dependent feature2001-08-30 14:54:29.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:29.0
affordancehas definition The set of operations that the user can do in a user interface at any given point in time2001-08-30 14:54:29.0
has example the set of typing into an input field, clicking on a button or selecting an item from a menu2001-08-30 14:54:29.0
is a kind of subject2001-08-30 14:54:29.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:29.0
aggregatehas definition The class on the 'whole' side of an aggregation2001-08-30 14:54:29.0
is a kind of class2001-08-30 14:54:29.0
is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:54:29.0
is a synonym of assembly2001-08-30 14:54:35.0
aggregationhas definition An association, which specifies that instances of one class contain instances of the other class as parts2001-08-30 14:54:29.0
is a kind of association2001-08-30 14:54:29.0
is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:54:29.0
is drawn as a diamond next to the 'whole' end of the association in a UML class diagram2001-08-30 14:54:29.0
represents 'part-whole' relationships2001-08-30 14:54:29.0
can be drawn as a hierarchy but the use of such hierarchies in valid models is quite rare2001-08-30 14:54:29.0
algorithmis a kind of subject2001-08-30 14:54:29.0
is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:54:29.0
algorithm designhas definition The design of computational mechanisms2001-08-30 14:54:29.0
is a kind of design2001-08-30 14:54:29.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:29.0
algorithmic cost estimation modelhas definition An approach to cost estimation such as COCOMO or function points, that use mathematical formulas whose parameters are based on industrial experience2001-08-30 14:54:29.0
has example formula E = a + bNc
where
  • E is the effort estimate
  • N is the estimate or measure being used as the basis for the effort estimate (e.g. number of use cases or lines of code)
  • a, b and c are obtained by extensive analysis of past projects and comparisons with the current project
2001-08-30 14:54:29.0
is a kind of subject2001-08-30 14:54:30.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:54:29.0
provides provide formulas to compute anticipated cost of a project, taking into account various aspects of the project's size and complexity2001-08-30 14:54:30.0
uses formula2001-08-30 14:54:30.0
was developed by looking at a wide range of software development projects2001-08-30 14:54:30.0
All project managementhas URL www.allpm.com    2001-08-30 14:54:30.0
is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:54:30.0
is an instance of web site about project management2001-08-30 14:54:30.0
allowance for maintainability and enhancementdescribes changes that are anticipated for subsequent releases2001-08-30 14:54:30.0
is a kind of non-functional requirement2001-08-30 14:54:30.0
is a subtopic of 4.5 - Types of Requirements2001-08-30 14:54:30.0
allowance for reusabilitydescribes the percentage of the system, measured in lines of code, that must be designed generically so that it can be reused2001-08-30 14:54:30.0
is a kind of non-functional requirement2001-08-30 14:54:30.0
is a subtopic of 4.5 - Types of Requirements2001-08-30 14:54:30.0
alpha testinghas advantage
  • you typically are able to have a much larger volume of testing performed
  • the users use the software in the same manner that they will use it when it is formally released
2001-08-30 14:54:30.0
has definition Testing performed by the user or client, under the supervision of the software development team2001-08-30 14:54:30.0
is a kind of testing performed by users and clients2001-08-30 14:54:30.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:30.0
amount of elapsed timeis a kind of event2001-08-30 14:54:30.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:54:30.0
An Introduction to Object Oriented Programming with Javahas author C. Thomas Wu2001-08-30 14:54:30.0
has ISBN number 0-07-239684-92001-08-30 14:54:30.0
has URL www.drcaffeine.com/    2001-08-30 14:54:30.0
is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:54:30.0
is an instance of book about Java programming2001-08-30 14:54:30.0
was published by McGraw Hill2001-08-30 14:54:30.0
was published in 20002001-08-30 14:54:30.0
An Investigation of the Therac-25 Accidenthas author N.G. Leveson and C.S. Turner2001-08-30 14:54:30.0
has date July 19932001-08-30 14:54:30.0
has publication IEEE Computer, Vol. 26, No. 72001-08-30 14:54:31.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:31.0
is an instance of article about software failures2001-08-30 14:54:31.0
analysisis a kind of process2001-08-30 14:54:31.0
is a subtopic of 2.2 - Classes and Objects2001-08-30 14:54:31.0
animationhas advantages
  • provides high impact communication of complex information
  • entertaining and hence attractive for users
2001-08-30 14:54:31.0
has problems
  • bandwidth-intensive, hence reduces response time
  • sequential, requiring replay
  • viewing consumes the user's time
  • not usable by blind and possibly deaf people
  • expensive to produce
  • may be annoying
2001-08-30 14:54:31.0
is a kind of coding technique2001-08-30 14:54:31.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:31.0
anticipating obsolescenceassumes that changes will inevitably occur in the technology a software system uses and the environment in which it runs2001-08-30 14:54:31.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:31.0
is an instance of design principle2001-08-30 14:54:31.0
means planning for changes in the technology or environment so the software will continue to run or can be easily changed2001-08-30 14:54:31.0
can be accomplished by
  • Avoiding the use of early releases of technology
  • Avoiding the use of software libraries that are specific to particular environments
  • Avoiding the use of undocumented features or little-used features of software libraries
  • Avoiding the use of reusable software or special hardware from smaller companies, or from those that are less likely to provide long-term support
  • Using standard languages and technologies that are supported by multiple vendors
2001-08-30 14:54:31.0
antipatternhas definition A solution to a design problem that is inferior or does not work in this context2001-08-30 14:54:31.0
is a kind of design pattern2001-08-30 14:54:31.0
is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:54:31.0
is part of design pattern2001-08-30 14:54:31.0
Antipatterns: Refactoring Software, Architectures, and Projects in Crisishas author W.H. Brown, R.C. Malveau, H.W. McCormick III, T.J. Mowbray2001-08-30 14:54:31.0
has ISBN number 0-471-19713-02001-08-30 14:54:31.0
is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:54:31.0
is an instance of book about design patterns2001-08-30 14:54:31.0
was published by Wiley2001-08-30 14:54:31.0
was published in 19982001-08-30 14:54:31.0
APIis a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:54:31.0
is an abbreviation for Application Program Interface2001-08-30 14:54:31.0
is an instance of abbreviation2001-08-30 14:54:31.0
applicationhas definition A program used by an end-user, as opposed to one simply used by other programs2001-08-30 14:54:32.0
is a kind of program2001-08-30 14:54:32.0
application frameworkhas definition A framework that provides many of the functions needed by a particular class of applications, and which is designed to be reused in the development of such applications2001-08-30 14:54:32.0
is a synonym of vertical framework2001-08-30 14:54:32.0
Application Program Interfacehas definition The set of procedures or methods through which a layer provides its services2001-08-30 14:54:32.0
has specification that describes the protocol that higher-level layers use to access it, as well as the semantics of each service, including the side effects2001-08-30 14:54:32.0
is a kind of interface^22001-08-30 14:54:32.0
is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:54:32.0
is abbreviated as API2001-08-30 14:54:32.0
applicationtypically uses only a subset of the framework's services2001-08-30 14:54:32.0
Applied Software Architecturehas author Christine Hofmeister, Robert Nord, Dilip Soni2001-08-30 14:54:32.0
has ISBN number 0-201-32571-32001-08-30 14:54:32.0
is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:54:32.0
is an instance of software architecture book2001-08-30 14:54:32.0
was published by Addison-Wesley2001-08-30 14:54:32.0
was published in 19992001-08-30 14:54:32.0
approach to identifying generalizationsis a kind of principle2001-08-30 14:54:32.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:54:32.0
Aptest's software testing linkshas URL www.aptest.com/resources.html    2001-08-30 14:54:32.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:32.0
is an instance of web site about software testing2001-08-30 14:54:32.0
architecthas definition The person responsible for leading the decision-making about the architecture, and maintaining the architectural model2001-08-30 14:54:32.0
is a kind of software developer2001-08-30 14:54:33.0
is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:54:33.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:54:33.0
architectural modelassists with
  • integrating the work of individual people to form the final system
  • planning and co-ordination of the work of developing a complex software system which is distributed among a large number of people
  • planning the evolution of the system, such as subsystems that are envisioned to be part of a future release
2001-08-30 14:54:33.0
contains information about the interfaces and dynamic interactions among the subsystems2001-08-30 14:54:33.0
defines the terms that people use when they communicate with each other about lower-level details2001-08-30 14:54:33.0
has definition The document produced as a result of performing software architecture2001-08-30 14:54:33.0
has purpose 2001-08-30 14:54:33.0
is a kind of document2001-08-30 14:54:33.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:54:33.0
is a synonym of software architecture^32001-08-30 14:57:34.0
shows each system component, encouraging reuse2001-08-30 14:54:33.0
can be used to communicate with customers2001-08-30 14:54:33.0
may be expressed as several different views such as
  • The logical breakdown into subsystems, often shown using package diagrams
  • The dynamics of the interaction among components at run time, expressed using interaction or activity diagrams
  • The data that will be shared among the subsystems, expressed using class diagrams
  • The components that will exist at run time, and the machines or devices on which they will be located, expressed using component and deployment diagrams
2001-08-30 14:54:33.0
must be stable which means that the new features can be easily added with only small changes to the architecture2001-08-30 14:54:33.0
should be generic to ensure reusability2001-08-30 14:54:33.0
architectural modelleris a kind of modeller2001-08-30 14:54:33.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:54:33.0
performs architectural modelling2001-08-30 14:54:33.0
refines architectural model by following these steps iteratively:
  • Sketch an outline of the architecture, based on the principal requirements and use cases. Determine the main components that will be needed, such as databases, particular hardware devices and the main software subsystems
  • Refine the architecture by identifying the main ways in which the components will interact, and by identifying the interfaces between them. Decide how each piece of data and functionality will be distributed among the various components
  • Consider each use case and adjust the architecture to make it realizable
  • Mature the architecture as you define the final class diagrams and interaction diagrams
2001-08-30 14:54:33.0
uses UML diagrams2001-08-30 14:54:33.0
should apply design principles2001-08-30 14:54:33.0
should avoid circular dependencies among packages2001-08-30 14:54:33.0
should make the interface of a package as simple as possible to simplify its use and testing2001-08-30 14:54:33.0
architectural modellingfollows these steps iteratively:
  1. Sketch an outline of the architecture, based on the principal requirements and use cases. Determine the main components that will be needed, such as databases, particular hardware devices and the main software subsystems. Choose architectural patterns.
  2. Refine the architecture by identifying the main ways in which the components will interact, and by identifying the interfaces between them. Decide how each piece of data and functionality will be distributed among the various components. Determine if you can re-use an existing framework.
  3. Consider each use case and adjust the architecture to make it realizable
  4. Mature the architecture as you define the final class diagrams and interaction diagrams
2001-08-30 14:54:33.0
has challenge is to produce a relevant and synthetic picture of a large and complex system2001-08-30 14:54:33.0
is a kind of modelling2001-08-30 14:54:33.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:54:33.0
is performed by architectural modeller2001-08-30 14:54:33.0
uses UML diagrams2001-08-30 14:54:33.0
architectural patternallows you to design flexible systems using components that are as independent of each other as possible2001-08-30 14:54:33.0
has definition A pattern used in software architecture2001-08-30 14:54:33.0
is a kind of pattern2001-08-30 14:54:34.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:33.0
is a synonym of architectural style2001-08-30 14:54:34.0
architectural styleis a synonym of architectural pattern2001-08-30 14:54:34.0
architecture designis a kind of design2001-08-30 14:54:34.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:34.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:54:34.0
is a synonym of software architecture^22001-08-30 14:54:34.0
ArgoUMLhas URL argouml.tigris.org    2001-08-30 14:54:34.0
is an open source shareware project run by Tigris2001-08-30 14:54:34.0
is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:54:34.0
is an instance of tool for drawing UML diagrams2001-08-30 14:54:34.0
ArrayListhas methods set, add and removelink: chapter2section2.8.html#845, 2001-08-30 14:54:34.0
has purpose to allow you to build collections of objects that grow as more objects are addedlink: chapter2section2.8.html#845, 2001-08-30 14:54:34.0
is a subtopic of The Basics of Java2001-08-30 14:54:34.0
is an instance of Java collection class2001-08-30 14:54:34.0
articleis a kind of publication2001-08-30 14:54:34.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:34.0
article about software failuresis a kind of article2001-08-30 14:54:34.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:34.0
ASCIIis a subtopic of The Basics of Java2001-08-30 14:54:34.0
is an instance of coding scheme2001-08-30 14:54:35.0
cannot represent all the symbols used in languages other than Englishlink: chapter2section2.8.html#815, 2001-08-30 14:54:34.0
assemblyis a synonym of aggregate2001-08-30 14:54:35.0
assertionhas definition A statement that must be true; if it becomes false then the software has encountered a failure2001-08-30 14:54:35.0
is a kind of statement2001-08-30 14:54:35.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:35.0
assignment statementhas purpose to assign a value to a variablelink: chapter2section2.8.html#534, 2001-08-30 14:54:35.0
is a kind of statement2001-08-30 14:54:35.0
is a subtopic of The Basics of Java2001-08-30 14:54:35.0
associationdescribes a relationship that will exist between instances at run time2001-08-30 14:54:35.0
has default name "has" if it has neither an association name nor a role name2001-08-30 14:54:35.0
has definition A relationship between two classes that represents the existence of a set of links between objects of the two classes2001-08-30 14:54:35.0
has example class Person in a business application might have the following relationships supervisor (association to class Manager) and tasksToDo (association to class Task)2001-08-30 14:54:35.0
has part association name2001-08-30 14:54:35.0
has part role name2001-08-30 14:54:35.0
is bi-directional unless it has an arrow at one end indicating directionality2001-08-30 14:54:35.0
is legitimate only if its links will survive beyond the execution of any particular operation2001-08-30 14:54:35.0
is a kind of data abstraction2001-08-30 14:54:35.0
is a subtopic of 2.2 - Classes and Objects2001-08-30 14:54:35.0
is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:54:35.0
is drawn as a line, or set of connected lines, between two classes in a UML class diagram2001-08-30 14:54:35.0
is usually implemented using instance variables in Java: you divide each two-way association into two one-way associations - so each associated class has an instance variable2001-08-30 14:54:35.0
normally represents something that will be stored in a database2001-08-30 14:54:35.0
represents all the links between two classes that may ever exist2001-08-30 14:54:35.0
shows how two classes are related to each other2001-08-30 14:54:35.0
can have a label which is an association name or a role name2001-08-30 14:54:35.0
cannot be drawn as a hierarchy2001-08-30 14:54:35.0
association classhas definition A class whose instances are associated with links of a (usually many-to-many) association2001-08-30 14:54:35.0
is a kind of class2001-08-30 14:54:36.0
is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:54:35.0
is attached to an association2001-08-30 14:54:35.0
should be named using a noun that reflects the meaning of the association2001-08-30 14:54:36.0
Association for Computing Machineryhas web site www.acm.org    2001-08-30 14:54:36.0
is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:36.0
is abbreviated as ACM2001-08-30 14:54:36.0
is an instance of organization2001-08-30 14:54:36.0
publishes Communications of the ACM2001-08-30 14:54:36.0
associationmay be implemented in several ways in Java2001-08-30 14:54:35.0
must not be added to a model unless it is relevant to the application - it will be needed to implement some requirement2001-08-30 14:54:35.0
association nameis a verb or verb phrase2001-08-30 14:54:36.0
is a kind of label2001-08-30 14:54:36.0
is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:54:36.0
is placed next to the middle of the association in a UML diagram2001-08-30 14:54:36.0
may have an arrow next to it to indicate the direction in which to read the association2001-08-30 14:54:36.0
associationshould exist if a class possesses, controls, is connected to, is related to, is a part of, has as parts, is a member of, or has as members, some class in your model2001-08-30 14:54:35.0
should have sufficient names to make the association clear and unambiguous2001-08-30 14:54:35.0
association symbolis a kind of symbol in UML diagram2001-08-30 14:54:36.0
is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:54:36.0
assuming a floating point value will be exactly equal to some other valuehas testing strategy standard boundary testing2001-08-30 14:54:36.0
is a kind of defect in a numerical algorithm2001-08-30 14:54:36.0
is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:54:36.0
asymmetric reflexive associationhas definition A reflexive association in which the roles at either end are different.2001-08-30 14:54:36.0
is a kind of reflexive association2001-08-30 14:54:36.0
is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:54:36.0
should be labelled using role names instead of an association name2001-08-30 14:54:36.0
atomicityhas definition A property of a transaction that ensures it is completed entirely, or not at all2001-08-30 14:54:36.0
is a kind of quality2001-08-30 14:54:36.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:36.0
attributehas definition A simple data item present in all the instances of a class2001-08-30 14:54:36.0
is a kind of data abstraction2001-08-30 14:54:37.0
is a kind of variable2001-08-30 14:54:37.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:36.0
is implemented as an instance variable in Java2001-08-30 14:54:37.0
is used in the analysis and design stage before it is known how the attribute will be implemented2001-08-30 14:54:37.0
represents the properties of an object2001-08-30 14:54:37.0
can be identified by looking at the description of the system and searching for information that must be maintained about each class2001-08-30 14:54:36.0
must not be added to a model unless it is relevant to the application - it will be needed to implement some requirement2001-08-30 14:54:37.0
must not have a plural name2001-08-30 14:54:37.0
should be a simple variable - typically an integer or string, or a one-to-one composition2001-08-30 14:54:37.0
should be private2001-08-30 14:54:37.0
should not have an implicit internal structure2001-08-30 14:54:37.0
should not normally represent a variable number of things2001-08-30 14:54:37.0
should only be accessed through public methods so that attributes are only given valid values and so that you can change the internal design of the class without affecting how users of the class interact with it2001-08-30 14:54:37.0
attribute symbolis a kind of symbol in UML diagram2001-08-30 14:54:37.0
is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:54:37.0
attribute^2has definition A detail in the requirements of a system2001-08-30 14:54:37.0
is a kind of subject2001-08-30 14:54:37.0
is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:54:37.0
can be found by circling all the important points in the requirements document2001-08-30 14:54:37.0
can be thought of as something that is testable2001-08-30 14:54:37.0
availabilityhas definition A quality that measures the amount of time that a system is running and able to provide services to its users2001-08-30 14:54:37.0
is a kind of measurement2001-08-30 14:54:37.0
is a kind of non-functional requirement2001-08-30 14:54:37.0
is a subtopic of 4.5 - Types of Requirements2001-08-30 14:54:37.0
measures the amount of time that a server is running and available to respond to users2001-08-30 14:54:37.0
average software projectexceeds its budget by 90% and its schedule by 120% according to the Standish Group    2001-08-30 14:54:37.0
is a kind of software project2001-08-30 14:54:37.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:54:37.0
is canceled before completion 30% of the time according to the Standish Group    2001-08-30 14:54:37.0
AWT componentis simpler than Java Beans or Swing components but more limited2001-08-30 14:54:37.0
is a kind of Java user interface component2001-08-30 14:54:38.0
is a subtopic of 7.7 - Implementing a Simple GUI in Java2001-08-30 14:54:37.0
bad project managementcauses the average software projects to exceed its budge by 90% and its schedule by 120%2001-08-30 14:54:38.0
is a kind of project management2001-08-30 14:54:38.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:54:38.0
bad softwareis difficult to understand and modify2001-08-30 14:54:38.0
is poorly designed2001-08-30 14:54:38.0
is a kind of software2001-08-30 14:54:38.0
is a subtopic of 1.1 - The Nature of Software2001-08-30 14:54:38.0
can be easily created by an inadequately trained software developer2001-08-30 14:54:38.0
may partly work2001-08-30 14:54:38.0
base classis the name for superclass in C++2001-08-30 14:54:38.0
is a kind of class2001-08-30 14:54:38.0
is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:54:38.0
is a synonym of superclass2001-08-30 14:54:38.0
beginning useris a kind of user2001-08-30 14:54:38.0
is a kind of user2001-08-30 14:54:38.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:38.0
perceives that a system is easier to learn if the complex features are hidden from them initially by having separate 'beginner' and 'expert' interfaces2001-08-30 14:54:38.0
behaviourhas definition The way an object or system acts and reacts, possibly changing its state2001-08-30 14:54:38.0
is a kind of subject2001-08-30 14:54:38.0
is a subtopic of 2.2 - Classes and Objects2001-08-30 14:54:38.0
benefitis a kind of subject2001-08-30 14:54:39.0
is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:54:39.0
beta testerbenefits by using the features of the software before others have access to them2001-08-30 14:54:39.0
has definition A person performing beta testing2001-08-30 14:54:39.0
is a kind of tester2001-08-30 14:54:39.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:39.0
is given a pre-release version of the software2001-08-30 14:54:39.0
is recruited from the potential user population of a product2001-08-30 14:54:39.0
knows that the software will contain more defects than the final version2001-08-30 14:54:39.0
reports problems when he or she discovers them2001-08-30 14:54:39.0
beta testinghas advantage
  • you typically are able to have a much larger volume of testing performed
  • the users use the software in the same manner that they will use it when it is formally released
2001-08-30 14:54:39.0
has definition Testing performed by the user or client in a normal work environment2001-08-30 14:54:39.0
is a kind of testing performed by users and clients2001-08-30 14:54:39.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:39.0
Beyond the Teamhas author R.M. Belbin2001-08-30 14:54:39.0
has ISBN number 0-585-23086-22001-08-30 14:54:39.0
has URL www.netlibrary.com/summary.asp?id=34027    2001-08-30 14:54:39.0
is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:54:39.0
is an instance of book about project management2001-08-30 14:54:39.0
was published by Butterworth-Heinermann2001-08-30 14:54:39.0
was published in 20002001-08-30 14:54:39.0
big bang testinghas definition An inappropriate approach to integration testing in which you take the entire integrated system and test it as a unit2001-08-30 14:54:39.0
is a kind of integration testing2001-08-30 14:54:39.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:39.0
can work well on small systems2001-08-30 14:54:39.0
may not work well on larger systems because it may be hard to tell in which subsystem the defect lies when a failure occurs2001-08-30 14:54:39.0
black-box testerhas definition A person performing black-box testing2001-08-30 14:54:39.0
is a kind of tester2001-08-30 14:54:40.0
is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:54:39.0
observes outputs from the system2001-08-30 14:54:40.0
performs black-box testing2001-08-30 14:54:40.0
provides inputs to the system2001-08-30 14:54:40.0
does not see the source code, the internal data, nor any of the design documentation describing the system's internals2001-08-30 14:54:39.0
black-box testinghas definition A form of testing in which you manipulate inputs and observe outputs, but cannot observe the internals of the entity being tested2001-08-30 14:54:40.0
involves providing the system with inputs and observing the outputs, without seeing what is going on inside2001-08-30 14:54:40.0
is less time consuming than glass-box testing2001-08-30 14:54:40.0
is a kind of testing2001-08-30 14:54:40.0
is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:54:40.0
blind useris a kind of user with a disability2001-08-30 14:54:40.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:40.0
needs a program that converts text to Braille or speech2001-08-30 14:54:40.0
blockis a kind of programming language construct2001-08-30 14:54:40.0
is a subtopic of The Basics of Java2001-08-30 14:54:40.0
Blue Dawn Corporation: Software Testing Linkshas URL www.bluedawncomp.com/stlinks.htm    2001-08-30 14:54:40.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:40.0
is an instance of web site about software testing2001-08-30 14:54:40.0
bookhas author2001-08-30 14:54:40.0
has ISBN number2001-08-30 14:54:40.0
is a kind of publication2001-08-30 14:54:40.0
was published by publisher2001-08-30 14:54:40.0
was published in2001-08-30 14:54:40.0
book about design patternsis a kind of book2001-08-30 14:54:40.0
is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:54:40.0
book about frameworksis a kind of book2001-08-30 14:54:40.0
is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:54:40.0
book about Java programmingis a kind of book about programming2001-08-30 14:54:41.0
is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:54:40.0
book about modelling interactions and behaviouris a kind of book2001-08-30 14:54:41.0
book about networkingis a kind of book2001-08-30 14:54:41.0
is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:54:41.0
book about object oriented development processesis a kind of book2001-08-30 14:54:41.0
is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:54:41.0
book about process standardsis a kind of book2001-08-30 14:54:41.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:41.0
book about programmingis a kind of book2001-08-30 14:54:41.0
book about project managementis a kind of book2001-08-30 14:54:41.0
is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:54:41.0
book about requirements analysisis a kind of book2001-08-30 14:54:41.0
is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:54:41.0
book about software inspectionis a kind of book2001-08-30 14:54:41.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:41.0
book about software quality assuranceis a kind of book2001-08-30 14:54:41.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:41.0
book about software reuseis a kind of book2001-08-30 14:54:41.0
is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:54:41.0
book about software testingis a kind of book2001-08-30 14:54:41.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:41.0
book about UMLis a kind of book2001-08-30 14:54:41.0
is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:54:41.0
book about user interfaces and usabilityis a kind of book2001-08-30 14:54:41.0
is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:54:41.0
booleanis a subtopic of The Basics of Java2001-08-30 14:54:41.0
is an instance of Java primitive data type2001-08-30 14:54:42.0
see also Boolean class2001-08-30 14:54:42.0
see also boolean^22001-08-30 14:54:42.0
can use == operatorlink: chapter2section2.8.html#604, 2001-08-30 14:54:41.0
Boolean classis a subtopic of The Basics of Java2001-08-30 14:54:42.0
is an instance of Java wrapper class2001-08-30 14:54:42.0
see also boolean2001-08-30 14:54:42.0
boolean^2is a subtopic of The Basics of Java2001-08-30 14:54:42.0
is an instance of Java keyword2001-08-30 14:54:42.0
see also boolean2001-08-30 14:54:42.0
Borland JBuilderhas URL www.borland.com/    2001-08-30 14:54:42.0
is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:54:42.0
is an instance of programming environment2001-08-30 14:54:42.0
bottom-up approach to identifying generalizationsgroups similar classes creating a new superclass2001-08-30 14:54:42.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:54:42.0
is an instance of approach to identifying generalizations2001-08-30 14:54:42.0
is an instance of bottom-up design2001-08-30 14:54:42.0
bottom-up designhas advantage normally useful so that reusable components can be created; these can then be used in several places in the overall system2001-08-30 14:54:42.0
has definition An approach to design in which you start by designing the low-level details such as the utilities, and then decide how these will be put together to create successively higher-level components, and ultimately the entire system2001-08-30 14:54:42.0
is a kind of design2001-08-30 14:54:42.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:42.0
bottom-up testinghas definition A incremental testing strategy in which you start by testing the very lowest levels of the software using drivers, and then work upwards, as you integrate successive layers2001-08-30 14:54:42.0
has disadvantage the cost of writing the drivers2001-08-30 14:54:42.0
has procedure start by testing the very lowest levels of the software using a driver2001-08-30 14:54:42.0
is a kind of vertical incremental testing2001-08-30 14:54:42.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:42.0
boundary testinghas definition A testing strategy based on testing at the boundaries of equivalence classes - since this is where most errors occur2001-08-30 14:54:42.0
is a kind of testing2001-08-30 14:54:43.0
is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:54:43.0
Brad Appleton's description of patternshas URL www.enteract.com/~bradapp/docs/patterns-intro.html    2001-08-30 14:54:43.0
is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:54:43.0
is an instance of web site about design patterns2001-08-30 14:54:43.0
brainstorminghas advantages
  • in a group session people are energized and tend to spontaneously invent many good ideas, stimulated by what others have said
  • introverted or timid people can have their say effectively since anonymity can be assured
2001-08-30 14:54:43.0
has definition The process of obtaining ideas, opinions, and answers to a question in a group environment in which all members of the group are given the opportunity to contribute2001-08-30 14:54:43.0
has procedure
  1. Call a meeting with representation from all stakeholders
  2. Appoint an experienced moderator
  3. Arrange the attendees around the periphery of a table and give them plenty of paper to work with
  4. Decide on a trigger question
  5. Ask each participant to follow these instructions:
    1. Think of an answer to the trigger question
    2. Write the answer down in one or two lines on a sheet of paper, one idea per sheet
    3. Pass the paper to the neighbour on your left to stimulate their thoughts
    4. Look at the answers passed from your neighbour to the right and pass these on to your left as well. Use the ideas you have read to stimulate your own ideas
    5. Continue step 5 until ideas stop flowing or a fixed time (5-15 minutes) passes
    6. Ask everybody to read out one of the ideas on the sheets that happens to be in front of them. The moderator writes the each idea on a flip chart
    7. Take a series of votes to prioritize the ideas
2001-08-30 14:54:43.0
has purpose to gather information from a group of people2001-08-30 14:54:43.0
is a kind of requirements gathering2001-08-30 14:54:43.0
is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:54:43.0
is related to Joint Application Development2001-08-30 14:54:43.0
uses a moderator (or facilitator) to lead the session2001-08-30 14:54:43.0
can help resolve conflicts over requirements2001-08-30 14:54:43.0
should be done with five to 20 people2001-08-30 14:54:43.0
breakis a subtopic of The Basics of Java2001-08-30 14:54:43.0
is an instance of Java keyword2001-08-30 14:54:43.0
Bredemeyer's resources for software architectshas URL www.bredemeyer.com    2001-08-30 14:54:43.0
is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:54:43.0
is an instance of web site about software architecture2001-08-30 14:54:43.0
British Standard 7925covers Software Testing2001-08-30 14:54:43.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:43.0
is an instance of quality assurance and testing standard2001-08-30 14:54:44.0
brokerallows an object to call methods of another object without knowing that this object is remotely located2001-08-30 14:54:44.0
distributes aspects of the software system to different nodes2001-08-30 14:54:44.0
facilitates divide and conquer since the remote objects can be independently designed2001-08-30 14:54:44.0
has definition An architectural pattern in which parts of the system are transparently distributed to different nodes of a network2001-08-30 14:54:44.0
increases cohesion because the remote objects have strong communicational cohesion2001-08-30 14:54:44.0
increases reusability because it is often possible to design the remote objects so that other systems can use them too2001-08-30 14:54:44.0
increases reuse because you may be able to reuse remote objects that others have created2001-08-30 14:54:44.0
is a kind of architectural pattern2001-08-30 14:54:44.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:44.0
brute forceis pointless because any given defect is likely to cause failures with many different input values2001-08-30 14:54:44.0
is a kind of testing strategy2001-08-30 14:54:44.0
is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:54:44.0
takes such a huge amount of time so as to be impractical2001-08-30 14:54:44.0
tests a method using every possible value2001-08-30 14:54:44.0
budgeted cost of work performedis a synonym of earned value2001-08-30 14:54:44.0
bughas definition A colloquial term for defect or failure2001-08-30 14:54:44.0
is a synonym of defect2001-08-30 14:54:44.0
is a synonym of failure2001-08-30 14:54:44.0
buildhas definition The process of compiling and integrating all the components of the software, incorporating any changes since the last build2001-08-30 14:54:44.0
involves compiling and integrating all the components of the software, incorporating any changes since the last time this was done2001-08-30 14:54:44.0
is a kind of process2001-08-30 14:54:44.0
is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:54:44.0
may be done on a daily or weekly basis2001-08-30 14:54:45.0
burdened costis a synonym of weighted average cost2001-08-30 14:54:45.0
Business Modelling with UML: Business Patterns at Workhas author H-E. Eriksson and M. Penker2001-08-30 14:54:45.0
has ISBN number ISBN 0-471-29551-52001-08-30 14:54:45.0
is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:54:45.0
is an instance of book about design patterns2001-08-30 14:54:45.0
was published by Wiley2001-08-30 14:54:45.0
was published in 20002001-08-30 14:54:45.0
business processhas definition A process performed by people in an organization2001-08-30 14:54:45.0
is a kind of process2001-08-30 14:54:45.0
is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:54:45.0
business process changehas definition A change to the way a business does things2001-08-30 14:54:45.0
is common2001-08-30 14:54:45.0
is a kind of change2001-08-30 14:54:45.0
is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:54:45.0
may be prompted by a desire to better compete in the market, experience, decisions to use alternative approaches, changes in laws, as well as growth or rearrangement of the company2001-08-30 14:54:45.0
may force changes in a requirement2001-08-30 14:54:45.0
business processmay be automated by software system2001-08-30 14:54:45.0
buttonaffords clicking if clicking on it would cause some action to occur.2001-08-30 14:54:45.0
is a kind of user interface component2001-08-30 14:54:45.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:45.0
byteis a subtopic of The Basics of Java2001-08-30 14:54:45.0
is an instance of Java primitive data type2001-08-30 14:54:45.0
requires 8 bitslink: chapter2section2.8.html#566, 2001-08-30 14:54:45.0
see also Byte classlink: chapter2section2.8.html#615, 2001-08-30 14:54:45.0
see also byte^22001-08-30 14:54:45.0
can use basic arithmetic operators +, -, *, / and %link: chapter2section2.8.html#578, 2001-08-30 14:54:45.0
Byte classis a subtopic of The Basics of Java2001-08-30 14:54:46.0
is an instance of Java wrapper class2001-08-30 14:54:46.0
see also bytelink: chapter2section2.8.html#615, 2001-08-30 14:54:46.0
byteshould not be used for textual data which is to be exposed to the end userlink: chapter2section2.8.html#820, 2001-08-30 14:54:45.0
byte^2is a subtopic of The Basics of Java2001-08-30 14:54:46.0
is an instance of Java keyword2001-08-30 14:54:46.0
see also byte2001-08-30 14:54:46.0
bytecodeis like a universal machine languagelink: chapter2section2.8.html#508, 2001-08-30 14:54:46.0
is a kind of code2001-08-30 14:54:46.0
is a subtopic of The Basics of Java2001-08-30 14:54:46.0
is not designed to be read by human beingslink: chapter2section2.8.html#508, 2001-08-30 14:54:46.0
can run on any computer that has an interpreter called a virtual machinelink: chapter2section2.8.html#509, 2001-08-30 14:54:46.0
C compilercompiles source code into machine codelink: chapter2section2.8.html#521, 2001-08-30 14:54:46.0
is a kind of compiler2001-08-30 14:54:46.0
is a subtopic of The Basics of Java2001-08-30 14:54:46.0
C fileis a kind of C module2001-08-30 14:54:46.0
is a kind of file2001-08-30 14:54:46.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:46.0
C functionis a kind of C module2001-08-30 14:54:46.0
is a kind of function2001-08-30 14:54:46.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:46.0
C moduleis a kind of module2001-08-30 14:54:46.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:46.0
C++adds object oriented extensions to C2001-08-30 14:54:46.0
has much the same syntax as Clink: chapter2section2.8.html#500, 2001-08-30 14:54:46.0
has disadvantages
  • its syntax is quite complex
  • it is too easy to create code that has bugs
  • large C++ programs have thus been found to be hard to maintain - they deteriorate rapidly as many programmers make changes
2001-08-30 14:54:47.0
has feature macroslink: chapter2section2.8.html#514, 2001-08-30 14:54:47.0
has feature multiple inheritancelink: chapter2section2.8.html#492, 2001-08-30 14:54:47.0
has feature operator overloadinglink: chapter2section2.8.html#514, 2001-08-30 14:54:47.0
has feature pointer arithmeticlink: chapter2section2.8.html#514, 2001-08-30 14:54:47.0
is the most widely used object oriented language2001-08-30 14:54:47.0
is a subtopic of The Basics of Java2001-08-30 14:54:47.0
is an instance of object oriented language2001-08-30 14:54:47.0
was developed by Bjarne Stroustrup2001-08-30 14:54:47.0
C++ compilercompiles source code into machine codelink: chapter2section2.8.html#521, 2001-08-30 14:54:47.0
is a kind of compiler2001-08-30 14:54:47.0
is a subtopic of The Basics of Java2001-08-30 14:54:47.0
C++ source codeis a kind of source code2001-08-30 14:54:47.0
is a subtopic of The Basics of Java2001-08-30 14:54:47.0
may be placed outside a classlink: chapter2section2.8.html#757, 2001-08-30 14:54:47.0
Cadillac systemhas definition A system that does more than is needed2001-08-30 14:54:47.0
is a kind of software system2001-08-30 14:54:47.0
is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:54:47.0
calendarhas localization issues
  • although international business is based on the Gregorian calendar, the calendars of certain cultures and religions are also used in some places
2001-08-30 14:54:47.0
is a kind of locale-dependent feature2001-08-30 14:54:47.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:47.0
Calendar classallows for the use of calendars of specific cultures2001-08-30 14:54:47.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:47.0
is an instance of Java class2001-08-30 14:54:47.0
can-be-seen-as relationcharacterizes the relation between the implementing class and the interface2001-08-30 14:54:48.0
has example classes representing bank employees and automatic teller machines - both can be seen as a sort of cashier2001-08-30 14:54:48.0
is a kind of relation2001-08-30 14:54:48.0
is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:54:48.0
caseis a subtopic of The Basics of Java2001-08-30 14:54:48.0
is an instance of Java keyword2001-08-30 14:54:48.0
castinghas example
(String)i.next()
link: chapter2section2.8.html#870, 2001-08-30 14:54:48.0
has purpose to convert an instance of one data type into another which is a subclass of the original type2001-08-30 14:54:48.0
is a kind of process2001-08-30 14:54:48.0
is a subtopic of The Basics of Java2001-08-30 14:54:48.0
catalog of reusable componentscontains information about reusable components2001-08-30 14:54:48.0
is a kind of document2001-08-30 14:54:48.0
is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:54:48.0
must be easy to search2001-08-30 14:54:48.0
must be kept up-to-date2001-08-30 14:54:48.0
must deprecate older components that have been found to be unreliable or have been superseded by better components2001-08-30 14:54:48.0
catchis a subtopic of The Basics of Java2001-08-30 14:54:48.0
is an instance of Java keyword2001-08-30 14:54:48.0
Cetus Links on UMLhas URL www.cetus-links.org/oo_uml.html    2001-08-30 14:54:48.0
is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:54:48.0
is an instance of web site about UML2001-08-30 14:54:49.0
changeis a kind of subject2001-08-30 14:54:49.0
is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:54:49.0
change to requirementshas unpredictable rate2001-08-30 14:54:49.0
is a kind of change2001-08-30 14:54:49.0
is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:54:49.0
can be rapid2001-08-30 14:54:49.0
can cause requirements creep2001-08-30 14:54:49.0
can result in a deteriorating design if the original design did adequately anticipate the changes2001-08-30 14:54:49.0
can result in completed work being wasted2001-08-30 14:54:49.0
should not make the system bigger2001-08-30 14:54:49.0
should only be made if benefits exceed the costs2001-08-30 14:54:49.0
Chapter 1 - Software and Software Engineeringis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 10 - Testing and Inspecting to Ensure High Qualityis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 11 - Managing the Software Processis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 2 - Review of Object Orientationis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 3 - Basing Software Development on Reusable Technologyis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 4 - Developing Requirementsis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 5 - Modelling With Classesis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 6 - Using Design Patternsis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 7 - Focusing on Users and Their Tasksis a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 8 - Modelling Interactions and Behaviouris a subtopic of kbTop2001-08-30 14:54:49.0
Chapter 9 - Architecting and designing softwareis a subtopic of kbTop2001-08-30 14:54:49.0
charis a subtopic of The Basics of Java2001-08-30 14:54:49.0
is an instance of Java primitive data type2001-08-30 14:54:49.0
see also char^22001-08-30 14:54:49.0
see also Character2001-08-30 14:54:49.0
can use basic arithmetic operators +, -, *, / and %link: chapter2section2.8.html#578, 2001-08-30 14:54:49.0
char^2is a subtopic of The Basics of Java2001-08-30 14:54:49.0
is an instance of Java keyword2001-08-30 14:54:49.0
see also char2001-08-30 14:54:49.0
Characteris a subtopic of The Basics of Java2001-08-30 14:54:50.0
is an instance of Java wrapper class2001-08-30 14:54:50.0
see also char2001-08-30 14:54:50.0
character sethas localization issues
  • Unicode can handle most world character sets, but you also have to ensure that appropriate fonts are available
2001-08-30 14:54:50.0
is a kind of locale-dependent feature2001-08-30 14:54:50.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:50.0
Chartered Engineerhas definition A term used in the United Kingdom, and certain other jurisdictions, that is equivalent to professional engineer2001-08-30 14:54:50.0
is a kind of engineer2001-08-30 14:54:50.0
is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:54:50.0
chemical engineeringis a kind of engineering2001-08-30 14:54:50.0
is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:54:50.0
chief programmer teamadvocates that the chief programmer leads and guides the project; however he consults with, and relies on, individual specialists2001-08-30 14:54:50.0
has definition A team structure midway between a hierarchical team and an egoless team, in which a chief programmer leads and guides the project, in consultation with experts in various specialties2001-08-30 14:54:50.0
is like a surgical team2001-08-30 14:54:50.0
is a kind of software engineering team model2001-08-30 14:54:50.0
is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:54:50.0
civil engineeringis a kind of engineering2001-08-30 14:54:50.0
is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:54:50.0
classcontains all of the code that relates to its objects including
  • code describing how the objects of the class are structured - i.e. the data stored in each object that implement the properties
  • The procedures, called methods, that implement the behaviour of the objects
2001-08-30 14:54:50.0
contains data associated with each object2001-08-30 14:54:50.0
declares a list of variables, called instance variables, corresponding to data that will be present in each instance2001-08-30 14:54:50.0
has definition A software module that provides both procedural and data abstraction. It describes a set of similar objects, called its instances2001-08-30 14:54:50.0
has part class name2001-08-30 14:54:50.0
has part class variable2001-08-30 14:54:50.0
has part code2001-08-30 14:54:50.0
has part constructorlink: chapter2section2.8.html#761, 2001-08-30 14:54:50.0
has part instance variable2001-08-30 14:54:50.0
has part method2001-08-30 14:54:51.0
has part variables2001-08-30 14:54:51.0
is an abstract representation of all the instances of that class that may ever exist2001-08-30 14:54:51.0
is probably useless if it has no responsibilities attached to it2001-08-30 14:54:51.0
is the unit of data abstraction in an object-oriented program2001-08-30 14:54:51.0
is a kind of data abstraction2001-08-30 14:54:51.0
is a kind of programming language construct2001-08-30 14:54:51.0
is a subtopic of 2.2 - Classes and Objects2001-08-30 14:54:51.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:51.0
is divided up into methods2001-08-30 14:54:51.0
is drawn as a box with the name of the class inside in a UML class diagram2001-08-30 14:54:51.0
is needed in a domain model if you have to store or manipulate instances of it in order to implement a requirement2001-08-30 14:54:51.0
represents several similar objects2001-08-30 14:54:51.0
see also class^22001-08-30 14:54:51.0
can have instances2001-08-30 14:54:50.0
class designhas definition The design of the various features of classes such as associations, attributes, interactions and states2001-08-30 14:54:51.0
is a kind of design2001-08-30 14:54:51.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:54:51.0
class diagramdescribes the data found in a software system2001-08-30 14:54:51.0
has definition A UML diagram that primarily indicates classes and the associations between those classes2001-08-30 14:54:51.0
has part OCL statement in a class diagram2001-08-30 14:54:51.0
is an important tool for requirements analysis and design of object oriented software systems2001-08-30 14:54:51.0
is a kind of UML diagram2001-08-30 14:54:51.0
is a subtopic of 5.1 - What is UML?2001-08-30 14:54:51.0
shows the services offered by components and the main data to be stored2001-08-30 14:54:51.0
can contain symbols for classes, associations, attributes, operations, generalizations2001-08-30 14:54:51.0
can generate an infinite number of instance diagrams2001-08-30 14:54:51.0
may show attributes and operations contained in each class by dividing a class box into three smaller boxes: the top box contains the class name, the middle box lists the attributes, and the bottom box lists operations.2001-08-30 14:54:51.0
may show that a class has no attributes or operations by showing an empty box2001-08-30 14:54:51.0
class methodhas definition A method that, unlike an instance method, does not execute in the context of a particular instance of a class2001-08-30 14:54:51.0
has purpose implementing functions such as initializing a class, or operating on the complete set of instances of a class2001-08-30 14:54:51.0
is a kind of method2001-08-30 14:54:52.0
is a subtopic of The Basics of Java2001-08-30 14:54:51.0
is a synonym of static method2001-08-30 14:57:47.0
should not be overused2001-08-30 14:54:52.0
class nameis a kind of name2001-08-30 14:54:52.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:54:52.0
is written in the singular by convention2001-08-30 14:54:52.0
can be chosen from nouns or noun phrases in source material unless they are
  1. redundant
  2. represent instances
  3. are vague or general
  4. correspond to classes that are not needed for this application or this type of model
2001-08-30 14:54:52.0
should be a noun by convention2001-08-30 14:54:52.0
should not be too general or too specific2001-08-30 14:54:52.0
classshould be created to hold a responsibility if the responsibility cannot be attributed to any of the existing classes2001-08-30 14:54:51.0
should be named after things their instances represent in the real world2001-08-30 14:54:51.0
should have a comment at the top describing the purpose of the class, how it should be used, its authors and its history of modification2001-08-30 14:54:51.0
should not be named after the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information'2001-08-30 14:54:51.0
class symbolis a kind of symbol in UML diagram2001-08-30 14:54:52.0
is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:54:52.0
class variablehas a value that is shared by all instances of a class2001-08-30 14:54:52.0
has definition A data item present in a class that is shared by all instances of that class2001-08-30 14:54:52.0
has purpose storing:
  • Default or 'constant' values that are widely used by methods in a class
  • Lookup tables and similar structures used by algorithms inside a particular class
2001-08-30 14:54:52.0
is a kind of variable2001-08-30 14:54:52.0
is a subtopic of The Basics of Java2001-08-30 14:54:52.0
is a synonym of static variable2001-08-30 14:57:47.0
is shared by all instances of the class2001-08-30 14:54:52.0
should not be overused2001-08-30 14:54:52.0
class^2is a subtopic of The Basics of Java2001-08-30 14:54:52.0
is an instance of Java keyword2001-08-30 14:54:52.0
see also class2001-08-30 14:54:52.0
Classical and Object Oriented Software Engineering, with UML and C++/Javahas author S. Schach2001-08-30 14:54:52.0
has ISBN number 0-07-230226-72001-08-30 14:54:52.0
has web site www.mhhe.com/engcs/compsci/schach/    2001-08-30 14:54:52.0
is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:52.0
is an instance of software engineering book2001-08-30 14:54:52.0
was published by McGraw Hill2001-08-30 14:54:52.0
was published in 19992001-08-30 14:54:52.0
clicking a buttonis a kind of command2001-08-30 14:54:52.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:52.0
clientis a synonym of customer2001-08-30 14:54:52.0
see also client2001-08-30 14:54:52.0
client-server architecturehas advantages
  • The computational work can be distributed among different machines
  • The clients can access the server's functionality from a distance
  • The client and server can be designed separately, so they can both be simpler than a program that does everything
  • All the data can be kept centrally at the server, thus making it easier to assure its reliability
  • Conversely, distributing data among many different geographically-distributed clients or servers can mean that if a disaster occurs in one place, the loss of data is minimized
  • The server can be accessed simultaneously by many clients
  • Competing clients can be written to communicate with the same server, and vice-versa
2001-08-30 14:54:53.0
has alternatives
  • Have a single program on one computer that does everything
  • Avoid having any communication and have each computer perform the work separately
  • Have some mechanism other than client-server communication for exchanging information
2001-08-30 14:54:53.0
has definition An architectural pattern in which the system is divided into clients and servers2001-08-30 14:54:53.0
is one of the most widely used ways of structuring software systems2001-08-30 14:54:53.0
is a kind of distributed architecture2001-08-30 14:54:53.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:54:53.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:53.0
client-server architecture in Webopediahas URL webopedia.internet.com/TERM/c/client_server_architecture.html    2001-08-30 14:54:53.0
is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:54:53.0
is an instance of web site about the client-server architecture2001-08-30 14:54:53.0
client-server newsgrouphas address news:comp.client-server2001-08-30 14:54:53.0
is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:54:53.0
is an instance of newsgroup2001-08-30 14:54:53.0
client-server systemgenerally uses multiple threads of control that can be concurrently executed to implement concurrent operations, otherwise when the client is waiting for one kind of input, it will not be able to respond to the other kind of input2001-08-30 14:54:53.0
has interaction
  1. The server starts running
  2. The server listens for clients wanting to connect
  3. Clients start running and perform various operations, some of which require connecting to the server to request a service
  4. When a client attempts to connect, the server accepts the connection if it is willing
  5. The server waits for messages to arrive from connected clients
  6. When a message from a client arrives, the server takes some action in response, such as sending a message back to the client, then resumes waiting
  7. Clients and servers continue functioning in this manner until one of them decides to shut down
2001-08-30 14:54:53.0
has problem developers of clients are frequently forced to upgrade their clients whenever the server is changed if clients and servers are developed by different organizations2001-08-30 14:54:54.0
involves at least one server and one client2001-08-30 14:54:54.0
is inherently concurrent because the server runs concurrently with the clients, normally (but not necessarily) on different computers2001-08-30 14:54:54.0
is prone to security violations, due to the fact that information is transmitted over a network2001-08-30 14:54:54.0
is vulnerable to interruptions in communication or denial-of-service attacks2001-08-30 14:54:54.0
is a kind of distributed system2001-08-30 14:54:54.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:54:54.0
should be forward-compatible and backward-compatible with other versions of clients and servers by designing the client-server protocols to be very general and flexible2001-08-30 14:54:54.0
should incorporate encryption, firewalls and similar methods of ensuring security2001-08-30 14:54:54.0
client^2does concurrently
  • Waiting for interactions with the end-user, and responding when interactions occur
  • Waiting for messages coming from the server, and responding when messages arrive
2001-08-30 14:54:52.0
handles the disconnection of the server, because the server crashed or the network failed or because either the client or server requested disconnection2001-08-30 14:54:52.0
has definition A program or process that connects to another program or process, using a communication channel, in order to request a service2001-08-30 14:54:52.0
initializes itself so it is able to communicate with the server2001-08-30 14:54:53.0
initiates a connection to a server2001-08-30 14:54:53.0
is a kind of process^22001-08-30 14:54:53.0
is a kind of program2001-08-30 14:54:53.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:54:53.0
reacts to messages coming from the server2001-08-30 14:54:53.0
see also client^22001-08-30 14:54:53.0
sends messages to the server to request services2001-08-30 14:54:53.0
terminates cleanly including includes disconnecting from a server if it is still connected2001-08-30 14:54:53.0
can also be a server at the same time2001-08-30 14:54:52.0
cannot connect with a server unless the server is listening2001-08-30 14:54:52.0
may access many servers to perform different functions2001-08-30 14:54:53.0
may be located on the same computer as its server or on a different computer2001-08-30 14:54:53.0
may try again to connect to the server if the server does not initially respond2001-08-30 14:54:53.0
must know the network address of the server2001-08-30 14:54:53.0
cloninghas definition The practice of duplicating chunks of code; considered bad practice except when copying just one or two lines of code2001-08-30 14:54:54.0
is a synonym of duplication of code2001-08-30 14:54:54.0
CMMis a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:54:54.0
is an abbreviation for Software Capability Maturity Model2001-08-30 14:54:54.0
is an instance of abbreviation2001-08-30 14:54:54.0
CMM in Practice: Processes for Executing Software Projects at Infosyshas author P. Jalote2001-08-30 14:54:54.0
has ISBN number 0-201-61626-22001-08-30 14:54:54.0
is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:54:54.0
is an instance of book about process standards2001-08-30 14:54:54.0
was published by Addison-Wesley2001-08-30 14:54:54.0
was published in 19992001-08-30 14:54:54.0
COCOMOis a subtopic of 11.3 - Cost Estimation2001-08-30 14:54:55.0
is an abbreviation for Constructive Cost Model2001-08-30 14:54:54.0
is an instance of abbreviation2001-08-30 14:54:55.0
codeis a kind of representation2001-08-30 14:54:55.0
code layout principleis a kind of principle2001-08-30 14:54:55.0
is a subtopic of Programming Style Guidelines2001-08-30 14:54:55.0
can be found at Sun    2001-08-30 14:54:55.0
coderhas definition A programmer who limits their work to programming (i.e. who do no higher-level design or analysis)2001-08-30 14:54:55.0
is a kind of programmer2001-08-30 14:54:55.0
is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:54:55.0
does not do high-level analysis and design2001-08-30 14:54:55.0
CodeWarriorhas URL metrowerks.com    2001-08-30 14:54:55.0
is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:54:55.0
is an instance of programming environment2001-08-30 14:54:55.0
coding schemeis a kind of subject2001-08-30 14:54:55.0
coding techniquehas advantages2001-08-30 14:54:55.0
has definition A way of representing information so as to communicate it to the user; e.g. using text, colour, icons, grouping, sound etc.2001-08-30 14:54:55.0
has problems2001-08-30 14:54:55.0
is a kind of representation2001-08-30 14:54:55.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:55.0
is a synonym of encoding technique2001-08-30 14:55:28.0
cohesionhas definition A measure of the extent to which related aspects of a system are kept together in the same module, and unrelated aspects are kept out2001-08-30 14:54:55.0
has precedence table
Cohesion typeComments
functional cohesionIf an aspect of a design can be achieved using a functionally cohesive module then it is normally best to do so.
layer cohesionLayer cohesion should typically have higher priority. Dividing systems into layers has been shown to considerably simplify systems.
communicational cohesionCommunicational cohesion, as embodied in the classes of an object oriented system, should have high priority. Here we list it below layer cohesion since modules may access the same kind of data in different layers.
sequential cohesionSequential cohesion is effectively a strong form of temporal cohesion, but is weaker than communicational cohesion since different data types may be involved in the different stages of a sequentially cohesive module.
temporal cohesionTemporal cohesion should typically be considered weaker than other types of cohesion. It is important, but only if the other types of cohesion have been achieved.
utility cohesionUtility cohesion is the weakest kind of cohesion since it serves to group together those parts of the system that do not seem to logically belong anywhere else.
2001-08-30 14:54:55.0
is a kind of measurement2001-08-30 14:54:55.0
is a kind of software quality2001-08-30 14:54:56.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:55.0
cohesive moduleis a kind of module2001-08-30 14:54:56.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:56.0
can contain sub-modules with different types of cohesion2001-08-30 14:54:56.0
can use the services of other modules without reducing cohesion, as long as the services of the other modules are not doing things that should be in the cohesive module2001-08-30 14:54:56.0
collaborationis a kind of abstraction2001-08-30 14:54:56.0
is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:54:56.0
can be represented in a class diagram using a dashed ellipse2001-08-30 14:54:56.0
collaboration diagramcontains a communication link between each pair of objects involved in the sending of a message; the messages themselves are attached to this link2001-08-30 14:54:56.0
has definition A UML interaction diagram showing a set of objects connected by communications links2001-08-30 14:54:56.0
has part communication link2001-08-30 14:54:56.0
is better than sequence diagram when you are deriving an interaction diagram from a class diagram2001-08-30 14:54:56.0
is similar to an instance diagram except that it does not show links of associations2001-08-30 14:54:56.0
is a kind of interaction diagram2001-08-30 14:54:56.0
is a subtopic of 5.1 - What is UML?2001-08-30 14:54:56.0
is drawn as as a graph with a set of objects and actors as the vertices2001-08-30 14:54:56.0
shows the relationships that exist among objects and actors2001-08-30 14:54:56.0
can help validate class diagrams2001-08-30 14:54:56.0
can represent aspects of a design pattern2001-08-30 14:54:56.0
collaboration symbolis a kind of symbol in UML diagram2001-08-30 14:54:56.0
is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:54:56.0
is drawn as a dashed ellipse2001-08-30 14:54:56.0
is linked to classes that fulfill the various roles of the collaboration by dashed lines2001-08-30 14:54:56.0
collating sequencehas definition The order in which the letters of the alphabet are sorted2001-08-30 14:54:56.0
has localization issues
  • Some languages place accented versions of characters at the end of an alphabet, whereas others consider that they should appear in the same place as unaccented characters in the sort order
2001-08-30 14:54:56.0
is a kind of locale-dependent feature2001-08-30 14:54:56.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:54:56.0
colourhas advantages
  • draws attention to specific items
  • conveys organization (items coloured similarly are related)
  • makes the UI more attractive
2001-08-30 14:54:56.0
has problems
  • users cannot distinguish among large numbers of colours
  • some colour combinations clash
  • colour-blind people cannot see differences in hue
  • some colours (e.g. bright red) can be distracting if overused
  • colours may have unexpected emotional meanings to users (e.g. a sickly shade of green)
2001-08-30 14:54:56.0
is a kind of coding technique2001-08-30 14:54:56.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:56.0
COMis a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:57.0
is an instance of broker2001-08-30 14:54:57.0
combinatorial explosionhas definition In the context of testing, the observation that the number of required tests for exhaustive testing will increase exponentially as the number of inputs increases2001-08-30 14:54:57.0
is a kind of subject2001-08-30 14:54:57.0
is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:54:57.0
commandhas definition An action that causes the system to perform some computations2001-08-30 14:54:57.0
is a kind of action2001-08-30 14:54:57.0
is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:54:57.0
commenthas purpose to describe the purpose of each class, method and variable along with any difficult-to-understand statements inside methods, and to indicated any changes to the code2001-08-30 14:54:57.0
is essential to give readers an overview and to help them understand its complexities quickly2001-08-30 14:54:57.0
is a kind of programming language construct2001-08-30 14:54:57.0
is a subtopic of Programming Style Guidelines2001-08-30 14:54:57.0
can be written before writing the code2001-08-30 14:54:57.0
should be between about 20% and 35% of the total length of the code2001-08-30 14:54:57.0
should be written to describe each non-obvious variable2001-08-30 14:54:57.0
should be written to describe loops and conditional statements inside complex algorithms2001-08-30 14:54:57.0
should be written at the head of each non-obvious method describing its function and usage2001-08-30 14:54:57.0
should be written at the top of each class2001-08-30 14:54:57.0
should describe the purpose of the class, how it should be used, its authors and its history of modification2001-08-30 14:54:57.0
should not be about obvious things since they add clutter2001-08-30 14:54:57.0
commentingaffects maintainability2001-08-30 14:54:57.0
affects indirectly reliability2001-08-30 14:54:57.0
is a kind of internal software quality2001-08-30 14:54:57.0
is a subtopic of 1.5 - Software Quality2001-08-30 14:54:57.0
is measured as as the fraction of total lines in the source code that are comments2001-08-30 14:54:57.0
commercial off-the-shelf softwarehas definition A term for generic software, often abbreviated as COTS2001-08-30 14:54:57.0
is a synonym of generic software2001-08-30 14:54:57.0
is abbreviated as COTS2001-08-30 14:54:57.0
common couplinghas definition A form of coupling in which components share data using a global variable and thus become dependent on each other2001-08-30 14:54:57.0
is a kind of coupling2001-08-30 14:54:58.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:58.0
shares many of the disadvantages of content coupling2001-08-30 14:54:58.0
can be avoided by creating a module that has specially-designated public methods, which can be called to obtain or modify the system-wide default values2001-08-30 14:54:57.0
should be minimized2001-08-30 14:54:58.0
Common Object Request Broker Architecturehas definition A well-known standard broker architecture2001-08-30 14:54:58.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:58.0
is abbreviated as CORBA2001-08-30 14:54:58.0
is an instance of broker2001-08-30 14:54:58.0
communication linkhas definition In a collaboration diagram, a line drawn between each pair of objects involved in the sending of a message2001-08-30 14:54:58.0
is a kind of symbol in collaboration diagram2001-08-30 14:54:58.0
is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:54:58.0
can exist between two objects whenever it is possible for one object to send a message to the other one, including the following situations:
  • The classes of the two objects are joined by an association
  • The receiving object is stored in a local variable of the sending method (but the objects are not yet joined by an association)
  • A reference to the receiving object has been received as a parameter of an earlier message to the sender
  • The receiving object is global
  • The objects communicate over a network
2001-08-30 14:54:58.0
does not necessarily correspond to instances of associations (i.e. links) in a class diagram2001-08-30 14:54:58.0
communication systemcontains layers in order from bottom to top
  • facilities for transmitting and receiving signals
  • is a layer that deals with splitting messages into packets and reconstructing messages that are received
  • a layer that deals with handling ongoing connections with a remote host
  • a layer that handles various protocols used by application programs such as http
2001-08-30 14:54:58.0
has clients a program that allows users to send a message or maintain a conversation with users on another computer2001-08-30 14:54:58.0
has server a program that routes messages and can have features such as 'forwarding' that people are familiar with from the telephone network2001-08-30 14:54:58.0
is a kind of client-server system2001-08-30 14:54:58.0
is a kind of multi-layer system2001-08-30 14:54:58.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:54:58.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:54:58.0
communicational cohesionhas definition A form of cohesion in which procedures that access the same data are kept together2001-08-30 14:54:58.0
is more important than sequential cohesion2001-08-30 14:54:58.0
is a kind of cohesion2001-08-30 14:54:58.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:54:58.0
is helped by the object oriented paradigm2001-08-30 14:54:58.0
Communications of the ACMhas web site www.acm.org    2001-08-30 14:54:58.0
is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:58.0
is an instance of magazine2001-08-30 14:54:59.0
is published by the Association for Computing Machinery2001-08-30 14:54:59.0
Community for Software Engineershas URL www.software-engineer.org    2001-08-30 14:54:59.0
is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:54:59.0
is an instance of software engineering web site2001-08-30 14:54:59.0
compilationhas definition The process of translating source code into code that is executable by a computer2001-08-30 14:54:59.0
is a kind of process2001-08-30 14:54:59.0
is a subtopic of The Basics of Java2001-08-30 14:54:59.0
compilerhas purpose to translate source code into code that is executable by a computer2001-08-30 14:54:59.0
is a kind of program2001-08-30 14:54:59.0
is a subtopic of The Basics of Java2001-08-30 14:54:59.0
performs compilation2001-08-30 14:54:59.0
complex conditionis a kind of condition2001-08-30 14:54:59.0
is a subtopic of Programming Style Guidelines2001-08-30 14:54:59.0
should be avoided because it is difficult to read2001-08-30 14:54:59.0
should be divided into several separate conditions on separate lines2001-08-30 14:54:59.0
complex Java conditionhas example
 if(a==5 &&(b>40 \ c) && (d > a+2 \ e==5)) ...
2001-08-30 14:54:59.0
is a kind of complex condition2001-08-30 14:54:59.0
is a kind of Java condition2001-08-30 14:54:59.0
is a subtopic of Programming Style Guidelines2001-08-30 14:54:59.0
complexity of codeaffects maintainability2001-08-30 14:54:59.0
affects reliability2001-08-30 14:54:59.0
is a kind of internal software quality2001-08-30 14:54:59.0
is a subtopic of 1.5 - Software Quality2001-08-30 14:54:59.0
is measured in terms of the nesting depth, the number of branches and the use of certain complex programming constructs2001-08-30 14:54:59.0
componenthas definition Any piece of software or hardware that has a clear role and can be isolated, allowing you to replace it with a different component with equivalent functionality2001-08-30 14:55:00.0
is reusable if it can be used in several different systems with little or no modification2001-08-30 14:55:00.0
is a kind of subject2001-08-30 14:55:00.0
is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:00.0
component diagramhas definition A UML diagram showing components and their relationships2001-08-30 14:55:00.0
is a kind of UML diagram2001-08-30 14:55:00.0
is a subtopic of 5.1 - What is UML?2001-08-30 14:55:00.0
shows how the various components of systems are arranged logically and physically2001-08-30 14:55:00.0
componentmay perform a special-purpose function such as the user interface for a particular system2001-08-30 14:55:00.0
component symbolis a kind of symbol in UML diagram2001-08-30 14:55:00.0
is a subtopic of 9.4 - Software Architecture2001-08-30 14:55:00.0
is drawn a box with two smaller boxes protruding from its left side2001-08-30 14:55:00.0
compositehas definition A specialization of the general hierarchy pattern, that uses an aggregation instead of an ordinary association2001-08-30 14:55:00.0
is a subtopic of 6.3 - The General Hierarchy Pattern2001-08-30 14:55:00.0
is an instance of design pattern2001-08-30 14:55:00.0
compositionhas definition A strong kind of aggregation in which if the aggregate is destroyed, then the parts are destroyed as well2001-08-30 14:55:00.0
has example The rooms of a building cannot exist without the building2001-08-30 14:55:00.0
is a kind of aggregation2001-08-30 14:55:00.0
is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:55:00.0
is drawn as a solid (filled-in) diamond in a UML diagram2001-08-30 14:55:00.0
computationis a kind of event2001-08-30 14:55:01.0
is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:00.0
can be represented by a state diagram2001-08-30 14:55:00.0
computer engineeringdeveloped in the 1980's2001-08-30 14:55:01.0
is a kind of engineering2001-08-30 14:55:01.0
is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:01.0
is concerned with the design of computer systems that involve both hardware and software components2001-08-30 14:55:01.0
computer scienceis a kind of discipline2001-08-30 14:55:01.0
is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:01.0
computing numerical resultsis a kind of responsibility2001-08-30 14:55:01.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:01.0
concrete classhas definition A class that can have instances2001-08-30 14:55:01.0
is a kind of class2001-08-30 14:55:01.0
is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:55:01.0
concurrencyis a kind of quality2001-08-30 14:55:01.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:01.0
concurrent engineering modelhas definition A process model in which each team works on its own component, typically following a spiral or evolutionary approach2001-08-30 14:55:01.0
is a kind of process model2001-08-30 14:55:01.0
is a subtopic of 11.2 - Software Process Models2001-08-30 14:55:01.0
uses the divide and conquer principle: Each team works on its own component, typically following a spiral or evolutionary approach2001-08-30 14:55:01.0
conditionis a kind of programming language construct2001-08-30 14:55:01.0
is a subtopic of The Basics of Java2001-08-30 14:55:01.0
configuration management specialistis responsible for ensuring that changes are made, no new problems are introduced and that documentation for each change is properly updated2001-08-30 14:55:01.0
is a kind of software developer2001-08-30 14:55:01.0
is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:55:01.0
is part of software development team2001-08-30 14:55:01.0
configuration management systemis a kind of tool2001-08-30 14:55:02.0
is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:55:02.0
keeps track of versions of requirements documents2001-08-30 14:55:02.0
connectionhas definition The existence of a communications channel between two computers, typically a client and server2001-08-30 14:55:02.0
has part socket in the client2001-08-30 14:55:02.0
has part socket in the server2001-08-30 14:55:02.0
is a kind of subject2001-08-30 14:55:02.0
is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:02.0
constis a subtopic of The Basics of Java2001-08-30 14:55:02.0
is an instance of Java keyword2001-08-30 14:55:02.0
constanthas part value2001-08-30 14:55:02.0
has purpose to hold a value that does not change2001-08-30 14:55:02.0
is a kind of subject2001-08-30 14:55:02.0
is a subtopic of The Basics of Java2001-08-30 14:55:02.0
constraintexpresses a logical statement that should evaluate to true2001-08-30 14:55:02.0
has definition A small block of text in curly brackets embedded in a UML diagram. It is normally written in a formal language which can be interpreted by a computer2001-08-30 14:55:02.0
is a kind of criterion2001-08-30 14:55:02.0
is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:55:02.0
is written in braces (curly brackets) in a UML diagram2001-08-30 14:55:02.0
can be written in in any language supported by a given tool2001-08-30 14:55:02.0
cannot compute a non-boolean result2001-08-30 14:55:02.0
cannot have any side-effects2001-08-30 14:55:02.0
cannot modify any data2001-08-30 14:55:02.0
constructionhas definition A term often applied to the latter stages of design and to programming, even though the analogy with construction in other areas of engineering is weak2001-08-30 14:55:02.0
is a kind of process2001-08-30 14:55:02.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:02.0
is not like construction of buildings2001-08-30 14:55:02.0
Constructive Cost Modelcomputes effort, in person months, from an estimate of size, in lines of code2001-08-30 14:55:03.0
has definition An algorithmic cost estimation method that computes effort, in person-months, from an estimate of size, measured in lines of code2001-08-30 14:55:03.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:03.0
is abbreviated as COCOMO2001-08-30 14:55:03.0
is an instance of algorithmic cost estimation model2001-08-30 14:55:03.0
constructorhas definition A procedure that is called whenever a new object is createdlink: chapter2section2.8.html#764, 2001-08-30 14:55:03.0
has purpose to initialize the instance variables of a newly created object and perform any other needed initializationlink: chapter2section2.8.html#766, 2001-08-30 14:55:03.0
is a kind of procedure2001-08-30 14:55:03.0
is a subtopic of The Basics of Java2001-08-30 14:55:03.0
is part of a classlink: chapter2section2.8.html#761, 2001-08-30 14:55:03.0
content couplinghas definition An undesirable form of coupling in which a component surreptitiously modifies internal data of another component2001-08-30 14:55:03.0
is a kind of coupling2001-08-30 14:55:03.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:03.0
content coupling in Javais a kind of content coupling2001-08-30 14:55:03.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:03.0
can be avoided by 2001-08-30 14:55:03.0
can occur when you directly modify an instance variable of an instance variable2001-08-30 14:55:03.0
can occur whenever you modify a public instance variable in a way that designers did not intend2001-08-30 14:55:03.0
content couplingshould be avoided since any modification of data should be easy to find and easy to understand2001-08-30 14:55:03.0
contexthas definition The general situation in which a design pattern applies2001-08-30 14:55:03.0
is a kind of subject2001-08-30 14:55:03.0
is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:55:03.0
is part of design pattern2001-08-30 14:55:03.0
continueis a subtopic of The Basics of Java2001-08-30 14:55:03.0
is an instance of Java keyword2001-08-30 14:55:04.0
contracting-outhas definition Paying to have software (typically custom software) developed by some other organization2001-08-30 14:55:04.0
is a kind of process2001-08-30 14:55:04.0
is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:04.0
controlis a synonym of user interface component2001-08-30 14:55:04.0
is a synonym of widget2001-08-30 14:55:04.0
control couplinghas definition A form of coupling in which one component affects the sequence of execution in another2001-08-30 14:55:04.0
has example
public routineX(String command)
{
//routineX will have to change whenever any of its callers adds a new command
if (command.equals("drawCircle")
{
drawCircle();
}
else
{
drawRectangle();
}
}
2001-08-30 14:55:04.0
is a kind of coupling2001-08-30 14:55:04.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:04.0
is named after common blocks in the Fortran language which are used to hold global variables2001-08-30 14:55:04.0
occurs when one procedure calls another using a 'flag' or 'command' that explicitly controls what the second procedure does2001-08-30 14:55:04.0
can be reduced by
  • having the callers of the routine directly call the methods called in the second routine
  • the use of polymorphic operations
  • using a look-up table that maps a command to a method that should be called when that command is issued
2001-08-30 14:55:04.0
controllercontains the objects that control and handle the user's interaction with the view and the model2001-08-30 14:55:04.0
has definition In the MVC architectural pattern, the class or classes used to control and handle the user's interaction with the view and the model2001-08-30 14:55:04.0
is a kind of class2001-08-30 14:55:04.0
is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:55:04.0
copying, converting, transforming, transmitting or outputtingis a kind of responsibility2001-08-30 14:55:04.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:04.0
is often omitted from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:55:04.0
CORBAis a subtopic of 9.5 - Architectural Patterns2001-08-30 14:55:04.0
is an abbreviation for Common Object Request Broker Architecture2001-08-30 14:55:04.0
is an instance of abbreviation2001-08-30 14:55:05.0
CORBA web sitehas URL www.corba.com    2001-08-30 14:55:05.0
is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:55:05.0
is an instance of web site about software architecture2001-08-30 14:55:05.0
corrective maintenancehas definition A type of maintenance performed to correct a defect in software2001-08-30 14:55:05.0
is a kind of maintenance2001-08-30 14:55:05.0
is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:05.0
corrective projectinvolves fixing defects2001-08-30 14:55:05.0
is a kind of evolutionary project2001-08-30 14:55:05.0
is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:05.0
costis a kind of subject2001-08-30 14:55:05.0
is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:05.0
cost and delivery dateis a kind of non-functional requirement2001-08-30 14:55:05.0
is a subtopic of 4.5 - Types of Requirements2001-08-30 14:55:05.0
is often not included in the requirements document, but left to a separate project plan document2001-08-30 14:55:05.0
cost estimateis a kind of subject2001-08-30 14:55:05.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:05.0
can be based on 2001-08-30 14:55:05.0
should be reported regularly to other members of the team, to management and to customers2001-08-30 14:55:05.0
cost estimationhas definition The process of estimating the effort and elapsed time of an activity or project2001-08-30 14:55:05.0
is difficult2001-08-30 14:55:05.0
is a kind of process2001-08-30 14:55:05.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:05.0
uses development effort2001-08-30 14:55:06.0
uses elapsed time2001-08-30 14:55:06.0
cost estimation principleis a kind of principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
cost estimation principle 1helps to make an estimate more accurate because
  • you will be more likely to account for all the subsystems and activities
  • if you under-estimate the time required for some subsystems or activities, this should be at least partly compensated for by over-estimates in other places
2001-08-30 14:55:06.0
is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
recommends dividing the project up into individual subsystems, and then dividing each subsystem further into the activities that will be required to develop it, then making a series of detailed estimates for each individual activity, and summing the results to arrive at the grand total estimate for the project2001-08-30 14:55:06.0
states divide and conquer2001-08-30 14:55:06.0
cost estimation principle 2is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states include all activities when making estimates2001-08-30 14:55:06.0
cost estimation principle 3has strategies
  • base your estimates purely on the personal judgement of experts within your team
  • use algorithmic models that have been developed in the software industry as a whole
2001-08-30 14:55:06.0
is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states base your estimates on past experience combined with what you can observe of the current project2001-08-30 14:55:06.0
cost estimation principle 4is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states be sure to account for differences when extrapolating from other projects2001-08-30 14:55:06.0
cost estimation principle 5is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states anticipate the worst case and plan for contingencies2001-08-30 14:55:06.0
cost estimation principle 6is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states combine multiple independent estimates2001-08-30 14:55:06.0
cost estimation principle 7is a kind of cost estimation principle2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
states revise and refine estimates as work progresses2001-08-30 14:55:06.0
cost estimationshould be a continuous activity2001-08-30 14:55:05.0
cost estimation techniqueis a kind of process2001-08-30 14:55:06.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:06.0
is used by cost estimator2001-08-30 14:55:06.0
cost estimatoris a kind of software developer2001-08-30 14:55:07.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:07.0
makes inaccurate estimate if he or she tries to estimate the entire cost of a project as a single number2001-08-30 14:55:07.0
can estimate time by making 3 separate estimates - optimistic, likely and pessimistic - to come up with a global estimates of the best-case, typical case and worst-case cost for the project2001-08-30 14:55:06.0
can use cost estimation technique2001-08-30 14:55:06.0
may underestimate the total amount of work required by not understanding the amount of work involved in certain activities or omitting them entirely2001-08-30 14:55:07.0
must include extra time into a time estimate to account for typical delays2001-08-30 14:55:07.0
should avoid making only a best-case estimate2001-08-30 14:55:07.0
should compare the results of several different cost estimation techniques2001-08-30 14:55:07.0
should consider differences when making an estimate for a new project:
  • different software developers with different skill levels
  • different development processes and maturity levels
  • different types of customers and users
  • different schedule demands
  • different technology
  • different technical complexity of the requirements
  • Different domains
  • Different levels of requirement stability
2001-08-30 14:55:07.0
should divide the project up into individual subsystems, and then divide each subsystem further into the activities that will be required to develop it, then make a series of detailed estimates for each individual activity, and sum the results to arrive at the grand total estimate for the project2001-08-30 14:55:07.0
should revise estimates because
  • As you gather requirements and begin specifying details, you will be able to increase the accuracy of your estimate
  • As you move into the design phase, you can again increase the accuracy of your estimates
  • You will adjust your estimates as requirements change, or features are dropped in order to meet a budget or deadline
  • As you encounter problems during design and implementation, you will be able to adjust your estimates to take these into account
2001-08-30 14:55:07.0
should use cost estimation principles2001-08-30 14:55:07.0
cost of a software projectis a function of development effort2001-08-30 14:55:07.0
is a kind of cost2001-08-30 14:55:07.0
is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:07.0
cost-benefit analysishas definition The process of deciding whether to do something by evaluating the costs of doing it and the benefits of doing it, and then choosing to do it if the benefits sufficiently exceed the costs2001-08-30 14:55:07.0
has procedure add up estimates of the costs and compare this to the benefits2001-08-30 14:55:07.0
is a kind of analysis2001-08-30 14:55:07.0
is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:07.0
is taught in management courses2001-08-30 14:55:07.0
COTSis a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:07.0
is an abbreviation for commercial off-the-shelf software2001-08-30 14:55:07.0
is an instance of abbreviation2001-08-30 14:55:07.0
couplinghas definition A measure of the extent to which interdependencies exist between software modules2001-08-30 14:55:07.0
implies that if you want to reuse one component, you will also have to import all the ones with which it is coupled2001-08-30 14:55:07.0
is a kind of measurement2001-08-30 14:55:07.0
is a kind of software quality2001-08-30 14:55:07.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:07.0
coveragehas definition A measure of the percentage of paths, statements or branches taken by a set of tests2001-08-30 14:55:07.0
is a kind of measurement2001-08-30 14:55:07.0
is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:55:07.0
crashis a kind of failure2001-08-30 14:55:08.0
is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:08.0
creating and initializing new instancesis a kind of responsibility2001-08-30 14:55:08.0
is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:08.0
is often given to some other class2001-08-30 14:55:08.0
is often omitted from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:55:08.0
credit card number formathas localization issues
  • You should almost never require a specific format for these items since they differ so widely and can change at any time
  • Allow free-form input of whatever the user wants to type
2001-08-30 14:55:08.0
is a kind of locale-dependent feature2001-08-30 14:55:08.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:08.0
criterionis a kind of subject2001-08-30 14:55:08.0
critical pathhas definition A path through a PERT chart indicating the minimum time in which it is possible to complete a project, and the tasks that, if delayed, will delay the whole project2001-08-30 14:55:08.0
indicates the minimum time in which it is possible to complete the project2001-08-30 14:55:08.0
is a kind of subject2001-08-30 14:55:08.0
is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:55:08.0
is computed by searching for the path through the PERT chart that has the greatest cumulative elapsed time2001-08-30 14:55:08.0
critical racehas black-box testing strategy
  • Vary the time consumption of different threads by giving them differing amounts of input, or running them on hardware that varies in speed
  • Run a large number of threads concurrently
  • Deliberately deny resources to one or more threads (e.g. temporarily cut a network connection, or make a file unreadable)
2001-08-30 14:55:08.0
has definition A defect in which one thread or process can sometimes experience a failure because another thread or process interferes with the 'normal' sequence of events2001-08-30 14:55:08.0
is hard to detect with black box testing alone since you often don't know the extent of the concurrency going on inside the system, and can not always manipulate the various threads to cause race conditions2001-08-30 14:55:08.0
is a kind of timing and co-ordination defect2001-08-30 14:55:08.0
is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:55:08.0
is a synonym of race condition2001-08-30 14:57:12.0
can be detected by glass-box testing since you can actually study the progress and states of the various threads2001-08-30 14:55:08.0
can be detected by inspection2001-08-30 14:55:08.0
currencyhas localization issues
  • Users may be using more than one currency at once
  • The number of decimal places and the magnitude of values may differ dramatically
  • The currency symbol itself may come before or after the numeric value
  • The language somebody is using does not necessarily dictate the currency they are using; they may be visiting a foreign country or residing in one of several countries that use the same language
2001-08-30 14:55:08.0
is a kind of locale-dependent feature2001-08-30 14:55:08.0
is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:08.0
custom softwarehas definition Software developed to meet the needs of a particular customer2001-08-30 14:55:08.0
has definition Software that is developed to meet the specific needs of a particular customer (in contrast to generic software)2001-08-30 14:55:08.0
has example web sites, air-traffic control systems and software for managing the finances of large organizations2001-08-30 14:55:08.0
has global CPU usage low2001-08-30 14:55:08.0
has global development effort high2001-08-30 14:55:08.0
has global number of copies low2001-08-30 14:55:08.0
is what most software developers work on2001-08-30 14:55:09.0
is a kind of software2001-08-30 14:55:09.0
is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:09.0
is developed for a particular customer2001-08-30 14:55:09.0
is often developed in-house2001-08-30 14:55:09.0
is typically used by only a few people2001-08-30 14:55:09.0
can be made generic but this can be a complex process if the software was not designed in a flexible way2001-08-30 14:55:08.0
may be contracted-out to a consulting company2001-08-30 14:55:09.0
customerdemands new and updated software2001-08-30 14:55:09.0
expects software to be of high quality and to be produced rapidly2001-08-30 14:55:09.0
has definition A person who make decisions about ordering and paying for software (in contrast to user); customers are those who have the problem that is being solved by the development of software2001-08-30 14:55:09.0
has goal either to increase profits or to run their business more effectively2001-08-30 14:55:09.0
is a kind of person2001-08-30 14:55:09.0
is a kind of stakeholder2001-08-30 14:55:09.0
is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:55:09.0
is a synonym of client2001-08-30 14:54:52.0
is concerned with efficiency2001-08-30 14:55:09.0
is concerned with reliability2001-08-30 14:55:09.0
likes software that helps their organization save or make money, typically by making the users and the organization as a whole more productive2001-08-30 14:55:09.0
makes decisions about ordering and paying for the software2001-08-30 14:55:09.0
often want to understand the architecture so they can be confident the software is being designed well and can monitor development progress2001-08-30 14:55:09.0
wants software that solves problems at an acceptable cost in terms of money paid and resources used2001-08-30 14:55:09.0
may be a user of software2001-08-30 14:55:09.0
should be involved in requirements analysis, user interface design and deployment, and also may play a role in design, quality assurance and project management2001-08-30 14:55:09.0
should be made to feel involved in the software engineering process resulting in fewer mistakes being made and greater acceptance of the finished product2001-08-30 14:55:09.0
data abstractiongroups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit2001-08-30 14:55:09.0
helps a programmer to cope with the complexity of data2001-08-30 14:55:09.0
hides the details of data2001-08-30 14:55:09.0
is a kind of abstraction2001-08-30 14:55:09.0
is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:55:09.0
data couplinghas definition A form of coupling in which one component passes simple data to another as an argument2001-08-30 14:55:09.0
has disadvantage components become coupled because they are dependent on each other's interpretation of the meaning of the arguments; if that meaning changes in one component, then the other component may have to change to accommodate the new meaning2001-08-30 14:55:09.0
is always present to some extent2001-08-30 14:55:09.0
is a kind of coupling2001-08-30 14:55:09.0
is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:09.0
can be reduced by
  • not passing unnecessary arguments
  • passing few arguments, each containing more abstract information
    2001-08-30 14:55:09.0
    data itemis a kind of programming language construct2001-08-30 14:55:09.0
    is a subtopic of 2.2 - Classes and Objects2001-08-30 14:55:09.0
    data memberis a synonym of instance variable2001-08-30 14:55:09.0
    data processing softwaregathers data together in batches to be processed at a later time2001-08-30 14:55:10.0
    has concerns
    • accuracy of the data
    • security of the data
    • privacy of the information gathered about people
    2001-08-30 14:55:10.0
    has definition Software used for running businesses, managing data such as payroll, purchases, sales, product inventory etc.2001-08-30 14:55:10.0
    has design issue how to organize the data and provide useful information to the users so they can perform their work effectively2001-08-30 14:55:10.0
    is a kind of software2001-08-30 14:55:10.0
    is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:10.0
    is used to run businesses2001-08-30 14:55:10.0
    performs functions recording sales, managing accounts, printing bills etc.2001-08-30 14:55:10.0
    data typeis a kind of data abstraction2001-08-30 14:55:10.0
    is a kind of programming language construct2001-08-30 14:55:10.0
    is a subtopic of The Basics of Java2001-08-30 14:55:10.0
    databaseis a kind of component2001-08-30 14:55:10.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:10.0
    database designhas definition The design of how data is persistently stored so that it may be accessed by many programs and users, over an indefinite period of time2001-08-30 14:55:10.0
    is a kind of design2001-08-30 14:55:10.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:10.0
    database specialistis a kind of software developer2001-08-30 14:55:10.0
    is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:55:10.0
    is part of software development team2001-08-30 14:55:10.0
    database systemhas clients any application program that wants to query a database2001-08-30 14:55:10.0
    has server A database management system that responds to requests to query or update the database2001-08-30 14:55:10.0
    is a kind of client-server system2001-08-30 14:55:10.0
    is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:10.0
    DataInputStreamallow programmer to exchange more sophisticated types of data than simple bytes without having to worry about how to translate them into a byte stream2001-08-30 14:55:10.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:10.0
    is an instance of filter2001-08-30 14:55:10.0
    can contain Java primitive types such as int and double2001-08-30 14:55:10.0
    DataOutputStreamallow a programmer to exchange more sophisticated types of data than simple bytes without having to worry about how to translate them into a byte stream2001-08-30 14:55:10.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:10.0
    is an instance of filter2001-08-30 14:55:11.0
    can contain Java primitive types such as int and double2001-08-30 14:55:10.0
    date formathas localization issues
    • There are many ways of writing dates. Even though the international standard is YYYY/MM/DD, this is often not followed
    2001-08-30 14:55:11.0
    is a kind of locale-dependent feature2001-08-30 14:55:11.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:11.0
    Dave Farthing's software project management pagehas URL www.comp.glam.ac.uk/pages/staff/dwfarthi/projman.htm    2001-08-30 14:55:11.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:55:11.0
    is an instance of web site about project management2001-08-30 14:55:11.0
    deadlockhas definition A failure in which two or more threads are stopped, waiting for each other to do something2001-08-30 14:55:11.0
    has example
    1. thread A is waiting to access object O
    2. object O is locked by thread B
    3. thread B, however might be waiting to access object P
    4. object P is locked by thread A
    Neither thread can ever progress unless some outside thread forces a break in the deadlock
    2001-08-30 14:55:11.0
    has example in real life gridlock2001-08-30 14:55:11.0
    is a kind of deadlock or livelock2001-08-30 14:55:11.0
    is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:55:11.0
    can appear as a hung system where the system is not consuming CPU time2001-08-30 14:55:11.0
    may not hang a system2001-08-30 14:55:11.0
    deadlock or livelockhas black-box testing strategy
    • Vary the time consumption of different threads by giving them differing amounts of input, or running them on hardware that varies in speed
    • Run a large number of threads concurrently
    • Deliberately deny resources to one or more threads (e.g. temporarily cut a network connection, or make a file unreadable)
    2001-08-30 14:55:11.0
    has testing strategy inspecting to detect such defects, rather than testing alone2001-08-30 14:55:11.0
    is a kind of failure2001-08-30 14:55:11.0
    is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:55:11.0
    can be caused by over-use of locking2001-08-30 14:55:11.0
    can be detected by glass-box testing since you can actually study the progress and states of the various threads2001-08-30 14:55:11.0
    may occur as a result of unusual combinations of conditions that are hard to anticipate or reproduce2001-08-30 14:55:11.0
    should be tested for by a person with a background in real-time systems who can apply his or her knowledge and experience to best anticipate typical defects2001-08-30 14:55:11.0
    deaf useris a kind of user with a disability2001-08-30 14:55:11.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:11.0
    needs a program that does not depend on sound output2001-08-30 14:55:11.0
    decision-making statementis a kind of statement2001-08-30 14:55:11.0
    is a subtopic of The Basics of Java2001-08-30 14:55:11.0
    declarationis a kind of programming language construct2001-08-30 14:55:11.0
    is a subtopic of The Basics of Java2001-08-30 14:55:11.0
    decreasing couplingis a subtopic of 9.4 - Software Architecture2001-08-30 14:55:12.0
    is an instance of design principle2001-08-30 14:55:12.0
    means decreasing the number of dependencies between packages as much as possible2001-08-30 14:55:12.0
    defaultis a subtopic of The Basics of Java2001-08-30 14:55:12.0
    is an instance of Java keyword2001-08-30 14:55:12.0
    default multiplicityis one in a UML diagram2001-08-30 14:55:12.0
    is a kind of multiplicity in a UML diagram2001-08-30 14:55:12.0
    is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:55:12.0
    does not require a symbol to be drawn in a UML diagram2001-08-30 14:55:12.0
    defecthas definition A flaw in any aspect of the system including the requirements, the design or the code, that contributes, or may potentially contribute, to the occurrence of one or more failures2001-08-30 14:55:12.0
    has example the absence of code to handle an exception2001-08-30 14:55:12.0
    is a kind of problem2001-08-30 14:55:12.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:12.0
    is a synonym of bug2001-08-30 14:54:44.0
    defect in a numerical algorithmis a kind of defect2001-08-30 14:55:12.0
    is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:55:12.0
    defect in an ordinary algorithmis a kind of defect2001-08-30 14:55:12.0
    is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:55:12.0
    defect in handling peak loads or missing resourceshas definition A defect that occurs when a computer cannot gracefully handle peak loads or missing resources2001-08-30 14:55:12.0
    has testing strategy
    • deny the program under test the resources it normally uses, by employing such methods as deleting files, concurrently running other resource-hungry programs, making less memory available, or disconnecting the system from the network
    • run a very large number of copies of the program being tested, all at the same time
    2001-08-30 14:55:12.0
    is a kind of defect in handling stress and unusual situations2001-08-30 14:55:12.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:55:12.0
    occurs when
    • a computer becomes short of resources such as memory, disk space or network bandwidth
    • files or data are missing
    • the system is not permitted to perform certain operations
    • the system cannot start new threads
    • the system runs out of space in a fixed size data structure
    2001-08-30 14:55:12.0
    defect in handling stress and unusual situationsis a kind of defect2001-08-30 14:55:12.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:55:12.0
    is only encountered when a system is being heavily used, or forced to its limits in some other way2001-08-30 14:55:12.0
    represents a lack of robustness2001-08-30 14:55:12.0
    can be detected by
    • running the system intensively
    • suppling the system with a very large amount of input
    • running many copies of the system
    • running the system on a computer or network that is busy running other systems
    • running the system in atypical environments
    2001-08-30 14:55:12.0
    defect in the process of recovering from a crashhas definition A defect that occurs when a system does not deal with hardware failures, crashes of related systems or the power being turned off2001-08-30 14:55:13.0
    has testing strategy kill either your program or the programs with which it communicates, at various times during execution2001-08-30 14:55:13.0
    is a kind of inappropriate management of resources2001-08-30 14:55:13.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:55:13.0
    defensive designhas definition Design with awareness that other components cannot be trusted2001-08-30 14:55:13.0
    is a kind of design2001-08-30 14:55:13.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:13.0
    defining the problemhas definition A part of requirements and specification that involves narrowing down the scope of the system by determining the precise problem that needs solving2001-08-30 14:55:13.0
    is a kind of process2001-08-30 14:55:13.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:13.0
    is part of requirements and specification2001-08-30 14:55:13.0
    delegationhas antipatterns
    • Overusing generalization and inheriting the method that is to be reused
    • Instead of creating a single method in the «Delegator» that does nothing other than call a method in the «Delegate», you might consider having many different methods in the «Delegator» call the delegate's method? It would be better to ensure that only one method in the «Delegator» calls the method in the «Delegate». If many methods access the method in the «Delegate», then when it changes, you may have to change every method that accesses it
    • a method must only accesses neighbouring classes
    2001-08-30 14:55:13.0
    has context 2001-08-30 14:55:13.0
    has definition A pattern in which one procedure does nothing more than call another in a neighbouring class; this reduces total coupling in the system2001-08-30 14:55:13.0
    has forces
    • You want to minimize development cost and complexity by reusing methods
    • You want to reduce the linkages between classes
    • You want to ensure that work is done in the most appropriate class
    2001-08-30 14:55:13.0
    has problem How can you most effectively make use of a method that already exists in the other class?2001-08-30 14:55:13.0
    has related patterns Adapter and Proxy patterns2001-08-30 14:55:13.0
    has solution
    1. Create a method in the «Delegator» class that does only one thing: it calls a method in a neighbouring «Delegate» class, allowing reuse of the method for which the «Delegate» has responsibility
    2. By 'neighbouring', we mean the «Delegate» is connected to the «Delegator» by an association.
    3. Normally, in order to use delegation an association should already exist between the «Delegator» and the «Delegate».
    4. This association needs only to be unidirectional from «Delegator» to «Delegate».
    5. However it may sometimes be appropriate to create a new association just so you can use delegation - provided this does not increase the overall complexity of the system.
    2001-08-30 14:55:13.0
    is a subtopic of 6.7 - The Delegation Pattern2001-08-30 14:55:13.0
    is an instance of design pattern2001-08-30 14:55:13.0
    Delphi techniquehas definition An approach to cost estimation in which several individuals initially make cost estimates in private, and then share their estimates to discover the discrepancies2001-08-30 14:55:13.0
    has procedure
    • several individuals initially make cost estimates in private
    • they then share their estimates to discover the discrepancies
    • each individual repeatedly adjusts his or her estimates until a consensus is reached
    2001-08-30 14:55:13.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:13.0
    is an instance of cost estimation technique2001-08-30 14:55:13.0
    departmental manageris a kind of person2001-08-30 14:55:13.0
    is a subtopic of 11.1 - What is Project Management?2001-08-30 14:55:13.0
    performs activities such as hiring, building morale, and issuing the final directions2001-08-30 14:55:14.0
    deploymenthas definition The process of distributing and installing software as well as any other components of a system; deployment also includes managing the transition from any previous system2001-08-30 14:55:14.0
    has definition The process of distributing and installing the software and any other components of the system such as databases, special hardware etc. It also involves managing the transition from any previous system2001-08-30 14:55:14.0
    is a kind of process2001-08-30 14:55:14.0
    is a kind of process2001-08-30 14:55:14.0
    is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:55:14.0
    is a subtopic of 9.4 - Software Architecture2001-08-30 14:55:14.0
    deployment diagramcontains links between nodes that show how communication takes place2001-08-30 14:55:14.0
    contains nodes which represent computational units such as a computer, a processing card, a sensor or a device2001-08-30 14:55:14.0
    has definition A UML diagram showing hardware nodes, how they are interconnected, and what components will exist on them at run time2001-08-30 14:55:14.0
    is a kind of UML diagram2001-08-30 14:55:14.0
    is a subtopic of 5.1 - What is UML?2001-08-30 14:55:14.0
    shows where various instances of components reside at run time2001-08-30 14:55:14.0
    deprecatehas definition To declare that a component should not be used in subsequent designs, but remains available to support existing designs that incorporate it2001-08-30 14:55:14.0
    is a kind of action2001-08-30 14:55:14.0
    is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:55:14.0
    derived classis the name for subclass in C++2001-08-30 14:55:14.0
    is a kind of class2001-08-30 14:55:14.0
    is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:55:14.0
    is a synonym of subclass2001-08-30 14:55:14.0
    designdetermines how components will be implemented in a system2001-08-30 14:55:14.0
    has definition The problem-solving process whose objective is to find and describe a way to implement the system's functional requirements, while respecting the constraints imposed by the non-functional requirements, and while adhering to general principles of good quality2001-08-30 14:55:14.0
    has goals
    • Increasing profit by reducing cost and increasing revenue
    • Ensuring that we actually conform with the requirements, thus solving the customers' problems
    • Accelerating development, which helps reduce short-term costs, and may also ensure the software reaches the market soon enough to effectively compete
    • Increasing qualities such as usability, efficiency, reliability, maintainability, and reusability which can help reduce costs and also increase revenues
    2001-08-30 14:55:14.0
    has part detailed design2001-08-30 14:55:14.0
    has part modelling2001-08-30 14:55:14.0
    has part programming2001-08-30 14:55:14.0
    has part software architecture^22001-08-30 14:55:14.0
    has part systems engineering2001-08-30 14:55:14.0
    has part user interface design2001-08-30 14:55:14.0
    is a kind of process2001-08-30 14:55:15.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:14.0
    requires considerable experience2001-08-30 14:55:15.0
    see also design^22001-08-30 14:55:15.0
    Design and Use of Software Architectureshas author Jan Bosch2001-08-30 14:55:15.0
    has ISBN number 0-201-67494-72001-08-30 14:55:15.0
    is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:55:15.0
    is an instance of software architecture book2001-08-30 14:55:15.0
    was published by Addison-Wesley2001-08-30 14:55:15.0
    was published in 20002001-08-30 14:55:15.0
    design by contracthas definition An approach to design in which each method has a contract with its callers regarding preconditions, postconditions and invariants2001-08-30 14:55:15.0
    is a kind of design2001-08-30 14:55:15.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:15.0
    Design by Contract: The Lessons of Arianehas author J-M. Jézéquel and B. Meyer2001-08-30 14:55:15.0
    has date January 19972001-08-30 14:55:15.0
    has publication IEEE Computer, Vol. 30, No. 22001-08-30 14:55:15.0
    has URL www.eiffel.com/doc/manuals/technology/contract/ariane/page.html    2001-08-30 14:55:15.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:15.0
    is an instance of article about software failures2001-08-30 14:55:15.0
    design decisioncauses other new issues to be raised2001-08-30 14:55:15.0
    has definition A decision made in the process of design which involves listing design options, evaluating them according to pre-determined criteria, and choosing the alternative that has the best cost-benefit trade-off2001-08-30 14:55:15.0
    is a kind of subject2001-08-30 14:55:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:15.0
    is made by the designer using all the knowledge at his or her disposal, including:
    • Knowledge of the requirements
    • Knowledge of the design as created so far
    • Knowledge of the technology available
    • Knowledge of software design principles and 'best practices'
    • Knowledge about what has worked well in the past
    2001-08-30 14:55:15.0
    can be made by using these steps:
    1. List and describe the alternatives for the design decision
    2. List the advantages and disadvantages of each alternative with respect to your objectives and priorities
    3. Determine whether any of the alternatives prevents you from meeting one or more of the objectives. If it does, you may have to rule it out. However, if none of the alternatives permits you to meet your objectives, you may have to adjust your objectives or else go back to earlier design decisions
    4. Choose the alternative that helps you to best meet your objectives. If several alternatives seems equally good in terms of the objectives, then use the priorities to decide among them
    5. Adjust your priorities for subsequent decision making. If you know you have already met your objectives for some aspects of quality, then you can increase the priority of the other qualities, for which you have not met your objectives
    2001-08-30 14:55:15.0
    design documentallows a group of people to review the design and therefore to improve it2001-08-30 14:55:16.0
    contains every design decision along with the reasoning that went into making the decision2001-08-30 14:55:16.0
    describes the priorities used to guide the design process2001-08-30 14:55:16.0
    describes what system or part of the system this design document describes2001-08-30 14:55:16.0
    discusses the important issues that had to be resolved, the possible alternatives that were considered, the final decision and the rationale for the decision2001-08-30 14:55:16.0
    ensures traceability by making reference to the requirements that are being implemented by this design2001-08-30 14:55:16.0
    forces a designer to be explicit and to consider the important issues before starting implementation2001-08-30 14:55:16.0
    has definition Documentation produced as a result of the design process2001-08-30 14:55:16.0
    has purpose
    • to encourage designers to make good design decisions
    • to communicate the design to others
    2001-08-30 14:55:16.0
    has suggested structure
    1. purpose
    2. general priorities
    3. outline of the design
    4. major design issues
    5. other details of the design
    2001-08-30 14:55:16.0
    includes a high-level description (or diagram) of the design that allows the reader to quickly get a general feeling for it2001-08-30 14:55:16.0
    includes the information its readers need to learn2001-08-30 14:55:16.0
    includes the rationale for the design which allows the reader to better understand the design, helps reviewers to determine whether good decisions were made, and helps the maintainers determine how to change the design2001-08-30 14:55:16.0
    is a kind of document2001-08-30 14:55:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:16.0
    makes reference to the requirements that are being implemented by this design2001-08-30 14:55:16.0
    see also design2001-08-30 14:55:16.0
    should be written for
    • Those who will be implementing the design, i.e. the programmers
    • Those who will need, in the future, to modify the design
    • Those who need to create systems or subsystems that interface with the system being designed
    2001-08-30 14:55:16.0
    should not include 2001-08-30 14:55:16.0
    design issuehas definition A sub-problem of an overall design problem2001-08-30 14:55:16.0
    is a kind of problem2001-08-30 14:55:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:16.0
    is resolved when the designer makes a design decision2001-08-30 14:55:16.0
    may not have a single best alternative - several different alternatives may have opposite advantages and disadvantages2001-08-30 14:55:16.0
    usually has several alternative solutions, also known as design options2001-08-30 14:55:16.0
    design optionhas definition An alternative solution to a design issue2001-08-30 14:55:16.0
    is a kind of subject2001-08-30 14:55:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:16.0
    design patternhas antipatterns zero or more antipatterns - solutions that are inferior or do not work in this context with the reason for their rejection2001-08-30 14:55:16.0
    has context a context2001-08-30 14:55:16.0
    has definition A pattern useful for the design of software2001-08-30 14:55:16.0
    has forces one or more forces2001-08-30 14:55:16.0
    has name2001-08-30 14:55:16.0
    has problem a sentence or two explaining the main difficulty being tackled2001-08-30 14:55:16.0
    has references one or more references which indicate who developed or inspired a pattern2001-08-30 14:55:16.0
    has related patterns zero or more related design patterns2001-08-30 14:55:16.0
    is a kind of pattern2001-08-30 14:55:16.0
    is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:55:16.0
    design pattern developeris a kind of software developer2001-08-30 14:55:17.0
    is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:55:17.0
    should not write patterns for others to use until he or she has considerable experience both in software design and in the use of patterns2001-08-30 14:55:17.0
    should refine patterns iteratively and have then peer reviewed at each iteration2001-08-30 14:55:17.0
    design patternshould be illustrated using a simple diagram2001-08-30 14:55:16.0
    should be written using a narrative writing style2001-08-30 14:55:16.0
    Design Patterns: Elements of Reusable Object-Oriented Softwarehas author E. Gamma, R. Helm, R. Johnson, and J. Vlissides2001-08-30 14:55:17.0
    has ISBN number 0-201-63361-22001-08-30 14:55:17.0
    is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:55:17.0
    is an instance of book about design patterns2001-08-30 14:55:17.0
    was published by Addison-Wesley2001-08-30 14:55:17.0
    was published in 19942001-08-30 14:55:17.0
    design principleis a kind of principle2001-08-30 14:55:17.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:17.0
    design spacehas definition The space of possible design options2001-08-30 14:55:17.0
    is a kind of subject2001-08-30 14:55:17.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:17.0
    design specificationis a synonym of requirements specification2001-08-30 14:55:17.0
    designeris a kind of software developer2001-08-30 14:55:17.0
    is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:55:17.0
    makes design decision2001-08-30 14:55:17.0
    can create skeletons for the files that will contain the code2001-08-30 14:55:17.0
    can learn from studying patterns2001-08-30 14:55:17.0
    can use cost-benefit analysis to choose among alternatives2001-08-30 14:55:17.0
    may also be a programmer2001-08-30 14:55:17.0
    must find ways to reduce costs and increase benefits2001-08-30 14:55:17.0
    should not design large systems until she has experienced a wide variety of software development projects2001-08-30 14:55:17.0
    should study designs of other systems, including designs that have been found to be bad2001-08-30 14:55:17.0
    designing for flexibilityinvolves actively anticipating changes that a design may have to undergo in the future and preparing for them2001-08-30 14:55:17.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:17.0
    is an instance of design principle2001-08-30 14:55:17.0
    can be accomplished by 2001-08-30 14:55:17.0
    designing for portabilityhas goal the ability to have the software run on as many platforms as possible2001-08-30 14:55:17.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:18.0
    is an instance of design principle2001-08-30 14:55:18.0
    can be accomplished by avoiding the use of facilities that are specific to one particular environment2001-08-30 14:55:17.0
    designing for testabilityis a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:18.0
    is an instance of design principle2001-08-30 14:55:18.0
    can be accomplished by ensuring that all the functionality of the code can by driven by an external program, bypassing a graphical user interface2001-08-30 14:55:18.0
    Designing Maintainable Softwarehas author Dennis D. S2001-08-30 14:55:18.0
    has ISBN number 0-387-98783-52001-08-30 14:55:18.0
    is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:55:18.0
    is an instance of software architecture book2001-08-30 14:55:18.0
    was published by Springer Verlag2001-08-30 14:55:18.0
    was published in 19992001-08-30 14:55:18.0
    Designing Web Usability: The Practice of Simplicityhas author J. Nielsen2001-08-30 14:55:18.0
    has ISBN number 1-56205-810-X2001-08-30 14:55:18.0
    is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:55:18.0
    is an instance of book about user interfaces and usability2001-08-30 14:55:18.0
    was published by New Riders2001-08-30 14:55:18.0
    was published in 20002001-08-30 14:55:18.0
    destroying instancesis a kind of responsibility2001-08-30 14:55:18.0
    is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:18.0
    is often omitted from from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:55:18.0
    often requires collaboration with some other class2001-08-30 14:55:18.0
    detailed designhas definition The design of the internals of individual subsystems2001-08-30 14:55:18.0
    involves deciding on data structures, classes, algorithms and procedures to be used2001-08-30 14:55:18.0
    is a kind of design2001-08-30 14:55:18.0
    is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:55:18.0
    is part of design2001-08-30 14:55:18.0
    deteriorationhas definition The tendency of software to accumulate defects as time passes due to errors being made during maintenance2001-08-30 14:55:18.0
    is a kind of process2001-08-30 14:55:19.0
    is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:18.0
    developer testinghas definition Preliminary testing performed by the people who do the design and programming2001-08-30 14:55:19.0
    is a kind of testing performed by software engineers2001-08-30 14:55:19.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:19.0
    developmenthas definition A process used to develop software2001-08-30 14:55:19.0
    is a kind of process2001-08-30 14:55:19.0
    is a subtopic of 11.2 - Software Process Models2001-08-30 14:55:19.0
    is a subtopic of 4.5 - Types of Requirements2001-08-30 14:55:19.0
    is a synonym of software engineering process2001-08-30 14:57:40.0
    development effortis a synonym of effort2001-08-30 14:55:19.0
    development manageris a synonym of project manager2001-08-30 14:55:19.0
    development process to be usedhas example certain approaches to testing2001-08-30 14:55:19.0
    is a kind of non-functional requirement2001-08-30 14:55:19.0
    is a subtopic of 4.5 - Types of Requirements2001-08-30 14:55:19.0
    diagramhas advantages it conveys or summarizes complex concepts or mechanisms more easily than other techniques2001-08-30 14:55:19.0
    has problems
    • can be hard for users to interact with or interpret
    • not usable by blind people
    • it can be expensive to program diagram drawing software
    2001-08-30 14:55:19.0
    is a kind of coding technique2001-08-30 14:55:19.0
    is a kind of representation2001-08-30 14:55:19.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:19.0
    should have a label if its meaning is not obvious, using a caption or pop-up label that appears when the user moves the mouse over it2001-08-30 14:55:19.0
    dialoghas definition A specific window with which a user can interact, but which is not the main UI window2001-08-30 14:55:19.0
    is a kind of window2001-08-30 14:55:20.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:19.0
    is a synonym of dialog box2001-08-30 14:55:20.0
    dialog boxis a synonym of dialog2001-08-30 14:55:20.0
    dialog^2has definition The back-and-forth interaction between user and computer2001-08-30 14:55:20.0
    is a kind of subject2001-08-30 14:55:20.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:20.0
    direction for reading texthas localization issues
    • Text in some languages runs left to right or top to bottom. Laying out screens so they can automatically accommodate this is a challenge
    2001-08-30 14:55:20.0
    is a kind of locale-dependent feature2001-08-30 14:55:20.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:20.0
    disciplineis a kind of subject2001-08-30 14:55:20.0
    is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:55:20.0
    discriminatorhas definition A label on a generalization that describes the criteria used to specialize a superclass into two or more subclasses2001-08-30 14:55:20.0
    has example in a zoology program, animals can be divided up by habitat into aquatic and land ones, or by type of food, into carnivores and herbivores.2001-08-30 14:55:20.0
    is a kind of label2001-08-30 14:55:20.0
    is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:55:20.0
    can be thought of as an attribute that will have a different value in each subclass2001-08-30 14:55:20.0
    distributed architecturefacilitates designing for flexibility because distributed systems can often be easily reconfigured by adding extra servers or clients and clients and servers can be developed by competing organizations, giving the customer a choice2001-08-30 14:55:20.0
    facilitates divide and conquer since dividing the system into processes is a very strong way to divide the system up2001-08-30 14:55:20.0
    increases abstraction because separate distributed components are often good abstractions2001-08-30 14:55:20.0
    increases reuse because it is often possible to find suitable frameworks on which to build good distributed systems2001-08-30 14:55:20.0
    is a kind of software architecture2001-08-30 14:55:20.0
    is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:55:20.0
    reduces coupling since there is usually only one communication channel between distributed components although you have to watch out for control coupling2001-08-30 14:55:20.0
    distributed systemhas definition A system in which computations are performed by separate programs that co-operate to perform the task of the system as a whole2001-08-30 14:55:20.0
    is vulnerable to privacy invasions of its users by gathering data about people as they use network-based programs or by actively intercepting communications2001-08-30 14:55:20.0
    is a kind of system2001-08-30 14:55:20.0
    is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:20.0
    is divided up into clients and servers2001-08-30 14:55:20.0
    distributed system developeris a kind of software developer2001-08-30 14:55:21.0
    is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:55:20.0
    must not violate the privacy of users by gathering data about people as they use network-based programs or by actively intercepting communications unless users have consented to the release of their private information2001-08-30 14:55:21.0
    should never develop harmful programs such as viruses or Trojan horses or hack into systems2001-08-30 14:55:21.0
    divide and conquerhas benefits
    • Separate people can work on each part. The original development work can therefore be done in parallel
    • An individual software engineer can specialize in his or her component and become expert at it
    • Each individual component is smaller, and therefore easier to understand
    • When one part needs to be replaced or changed, it can hopefully be done without having to replace or extensively change other parts
    2001-08-30 14:55:21.0
    has definition The principle of dividing something large into smaller units, so it can be dealt with more easily2001-08-30 14:55:21.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:21.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:21.0
    is an instance of design principle2001-08-30 14:55:21.0
    DLLis a subtopic of 9.1 - The Process of Design2001-08-30 14:55:21.0
    is an abbreviation for dynamic link library2001-08-30 14:55:21.0
    is an instance of abbreviation2001-08-30 14:55:21.0
    DMOZ Open Directory on software testinghas URL dmoz.org/Computers/Programming/Software_Testing    2001-08-30 14:55:21.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:21.0
    is an instance of web site about software testing2001-08-30 14:55:21.0
    dois a subtopic of The Basics of Java2001-08-30 14:55:21.0
    is an instance of Java keyword2001-08-30 14:55:21.0
    documenthas definition Anything written that that describes software2001-08-30 14:55:21.0
    is a kind of representation2001-08-30 14:55:21.0
    is a subtopic of 9.6 - Writing a Good Design Document2001-08-30 14:55:21.0
    should be written for a particular audience2001-08-30 14:55:21.0
    documentationhas purpose to document decisions and to communicate them to others2001-08-30 14:55:21.0
    includes requirements, designs, user documentation, instructions for testers and project plans2001-08-30 14:55:21.0
    is a kind of representation2001-08-30 14:55:21.0
    is a subtopic of 1.8 - The Eight Themes Emphasized in this Book2001-08-30 14:55:21.0
    will not be read if it is excessively voluminous, poorly written or not made readily available2001-08-30 14:55:22.0
    can be a source of rigidity in software development unless it is managed appropriately2001-08-30 14:55:21.0
    can entrench poorly made decisions that are hard to change2001-08-30 14:55:21.0
    can waste resources if it is never read2001-08-30 14:55:21.0
    documentation defecthas definition A defect in a user manual, reference manual or on-line help that gives incorrect information or fails to give information relevant to a problem2001-08-30 14:55:22.0
    has testing strategy
    • Examine all the end-user documentation (in both paper and on-line forms), making sure it is correct
    • Make sure it has correct solutions to problems that users might encounter, and correct instructions to help beginners learn how to use the software
    • Work through the use cases, making sure that each of then is adequately explained to the user
    2001-08-30 14:55:22.0
    is a kind of defect2001-08-30 14:55:22.0
    is a subtopic of 10.7 - Documentation Defects2001-08-30 14:55:22.0
    documentationmust provide the information the readers will need, and must be organized in a way so that the readers can find what they need easily2001-08-30 14:55:21.0
    should adhere to standards for the company2001-08-30 14:55:21.0
    should be as short and succinct as possible2001-08-30 14:55:21.0
    should be written at all stages of development2001-08-30 14:55:22.0
    should not be written prematurely just to meet specific deadlines because writing documents then becomes the objective, instead of solving problems2001-08-30 14:55:22.0
    domainhas definition A named computer network2001-08-30 14:55:22.0
    is a kind of subject2001-08-30 14:55:22.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:22.0
    see also domain^22001-08-30 14:55:22.0
    domain analysisallows a software engineer to focus on the most important issues, to make fewer mistakes, and to follow accepted procedures and standards2001-08-30 14:55:22.0
    enables a software engineer to communicate with the stakeholders more effectively, so he will be able to establish requirements more quickly2001-08-30 14:55:22.0
    has benefits 2001-08-30 14:55:22.0
    has definition The process by which a software engineer learns enough background information so that he or she can understand the problem and make good decisions during requirements analysis and other stages of the software engineering process2001-08-30 14:55:22.0
    has risk software developers may make invalid assumptions and hence create poor requirements or design2001-08-30 14:55:22.0
    indicates opportunities for future development2001-08-30 14:55:22.0
    is a kind of analysis2001-08-30 14:55:22.0
    is a subtopic of 4.1 - Domain Analysis2001-08-30 14:55:22.0
    is part of requirements and specification2001-08-30 14:55:22.0
    is performed before requirements analysis2001-08-30 14:55:22.0
    shows software engineer the subtleties of the domain, ensuring that the solutions adopted will more effectively solve the customer's problem2001-08-30 14:55:22.0
    domain analysis documenthas part
    1. Introduction, including the name of the domain and the motivation for performing the analysis
    2. Glossary which gives the meanings of all terms used in the domain that are either not part of everyday language or else have special meanings
    3. General knowledge about the domain - important facts or rules that are widely known by the domain experts and which would normally be learned as part of their education
    4. Customers and users - who will or might buy the software, and in what industrial sectors they operate. Also, describe the other people who work in the domain, even peripherally.
    5. The environment - equipment and systems used
    6. Tasks and procedures currently performed - what the various people do as they go about their work
    7. Competing software, including advantages and disadvantages
    8. Similarities across domains and organizations - what distinguishes the customer's organization from others, as well as what they have in common
    2001-08-30 14:55:22.0
    is a kind of document2001-08-30 14:55:22.0
    is a subtopic of 4.1 - Domain Analysis2001-08-30 14:55:22.0
    summarizes information found during domain analysis2001-08-30 14:55:22.0
    can help educate other software engineers who join the team later2001-08-30 14:55:22.0
    should contain a brief summary of the information you have found, along with references that will enable others to find that information2001-08-30 14:55:22.0
    should not contain an excessive amount of detailed information2001-08-30 14:55:22.0
    domain experthas definition Somebody with expertise in a given domain, but who may or may not have expertise in software2001-08-30 14:55:22.0
    is a kind of person2001-08-30 14:55:22.0
    is a subtopic of 4.1 - Domain Analysis2001-08-30 14:55:22.0
    domain modelis a synonym of system domain model2001-08-30 14:55:23.0
    domain^2has definition A general field of business or technology in which users work, and which is learned by the software engineer during domain analysis2001-08-30 14:55:23.0
    is a kind of subject2001-08-30 14:55:23.0
    is a subtopic of 4.1 - Domain Analysis2001-08-30 14:55:23.0
    see also domain2001-08-30 14:55:23.0
    doubleis a subtopic of The Basics of Java2001-08-30 14:55:23.0
    is an instance of Java primitive data type2001-08-30 14:55:23.0
    see also Double classlink: chapter2section2.8.html#614, 2001-08-30 14:55:23.0
    see also double^22001-08-30 14:55:23.0
    stores a double-precision floating-point numberlink: chapter2section2.8.html#571, 2001-08-30 14:55:23.0
    can use basic arithmetic operators +, -, *, / and %link: chapter2section2.8.html#578, 2001-08-30 14:55:23.0
    Double classis a subtopic of The Basics of Java2001-08-30 14:55:23.0
    is an instance of Java wrapper class2001-08-30 14:55:23.0
    see also doublelink: chapter2section2.8.html#614, 2001-08-30 14:55:23.0
    double^2is a subtopic of The Basics of Java2001-08-30 14:55:23.0
    is an instance of Java keyword2001-08-30 14:55:23.0
    see also double2001-08-30 14:55:23.0
    drivercalls lower layers of software2001-08-30 14:55:23.0
    has definition In the context of testing, a simple program that tests services of lower-level layers when performing bottom-up or sandwich testing2001-08-30 14:55:23.0
    has disadvantage it is time-consuming to write2001-08-30 14:55:23.0
    is a kind of program2001-08-30 14:55:23.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:23.0
    duplication of codehas disadvantage when there are two or more occurrences of the same or similar code in the system, any changes made (e.g. to fix defects) will have to be made in all clones2001-08-30 14:55:23.0
    is a kind of practice2001-08-30 14:55:23.0
    is a subtopic of Programming Style Guidelines2001-08-30 14:55:23.0
    is a synonym of cloning2001-08-30 14:54:54.0
    is not a kind of reuse2001-08-30 14:55:23.0
    can be avoided by creating a common superclass if the duplication occurs in two separate classes2001-08-30 14:55:23.0
    can be avoided by creating a separate method that has the common code, and calling it from the original location and any other needed locations2001-08-30 14:55:23.0
    should be avoided because it increases the total volume of code and means that if you change the code in one place, then you might forget to change the code in the other places2001-08-30 14:55:23.0
    dynamic bindinggives power to polymorphism2001-08-30 14:55:24.0
    has definition The process of binding a call to a particular method. This is performed dynamically at run-time due to the presence of polymorphism2001-08-30 14:55:24.0
    is a kind of process2001-08-30 14:55:24.0
    is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:55:24.0
    is a synonym of late binding2001-08-30 14:56:26.0
    is a synonym of virtual binding2001-08-30 14:58:20.0
    is needed when the compiler determines that there more than one possible method that could be executed by a particular call2001-08-30 14:55:24.0
    prevents programmers from having to write conditional statements to explicitly choose which code to run2001-08-30 14:55:24.0
    dynamic link libraryis a kind of component2001-08-30 14:55:24.0
    is a kind of software library2001-08-30 14:55:24.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:24.0
    is abbreviated as DLL2001-08-30 14:55:24.0
    dynamic modellinghas definition A type of modelling used to represent the internal states of the software and their changes2001-08-30 14:55:24.0
    involves representing such things as the states that the system can be in, the activities it can perform, and how its components interact2001-08-30 14:55:24.0
    is difficult because in a large system there are a very large number of possible paths a system can take, and because it is hard to choose the classes to allocate each behaviour2001-08-30 14:55:24.0
    is a kind of modelling2001-08-30 14:55:24.0
    is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:55:24.0
    should be done iteratively2001-08-30 14:55:24.0
    should be led by skilled developers2001-08-30 14:55:24.0
    earned valuehas definition The amount of work completed, measured according to the budgeted effort that the work was supposed to consume2001-08-30 14:55:24.0
    is a kind of measurement2001-08-30 14:55:24.0
    is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:55:24.0
    is a synonym of budgeted cost of work performed2001-08-30 14:54:44.0
    earned value charthas curves 2001-08-30 14:55:24.0
    has definition A diagram used in project tracking, that allows you to compute the amount by which you are behind schedule and over budget; it shows elapsed time on one axis, and effort expended on the other axis2001-08-30 14:55:24.0
    is useful for tracking2001-08-30 14:55:24.0
    is a kind of diagram2001-08-30 14:55:24.0
    is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:55:24.0
    can be used to measure the extent to which a project is behind schedule by measuring the horizontal distance between the earned value curve and the budgeted cost of work scheduled2001-08-30 14:55:24.0
    can be used to measure the extent to which you a project is over budget by measuring the vertical distance between the earned value curve and the actual cost curve2001-08-30 14:55:24.0
    economies of scalehas definition Sub-linear growth in effort as size increases2001-08-30 14:55:24.0
    is a kind of subject2001-08-30 14:55:24.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:24.0
    do not happen in software engineering2001-08-30 14:55:24.0
    EERDis a subtopic of 5.7 - Detailed Example: A Class Diagram for Genealogy2001-08-30 14:55:25.0
    is an abbreviation for Extended Entity-Relationship diagram2001-08-30 14:55:24.0
    is an instance of abbreviation2001-08-30 14:55:25.0
    Effective Requirements Practiceshas author R. Young2001-08-30 14:55:25.0
    has ISBN number 0-201-70912-02001-08-30 14:55:25.0
    is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:55:25.0
    is an instance of book about requirements analysis2001-08-30 14:55:25.0
    was published by Addison-Wesley2001-08-30 14:55:25.0
    was published in 20012001-08-30 14:55:25.0
    effective testingis a kind of testing2001-08-30 14:55:25.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:25.0
    uses a strategy that uncovers as many defects as possible2001-08-30 14:55:25.0
    effectiveness of a system at handling errorshas part effectiveness of error correction2001-08-30 14:55:25.0
    has part effectiveness of error detection2001-08-30 14:55:25.0
    has part effectiveness of error prevention2001-08-30 14:55:25.0
    is a kind of software quality2001-08-30 14:55:25.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:25.0
    effectiveness of error correctionis a kind of software quality2001-08-30 14:55:25.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:25.0
    is measured as the amount of time that elapses from the appearance of each error message, to the time when the user has corrected the error2001-08-30 14:55:25.0
    effectiveness of error detectionis a kind of software quality2001-08-30 14:55:26.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:25.0
    is measured as the fraction of errors that users notice2001-08-30 14:55:26.0
    effectiveness of error preventionis a kind of software quality2001-08-30 14:55:26.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:26.0
    is measured by recording the frequency with which error messages appear2001-08-30 14:55:26.0
    efficiencyhas definition The extent to which a product or process can operate using the fewest possible resources2001-08-30 14:55:26.0
    is important to customers in order to reduce their costs of running the software2001-08-30 14:55:26.0
    is a kind of external software quality2001-08-30 14:55:26.0
    is a kind of measurement2001-08-30 14:55:26.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:26.0
    is constrained by software architecture2001-08-30 14:55:26.0
    measures how much CPU-time, memory, disk-space, network bandwidth or other resources software uses2001-08-30 14:55:26.0
    efficiency of usehas definition A measure of how fast an expert user can do their work using the system2001-08-30 14:55:26.0
    is a kind of measurement2001-08-30 14:55:26.0
    is a kind of software quality2001-08-30 14:55:26.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:26.0
    is concerned with ordinary use2001-08-30 14:55:26.0
    is measured as the total number of instances of a small task that a user can do per hour, or the total time required to do a certain large task2001-08-30 14:55:26.0
    measures how fast an expert user can do their work using the system2001-08-30 14:55:26.0
    efficient testingfind the largest possible number of defects using the fewest possible tests2001-08-30 14:55:26.0
    is a kind of testing2001-08-30 14:55:26.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:26.0
    efforthas definition The amount of labour used in a task or project, expressed in person-months or person-days2001-08-30 14:55:26.0
    is a kind of criterion2001-08-30 14:55:26.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:26.0
    is a synonym of development effort2001-08-30 14:55:19.0
    is measured in person-months or person-days2001-08-30 14:55:26.0
    is used in cost estimation2001-08-30 14:55:26.0
    can be converted into the cost of a software project by multiplying it by the weighted average cost of employing a software engineer for a month (or a day).2001-08-30 14:55:26.0
    egoless teamadvocates that decisions are made by consensus2001-08-30 14:55:26.0
    has (n2-n)/2 communication channels2001-08-30 14:55:26.0
    has definition A team structure in which everybody is equal, decisions are made by consensus, and the team works together to achieve a common goal2001-08-30 14:55:26.0
    has disadvantage it may run into trouble if personal conflicts arise2001-08-30 14:55:26.0
    is dependent on the personalities of the individuals2001-08-30 14:55:26.0
    is a kind of software engineering team model2001-08-30 14:55:27.0
    is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:55:26.0
    is suited to difficult projects with many technical challenges2001-08-30 14:55:26.0
    recommends that everybody communicates with everybody else2001-08-30 14:55:27.0
    can produce creative solutions since group members spontaneously get together to solve problems when they arise2001-08-30 14:55:26.0
    elapsed timehas definition The difference in time from the start date to the end date of a software project2001-08-30 14:55:27.0
    is a kind of criterion2001-08-30 14:55:27.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:27.0
    is used in cost estimation2001-08-30 14:55:27.0
    elapsed-time transitionhas definition A transition that occurs in a state diagram due to the passage of a period of time2001-08-30 14:55:27.0
    is a kind of transition2001-08-30 14:55:27.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:27.0
    occurs as a result of a certain amount of elapsed time2001-08-30 14:55:27.0
    electrical engineeringis a kind of engineering2001-08-30 14:55:27.0
    is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:27.0
    Electronic Software Reuse and Re-engineering Newsletter on the World Wide Webhas URL frakes.cs.vt.edu/renews.html    2001-08-30 14:55:27.0
    is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:55:27.0
    is an instance of newsgroup2001-08-30 14:55:27.0
    elseis a subtopic of The Basics of Java2001-08-30 14:55:27.0
    is an instance of Java keyword2001-08-30 14:55:27.0
    emailhas clients programs that read and send email such as Microsoft Outlook, Eudora2001-08-30 14:55:27.0
    has server A post-office program that receives email from remote sites and holds it until an email-reading client is activated and that also forwards outgoing mail from the client to other sites.2001-08-30 14:55:27.0
    is a kind of client-server system2001-08-30 14:55:27.0
    is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:27.0
    embedded softwareaccounts for the bulk of software copies in existence2001-08-30 14:55:27.0
    has hard real-time characteristics and will fail completely if their real-time constraints are not met2001-08-30 14:55:28.0
    has definition Software that is designed to run specific hardware devices, and thus is embedded in the devices, usually in a form of read-only memory (ROM)2001-08-30 14:55:27.0
    has global CPU usage medium2001-08-30 14:55:28.0
    has global development effort low2001-08-30 14:55:28.0
    has global number of copies high2001-08-30 14:55:28.0
    is a kind of software2001-08-30 14:55:28.0
    is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:28.0
    runs hardware devices such as washing machines, VCRs, microwave ovens, or cars2001-08-30 14:55:28.0
    cannot usually be replaced by the user without replacing the hardware2001-08-30 14:55:27.0
    cannot usually be upgraded by the user without replacing the hardware2001-08-30 14:55:27.0
    encapsulationallows changes to code to be more easily made since one can be confident that 'outsiders' are not relying on too many details2001-08-30 14:55:28.0
    has definition Creating a module to contain some algorithm or data structure, thus hiding its details behind the module's interface2001-08-30 14:55:28.0
    helps to achieve information hiding2001-08-30 14:55:28.0
    is a kind of practice2001-08-30 14:55:28.0
    is a subtopic of 2.7 - Concepts that Define Object Orientation2001-08-30 14:55:28.0
    encoding techniqueis a synonym of coding technique2001-08-30 14:55:28.0
    end statehas definition The final state reached by a system or object when it finishes working2001-08-30 14:55:28.0
    is a kind of state2001-08-30 14:55:28.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:28.0
    is represented by end state symbol in a state diagram2001-08-30 14:55:28.0
    end state symbolis a kind of symbol in state diagram2001-08-30 14:55:28.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:28.0
    is drawn as a black circle with a ring around it2001-08-30 14:55:28.0
    looks like a target2001-08-30 14:55:28.0
    engineerdesigns artefacts following well accepted practices which normally involve the application of science, mathematics and economics2001-08-30 14:55:28.0
    did not have to be licensed before the 1940's in most jurisdictions2001-08-30 14:55:28.0
    has definition A person who performs engineering (in contrast to scientist). The term engineer is legally reserved, in many jurisdictions, for those who have obtained engineering education and experience, and perform engineering within a company or else have been granted a license, or some other form of certification, to offer engineering services to the public2001-08-30 14:55:28.0
    has role to put knowledge to use in innovative ways to solve problems2001-08-30 14:55:28.0
    is a kind of person2001-08-30 14:55:28.0
    is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:28.0
    understands that omitting design documentation or documenting a design after it is complete is unacceptable, leads to serious mistakes, and makes planning for construction impossible2001-08-30 14:55:29.0
    must adhere to a code of ethics2001-08-30 14:55:28.0
    must be licensed in most countries in order to legally perform consulting or self-employed work where you call yourself an 'engineer'2001-08-30 14:55:28.0
    must have sufficient engineering education and experience to be licensed2001-08-30 14:55:29.0
    must take personal responsibility for work2001-08-30 14:55:29.0
    should apply well-understood principles2001-08-30 14:55:29.0
    should reuse established designs2001-08-30 14:55:29.0
    engineeringhas definition The process of solving problems by applying, in a disciplined, systematic and ethical way, scientific and economic knowledge and principles to the design and maintenance of products or processes2001-08-30 14:55:29.0
    has economic constraints
    • resources are finite
    • it is not worth doing something unless the benefit gained from it outweighs its cost, and
    • if somebody else can perform some particular task more cheaply or faster than us, they will succeed instead of us
    2001-08-30 14:55:29.0
    is a kind of discipline2001-08-30 14:55:29.0
    is a kind of process2001-08-30 14:55:29.0
    is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:29.0
    engineering licensing agencyaccredits educational institutions which they believe are providing a proper engineering education2001-08-30 14:55:29.0
    is a kind of organization2001-08-30 14:55:29.0
    is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:29.0
    licenses engineers if they have sufficient background and have passed exams2001-08-30 14:55:29.0
    engineering web siteis a kind of web site2001-08-30 14:55:29.0
    is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:29.0
    enhancementhas definition A type of maintenance performed to add a new capability to software2001-08-30 14:55:29.0
    is a kind of maintenance2001-08-30 14:55:29.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:29.0
    enhancement projectinvolves adding new features for the users2001-08-30 14:55:29.0
    is a kind of evolutionary project2001-08-30 14:55:29.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:29.0
    Entity-Relationship diagramis a kind of diagram2001-08-30 14:55:29.0
    is a subtopic of 5.7 - Detailed Example: A Class Diagram for Genealogy2001-08-30 14:55:29.0
    is abbreviated as ERD2001-08-30 14:55:29.0
    is used by database designers2001-08-30 14:55:29.0
    does not show inheritance2001-08-30 14:55:29.0
    does not show operations2001-08-30 14:55:29.0
    enumerating attributesis the first step when creating a set of test cases2001-08-30 14:55:29.0
    is a kind of process2001-08-30 14:55:30.0
    is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:55:29.0
    equals methodhas example
     boolean b = aPostalCode.equals(anotherPostalCode);
    link: chapter2section2.8.html#607, 2001-08-30 14:55:30.0
    has purpose to test whether two objects are equal i.e. they contain the same data, but are not necessarily the same objectlink: chapter2section2.8.html#605, 2001-08-30 14:55:30.0
    is a subtopic of The Basics of Java2001-08-30 14:55:30.0
    is an instance of Java method2001-08-30 14:55:30.0
    equivalence classhas benefit allows the tester to do efficient yet thorough black box testing2001-08-30 14:55:30.0
    has definition A set of inputs that a tester believes will be treated similarly by reasonable algorithms2001-08-30 14:55:30.0
    is a kind of subject2001-08-30 14:55:30.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:30.0
    equivalence class testinghas definition A testing strategy based on determining the possible equivalence classes and creating a test case for each2001-08-30 14:55:30.0
    is a kind of testing2001-08-30 14:55:30.0
    is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:55:30.0
    ERDis a subtopic of 5.7 - Detailed Example: A Class Diagram for Genealogy2001-08-30 14:55:30.0
    is an abbreviation for Entity-Relationship diagram2001-08-30 14:55:30.0
    is an instance of abbreviation2001-08-30 14:55:30.0
    errorhas definition A slip or inappropriate decision made by a software engineer that leads to the introduction of a defect into the system2001-08-30 14:55:30.0
    is a kind of mistake2001-08-30 14:55:30.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:30.0
    is more often made the boundaries of equivalence classes than in the middle2001-08-30 14:55:30.0
    leads to a poor system2001-08-30 14:55:30.0
    see also error^22001-08-30 14:55:30.0
    can be made at any stage of the software development process, from requirements to implementation and maintenance2001-08-30 14:55:30.0
    error handlingis better if the system effectively prevents the user from making errors, detects errors, and helps the user to correct errors2001-08-30 14:55:30.0
    is a kind of measurement2001-08-30 14:55:31.0
    is a kind of software quality2001-08-30 14:55:31.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:30.0
    is concerned with abnormal situations2001-08-30 14:55:30.0
    measures how well the system prevents the user from making errors, detects errors, and helps the user to correct errors2001-08-30 14:55:31.0
    errormay have root cause
    • Lack of training or experience of the software developer
    • Schedules that are too tight
    • Building on poor designs or reusable technology
    2001-08-30 14:55:30.0
    error^2has definition A mistake made by a user2001-08-30 14:55:31.0
    is a kind of mistake2001-08-30 14:55:31.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:31.0
    see also error2001-08-30 14:55:31.0
    error^3has definition An inaccuracy in a numerical computation2001-08-30 14:55:31.0
    is bad only if it is not anticipated and correctly handled2001-08-30 14:55:31.0
    is a kind of measurement2001-08-30 14:55:31.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:31.0
    ethical principle of usability evaluationis a kind of principle2001-08-30 14:55:31.0
    is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:31.0
    ethical principle of usability evaluation 1is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:31.0
    is an instance of ethical principle of usability evaluation2001-08-30 14:55:31.0
    states that confidentiality of users must be respected2001-08-30 14:55:31.0
    ethical principle of usability evaluation 2is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:31.0
    is an instance of ethical principle of usability evaluation2001-08-30 14:55:31.0
    states that users must fully understand the purpose of the study and are made to feel at ease2001-08-30 14:55:31.0
    evaluation by observation of usershas steps
    1. Select users corresponding to each of the most important actors, and who are both beginners and experts in the domain as well as people who are experts and non-experts in terms of their experience with computers
    2. Select the most important use cases for each of the actors you selected in the last step, and determine specific tasks for the users to follow
    3. Write instructions for each scenario in small cards so you can hand them to the users one at a time
    4. Arrange individual evaluation sessions of about 20 to 30 minutes
    5. Explain the purpose of the evaluation to the user
    6. Videotape each session
    7. Talk with the users as they perform each task and ask them what they are thinking, what they think the system's feedback means, and ask them why they perform various actions
    8. When the users finish all the tasks, de-brief them
    9. Take note of any difficulties experienced by the users, no matter how small
    10. Formulate recommended changes to the system that would avoid repetition of the difficulties
    2001-08-30 14:55:31.0
    is a kind of usability evaluation2001-08-30 14:55:31.0
    is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:31.0
    evaluatoris a kind of software developer2001-08-30 14:55:31.0
    is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:31.0
    performs heuristic evaluation to test usability2001-08-30 14:55:31.0
    eventhas definition In a state diagram, something that causes a system or object to change state. May be a message, the passage of elapsed time, a condition becoming true, or completion of an activity2001-08-30 14:55:31.0
    is a kind of subject2001-08-30 14:55:32.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:32.0
    can cause a system or object to change from one state to another2001-08-30 14:55:31.0
    evolutionhas definition The process by which software is modified over the course of its lifetime to meet changing requirements and as problems are fixed or reengineering is performed2001-08-30 14:55:32.0
    is a kind of process2001-08-30 14:55:32.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:32.0
    is part of software engineering2001-08-30 14:55:32.0
    evolution of an existing systemis more common than green field development2001-08-30 14:55:32.0
    is a kind of development2001-08-30 14:55:32.0
    is a subtopic of 4.2 - The Starting Point for Software Projects2001-08-30 14:55:32.0
    may have the requirements already specified2001-08-30 14:55:32.0
    evolutionary modelhas definition A process model that views development as a series of hills, each representing a separate loop of the spiral model2001-08-30 14:55:32.0
    is a kind of process model2001-08-30 14:55:32.0
    is a subtopic of 11.2 - Software Process Models2001-08-30 14:55:32.0
    represents software development as a series of hills, each representing a separate loop of the spiral2001-08-30 14:55:32.0
    shows that 2001-08-30 14:55:32.0
    evolutionary projecthas definition A software project to modify an existing system2001-08-30 14:55:32.0
    involves modifying an existing system2001-08-30 14:55:32.0
    is more common than green field project2001-08-30 14:55:32.0
    is a kind of software project2001-08-30 14:55:32.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:32.0
    exceptionhas definition A situation that arises in a program requiring special handling, and hence deviation from the normal path of control2001-08-30 14:55:32.0
    is a kind of programming language construct2001-08-30 14:55:32.0
    is a subtopic of The Basics of Java2001-08-30 14:55:32.0
    is thrown when something goes wrong in the execution of a programlink: chapter2section2.8.html#879, 2001-08-30 14:55:32.0
    see also Exception classlink: chapter2section2.8.html#901, 2001-08-30 14:55:32.0
    Exception classis a subtopic of The Basics of Java2001-08-30 14:55:32.0
    is an instance of Java class2001-08-30 14:55:33.0
    see also exceptionlink: chapter2section2.8.html#901, 2001-08-30 14:55:33.0
    executable fileis a kind of component2001-08-30 14:55:33.0
    is a kind of file2001-08-30 14:55:33.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:33.0
    expert useris a synonym of power user2001-08-30 14:55:33.0
    explicit attributehas definition An attribute^2 that is stated in the requirements2001-08-30 14:55:33.0
    is a kind of attribute^22001-08-30 14:55:33.0
    is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:55:33.0
    can be found easily if the requirements are structured as a set of use cases2001-08-30 14:55:33.0
    exploratory domain modelcontains elements that represent things in the domain2001-08-30 14:55:33.0
    has part informal class diagram2001-08-30 14:55:33.0
    helps in understanding the domain2001-08-30 14:55:33.0
    is a kind of model2001-08-30 14:55:33.0
    is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:33.0
    is not usually concerned with operations and polymorphism, nor with modelling principles such as avoiding multiple inheritance.2001-08-30 14:55:33.0
    does not contain elements that do not represent things in the domain, but are needed to build a complete system2001-08-30 14:55:33.0
    may model things that will not be implemented2001-08-30 14:55:33.0
    Extended Entity-Relationship diagramis a kind of Entity-Relationship diagram2001-08-30 14:55:33.0
    is a subtopic of 5.7 - Detailed Example: A Class Diagram for Genealogy2001-08-30 14:55:33.0
    is abbreviated as EERD2001-08-30 14:55:33.0
    does show inheritance2001-08-30 14:55:33.0
    extendshas example
    //Create a subclass
    public class MortgageAccount extends Account
    {
    // body of the class
    }
    link: chapter2section2.8.html#931, 2001-08-30 14:55:33.0
    has purpose to create a subclasslink: chapter2section2.8.html#930, 2001-08-30 14:55:33.0
    is a subtopic of The Basics of Java2001-08-30 14:55:33.0
    is an instance of Java keyword2001-08-30 14:55:33.0
    extensionhas definition A use case that makes optional interactions explicit or handles exceptional cases2001-08-30 14:55:33.0
    has purpose to make optional interactions explicit or to handle exceptional cases, therefore allowing the description of the basic use case to remain simple2001-08-30 14:55:33.0
    is a kind of use case2001-08-30 14:55:34.0
    is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:55:34.0
    is related to the use case it extends2001-08-30 14:55:34.0
    lists all the steps from the beginning of the use case to the end, including the handling of the unusual situation2001-08-30 14:55:34.0
    external couplinghas definition A form of coupling in which a software component has a dependency to software written by a third party, or to a particular type of hardware2001-08-30 14:55:34.0
    is a kind of coupling2001-08-30 14:55:34.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:34.0
    can be reduced by
    • reducing the number of places in the code where such dependencies exist
    • using the facade pattern
    2001-08-30 14:55:34.0
    external eventcauses most transitions in a state diagram2001-08-30 14:55:34.0
    is a kind of event2001-08-30 14:55:34.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:34.0
    external software qualityhas a direct impact on stakeholders2001-08-30 14:55:34.0
    is a kind of software quality2001-08-30 14:55:34.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:34.0
    can be observed by stakeholders2001-08-30 14:55:34.0
    extreme programminghas definition A process model and methodology that provides a disciplined approach to highly incremental and user-centred development of small projects2001-08-30 14:55:34.0
    has philosophy software developers should not need to be overworked, so overtime should not be needed2001-08-30 14:55:34.0
    has principles
    • The development team includes all the stakeholders
    • Large requirements documents are replaced by short user stories which dictate project planning
    • Releases are small and frequent
    • Planning takes place just before the start of each iteration
    • Scope, resources and time are the three project variables that can be changed. Management can only dictate two of these; the developers determine the third
    • Quality should not be sacrificed
    • In order to ensure high quality, design for testability is emphasized: Automated test cases are written before the software is developed
    2001-08-30 14:55:34.0
    has web site www.extremeprogramming.org    2001-08-30 14:55:34.0
    is popular for small projects that involve uncertain, changing requirements and other sources of high risk2001-08-30 14:55:34.0
    is a subtopic of 11.2 - Software Process Models2001-08-30 14:55:34.0
    is an instance of methodology2001-08-30 14:55:34.0
    is an instance of process model2001-08-30 14:55:34.0
    promotes the use of CRC cards, a focus on simplicity, creation of 'spike' throwaway prototypes when difficult technical issues are encountered, merciless restructuring of code, frequent integration, programming in pairs, and continual improvement2001-08-30 14:55:34.0
    facadehas context html>
    • Often, an application contains several complex packages.
    • A programmer working with such packages has to manipulate many different classes
    2001-08-30 14:55:34.0
    has definition A pattern in which you create a class that provides a simplified interface to a package2001-08-30 14:55:34.0
    has forces html>
    • It is hard for a programmer to understand and use an entire subsystem - in particular, to determine which methods are public.
    • If several different application classes call methods of the complex package, then any modifications made to the package will necessitate a complete review of all these classes.
    2001-08-30 14:55:34.0
    has problem How do you simplify the view that programmers have of a complex package?2001-08-30 14:55:34.0
    has references one of the Gang of Four patterns.2001-08-30 14:55:34.0
    has solution
    1. Create a special class, called a «Facade», which will simplify the use of the package.
    2. The «Facade» will contain a simplified set of public methods such that most other subsystems do not need to access the other classes in the package.
    3. The net result is that the package as a whole is easier to use and has a reduced number of dependencies with other packages.
    4. Any change made to the package should only necessitate a redesign of the «Facade»class.
    2001-08-30 14:55:34.0
    is a subtopic of 6.9 - The Facade Pattern2001-08-30 14:55:35.0
    is an instance of design pattern2001-08-30 14:55:35.0
    facilitatoris a synonym of moderator2001-08-30 14:55:35.0
    failurehas definition An unacceptable behaviour exhibited by a system2001-08-30 14:55:35.0
    has example the production of incorrect outputs, the system running too slowly, or the user having trouble finding online help2001-08-30 14:55:35.0
    is a kind of problem2001-08-30 14:55:35.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:35.0
    is a synonym of bug2001-08-30 14:54:44.0
    is usually the result of a violation of those requirements that are stated explicitly in a requirements document2001-08-30 14:55:35.0
    can be the result of a violation of an implicit requirement2001-08-30 14:55:35.0
    may arise from violations of either functional requirements or non-functional requirements2001-08-30 14:55:35.0
    may be cause by several defects working together2001-08-30 14:55:35.0
    falseis a subtopic of The Basics of Java2001-08-30 14:55:35.0
    is an instance of Java keyword2001-08-30 14:55:35.0
    fat-client systemhas advantage since more computations are distributed to the clients, better use is made of available computational resources; the server can therefore be smaller or can be made to handle more clients2001-08-30 14:55:35.0
    has definition A client-server system in which the client does a large amount of computation2001-08-30 14:55:35.0
    is a kind of client-server system2001-08-30 14:55:35.0
    is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:55:35.0
    feedbackhas definition Any response in the system's user interface to a user's actions2001-08-30 14:55:35.0
    has example displaying a message, changing a colour or displaying a dialog2001-08-30 14:55:35.0
    is a kind of event2001-08-30 14:55:35.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:35.0
    fieldis a synonym of instance variable2001-08-30 14:55:35.0
    fileis a kind of subject2001-08-30 14:55:35.0
    is a subtopic of The Basics of Java2001-08-30 14:55:35.0
    filterconverts raw bytes of a message into other forms2001-08-30 14:55:35.0
    has definition A component in the pipe-and-filter architectural pattern that inputs simple data, from the pipeline, processes it and outputs data into the pipeline2001-08-30 14:55:35.0
    is a kind of stream class2001-08-30 14:55:36.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:35.0
    finalis a subtopic of The Basics of Java2001-08-30 14:55:36.0
    is an instance of Java keyword2001-08-30 14:55:36.0
    final software productis a result of all the design decisions made during its design2001-08-30 14:55:36.0
    is a kind of program2001-08-30 14:55:36.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:36.0
    will be different if different design decisions are made2001-08-30 14:55:36.0
    final testingis a kind of testing2001-08-30 14:55:36.0
    is a subtopic of 10.10 - Inspections2001-08-30 14:55:36.0
    should be performed after inspecting2001-08-30 14:55:36.0
    finallyis a subtopic of The Basics of Java2001-08-30 14:55:36.0
    is an instance of Java keyword2001-08-30 14:55:36.0
    financial benefit to useris a kind of benefit2001-08-30 14:55:36.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:36.0
    is measured by how much money the user can make or save if you implemented the alternative under consideration2001-08-30 14:55:36.0
    first draft of architectural modelgives use case modellers guidance about the steps the user will need to perform2001-08-30 14:55:36.0
    is a kind of architectural model2001-08-30 14:55:36.0
    is a subtopic of 9.4 - Software Architecture2001-08-30 14:55:36.0
    can be created at the same time as the central use cases2001-08-30 14:55:36.0
    flashinghas advantages it rapidly draws attention to items2001-08-30 14:55:36.0
    has problems
    • distracting and annoying
    • fast flashing can cause epileptic seizures
    2001-08-30 14:55:36.0
    is a kind of coding technique2001-08-30 14:55:37.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:36.0
    floatis a subtopic of The Basics of Java2001-08-30 14:55:37.0
    is an instance of Java primitive data type2001-08-30 14:55:37.0
    see also Float classlink: chapter2section2.8.html#613, 2001-08-30 14:55:37.0
    see also float^22001-08-30 14:55:37.0
    stores a floating point numberlink: chapter2section2.8.html#570, 2001-08-30 14:55:37.0
    can use basic arithmetic operators +, -, *, / and %link: chapter2section2.8.html#578, 2001-08-30 14:55:37.0
    Float classis a subtopic of The Basics of Java2001-08-30 14:55:37.0
    is an instance of Java wrapper class2001-08-30 14:55:37.0
    see also floatlink: chapter2section2.8.html#613, 2001-08-30 14:55:37.0
    float^2is a subtopic of The Basics of Java2001-08-30 14:55:37.0
    is an instance of Java keyword2001-08-30 14:55:37.0
    see also float2001-08-30 14:55:37.0
    flow graphhas definition A graph showing all possible paths through an algorithm2001-08-30 14:55:37.0
    is a kind of diagram2001-08-30 14:55:37.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:37.0
    fonthas advantages it adds emphasis to text, and reinforces its structure, thus simplifying the information2001-08-30 14:55:37.0
    has localization issues
    • Unicode can handle most world character sets, but you also have to ensure that appropriate fonts are available
    2001-08-30 14:55:37.0
    has problems
    • using too many fonts results in confusion and a cluttered appearance
    • decorative or unusual fonts can be distracting
    2001-08-30 14:55:37.0
    is a kind of coding technique2001-08-30 14:55:37.0
    is a kind of locale-dependent feature2001-08-30 14:55:37.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:37.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:37.0
    foris a subtopic of The Basics of Java2001-08-30 14:55:37.0
    is an instance of Java keyword2001-08-30 14:55:37.0
    for loophas advantage all the information about controlling the loop is kept in one placelink: chapter2section2.8.html#753, 2001-08-30 14:55:37.0
    has disadvantage it can be slightly harder to read the code of a for loop than a while looplink: chapter2section2.8.html#753, 2001-08-30 14:55:37.0
    has form
    for(initializer; condition; incrementer)
    {
    // statements to keep executing while condition is true
    }
    link: chapter2section2.8.html#746, 2001-08-30 14:55:38.0
    has part incrementerlink: chapter2section2.8.html#747, 2001-08-30 14:55:38.0
    has part initializerlink: chapter2section2.8.html#747, 2001-08-30 14:55:38.0
    is a kind of loop2001-08-30 14:55:38.0
    is a subtopic of The Basics of Java2001-08-30 14:55:38.0
    can be interchanged with a while looplink: chapter2section2.8.html#751, 2001-08-30 14:55:37.0
    forcehas definition In a pattern, an issue or concern that you need to consider when solving the problem, including, criteria for evaluating a good solution2001-08-30 14:55:38.0
    is a kind of subject2001-08-30 14:55:38.0
    is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:55:38.0
    is part of design pattern2001-08-30 14:55:38.0
    forkcauses execution to split into two concurrent threads2001-08-30 14:55:38.0
    has multiple outgoing transitions2001-08-30 14:55:38.0
    has one incoming transition2001-08-30 14:55:38.0
    has definition A symbol in an activity diagram indicating splitting of control into multiple threads2001-08-30 14:55:38.0
    is a kind of symbol in activity diagram2001-08-30 14:55:38.0
    is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:55:38.0
    is drawn as a short line at which transitions can start and end2001-08-30 14:55:38.0
    formal languagehas definition A language that uses mathematics for the purpose of modelling2001-08-30 14:55:38.0
    is a kind of language2001-08-30 14:55:38.0
    is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:55:38.0
    is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:55:38.0
    forward engineeringhas definition Moving from requirements to design or design to implementation2001-08-30 14:55:38.0
    is a kind of software engineering2001-08-30 14:55:38.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:38.0
    is part of reengineering2001-08-30 14:55:38.0
    is performed during reverse engineering2001-08-30 14:55:38.0
    fourth-generation languagehas example applications like spreadsheets, word processors and database programs that come with built-in macro languages and have powerful reuse capabilities2001-08-30 14:55:38.0
    is a kind of programming language2001-08-30 14:55:39.0
    is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:55:39.0
    provides many of the functions that a programmer may want to do (e.g. sorting, searching, displaying dialogs etc.) as basic language statements2001-08-30 14:55:39.0
    frameworkcontains important functionality2001-08-30 14:55:39.0
    enables the reuse of both design and code2001-08-30 14:55:39.0
    has definition A skeletal software component that performs functions needed by a class of systems, and which is intended to be incorporated into the design of such systems2001-08-30 14:55:39.0
    has definition Reusable software that implements a generic solution to a generalized problem. It provides common facilities applicable to different application programs2001-08-30 14:55:39.0
    has example A framework for a rental store could do such things as manage membership, handle deposits, process rentals and returns, and compute penalties for late returns2001-08-30 14:55:39.0
    has part hook2001-08-30 14:55:39.0
    has part slots2001-08-30 14:55:39.0
    is incomplete2001-08-30 14:55:39.0
    is a kind of component2001-08-30 14:55:39.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:39.0
    provides common facilities applicable to different application programs2001-08-30 14:55:39.0
    represents the structure of an entire application or subsystem2001-08-30 14:55:39.0
    uses classes or methods that are missing2001-08-30 14:55:39.0
    can be simple or complex2001-08-30 14:55:39.0
    can be written in any programming language2001-08-30 14:55:39.0
    framework developeravoids divergent changes by designing the framework to be general enough2001-08-30 14:55:39.0
    implements design elements that are common to several applications2001-08-30 14:55:39.0
    is a kind of software developer2001-08-30 14:55:39.0
    is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:55:39.0
    should ensure that the framework is well tested and reviewed2001-08-30 14:55:39.0
    frameworkmust be adapted to handle the requirements of particular customers2001-08-30 14:55:39.0
    framework with many slotsis complex to use2001-08-30 14:55:39.0
    is flexible2001-08-30 14:55:39.0
    is more likely to be reused to create a wide range of applications across different domains2001-08-30 14:55:39.0
    is a kind of framework2001-08-30 14:55:39.0
    is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:55:39.0
    Framework-Based Software Development in C++has author G. Rogers2001-08-30 14:55:39.0
    has ISBN number 0-13-533365-22001-08-30 14:55:39.0
    is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:55:39.0
    is an instance of book about frameworks2001-08-30 14:55:39.0
    was published by Prentice Hall2001-08-30 14:55:39.0
    was published in 19972001-08-30 14:55:39.0
    functionis a kind of programming language construct2001-08-30 14:55:40.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:55:39.0
    Function Pointscounts various features of the requirements and uses these to compute an estimate of the system's size2001-08-30 14:55:40.0
    has definition An algorithmic cost estimation method in which you count features of the requirements and use these to compute an estimate of the system's size2001-08-30 14:55:40.0
    is a subtopic of 11.3 - Cost Estimation2001-08-30 14:55:40.0
    is an instance of algorithmic cost estimation model2001-08-30 14:55:40.0
    functional cohesionhas advantages
    • It is easier to understand a module when you know all it does is generate one specific output and has no side effects
    • It is easier to replace a functionally cohesive module with another that performs the same computation
    • functionally cohesive module is much more likely to be reusable
    2001-08-30 14:55:40.0
    has definition A form of cohesion in which modules which together perform a function (a computation that returns a result and has no side effects) are kept together, and everything else is kept out2001-08-30 14:55:40.0
    is a kind of cohesion2001-08-30 14:55:40.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:40.0
    is achieved when a module only performs a single computation, and returns a result, without having side-effects2001-08-30 14:55:40.0
    should be used if possible2001-08-30 14:55:40.0
    functional requirementdescribes what the system should do, i.e. the services provided for the users and for other systems2001-08-30 14:55:40.0
    has definition A requirement that describes a service provided by a system2001-08-30 14:55:40.0
    is a kind of requirement2001-08-30 14:55:40.0
    is a subtopic of 4.5 - Types of Requirements2001-08-30 14:55:40.0
    should be consistent with non-functional requirements2001-08-30 14:55:40.0
    should be consistent with project plan2001-08-30 14:55:40.0
    functional requirementscontains
    • What inputs the system should accept, and under what conditions
    • What outputs the system should produce, and under what conditions
    • What data the system should store that other systems might use
    • What computations the system should perform
    • The timing and synchronization of the above
    2001-08-30 14:55:40.0
    includes 2001-08-30 14:55:40.0
    is a kind of requirements document2001-08-30 14:55:40.0
    is a subtopic of 4.5 - Types of Requirements2001-08-30 14:55:40.0
    do not describe particular algorithms to be used2001-08-30 14:55:40.0
    functionally cohesive modulehas example
    • A module that computes a mathematical function such as sine or cosine
    • A module that takes a set of equations and solves for the unknowns
    • A module in a chemical factory that takes data from various monitoring devices and computes the yield of a chemical process as a percentage of the theoretical maximum
    2001-08-30 14:55:40.0
    has example a module that inputs meteorological data from weather stations and satellites and generates an atmospheric model that other systems can use to generate weather forecasts2001-08-30 14:55:40.0
    has inputs function parameters, but they can also include files or some other stream of data2001-08-30 14:55:40.0
    is a kind of cohesive module2001-08-30 14:55:41.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:40.0
    returns a simple return value or a more complex data structure2001-08-30 14:55:41.0
    can call the services of other modules, but the called modules must preserve the functional cohesion2001-08-30 14:55:40.0
    does not have side effects such as updating a database or creating a new file2001-08-30 14:55:40.0
    does not interact with the user2001-08-30 14:55:40.0
    Game Architecture and Designhas author Andrew Rollings, Dave Morris2001-08-30 14:55:41.0
    has ISBN number 1-576-10425-72001-08-30 14:55:41.0
    is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:55:41.0
    is an instance of software architecture book2001-08-30 14:55:41.0
    was published by Coriolis Group2001-08-30 14:55:41.0
    was published in 19992001-08-30 14:55:41.0
    Gantt chartcontains one axis showing time and the other axis showing the activities that will be performed2001-08-30 14:55:41.0
    has definition A diagram used to graphically present the start and end dates of each software engineering task; it shows time on one axis, and tasks on the other2001-08-30 14:55:41.0
    has purpose to graphically present the start and end dates of each software engineering task2001-08-30 14:55:41.0
    is similar to a UML sequence chart2001-08-30 14:55:41.0
    is a kind of diagram2001-08-30 14:55:41.0
    is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:55:41.0
    shows top-level tasks, subtasks and milestones2001-08-30 14:55:41.0
    general hierarchyhas antipatterns modelling a hierarchy of categories using a hierarchy of classes2001-08-30 14:55:41.0
    has context many class diagrams where you often find a set of objects that have a naturally hierarchical relationship.2001-08-30 14:55:41.0
    has definition A pattern in which two classes are related both by a generalization and by a one to many association, such that the generated graph of instances forms a hierarchy2001-08-30 14:55:41.0
    has forces
    • You want a flexible way of representing the hierarchy that naturally prevents certain objects from having subordinates
    • You also have to account for the fact that all the objects share common properties and operations
    2001-08-30 14:55:41.0
    has problem How do you draw a class diagram to represent a hierarchy of objects, in which some objects cannot have subordinates?2001-08-30 14:55:41.0
    has related patterns the Reflexive Association pattern, the Composite pattern (a specialization of the General Hierarchy pattern)2001-08-30 14:55:41.0
    has solution
    1. Create an abstract «Node» class to represent the features possessed by each object in the hierarchy.
    2. Then create at least two subclasses of the «Node» class.
    3. One of the subclasses, «SuperiorNode», must be linked by a «subordinates» association to the superclass; whereas at least one subclass, «NonSuperiorNode», must not be.
    4. The subordinates of a «SuperiorNode» can thus be instances of either «SuperiorNode» or «NonSuperiorNode».
    2001-08-30 14:55:41.0
    is a subtopic of 6.3 - The General Hierarchy Pattern2001-08-30 14:55:41.0
    is an instance of design pattern2001-08-30 14:55:41.0
    generalizationdescribes a relationship between classes in a class diagram2001-08-30 14:55:41.0
    groups classes into inheritance hierarchies2001-08-30 14:55:41.0
    has definition The relationship between a set of similar entities and another entity that contains the common aspects of those entities2001-08-30 14:55:41.0
    helps to avoid duplication of code2001-08-30 14:55:41.0
    improves reuse2001-08-30 14:55:41.0
    is a kind of hierarchy2001-08-30 14:55:41.0
    is a subtopic of 5.4 - Generalization2001-08-30 14:55:41.0
    is drawn as a small triangle pointing towards the superclass in a UML class diagram2001-08-30 14:55:41.0
    is implemented using the extends keyword in Java2001-08-30 14:55:41.0
    see also generalization^2, generalization^32001-08-30 14:55:41.0
    does not appear in instance diagram2001-08-30 14:55:41.0
    generalization hierarchyis a synonym of inheritance hierarchy2001-08-30 14:55:41.0
    is a synonym of isa hierarchy2001-08-30 14:55:42.0
    generalization symbolis a kind of symbol in UML diagram2001-08-30 14:55:42.0
    is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:55:42.0
    generalization^2has definition The process of creating a relationship between a set of similar entities and another entity that contains the common aspects of those entities2001-08-30 14:55:42.0
    is a kind of process2001-08-30 14:55:42.0
    is a subtopic of 5.4 - Generalization2001-08-30 14:55:42.0
    see also generalization, generalization^32001-08-30 14:55:42.0
    generalization^3has purpose to represent several similar use cases2001-08-30 14:55:42.0
    is a kind of use case2001-08-30 14:55:42.0
    is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:55:42.0
    is used much like superclasses in a class diagram2001-08-30 14:55:42.0
    see also generalization, generalization^22001-08-30 14:55:42.0
    generic softwareaccounts for most of the software running today on general-purpose computers such as PCs; for example word processors, spreadsheets and games2001-08-30 14:55:42.0
    has requirements determined largely by market research2001-08-30 14:55:42.0
    has soft real-time characteristics: when timing constraints are not met, such systems merely becomes sluggish to use2001-08-30 14:55:42.0
    has definition Software designed to be sold on the open market and to perform functions on general-purpose computers that many people need (in contrast to custom software)2001-08-30 14:55:42.0
    has example word processors, spreadsheets, compilers, web browsers, operating systems, computer games and accounting packages for small businesses2001-08-30 14:55:42.0
    has global CPU usage high2001-08-30 14:55:42.0
    has global development effort medium2001-08-30 14:55:42.0
    has global number of copies medium2001-08-30 14:55:42.0
    is a kind of software2001-08-30 14:55:42.0
    is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:42.0
    is a synonym of commercial off-the-shelf software2001-08-30 14:54:57.0
    is a synonym of shrink-wrapped software2001-08-30 14:57:30.0
    is developed for potential customers2001-08-30 14:55:42.0
    is often used by the business world instead of custom software because it can be far cheaper and more reliable2001-08-30 14:55:42.0
    is sold on the open market2001-08-30 14:55:42.0
    performs functions on general-purpose computers that many people need2001-08-30 14:55:42.0
    can be cheaper and more reliable than custom software2001-08-30 14:55:42.0
    can be customised but when a new release of the generic software is issued, the customization work may have to be re-done2001-08-30 14:55:42.0
    may not meet an organization's specific needs2001-08-30 14:55:42.0
    glass-box testerdesigns design tests that will exercise all aspects of each algorithm and data structure2001-08-30 14:55:42.0
    examines the design documents and the code2001-08-30 14:55:42.0
    is a kind of tester2001-08-30 14:55:42.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:42.0
    observes the steps taken by algorithms and their internal data (at run time)2001-08-30 14:55:42.0
    performs glass-box testing2001-08-30 14:55:42.0
    can ensure that testing strategy has reached a targeted coverage of statements and branches2001-08-30 14:55:42.0
    glass-box testingallows the tester to be more thorough than black-box testing2001-08-30 14:55:42.0
    has definition A form of testing in which the tester can examine the design documents and the code, as well as analyze and possibly manipulate the internal state of the entity being tested2001-08-30 14:55:42.0
    involves examining the design documents and the code, as well as observing at run time the steps taken by algorithms and their internal data2001-08-30 14:55:43.0
    is more time consuming than black-box testing2001-08-30 14:55:43.0
    is a kind of testing2001-08-30 14:55:43.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:43.0
    is a synonym of structural testing2001-08-30 14:57:48.0
    is a synonym of white-box testing2001-08-30 14:58:23.0
    is part of a formal testing process only when testing critical or complex components2001-08-30 14:55:43.0
    can detect deadlock and livelock2001-08-30 14:55:42.0
    global variablecauses common coupling2001-08-30 14:55:43.0
    has definition A variable that is accessible from all procedures in the system, or in the scope of just a specific set of modules (e.g. a Java package).2001-08-30 14:55:43.0
    is a kind of variable2001-08-30 14:55:43.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:43.0
    were commonly used in older programming languages2001-08-30 14:55:43.0
    glue codehas definition Code that is written to connect reused commercial off-the-shelf applications2001-08-30 14:55:43.0
    is a kind of code2001-08-30 14:55:43.0
    is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:55:43.0
    is often written in a scripting language2001-08-30 14:55:43.0
    goalhas definition What the user hopes to accomplish by using a system2001-08-30 14:55:43.0
    is a kind of subject2001-08-30 14:55:43.0
    is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:55:43.0
    gold-platinghas definition Building a list of requirements that does more than needed2001-08-30 14:55:43.0
    is a kind of process2001-08-30 14:55:43.0
    is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:55:43.0
    good softwareis a kind of software2001-08-30 14:55:43.0
    is a subtopic of 1.1 - The Nature of Software2001-08-30 14:55:43.0
    is easy to modify2001-08-30 14:55:43.0
    good user interfaceallows the user to always get out, go back or undo an action2001-08-30 14:55:43.0
    allows the user to cancel out of a dialog box2001-08-30 14:55:43.0
    allows the user to set system preferences so she always feels in control2001-08-30 14:55:43.0
    allows the user to undo an action that may have changed data in the system2001-08-30 14:55:43.0
    appears uncluttered2001-08-30 14:55:43.0
    arranges elements in straight lines or several columns2001-08-30 14:55:43.0
    asks the user to confirm an action if it can have serious consequences and cannot be undone2001-08-30 14:55:43.0
    avoids technical jargon and acronyms in text2001-08-30 14:55:43.0
    ensures that the user does not have to navigate anywhere to do subsequent steps of a task2001-08-30 14:55:43.0
    explains a situation in adequate detail and helps the user to resolve a problem when something goes wrong2001-08-30 14:55:43.0
    follows look-and-feel standards2001-08-30 14:55:44.0
    follows usability principles2001-08-30 14:55:44.0
    has different modes for beginners and power users if the system is complex2001-08-30 14:55:44.0
    has easy-to-understand help2001-08-30 14:55:44.0
    has informative error messages which tell the user the exact thing that has gone wrong and exactly how to correct the problem if possible2001-08-30 14:55:44.0
    has response time of a second or less for operations such as saving most data, moving between windows, obtaining help, and obtaining the first feedback from any longer operation2001-08-30 14:55:44.0
    has response time that appears instantaneous for operations such as tracking the cursor, popping up of menus and echoing of input2001-08-30 14:55:44.0
    has adequate response time2001-08-30 14:55:44.0
    informs the user about where they are located among the various windows and pages2001-08-30 14:55:44.0
    informs users of the progress of operations, changes of state, and of their location as they navigate2001-08-30 14:55:44.0
    is good enough that the user rarely needs to access the help system2001-08-30 14:55:44.0
    is understandable by all users2001-08-30 14:55:44.0
    is usable by people with disabilities2001-08-30 14:55:44.0
    is a kind of user interface2001-08-30 14:55:44.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:44.0
    is internationalized2001-08-30 14:55:44.0
    mimics other applications, while avoiding copyright infringements and duplicating the weaknesses of other applications2001-08-30 14:55:44.0
    only displays essential information, while allowing the user to request additional information by navigating to another dialog box, tab or page2001-08-30 14:55:44.0
    provides adequate customization capabilities or preferences settings so that the user has the freedom to adapt the system to his or her needs2001-08-30 14:55:44.0
    reduces the amount of reading and manipulation the user has to do2001-08-30 14:55:44.0
    shows an indication of progress for operations that are time consuming2001-08-30 14:55:44.0
    takes into account locale-dependent features2001-08-30 14:55:44.0
    uses a progress bar to inform the user what is going on if an operation is taking more than a few seconds2001-08-30 14:55:44.0
    uses appropriate coding techniques2001-08-30 14:55:44.0
    uses good labels to ensure all coding techniques are fully understood by users2001-08-30 14:55:44.0
    uses grouping, colour and fonts to help highlight the organization of information2001-08-30 14:55:44.0
    uses similar layouts and graphic designs throughout the application2001-08-30 14:55:44.0
    warns if the response time for an operation will be more than 15-20 seconds so that the user can do something else while waiting or choose not to perform the operation2001-08-30 14:55:44.0
    warns the user, before they perform an action, if it cannot be undone2001-08-30 14:55:44.0
    does not have too many pages, each with only a small amount of information, because the user will have to spend much time navigating and will become lost2001-08-30 14:55:43.0
    does not use too many different colours, fonts or graphics2001-08-30 14:55:43.0
    gotois a subtopic of The Basics of Java2001-08-30 14:55:44.0
    is an instance of Java keyword2001-08-30 14:55:44.0
    graphical languageis a kind of language2001-08-30 14:55:44.0
    is a subtopic of 5.1 - What is UML?2001-08-30 14:55:44.0
    Greatest achievements of engineeringhas URL www.greatachievements.org    2001-08-30 14:55:44.0
    is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:55:44.0
    is an instance of engineering web site2001-08-30 14:55:44.0
    green field developmentforces the development team to determine the requirements for the software2001-08-30 14:55:44.0
    has definition Development of a completely new system, as opposed to modifying an existing system2001-08-30 14:55:44.0
    is a kind of development2001-08-30 14:55:44.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:44.0
    green field projecthas definition A software project to develop an entirely new software system from scratch2001-08-30 14:55:44.0
    is less common than evolutionary project2001-08-30 14:55:44.0
    is a kind of software project2001-08-30 14:55:45.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:55:45.0
    is not constrained by the design decisions and errors made by predecessors2001-08-30 14:55:45.0
    is often enjoyed by software developers because they have a wider freedom to be creative about the design2001-08-30 14:55:45.0
    does not involve modifying an existing system2001-08-30 14:55:44.0
    grouping and borderinghas advantages helps to convey the organization of information and reduce its perceived complexity2001-08-30 14:55:45.0
    is a kind of coding technique2001-08-30 14:55:45.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:45.0
    guard conditionhas definition A condition that determines whether a certain transition will occur in a state diagram when an event happens2001-08-30 14:55:45.0
    is a kind of condition2001-08-30 14:55:45.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:55:45.0
    is evaluated only when its associated event occurs2001-08-30 14:55:45.0
    occurs in a state diagram2001-08-30 14:55:45.0
    GUI Design Handbookhas author S. Fowler2001-08-30 14:55:45.0
    has ISBN number 0-07-059274-82001-08-30 14:55:45.0
    has URL www.books.mcgraw-hill.com/computing/authors/fowler.html    2001-08-30 14:55:45.0
    is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:55:45.0
    is an instance of book about user interfaces and usability2001-08-30 14:55:45.0
    was published by McGraw Hill2001-08-30 14:55:45.0
    was published in 19972001-08-30 14:55:45.0
    Handbook of Software Quality Assurancehas editor G. Gordon Schulmeyer2001-08-30 14:55:45.0
    has ISBN number 0-130-10470-12001-08-30 14:55:45.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:45.0
    is an instance of book about software quality assurance2001-08-30 14:55:45.0
    was published by Prentice Hall2001-08-30 14:55:45.0
    was published in 19992001-08-30 14:55:45.0
    hardware and third-party software specialistis responsible for 2001-08-30 14:55:45.0
    is a kind of software developer2001-08-30 14:55:45.0
    is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:55:45.0
    is part of software development team2001-08-30 14:55:45.0
    heavyweight classhas definition A class which is time-consuming and complicated to create instances of2001-08-30 14:55:46.0
    is a kind of class2001-08-30 14:55:46.0
    is a subtopic of 6.12 - The Proxy Pattern2001-08-30 14:55:46.0
    help systemis a kind of software system2001-08-30 14:55:46.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:46.0
    provides help performing the steps of a task2001-08-30 14:55:46.0
    does not explain all the details at once but gives the user an outline of the most important things he or she needs to know, with the opportunity to click on links that provide additional details2001-08-30 14:55:46.0
    must be accurate and up-to-date2001-08-30 14:55:46.0
    must be easily searchable2001-08-30 14:55:46.0
    should be easy to understand2001-08-30 14:55:46.0
    should be fast to access2001-08-30 14:55:46.0
    should be integrated with the application, making it context sensitive2001-08-30 14:55:46.0
    should explain error messages2001-08-30 14:55:46.0
    should not increase user's frustration2001-08-30 14:55:46.0
    heuristic evaluationhas definition The process of systematically looking for usability defects in a user interface, based on a set of usability guidelines or principles2001-08-30 14:55:46.0
    has steps
    1. pick some user cases to evaluate, focussing initially on the most important ones
    2. for each window, page or dialog that appears during the execution of the use case, study it in detail to look for possible usability defects: violations of the principles and guidelines (the heuristics) discussed in the previous section
    3. write down a description of each defect and any ideas for how the defect might be fixed
    2001-08-30 14:55:46.0
    is a kind of usability evaluation2001-08-30 14:55:46.0
    is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:55:46.0
    can be performed on a finished system or a prototype2001-08-30 14:55:46.0
    hierarchical teamhas n-1 communication channels2001-08-30 14:55:46.0
    has definition A rigid team structure in which each individual reports to a manager and is responsible for performing the tasks delegated by that manager2001-08-30 14:55:46.0
    has disadvantage since everybody is responsible only for their own work, problems may go unnoticed2001-08-30 14:55:46.0
    has risk important information will not be communicated2001-08-30 14:55:46.0
    is like the military or a large bureaucratic organization2001-08-30 14:55:46.0
    is a kind of software engineering team model2001-08-30 14:55:46.0
    is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:55:46.0
    is suited to large projects with a strict schedule and where everybody is well-trained and has a well-defined role2001-08-30 14:55:46.0
    hierarchyis a kind of subject2001-08-30 14:55:46.0
    is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:55:46.0
    high efficiencyis a kind of efficiency2001-08-30 14:55:47.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:47.0
    may cause a design to be less easy to understand, which may reduce maintainability, which in turn leads to defects that reduce reliability2001-08-30 14:55:47.0
    may require avoiding extra code to provide feedback to the users which reduces usability2001-08-30 14:55:47.0
    may require not checking for errors and avoiding redundant computations which reduces reliability2001-08-30 14:55:47.0
    high level languagecomes with more basic libraries and APIs than low level language2001-08-30 14:55:47.0
    is a kind of programming language2001-08-30 14:55:47.0
    is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:55:47.0
    high reliabilityis the result of a very low failure rate2001-08-30 14:55:47.0
    is a kind of reliability2001-08-30 14:55:47.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:47.0
    may require repeatedly checking for errors and adding redundant computations2001-08-30 14:55:47.0
    high reusabilityis a kind of reusability2001-08-30 14:55:47.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:47.0
    can reduce long-term costs faced by the development team2001-08-30 14:55:47.0
    high usabilityis a kind of usability2001-08-30 14:55:47.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:55:47.0
    may require adding extra code to provide feedback to the users, which might in turn reduce overall efficiency2001-08-30 14:55:47.0
    high-yield testinghas definition A testing strategy that is both efficient and effective2001-08-30 14:55:47.0
    is a kind of testing strategy2001-08-30 14:55:47.0
    is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:55:47.0
    holidayhas localization issues
    • although international business is based on the Gregorian calendar, the calendars of certain cultures and religions are also used in some places
    2001-08-30 14:55:47.0
    is a kind of locale-dependent feature2001-08-30 14:55:48.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:48.0
    hookhas definition An aspect of the design deliberately added to allow other designers to add additional functionality. It does nothing in the basic version of the system, but is designed to be implemented or overridden when the system is extended or reused2001-08-30 14:55:48.0
    is similar to a slot except that a hook represents functionality that it is optional for the developer to provide when they exploit the framework2001-08-30 14:55:48.0
    is a kind of subject2001-08-30 14:55:48.0
    is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:55:48.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:48.0
    is part of system2001-08-30 14:55:48.0
    hook methodhas definition A method that does nothing other than returning to its caller, but is designed to be overridden in subclasses2001-08-30 14:55:48.0
    is a kind of method2001-08-30 14:55:48.0
    is a subtopic of 3.7 - Basic Description of OCSF- Client Side2001-08-30 14:55:48.0
    horizontal frameworkhas more slots and hooks than a vertical framework2001-08-30 14:55:48.0
    has definition A framework that provides facilities that many different types of applications will need2001-08-30 14:55:48.0
    is a kind of framework2001-08-30 14:55:48.0
    is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:55:48.0
    does not have as complete an implementation as a vertical framework2001-08-30 14:55:48.0
    horizontal incremental testingis a kind of incremental testing2001-08-30 14:55:48.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:48.0
    hosthas definition A computer on a network2001-08-30 14:55:48.0
    is a kind of subject2001-08-30 14:55:48.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:48.0
    is identified by prepending characters to the domain's name2001-08-30 14:55:48.0
    must have a different number for each of its servers2001-08-30 14:55:48.0
    host namehas definition An alphanumeric name given to a host, normally divided into several components separated by dots2001-08-30 14:55:48.0
    is a more human-readable form of IP address2001-08-30 14:55:48.0
    is a kind of name2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:48.0
    host name of a Unix or Linux computeris a kind of host name2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    can be found by issuing the commands hostname or uname -n2001-08-30 14:55:49.0
    can be found by using the command ypcat hosts2001-08-30 14:55:49.0
    host name of a Windows 2000 computeris a kind of host name2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    can be found by issuing the commands hostname and ipconfig /all2001-08-30 14:55:49.0
    host name of a Windows 95 or 98 computeris a kind of host name2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    can be found by issuing the command WINIPCFG and clicking on the 'more info' button
    or by looking in the 'identification' tab of the 'network' control panel
    2001-08-30 14:55:49.0
    host name of a Windows NT computeris a kind of host name2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    can be found by looking in the 'identification' tab of the 'network' control panel2001-08-30 14:55:49.0
    hostnamehas purpose to find the host name of a computer2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:49.0
    is an instance of Unix or Linux command2001-08-30 14:55:49.0
    is an instance of Windows command2001-08-30 14:55:49.0
    human languagehas localization issues
    • Different languages will require different amounts of space to say the same thing, so do not rely on screen layouts to remain the same
    • The order of parts of a sentence may change, so do not rely on constructing text by putting together substrings
    • Employ a skilled technical translator to translate text, and ensure he or she actually runs the system in both languages to verify it
    2001-08-30 14:55:49.0
    is a kind of language2001-08-30 14:55:50.0
    is a kind of locale-dependent feature2001-08-30 14:55:50.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:49.0
    Human-Computer Interactionhas author A. Dix, J. Finlay, G. Abowd and R. Beale2001-08-30 14:55:50.0
    has ISBN number 0-13-239864-82001-08-30 14:55:50.0
    is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:55:50.0
    is an instance of book about user interfaces and usability2001-08-30 14:55:50.0
    was published by Prentice-Hall2001-08-30 14:55:50.0
    was published in 19982001-08-30 14:55:50.0
    hung systemhas definition A system that appears to the user to not be doing anything, caused by such things as a crash, a deadlock, a livelock or an infinite loop2001-08-30 14:55:50.0
    is a kind of defect2001-08-30 14:55:50.0
    is a kind of software system2001-08-30 14:55:50.0
    is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:55:50.0
    may be caused by 2001-08-30 14:55:50.0
    IBM Java tutorialshas URL www.ibm.com/java/education/intro/courseoptions.htm    2001-08-30 14:55:50.0
    is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:55:50.0
    is an instance of web site about Java2001-08-30 14:55:50.0
    IBM VisualAge for Javahas URL www.ibm.com/visualage/vajava/    2001-08-30 14:55:50.0
    is a subtopic of The Basics of Java2001-08-30 14:55:50.0
    is an instance of programming environmentlink: chapter2section2.8.html#759, 2001-08-30 14:55:50.0
    stores source code in a repositorylink: chapter2section2.8.html#759, 2001-08-30 14:55:50.0
    iconhas advantages
    • allows many commands or objects to be listed in much less space than is possible with text
    • users can scan the screen to find an icon faster than they can scan to find particular words of text
    2001-08-30 14:55:50.0
    has localization issues
    • can invoke different impressions in people of different cultures
    2001-08-30 14:55:50.0
    has problems
    • notoriously difficult for users to interpret or distinguish
    • unusable by blind people
    2001-08-30 14:55:50.0
    is a kind of coding technique2001-08-30 14:55:51.0
    is a kind of locale-dependent feature2001-08-30 14:55:51.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:51.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:51.0
    should have a label if its meaning is not obvious, using a caption or pop-up label that appears when the user moves the mouse over it2001-08-30 14:55:51.0
    identityhas definition The characteristic of having a distinct existence, such that each entity can be uniquely referred to2001-08-30 14:55:51.0
    is a kind of software quality2001-08-30 14:55:51.0
    is a subtopic of 2.7 - Concepts that Define Object Orientation2001-08-30 14:55:51.0
    IEEEis a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:55:51.0
    is an instance of organization2001-08-30 14:55:51.0
    standardizes software engineering practices2001-08-30 14:55:51.0
    IEEE Computer Societyis a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:55:51.0
    is an instance of organization2001-08-30 14:55:51.0
    publishes many software engineering publications, including IEEE Software2001-08-30 14:55:51.0
    IEEE Softwarehas web site www.computer.org/software/    2001-08-30 14:55:51.0
    is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:55:51.0
    is an instance of software engineering magazine2001-08-30 14:55:51.0
    is published by the IEEE Computer Society2001-08-30 14:55:51.0
    IEEE Standard 1012covers Software Verification and Validation2001-08-30 14:55:51.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:51.0
    is an instance of quality assurance and testing standard2001-08-30 14:55:51.0
    IEEE Standard 1028covers Software Reviews2001-08-30 14:55:51.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:51.0
    is an instance of quality assurance and testing standard2001-08-30 14:55:51.0
    IEEE Standard 1219contains Software Maintenance    2001-08-30 14:55:52.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:55:52.0
    is an instance of project management standard2001-08-30 14:55:52.0
    IEEE Standard 1233contains Guide for Developing System Requirements Specifications2001-08-30 14:55:52.0
    is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:55:52.0
    is an instance of standard2001-08-30 14:55:52.0
    IEEE Standard 1490contains Adoption of the Project Management Institute's Project Management Body of Knowledge    2001-08-30 14:55:52.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:55:52.0
    is an instance of project management standard2001-08-30 14:55:52.0
    IEEE Standard 730covers Software Quality Assurance Plans2001-08-30 14:55:52.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:55:52.0
    is an instance of quality assurance and testing standard2001-08-30 14:55:52.0
    IEEE Standard 828contains Software Configuration Management Plans2001-08-30 14:55:52.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:55:52.0
    is an instance of project management standard    2001-08-30 14:55:52.0
    IEEE Standard 830contains Recommended Practice for Software Requirements Specifications2001-08-30 14:55:52.0
    is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:55:52.0
    is an instance of standard2001-08-30 14:55:52.0
    IEEE standards web sitehas URL www.standards.ieee.org/software/index.html    2001-08-30 14:55:52.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:55:53.0
    is an instance of web site about standards2001-08-30 14:55:53.0
    IEEE/ACM code of ethicsis a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:55:53.0
    is an instance of principle2001-08-30 14:55:53.0
    states Software engineers shall:
    • Act consistently with the public interest
    • Act in the best interests of their client or employer, as long as this is consistent with the public interest
    • Develop and maintain their product to the highest standards
    • Maintain integrity and independence when making professional judge
    • Promote an ethical approach in management
    • Advance the integrity and reputation of the profession, as long as doing so is consistent with the public interest
    • Be fair and supportive to colleagues
    • Participate in lifelong learning
    2001-08-30 14:55:53.0
    ifis a subtopic of The Basics of Java2001-08-30 14:55:53.0
    is an instance of Java keyword2001-08-30 14:55:53.0
    immutablehas context 2001-08-30 14:55:53.0
    has definition A pattern in which the instances of a class cannot change state after creation2001-08-30 14:55:53.0
    has forces html>
    • The immutability must be enforced.
    • There must be no loopholes that would allow 'illegal' modification of an immutable object.
    2001-08-30 14:55:53.0
    has problem How do you create a class whose instances are immutable?2001-08-30 14:55:53.0
    has related patterns Read-Only Interface pattern provides the same capability as immutable, except that certain privileged classes are allowed to make changes to instances.2001-08-30 14:55:53.0
    has solution
    1. Ensure that the constructor of the immutable class is the only place where the values of instance variables are set or modified.
    2. If a method that would otherwise modify an instance variable must be present, then it has to return a new instance of the class.
    2001-08-30 14:55:53.0
    is a subtopic of 6.10 - The Immutable Pattern2001-08-30 14:55:53.0
    is an instance of design pattern2001-08-30 14:55:53.0
    immutable objecthas definition an object that has a state which never changes after creation2001-08-30 14:55:53.0
    is a kind of object2001-08-30 14:55:53.0
    is a subtopic of 6.10 - The Immutable Pattern2001-08-30 14:55:53.0
    impact analysishas definition The process of exploring and documenting all possible effects of a change2001-08-30 14:55:53.0
    is a kind of analysis2001-08-30 14:55:53.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:53.0
    implementationhas definition The process of converting a design into an executable software system by programming and related activities2001-08-30 14:55:53.0
    is a kind of process2001-08-30 14:55:53.0
    is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:55:53.0
    Implementing Application Frameworks: Object-Oriented Frameworks at Workhas author Mohamed E. Fayad, Douglas C. Schmidt and Ralph Johnson2001-08-30 14:55:54.0
    has ISBN number 0-471-25201-82001-08-30 14:55:54.0
    is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:55:54.0
    is an instance of book about frameworks2001-08-30 14:55:54.0
    was published by Wiley2001-08-30 14:55:54.0
    was published in 19992001-08-30 14:55:54.0
    implementsis a subtopic of The Basics of Java2001-08-30 14:55:54.0
    is an instance of Java keyword2001-08-30 14:55:54.0
    is used by implements clause in a class that indicates that the class contains methods for each of the operations specified by the interfacelink: chapter2section2.8.html#949, 2001-08-30 14:55:54.0
    implicit attributehas definition An attribute^2 that is implied rather than explicitly stated in the requirements2001-08-30 14:55:54.0
    is a kind of attribute^22001-08-30 14:55:54.0
    is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:55:54.0
    implicit requirementhas definition A requirement not stated explicitly in the requirements document2001-08-30 14:55:54.0
    is a kind of requirement2001-08-30 14:55:54.0
    is a subtopic of 10.1 - Basic Definitions2001-08-30 14:55:54.0
    is discovered when a user or tester runs the system2001-08-30 14:55:54.0
    importis a subtopic of The Basics of Java2001-08-30 14:55:54.0
    is an instance of Java keyword2001-08-30 14:55:54.0
    import couplinghas definition A form of coupling in which one component declares that it imports (makes use of the definitions in) another2001-08-30 14:55:54.0
    has disadvantage if the imported component changes something on which the importer relies, or adds something that raises a conflict with something in the importer, then the importer must change2001-08-30 14:55:54.0
    is a weaker form of inclusion coupling2001-08-30 14:55:54.0
    is a kind of couplingstatus: put as a sub of inclusion coupling?, 2001-08-30 14:55:54.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:54.0
    is used by Java2001-08-30 14:55:54.0
    can be reduced by not importing packages or classes which you do not need2001-08-30 14:55:54.0
    can cause a system to suddenly fail if a new item is added to an imported file, and this new item has the same name as something you have already defined in your subsystem2001-08-30 14:55:54.0
    inappropriate management of resourceshas definition A defect that occurs when a program uses certain resources but does not make them available to other programs when it no longer needs them2001-08-30 14:55:54.0
    has testing strategy run the program intensively over a long period of time in such a way that it uses many resources, relinquishes them and then uses them again repeatedly2001-08-30 14:55:54.0
    is a kind of defect in handling stress and unusual situations2001-08-30 14:55:55.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:55:54.0
    inclusionhas definition A use case that captures commonality among a set of other use cases2001-08-30 14:55:55.0
    has purpose to allow you to express a part of a use case so you can capture commonality between several different use cases2001-08-30 14:55:55.0
    is a kind of use case2001-08-30 14:55:55.0
    is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:55:55.0
    is included in other use cases2001-08-30 14:55:55.0
    represents a performing of a lower-level task with a lower-level goal2001-08-30 14:55:55.0
    inclusion couplinghas definition A form of coupling in which one component includes the source code of another component. All the includers of a component are coupled to each other and to the included file2001-08-30 14:55:55.0
    has disadvantage if the included component changes something on which the includer relies, or adds something that raises a conflict with something in the includer, then the includer must change2001-08-30 14:55:55.0
    is a stronger form of import coupling2001-08-30 14:55:55.0
    is a kind of coupling2001-08-30 14:55:55.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:55.0
    is used by C and C++2001-08-30 14:55:55.0
    can be reduced by not including components which you do not need2001-08-30 14:55:55.0
    incompatibility with specific configurations of hardware or softwarehas example a system might fail if a different graphics card is installed, if certain fonts are missing, or a newer or older version of a web browser is installed2001-08-30 14:55:55.0
    has testing strategy extensively execute the system with a wide variety of configurations that might be encountered by users2001-08-30 14:55:55.0
    is a kind of defect in handling stress and unusual situations2001-08-30 14:55:55.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:55:55.0
    incorrect logical conditionshas definition A common defect in which the logical conditions that govern looping and if-then-else statements are wrongly formulated2001-08-30 14:55:55.0
    has testing strategy using equivalence class and boundary testing - to compute the equivalence classes, consider as an input each variable used in a rule or logical condition2001-08-30 14:55:55.0
    is a kind of defect in an ordinary algorithm2001-08-30 14:55:55.0
    is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:55:55.0
    increased salesis a kind of benefit2001-08-30 14:55:55.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:55.0
    increasing cohesionis a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:55.0
    is an instance of design principle2001-08-30 14:55:55.0
    makes a module easier to understand and change2001-08-30 14:55:55.0
    means ensuring that a package only has related classes2001-08-30 14:55:55.0
    states that you should divide things into smaller chunks intelligently; divide things up, but keep things together that belong together2001-08-30 14:55:55.0
    increasing reusabilityis a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:55.0
    is an instance of design principle2001-08-30 14:55:55.0
    can be accomplished by 2001-08-30 14:55:55.0
    incremental cost of any development technology requiredincludes the cots of: 2001-08-30 14:55:56.0
    is a kind of cost2001-08-30 14:55:56.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:56.0
    incremental cost of software engineering workincludes the extra cost of work involved in2001-08-30 14:55:56.0
    is a kind of cost2001-08-30 14:55:56.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:56.0
    is measured in person-days or person-months converted into monetary terms by multiplying by a factor that accounts for the average salary plus other costs associated with employing a person, such as their office space2001-08-30 14:55:56.0
    incremental cost that end-users and product support personnel will experienceincludes the cost of:
    • extra installation time
    • learning time
    • data entry time
    • extra software licenses
    2001-08-30 14:55:56.0
    is a kind of cost2001-08-30 14:55:56.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:56.0
    incremental developmenthas definition A process model in which the software is developed in a series of releases2001-08-30 14:55:56.0
    is a kind of process model2001-08-30 14:55:56.0
    is a subtopic of 11.2 - Software Process Models2001-08-30 14:55:56.0
    incremental software engineering time savedis a kind of benefit2001-08-30 14:55:56.0
    is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:55:56.0
    incremental testinghas definition A integration testing strategy in which you test subsystems in isolation, and then continue testing as you integrate more and more subsystems2001-08-30 14:55:56.0
    is a kind of integration testing2001-08-30 14:55:56.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:56.0
    independent testinghas advantage the testers do not have a vested interest in seeing as many test cases pass as possible2001-08-30 14:55:56.0
    has definition Testing performed by a separate group other than the people who do the design and programming2001-08-30 14:55:56.0
    is a kind of testing performed by software engineers2001-08-30 14:55:56.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:56.0
    independent testing grouphas definition A testing group separate from those who designed and programmed the system2001-08-30 14:55:56.0
    is a kind of tester2001-08-30 14:55:57.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:55:56.0
    independent testingmay be performed by a group that specializes in testing and has developed specific expertise in how to do good testing, and how to use testing tools2001-08-30 14:55:56.0
    informal class diagramhelps in understanding the domain2001-08-30 14:55:57.0
    is a kind of class diagram2001-08-30 14:55:57.0
    is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:55:57.0
    is part of exploratory domain model2001-08-30 14:55:57.0
    does not model software that will be developed2001-08-30 14:55:57.0
    may be created while performing domain analysis2001-08-30 14:55:57.0
    usually contains classes, associations and attributes that are outside the scope of the system2001-08-30 14:55:57.0
    information hidinghas definition Hiding details so as to reduce complexity2001-08-30 14:55:57.0
    is a kind of practice2001-08-30 14:55:57.0
    is a subtopic of 2.7 - Concepts that Define Object Orientation2001-08-30 14:55:57.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:55:57.0
    information overloadcauses the user to slow down, and makes learning the system harder2001-08-30 14:55:57.0
    distracts the user2001-08-30 14:55:57.0
    has definition A situation that occurs when the user has too much to look at2001-08-30 14:55:57.0
    is a common problem of user interfaces2001-08-30 14:55:57.0
    is a kind of situation2001-08-30 14:55:57.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:55:57.0
    inheritancehas definition The possession by one class of elements defined in another class, by virtue of the fact that the former class is defined to be a subclass of (to extend) the latter2001-08-30 14:55:57.0
    is a kind of subject2001-08-30 14:55:57.0
    is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:55:57.0
    occurs automatically once you have defined which classes are superclasses and which classes are their subclasses2001-08-30 14:55:57.0
    inheritance hierarchyhas definition The hierarchy formed by the generalization relationships of a set of classes2001-08-30 14:55:57.0
    is a kind of hierarchy2001-08-30 14:55:58.0
    is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:55:57.0
    is a synonym of generalization hierarchy2001-08-30 14:55:41.0
    is a synonym of isa hierarchy2001-08-30 14:56:04.0
    input fieldis a kind of user interface component2001-08-30 14:55:58.0
    is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:55:58.0
    InputStreamcontains a message composed of bytes2001-08-30 14:55:58.0
    has example of instance creation input = clientSocket.getInputStream();2001-08-30 14:55:58.0
    is a member of the java.io package2001-08-30 14:55:58.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:55:58.0
    is an instance of stream class2001-08-30 14:55:58.0
    inspectinghas definition A verification process that involves several people systematically proceeding through a document searching for defects2001-08-30 14:55:58.0
    involves understanding what would happen if the system were run2001-08-30 14:55:58.0
    is complementary to testing2001-08-30 14:55:58.0
    is mentally taxing2001-08-30 14:55:58.0
    is a kind of verification2001-08-30 14:55:58.0
    is a subtopic of 10.10 - Inspections2001-08-30 14:55:58.0
    is normally performed in a meeting2001-08-30 14:55:58.0
    is performed by inspection team2001-08-30 14:55:58.0
    requires attention to detail2001-08-30 14:55:58.0
    can find defects that relate to maintainability or efficiency that are not readily detectable when testing2001-08-30 14:55:58.0
    can find defects whose consequences might be subtle, hence the tester might not have thought to test for them, but which become clear when reading the source code or design documents2001-08-30 14:55:58.0
    does not normally include managers so that participants can express their criticisms more openly, not fearing repercussions from a manager but it may include managers if there are not enough people to perform inspections in a small organization2001-08-30 14:55:58.0
    should be performed before extensive testing, perhaps before any testing2001-08-30 14:55:58.0
    should not be done for more than two hours at a time or four hours a day2001-08-30 14:55:58.0
    inspectionis a kind of verification2001-08-30 14:55:58.0
    is a subtopic of 10.10 - Inspections2001-08-30 14:55:58.0
    see inspecting2001-08-30 14:55:58.0
    inspection meetinghas procedure
    1. The moderator calls the meeting and distributes the documents to be inspected
    2. The participants prepare for the meeting in advance
    3. The moderator explains the procedures and verifies that everybody has prepared
    4. Paraphrasers take turns explaining the contents of the document or code, without reading it verbatim, forcing everybody to think about what they are reading
    5. Everybody speaks up when they notice a defect or when the paraphrasing reaches a defect that they had found while preparing
    2001-08-30 14:55:58.0
    is a kind of subject2001-08-30 14:55:58.0
    is a subtopic of 10.10 - Inspections2001-08-30 14:55:58.0
    inspection teamconsists of software engineers with the following roles:
    • the author
    • a moderator who calls and runs the meeting and makes sure that the general principles of inspecting are adhered to
    • a secretary who records the defects when they are found
    • paraphrasers who step through the document explaining it in their own words
    2001-08-30 14:55:58.0
    has only goal finding defects2001-08-30 14:55:58.0
    includes experienced software engineers, who are more likely to uncover defects2001-08-30 14:55:58.0
    is a kind of team2001-08-30 14:55:59.0
    is a subtopic of 10.10 - Inspections2001-08-30 14:55:59.0
    performs inspecting2001-08-30 14:55:59.0
    can inspect about 200 lines of code per hour (including comments), or ten pages of text per hour2001-08-30 14:55:58.0
    does not normally include manager so that participants can express their criticisms more openly, not fearing repercussions from the manager2001-08-30 14:55:58.0
    may include a manager if there are not enough people to perform inspections in a small organization2001-08-30 14:55:59.0
    should avoid discussing how to fix defects because this is a design issue that can be left to the author2001-08-30 14:55:59.0
    should avoid discussing style issues2001-08-30 14:55:59.0
    should avoid getting tired2001-08-30 14:55:59.0
    should be effective and efficient2001-08-30 14:55:59.0
    should consist of between two and five people (including the author)2001-08-30 14:55:59.0
    should ensure that all the defects in the log are resolved2001-08-30 14:55:59.0
    should feel that they are all working together to create a better document2001-08-30 14:55:59.0
    should inspect all aspects of code should be considered, including the comments2001-08-30 14:55:59.0
    should inspect code, design documents, test plans and requirements2001-08-30 14:55:59.0
    should inspect the most important documents of all types, not necessarily every single piece of code or every document2001-08-30 14:55:59.0
    should keep logs of inspections2001-08-30 14:55:59.0
    should not inspect documents that are not ready2001-08-30 14:55:59.0
    should not rush2001-08-30 14:55:59.0
    should not work for more than two hours at a time, or for more than four hours a day2001-08-30 14:55:59.0
    should prepare for inspections by studying the code or other documents prior to the meeting and coming prepared with a list of defects2001-08-30 14:55:59.0
    should re-inspect documents or code that is changed more than 20% for any reason2001-08-30 14:55:59.0
    instancehas synonym object2001-08-30 14:55:59.0
    is a single member of the set defined by a class2001-08-30 14:55:59.0
    is a synonym of object2001-08-30 14:55:59.0
    instance diagramhas definition A UML diagram that shows objects and the links between them2001-08-30 14:55:59.0
    is similar to collaboration diagram except that it shows links of associations2001-08-30 14:55:59.0
    is a kind of UML diagram2001-08-30 14:55:59.0
    is a subtopic of 5.5 - Instance Diagrams2001-08-30 14:55:59.0
    is generated by class diagram which means that it contains instances and links that are present in the class diagram, and are consistent with that class diagram2001-08-30 14:55:59.0
    shows a link between two objects drawn as a simple line2001-08-30 14:55:59.0
    shows an example configuration of objects and links that may exist at a particular point during execution of a program2001-08-30 14:55:59.0
    shows an instance of both classes that are joined by an association in the associated class diagram2001-08-30 14:55:59.0
    can contain only links generated by associations, not the associations themselves2001-08-30 14:55:59.0
    cannot contain a generalization2001-08-30 14:55:59.0
    instance methodhas definition A method that executes in the context of a particular object; it has access to the instance variables of the given object, and can refer to the object itself using the 'this' keyword (in Java and C++)2001-08-30 14:55:59.0
    is a kind of method2001-08-30 14:55:59.0
    is a subtopic of 2.4 - Methods, Operations and Polymorphism2001-08-30 14:55:59.0
    instance method callhas example
     resultVariable = b.methodName(arguments);
    where b is the object containing instance method methodName
    link: chapter2section2.8.html#542, 2001-08-30 14:55:59.0
    is a kind of Java method call2001-08-30 14:56:00.0
    is a subtopic of The Basics of Java2001-08-30 14:55:59.0
    instance of user interface classis a kind of object2001-08-30 14:56:00.0
    is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:56:00.0
    is normally created when a program is started2001-08-30 14:56:00.0
    is normally discarded when a program terminates2001-08-30 14:56:00.0
    instance variablehas definition A data item present in all the instances of a class, normally used to implement associations and attributes2001-08-30 14:56:00.0
    implements an attribute or association2001-08-30 14:56:00.0
    is a kind of variable2001-08-30 14:56:00.0
    is a subtopic of 2.3 - Instance Variables2001-08-30 14:56:00.0
    is a synonym of data member2001-08-30 14:55:09.0
    is a synonym of field2001-08-30 14:55:35.0
    should be as private as reasonably possible - almost never make them publiclink: chapter2section2.8.html#1010, 2001-08-30 14:56:00.0
    instanceofis a subtopic of The Basics of Java2001-08-30 14:56:00.0
    is an instance of Java keyword2001-08-30 14:56:00.0
    insufficient throughput or response time on minimal configurationshas definition A defect that occurs when the system is tested on a minimal configuration and its throughput or response time fails to meet requirements2001-08-30 14:56:00.0
    has testing strategy
    • perform testing using minimally configured platforms
    • for extra reliability, test the system in an environment that has a configuration that is worse than the minimum: In such conditions, it should report that it cannot run properly
    2001-08-30 14:56:00.0
    is a kind of defect in handling stress and unusual situations2001-08-30 14:56:00.0
    is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:56:00.0
    intis a subtopic of The Basics of Java2001-08-30 14:56:00.0
    is an instance of Java primitive data type2001-08-30 14:56:00.0
    requires 32 bitslink: chapter2section2.8.html#568, 2001-08-30 14:56:00.0
    see also int^22001-08-30 14:56:00.0
    see also Integerlink: chapter2section2.8.html#612, 2001-08-30 14:56:00.0
    can use basic arithmetic operators +, -, *, / and %link: chapter2section2.8.html#578, 2001-08-30 14:56:00.0
    int^2is a subtopic of The Basics of Java2001-08-30 14:56:00.0
    is an instance of Java keyword2001-08-30 14:56:00.0
    see also int2001-08-30 14:56:00.0
    Integeris a subtopic of The Basics of Java2001-08-30 14:56:00.0
    is an instance of Java wrapper class2001-08-30 14:56:00.0
    see also intlink: chapter2section2.8.html#612, 2001-08-30 14:56:00.0
    integration testinghas advantage when you find a problem, you can find the defect more easily because you have a better idea in which subsystem to look2001-08-30 14:56:00.0
    has definition Testing a system in a phased approach - first testing individual subsystems, then testing the integrated system2001-08-30 14:56:00.0
    has definition Testing during or following the process of integrating a system2001-08-30 14:56:00.0
    is better than big bang testing for large systems2001-08-30 14:56:00.0
    is a kind of testing performed by software engineers2001-08-30 14:56:01.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:00.0
    interactionhas definition The set of steps in a use case or other piece of functionality2001-08-30 14:56:01.0
    is a kind of subject2001-08-30 14:56:01.0
    is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:01.0
    interaction diagramhas definition A sequence diagram or collaboration diagram used to model the dynamic aspects of a software system2001-08-30 14:56:01.0
    has part actor symbol2001-08-30 14:56:01.0
    has part message symbol2001-08-30 14:56:01.0
    has part object symbol2001-08-30 14:56:01.0
    has purpose to better understand the sequence of messages2001-08-30 14:56:01.0
    helps you to visualize how the system runs2001-08-30 14:56:01.0
    is a kind of UML diagram2001-08-30 14:56:01.0
    is a subtopic of 5.1 - What is UML?2001-08-30 14:56:01.0
    models the dynamic aspects of a software system2001-08-30 14:56:01.0
    shows the behaviour of systems in terms of how objects interact with each other2001-08-30 14:56:01.0
    can be used to define the protocol used when two components communicate with each other2001-08-30 14:56:01.0
    can contain more or less detail depending on what you wish to communicate2001-08-30 14:56:01.0
    can show several different types of communication including:2001-08-30 14:56:01.0
    should be created after developing a class diagram and a use case model because you need to know the actors and objects involved in an interaction2001-08-30 14:56:01.0
    interfacedescribes a portion of the visible behaviour of a set of objects2001-08-30 14:56:01.0
    has purpose to specify a set of methods that a variety of different classes can implement polymorphicallylink: chapter2section2.8.html#947, 2001-08-30 14:56:01.0
    is like a class except that it does not have any executable statements - it only contains abstract methods and class variableslink: chapter2section2.8.html#945, 2001-08-30 14:56:01.0
    is a kind of data abstraction2001-08-30 14:56:01.0
    is a subtopic of 2.7 - Concepts that Define Object Orientation2001-08-30 14:56:01.0
    is created using superclasses containing only abstract methods in some languages2001-08-30 14:56:01.0
    is drawn as a small circle (like a lollipop), labelled with the name of the interface or as a class rectangle, with the expression «interface» at the top, and (optionally) a list of supported operations in a UML diagram2001-08-30 14:56:01.0
    is implemented using the implements keyword in Java2001-08-30 14:56:01.0
    provides many of the same benefits as multiple inheritancelink: chapter2section2.8.html#937, 2001-08-30 14:56:01.0
    see also interface^22001-08-30 14:56:01.0
    see also interface^32001-08-30 14:56:01.0
    shows a can-be-seen-as relation between the implementing class and the interface2001-08-30 14:56:01.0
    cannot have any concrete methods or instance variableslink: chapter2section2.8.html#946, 2001-08-30 14:56:01.0
    should not be confused with generalizations2001-08-30 14:56:01.0
    interface^2has definition The operations provided by a module for other modules to use2001-08-30 14:56:01.0
    is a kind of subject2001-08-30 14:56:01.0
    is a subtopic of The Basics of Java2001-08-30 14:56:01.0
    see also interface2001-08-30 14:56:01.0
    see also interface^32001-08-30 14:56:01.0
    interface^3is a subtopic of The Basics of Java2001-08-30 14:56:01.0
    is an instance of Java keyword2001-08-30 14:56:01.0
    see also interface2001-08-30 14:56:01.0
    see also interface^22001-08-30 14:56:01.0
    internal eventcauses most transitions in an activity diagram2001-08-30 14:56:02.0
    has definition An event caused within a component, such as completion of an activity2001-08-30 14:56:02.0
    has example completion of an activity2001-08-30 14:56:02.0
    is a kind of event2001-08-30 14:56:02.0
    is a subtopic of 8.2 - State Diagrams2001-08-30 14:56:02.0
    internal software qualityhas an effect on external quality attributes2001-08-30 14:56:02.0
    has definition A software quality that characterize aspects of the design of the software2001-08-30 14:56:02.0
    is a kind of software quality2001-08-30 14:56:02.0
    is a subtopic of 1.5 - Software Quality2001-08-30 14:56:02.0
    International Standards Associationis a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:56:02.0
    is abbreviated as ISO2001-08-30 14:56:02.0
    is an instance of organization2001-08-30 14:56:02.0
    standardizes software engineering practices2001-08-30 14:56:02.0
    internationalizationhas definition The process of ensuring that a system can be easily adapted to different locales2001-08-30 14:56:02.0
    is a kind of process2001-08-30 14:56:02.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:02.0
    intervalhas example 1..3, 0..*, 1..*2001-08-30 14:56:02.0
    is a kind of multiplicity2001-08-30 14:56:02.0
    is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:02.0
    is be written as two dots between the lower and upper bound2001-08-30 14:56:02.0
    interviewinghas purpose information gathering2001-08-30 14:56:02.0
    is widely used2001-08-30 14:56:02.0
    is a kind of requirements gathering2001-08-30 14:56:02.0
    is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:02.0
    should be well planned2001-08-30 14:56:02.0
    should be performed by as many members of the software engineering team as possible2001-08-30 14:56:02.0
    should be performed on as many stakeholders as possible, as well as users of competing products, marketing personnel, and people involved with other systems that may interact in any way with the proposed system2001-08-30 14:56:02.0
    should not include analysis2001-08-30 14:56:02.0
    Introduction to the Personal Software Processhas author W. Humphrey2001-08-30 14:56:02.0
    has ISBN number 0-201-54809-72001-08-30 14:56:02.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:02.0
    is an instance of book about process standards2001-08-30 14:56:03.0
    was published by Addison-Wesley2001-08-30 14:56:03.0
    was published in 19962001-08-30 14:56:03.0
    Introduction to the Team Software Processhas author W. Humphrey, M. Lovelace, R. Hoppes2001-08-30 14:56:03.0
    has ISBN number 0-201-47719-X2001-08-30 14:56:03.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:03.0
    is an instance of book about process standards2001-08-30 14:56:03.0
    was published by Addison-Wesley2001-08-30 14:56:03.0
    was published in 19992001-08-30 14:56:03.0
    IOExceptionis a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:03.0
    is an instance of Java class2001-08-30 14:56:03.0
    is thrown if communication in a client server system fails2001-08-30 14:56:03.0
    IPhas definition Abbreviation for 'Internet Protocol', the low-level protocol used by all computers on the Internet, in which messages are divided into packets for delivery to a remote host2001-08-30 14:56:03.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:03.0
    is an abbreviation for Internet Protocol2001-08-30 14:56:03.0
    is an instance of abbreviation2001-08-30 14:56:03.0
    is an instance of protocol2001-08-30 14:56:03.0
    IP addressconsists of four numbers, each between 0 and 2552001-08-30 14:56:03.0
    has current version IP version 42001-08-30 14:56:03.0
    has definition The address of a computer (i.e. a host) connected to an IP network2001-08-30 14:56:03.0
    is a kind of subject2001-08-30 14:56:03.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:03.0
    IP address of a Macintosh computeris a kind of IP address2001-08-30 14:56:03.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:03.0
    can be found by opening the TCP/IP control panel or running the Apple System Profiler and looking under 'Network overview' and 'TCP/IP'2001-08-30 14:56:03.0
    IP address of a Unix or Linux computeris a kind of IP address2001-08-30 14:56:04.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:03.0
    can be found by using the command ypcat hosts grep <hostname>2001-08-30 14:56:03.0
    IP address of a Windows 95 or 98 computeris a kind of IP address2001-08-30 14:56:04.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:04.0
    can be found by issuing the command winipcfg2001-08-30 14:56:04.0
    IP address of your computeris a kind of IP address2001-08-30 14:56:04.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:04.0
    can be found using tools at the web site privacy.net/analyze/    2001-08-30 14:56:04.0
    ipconfighas purpose to find the host name of a Windows 2000 computer2001-08-30 14:56:04.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:04.0
    is an instance of Windows command2001-08-30 14:56:04.0
    isa hierarchyis a synonym of generalization hierarchy2001-08-30 14:55:42.0
    is a synonym of inheritance hierarchy2001-08-30 14:56:04.0
    isa relationcharacterizes inheritance2001-08-30 14:56:04.0
    is a kind of relation2001-08-30 14:56:04.0
    is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:04.0
    isa ruleis a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:56:04.0
    is an instance of rule2001-08-30 14:56:04.0
    states that class A can only be a valid subclass of class B if it makes sense, in English, to say, "an A is a B"2001-08-30 14:56:04.0
    isDigithas example
    // tests if the character is a digit 
    boolean b = Character.isDigit(aChar);
    link: chapter2section2.8.html#636, 2001-08-30 14:56:04.0
    has purpose to test if a character is a digitlink: chapter2section2.8.html#636, 2001-08-30 14:56:04.0
    is a subtopic of The Basics of Java2001-08-30 14:56:04.0
    is an instance of Java class method2001-08-30 14:56:05.0
    ISOis a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:56:05.0
    is an abbreviation for International Standards Association2001-08-30 14:56:05.0
    is an instance of abbreviation2001-08-30 14:56:05.0
    ISO 9000 Quality Systems Handbookhas author D. Hoyle2001-08-30 14:56:05.0
    has ISBN number 0-750-64451-62001-08-30 14:56:05.0
    is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:05.0
    is an instance of book about process standards2001-08-30 14:56:05.0
    was published by Butterworth-Heinemann2001-08-30 14:56:05.0
    was published in 20002001-08-30 14:56:05.0
    ISO 9000-3has definition An international standard that lists a large number of things an organization should do to improve its overall software process2001-08-30 14:56:05.0
    is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:05.0
    is an instance of process standard2001-08-30 14:56:05.0
    ISO Standard - British Standard - IEEE Standard 12207contains Software Lifecycle Processes2001-08-30 14:56:05.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:56:05.0
    is an instance of project management standard2001-08-30 14:56:05.0
    ISO Standard - British Standard 15504contains Software Process Assessment2001-08-30 14:56:05.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:56:05.0
    is an instance of project management standard2001-08-30 14:56:05.0
    ISO web sitehas URL www.iso.ch    2001-08-30 14:56:05.0
    is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:56:05.0
    is an instance of web site about standards2001-08-30 14:56:05.0
    isolated componentis a kind of component2001-08-30 14:56:06.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:06.0
    can be replaced with a different component that has equivalent functionality2001-08-30 14:56:06.0
    iteration expressionhas definition An expression in an interaction diagram, used to indicate the set of objects (shown as a multiobject) to which a message will be sent2001-08-30 14:56:06.0
    is a kind of symbol in sequence diagram2001-08-30 14:56:06.0
    is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:06.0
    is contained in square brackets2001-08-30 14:56:06.0
    is part of sequence diagram2001-08-30 14:56:06.0
    represents the same message being sent to several objects of the same class2001-08-30 14:56:06.0
    iterative developmenthas definition An approach to development by which software is developed in stages, with the first stage being very simple, and subsequent stages adding more features2001-08-30 14:56:06.0
    is a kind of development2001-08-30 14:56:06.0
    is a subtopic of 1.8 - The Eight Themes Emphasized in this Book2001-08-30 14:56:06.0
    is a subtopic of 11.2 - Software Process Models2001-08-30 14:56:06.0
    Iteratorhas example
    //counts the number of empty strings in a collection of strings
    emptyCount = 0;
    Iterator i = aCollection.iterator();
    while(i.hasNext())
    {
    if(((String)i.next()).length()==0)
    emptyCount++;
    }
    link: chapter2section2.8.html#859, 2001-08-30 14:56:06.0
    has remove method that allows you to selectively delete elements of the underlying collectionlink: chapter2section2.8.html#860, 2001-08-30 14:56:06.0
    is a subtopic of The Basics of Java2001-08-30 14:56:06.0
    is an instance of Java interfacelink: chapter2section2.8.html#853, 2001-08-30 14:56:06.0
    JADis a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:06.0
    is an abbreviation for Joint Application Development2001-08-30 14:56:06.0
    is an instance of abbreviation2001-08-30 14:56:06.0
    Javaadopted many ideas from Smalltalklink: chapter2section2.8.html#490, 2001-08-30 14:56:06.0
    allows you to use CORBA facilities2001-08-30 14:56:06.0
    avoids the worst kinds of content coupling (e.g. those involving manipulation of pointers) by making it hard to achieve.2001-08-30 14:56:06.0
    contains extensive on-line documentation about each class and methodlink: chapter2section2.8.html#639, 2001-08-30 14:56:06.0
    has much the same syntax as Clink: chapter2section2.8.html#500, 2001-08-30 14:56:07.0
    has feature single inheritancelink: chapter2section2.8.html#934, 2001-08-30 14:56:07.0
    has feature very easy-to-program networking capabilitieslink: chapter2section2.8.html#511, 2001-08-30 14:56:07.0
    has order of operator precedencelink: chapter2section2.8.html#701, 2001-08-30 14:56:07.0
    is easier to program than C++link: chapter2section2.8.html#526, 2001-08-30 14:56:07.0
    is less efficient than C and C++ because it contains safety because it contains safety checks that slow down execution and because Java is interpreted which is slower than direct execution of machine codelink: chapter2section2.8.html#520, 2001-08-30 14:56:07.0
    is a subtopic of The Basics of Java2001-08-30 14:56:07.0
    is an instance of object oriented language2001-08-30 14:56:07.0
    is not the same as JavaScriptlink: chapter2section2.8.html#532, 2001-08-30 14:56:07.0
    is run using a virtual machinelink: chapter2section2.8.html#506, 2001-08-30 14:56:07.0
    sets the default locale based on what is set in the operating system2001-08-30 14:56:07.0
    uses Unicodelink: chapter2section2.8.html#816, 2001-08-30 14:56:07.0
    was originally called Oak2001-08-30 14:56:07.0
    will not allow violations of certain security constraints when programs are downloaded over the Internetlink: chapter2section2.8.html#513, 2001-08-30 14:56:07.0
    Java abstract classhas one or more abstract methods2001-08-30 14:56:07.0
    is a kind of abstract class2001-08-30 14:56:07.0
    is a kind of Java class2001-08-30 14:56:07.0
    is a subtopic of The Basics of Java2001-08-30 14:56:07.0
    is created by specifying the abstract keyword on the first line when you declare the classlink: chapter2section2.8.html#943, 2001-08-30 14:56:07.0
    Java abstract methodis a kind of abstract method2001-08-30 14:56:07.0
    is a kind of Java method2001-08-30 14:56:07.0
    is a subtopic of The Basics of Java2001-08-30 14:56:07.0
    is created by labelling it with the keyword abstractlink: chapter2section2.8.html#940, 2001-08-30 14:56:07.0
    must not contain any executable statements in its bodylink: chapter2section2.8.html#941, 2001-08-30 14:56:07.0
    Java access control keywordhas purpose to control which other code can have access to a method or variablelink: chapter2section2.8.html#1004, 2001-08-30 14:56:07.0
    is a kind of Java keyword2001-08-30 14:56:07.0
    is a subtopic of The Basics of Java2001-08-30 14:56:07.0
    precedes the definition of a method, instance variable or class variablelink: chapter2section2.8.html#1004, 2001-08-30 14:56:07.0
    Java applethas definition A small Java programlink: chapter2section2.8.html#512, 2001-08-30 14:56:07.0
    is a kind of Java program2001-08-30 14:56:08.0
    is a subtopic of The Basics of Java2001-08-30 14:56:08.0
    is usually a thin-client so it will download rapidly2001-08-30 14:56:07.0
    can be loaded directly into a web browserlink: chapter2section2.8.html#511, 2001-08-30 14:56:07.0
    Java applicationis a kind of application2001-08-30 14:56:08.0
    is a kind of Java program2001-08-30 14:56:08.0
    is a subtopic of The Basics of Java2001-08-30 14:56:08.0
    Java arithmetic operatoris a kind of Java operator2001-08-30 14:56:08.0
    is a subtopic of The Basics of Java2001-08-30 14:56:08.0
    Java arraycontains a fixed number of elements2001-08-30 14:56:08.0
    has example
    //the following sums all the elements of an integer array:
    for(int i=0; i{
    sum += anIntArray[i];
    }
    link: chapter2section2.8.html#803, 2001-08-30 14:56:08.0
    has lengthlink: chapter2section2.8.html#802, 2001-08-30 14:56:08.0
    is more efficient than specialized collection classeslink: chapter2section2.8.html#808, 2001-08-30 14:56:08.0
    is object-like but is not a true instance of a classlink: chapter2section2.8.html#800, 2001-08-30 14:56:08.0
    is zero-based which means the first element is element 0link: chapter2section2.8.html#810, 2001-08-30 14:56:08.0
    is a kind of Java data type2001-08-30 14:56:08.0
    is a subtopic of The Basics of Java2001-08-30 14:56:08.0
    is declared by array declarationlink: chapter2section2.8.html#795, 2001-08-30 14:56:08.0
    is not an instance of a class which you can subclass or for which you can write your own codelink: chapter2section2.8.html#800, 2001-08-30 14:56:08.0
    can be composed of primitive types and instances of classeslink: chapter2section2.8.html#798, 2001-08-30 14:56:08.0
    Java array declarationhas example
    int[] anIntArray = new int[25];
    byte[] aByteArray; // not initialized
    Account[] anAccountArray = new Account[numAccounts];
    link: chapter2section2.8.html#797, 2001-08-30 14:56:09.0
    has form square brackets following the typelink: chapter2section2.8.html#795, 2001-08-30 14:56:09.0
    is a kind of Java declaration2001-08-30 14:56:09.0
    is a subtopic of The Basics of Java2001-08-30 14:56:09.0
    Java arrayshould be avoided if you do not a-priori know the number of items it will containlink: chapter2section2.8.html#805, 2001-08-30 14:56:08.0
    should not be used to manipulate collections of objectslink: chapter2section2.8.html#807, 2001-08-30 14:56:08.0
    Java assignment statementhas example
    aVariable = 5;
    link: chapter2section2.8.html#535, 2001-08-30 14:56:09.0
    is a kind of assignment statement2001-08-30 14:56:09.0
    is a kind of Java statement2001-08-30 14:56:09.0
    is a subtopic of The Basics of Java2001-08-30 14:56:09.0
    Java Beanis a kind of Java user interface component2001-08-30 14:56:09.0
    is a subtopic of 7.7 - Implementing a Simple GUI in Java2001-08-30 14:56:09.0
    Java blockcontains several statements surrounded by braceslink: chapter2section2.8.html#548, 2001-08-30 14:56:09.0
    has example
    {
    a =5;
    b = computeSomething;
    }
    link: chapter2section2.8.html#551, 2001-08-30 14:56:09.0
    has layout example style preferred by Sun:
    if(condition) {
    // statements
    }
    2001-08-30 14:56:09.0
    has layout example style preferred by the authors:
    if(condition)
    {
    // statements
    }
    2001-08-30 14:56:09.0
    is a kind of block2001-08-30 14:56:09.0
    is a subtopic of The Basics of Java2001-08-30 14:56:09.0
    is used as the body of classes, loops, conditional statements and for exception handlinglink: chapter2section2.8.html#549, 2001-08-30 14:56:09.0
    Java built-in exceptionis a kind of Java exception2001-08-30 14:56:09.0
    is a subtopic of The Basics of Java2001-08-30 14:56:09.0
    Java bytecodeis a kind of bytecode2001-08-30 14:56:09.0
    is a subtopic of The Basics of Java2001-08-30 14:56:09.0
    is stored in Java class files ending with the .class suffix, or in libraries ending with .jarlink: chapter2section2.8.html#507, 2001-08-30 14:56:09.0
    Java classhas form
    class classname
    { // declarations of variables
    // declarations of constructors (discussed below)
    // declarations of other methods with public ones first
    }
    link: chapter2section2.8.html#761, 2001-08-30 14:56:10.0
    is abstract if it has one or more abstract methods2001-08-30 14:56:10.0
    is a kind of class2001-08-30 14:56:10.0
    is a kind of Java module2001-08-30 14:56:10.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:10.0
    is a subtopic of The Basics of Java2001-08-30 14:56:10.0
    is stored in a file of the same namelink: chapter2section2.8.html#758, 2001-08-30 14:56:10.0
    uses an implements clause to declare that it contains methods for each of the operations specified by the interfacelink: chapter2section2.8.html#949, 2001-08-30 14:56:10.0
    can extend only one superclasslink: chapter2section2.8.html#934, 2001-08-30 14:56:09.0
    can have more than one constructor each of which has different sets of argumentslink: chapter2section2.8.html#767, 2001-08-30 14:56:09.0
    can have the same name as another class if the two classes are not in the same package and their packages are never imported into the same filelink: chapter2section2.8.html#988, 2001-08-30 14:56:09.0
    can implement more than one interfacelink: chapter2section2.8.html#950, 2001-08-30 14:56:09.0
    Java class filecontains Java bytecodelink: chapter2section2.8.html#507, 2001-08-30 14:56:10.0
    is a kind of file2001-08-30 14:56:10.0
    is a subtopic of The Basics of Java2001-08-30 14:56:10.0
    Java class in a packageis a kind of Java class2001-08-30 14:56:10.0
    is a subtopic of The Basics of Java2001-08-30 14:56:10.0
    must be put into a directory with the same name as the packagelink: chapter2section2.8.html#975, 2001-08-30 14:56:10.0
    Java class in an imported packageis a kind of Java class in a package2001-08-30 14:56:10.0
    is a subtopic of The Basics of Java2001-08-30 14:56:10.0
    can be referred to by name if the package is importedlink: chapter2section2.8.html#986, 2001-08-30 14:56:10.0
    Java classmay implement particular low-level subsystems2001-08-30 14:56:10.0
    Java class methodis a kind of class method2001-08-30 14:56:10.0
    is a kind of Java method2001-08-30 14:56:10.0
    is a subtopic of The Basics of Java2001-08-30 14:56:10.0
    is called by using the name of the class, followed by a dot, followed by the name of the method (the name of the class can be omitted when calling a class method in the current class)link: chapter2section2.8.html#632, 2001-08-30 14:56:10.0
    is marked as staticlink: chapter2section2.8.html#629, 2001-08-30 14:56:10.0
    does not have 'this' value when it is executing2001-08-30 14:56:10.0
    Java class namehas first letter of each word capitalized by convention2001-08-30 14:56:10.0
    has example PartTimeEmployee2001-08-30 14:56:10.0
    is a kind of class name2001-08-30 14:56:11.0
    is a kind of name2001-08-30 14:56:11.0
    is a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:11.0
    does not contain spaces2001-08-30 14:56:10.0
    Java classshould be placed in its own source filelink: chapter2section2.8.html#758, 2001-08-30 14:56:10.0
    should have a unique name since somebody in the future might want to import the packages containing both classes and hence create a name clashlink: chapter2section2.8.html#989, 2001-08-30 14:56:10.0
    should order elements as follows:
    1. class variables
    2. instance variables
    3. constructors
    4. the most important public methods
    5. methods that are simply used to access variables
    6. private methods
    2001-08-30 14:56:10.0
    Java class that implements an interfaceis a kind of Java class2001-08-30 14:56:11.0
    is a subtopic of The Basics of Java2001-08-30 14:56:11.0
    does not have to be related to other classes that implement the same interface in any other waylink: chapter2section2.8.html#948, 2001-08-30 14:56:11.0
    Java class that imports a packagehas access to methods and variables in the imported package that are not declared public2001-08-30 14:56:11.0
    is a kind of Java class2001-08-30 14:56:11.0
    is a subtopic of The Basics of Java2001-08-30 14:56:11.0
    Java class variableis a kind of class variable2001-08-30 14:56:11.0
    is a kind of Java variable2001-08-30 14:56:11.0
    is a subtopic of The Basics of Java2001-08-30 14:56:11.0
    is accessed by specifying the name of the class, followed by a dot, followed by the name of the variablelink: chapter2section2.8.html#626, 2001-08-30 14:56:11.0
    is declared in the body of the class (not inside a method)link: chapter2section2.8.html#625, 2001-08-30 14:56:11.0
    is marked as staticlink: chapter2section2.8.html#625, 2001-08-30 14:56:11.0
    can serve as a global variable2001-08-30 14:56:11.0
    Java clauseis a kind of subject2001-08-30 14:56:11.0
    is a subtopic of The Basics of Java2001-08-30 14:56:11.0
    Java clientis a kind of client2001-08-30 14:56:11.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:11.0
    receives messages from the server using an instance of InputStream2001-08-30 14:56:11.0
    sends messages to the server using an instance of OutputStream2001-08-30 14:56:11.0
    sends stream of information to the server2001-08-30 14:56:11.0
    may send messages to Java server at any time once a connection is established2001-08-30 14:56:11.0
    must have an instance of Socket class in order to exchange information with the server2001-08-30 14:56:11.0
    Java collection classhas part iterator method2001-08-30 14:56:11.0
    has purpose working with collections of objectslink: chapter2section2.8.html#843, 2001-08-30 14:56:11.0
    is a kind of Java class2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    uses iterator methods for doing something with every member of the collectionlink: chapter2section2.8.html#852, 2001-08-30 14:56:12.0
    Java commenthas example
     executeMe(); // doNotExecuteMe
    2001-08-30 14:56:12.0
    has example
    executeMeToo(); /* This is to be ignored
    and this too */
    2001-08-30 14:56:12.0
    has form '/*' comment '*/' or two slashes '//' indicating that the rest of the line is to be considered a commentlink: chapter2section2.8.html#560, 2001-08-30 14:56:12.0
    is a kind of comment2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java compilercompiles source code into Java bytecodelink: chapter2section2.8.html#507, 2001-08-30 14:56:12.0
    is a kind of compiler2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java conditionhas definition A condition in Java is a statement that evaluates to a boolean value (true or false)link: chapter2section2.8.html#659, 2001-08-30 14:56:12.0
    has example
    aNumber > 5
    aNumber < 5
    aNumber > 5 && anotherNumber < 7
    aNumber == anotherNumber
    link: chapter2section2.8.html#661, 2001-08-30 14:56:12.0
    is a kind of condition2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java constantis a kind of constant2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java constructorhas the same name as its classlink: chapter2section2.8.html#765, 2001-08-30 14:56:12.0
    has example
    public Account(String accountHolder, float initialBalance)
    {
    this.accountHolder = accountHolder;
    balance = initialBalance;
    opened = new Date();
    }
    public Account(String accountHolder)
    {
    this.accountHolder = accountHolder;
    balance =0.0;
    opened = new Date();
    }
    link: chapter2section2.8.html#769, 2001-08-30 14:56:12.0
    is a kind of constructor2001-08-30 14:56:12.0
    is a kind of Java method2001-08-30 14:56:12.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java data typehas part Java data type name2001-08-30 14:56:12.0
    is a kind of data type2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:12.0
    Java data type nameis a kind of name2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    refers to a class if starts with a capital letterlink: chapter2section2.8.html#592, 2001-08-30 14:56:13.0
    refers to a primitive data type if it starts with a lower case letterlink: chapter2section2.8.html#574, 2001-08-30 14:56:13.0
    Java decision-making statementis a kind of decision-making statement2001-08-30 14:56:13.0
    is a kind of Java statement2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    Java declarationis a kind of declaration2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    Javadoes not execute the next line of code in the program if an exception is thrown and Java looks for some code to handle the exception and executes that insteadlink: chapter2section2.8.html#880, 2001-08-30 14:56:06.0
    does not have features link: chapter2section2.8.html#514, 2001-08-30 14:56:06.0
    does not let programmers follow a invalid pointerlink: chapter2section2.8.html#516, 2001-08-30 14:56:07.0
    does not let programmers refer to information beyond the end of an arraylink: chapter2section2.8.html#516, 2001-08-30 14:56:07.0
    Java else blockis a kind of Java block2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    is part of Java if statement2001-08-30 14:56:13.0
    can be omitted if there is nothing to do in the false caselink: chapter2section2.8.html#727, 2001-08-30 14:56:13.0
    Java exceptionis a kind of exception2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    is raised in a statement that is not in a try block with an appropriate catch statement, Java looks to see if the caller of the current method is within a try block that has an appropriate catch block, and Java look at callers right up to the main program and will report an error if it has not been able to find any suitable catch blocklink: chapter2section2.8.html#886, 2001-08-30 14:56:13.0
    Java Gently: Programming Principles Explainedhas author Judith Bishop2001-08-30 14:56:13.0
    has ISBN number 0-201-71050-12001-08-30 14:56:13.0
    is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:56:13.0
    is an instance of book about Java programming2001-08-30 14:56:13.0
    was published by Addison-Wesley2001-08-30 14:56:13.0
    was published in 20012001-08-30 14:56:13.0
    Java identity comparison operatoris a kind of Java operator2001-08-30 14:56:13.0
    is a subtopic of The Basics of Java2001-08-30 14:56:13.0
    Java if statementhas form
    if(condition)
    {
    // statements to execute if condition is true
    }
    else
    {
    // statements to execute if condition is false
    }
    link: chapter2section2.8.html#725, 2001-08-30 14:56:14.0
    has part else block2001-08-30 14:56:14.0
    is a kind of Java decision-making statement2001-08-30 14:56:14.0
    is a subtopic of The Basics of Java2001-08-30 14:56:14.0
    can omit curly brackets:
    if(condition)
    doSomething();
    else
    doSomethingElse();
    if it contains only a single statement
    2001-08-30 14:56:14.0
    Java implements clausehas part implements2001-08-30 14:56:14.0
    indicates that a class contains methods for each of the operations specified by the interfacelink: chapter2section2.8.html#949, 2001-08-30 14:56:14.0
    is a kind of Java clause2001-08-30 14:56:14.0
    is a subtopic of The Basics of Java2001-08-30 14:56:14.0
    Java import statementhas example
    import finance.banking.accounts.*;
    link: chapter2section2.8.html#985, 2001-08-30 14:56:14.0
    has purpose to allow a class to use the facilities of another packagelink: chapter2section2.8.html#984, 2001-08-30 14:56:14.0
    is a kind of Java statement2001-08-30 14:56:14.0
    is a subtopic of The Basics of Java2001-08-30 14:56:14.0
    Java incrementerhas purpose to update a variable set in an initializerlink: chapter2section2.8.html#750, 2001-08-30 14:56:14.0
    is a kind of Java statementlink: chapter2section2.8.html#750, 2001-08-30 14:56:14.0
    is part of looplink: chapter2section2.8.html#750, 2001-08-30 14:56:14.0
    Java incrementoris a subtopic of The Basics of Java2001-08-30 14:56:14.0
    Java initializerhas purpose to set up an initial condition for a loop, often initializing a variablelink: chapter2section2.8.html#748, 2001-08-30 14:56:14.0
    is a kind of Java statementlink: chapter2section2.8.html#748, 2001-08-30 14:56:14.0
    is a subtopic of The Basics of Java2001-08-30 14:56:14.0
    is part of looplink: chapter2section2.8.html#748, 2001-08-30 14:56:14.0
    Java instance methodhas example
    public float credit(float amountToCredit)
    {
    balance = balance + amountToCredit;
    return balance;
    }
    link: chapter2section2.8.html#553, 2001-08-30 14:56:14.0
    has part return type2001-08-30 14:56:15.0
    has return type void if it does not return anything2001-08-30 14:56:14.0
    is a kind of instance method2001-08-30 14:56:15.0
    is a kind of Java method2001-08-30 14:56:15.0
    is a subtopic of The Basics of Java2001-08-30 14:56:15.0
    can refer to the object itself using the 'this' keyword2001-08-30 14:56:14.0
    may be declared public, protected or privatelink: chapter2section2.8.html#555, 2001-08-30 14:56:15.0
    Java instance of exception classis a kind of Java object2001-08-30 14:56:15.0
    is a subtopic of The Basics of Java2001-08-30 14:56:15.0
    is created that contains information about the problem causing the exception if an exception is raisedlink: chapter2section2.8.html#893, 2001-08-30 14:56:15.0
    Java instance of wrapper classcontains an instance variable of the corresponding primitive data typelink: chapter2section2.8.html#610, 2001-08-30 14:56:15.0
    is a kind of Java object2001-08-30 14:56:15.0
    is a subtopic of The Basics of Java2001-08-30 14:56:15.0
    see also Java wrapper class2001-08-30 14:56:15.0
    uses methods instead of ordinary arithmetic or logical operatorslink: chapter2section2.8.html#619, 2001-08-30 14:56:15.0
    cannot use ordinary arithmetic or logical operatorslink: chapter2section2.8.html#619, 2001-08-30 14:56:15.0
    Java instance variableis a kind of instance variable2001-08-30 14:56:15.0
    is a kind of Java variable2001-08-30 14:56:15.0
    is a subtopic of The Basics of Java2001-08-30 14:56:15.0
    should usually be declared private2001-08-30 14:56:15.0
    Java interfacehas definition In Java, a software module containing a description of a set of operations that certain classes must implement2001-08-30 14:56:15.0
    has example
    public interface Drawable
    {
    public abstract Image drawImage();
    public abstract Image drawImage(int height, int width);
    public abstract Image drawBlackAndWhiteImage(int height, int width);
    }
    2001-08-30 14:56:15.0
    is a kind of interface2001-08-30 14:56:15.0
    is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:56:15.0
    is implemented by a classlink: chapter2section2.8.html#948, 2001-08-30 14:56:15.0
    can be considered an extreme example of a horizontal framework: There is no implementation, and all the specified methods represent slots that must be filled2001-08-30 14:56:15.0
    Java keywordhas definition A word that has special meaning in Java2001-08-30 14:56:15.0
    is a kind of keyword2001-08-30 14:56:15.0
    is a subtopic of The Basics of Java2001-08-30 14:56:15.0
    Java logical operatoris a kind of Java operator2001-08-30 14:56:16.0
    is a subtopic of The Basics of Java2001-08-30 14:56:16.0
    returns a boolean2001-08-30 14:56:16.0
    Java methodis a kind of Java module2001-08-30 14:56:16.0
    is a kind of method2001-08-30 14:56:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:16.0
    overrides a method in a superclass with the same name2001-08-30 14:56:16.0
    Java method callhas example
     resultVariable = methodname(argument1, argument2);
    link: chapter2section2.8.html#537, 2001-08-30 14:56:16.0
    is a kind of method call2001-08-30 14:56:16.0
    is a subtopic of The Basics of Java2001-08-30 14:56:16.0
    Java method call with no argumentshas example
    resultVariable = noArgumentMethod();
    link: chapter2section2.8.html#540, 2001-08-30 14:56:16.0
    is a kind of Java method call2001-08-30 14:56:16.0
    is a subtopic of The Basics of Java2001-08-30 14:56:16.0
    Java methodcan be accessed by other methods and variables in any class in the same package by defaultlink: chapter2section2.8.html#997, 2001-08-30 14:56:16.0
    should be as private as possible2001-08-30 14:56:16.0
    should not be public except for those that will definitely need to be called from outside the packagelink: chapter2section2.8.html#1011, 2001-08-30 14:56:16.0
    should return to its caller from only one place which should be the last statement2001-08-30 14:56:16.0
    Java moduleis a kind of module2001-08-30 14:56:16.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:16.0
    Java name spaceincludes the names in the file's own package plus the names in all imported packageslink: chapter2section2.8.html#987, 2001-08-30 14:56:16.0
    is a kind of name space2001-08-30 14:56:16.0
    is a subtopic of The Basics of Java2001-08-30 14:56:16.0
    Java nested blockis a kind of Java block2001-08-30 14:56:16.0
    is a subtopic of Programming Style Guidelines2001-08-30 14:56:16.0
    should be indented carefully2001-08-30 14:56:17.0
    Java Network Programming: A Complete Guide to Networking, Streams, and Distributed Computinghas author M. Hughes, M. Shoffner and D. Hamner2001-08-30 14:56:17.0
    has ISBN number 1-884777-49-X2001-08-30 14:56:17.0
    is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:56:17.0
    is an instance of book about networking2001-08-30 14:56:17.0
    was published by Manning Publications2001-08-30 14:56:17.0
    was published in 19992001-08-30 14:56:17.0
    Java non-primitive data typehas name starting with a capital letterlink: chapter2section2.8.html#592, 2001-08-30 14:56:17.0
    is a kind of Java data type2001-08-30 14:56:17.0
    is a subtopic of The Basics of Java2001-08-30 14:56:17.0
    Java objecthas example of creation
     String accountHolder = "Tim";
    link: chapter2section2.8.html#777, 2001-08-30 14:56:17.0
    has example of creation
    Account anAccount; 
    ...
    anAccount = new Account(holderName, initialBalance);
    link: chapter2section2.8.html#792, 2001-08-30 14:56:17.0
    is a kind of object2001-08-30 14:56:17.0
    is a subtopic of The Basics of Java2001-08-30 14:56:17.0
    can be converted into a string using the toString methodlink: chapter2section2.8.html#827, 2001-08-30 14:56:17.0
    can be created by declaring and initializing it such that it is created whenever execution enters a particular block, or, in the case of an instance variable, when an instance is created or by declaring it and initializing it later using the new operatorlink: chapter2section2.8.html#784, 2001-08-30 14:56:17.0
    can be serialized if it is an instance of a class that implements the interface java.io.Serializable, and if the data in its instance variables is also serializable2001-08-30 14:56:17.0
    Java operatoris a kind of operator2001-08-30 14:56:17.0
    is a subtopic of The Basics of Java2001-08-30 14:56:17.0
    Java order of operator precedenceis a subtopic of The Basics of Java2001-08-30 14:56:17.0
    is an instance of rule2001-08-30 14:56:17.0
    states that operators at the top take precedence over operators lower in the table. At the same level of the table, operators are evaluated from left to right.
    operatorscomments
    () []Anything in parentheses, including array indexing, is evaluated first
    ++ -- !Unary operators
    * / %Multiplicative operators
    + -Additive binary operators
    > >= < <=Relational comparison operators
    == !=Identity comparison operators
    &&Logical AND
    \Logical OR
    ?:Ternary if-then-else
    = += *= -= /=/td>Assignment
    link: chapter2section2.8.html#701, 2001-08-30 14:56:17.0
    Java packagedefines a name spacelink: chapter2section2.8.html#987, 2001-08-30 14:56:17.0
    has definition A collection of classes and interfaces2001-08-30 14:56:17.0
    has part class in a package2001-08-30 14:56:17.0
    has part Java package name2001-08-30 14:56:17.0
    has purpose to group together related classes into a subsystemlink: chapter2section2.8.html#972, 2001-08-30 14:56:17.0
    implements subsystem2001-08-30 14:56:17.0
    is a kind of Java module2001-08-30 14:56:18.0
    is a kind of package^22001-08-30 14:56:18.0
    is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:18.0
    is a subtopic of The Basics of Java2001-08-30 14:56:18.0
    can be imported by using the import statementlink: chapter2section2.8.html#984, 2001-08-30 14:56:17.0
    Java package namehas example
    finance.banking.accounts
    link: chapter2section2.8.html#983, 2001-08-30 14:56:18.0
    is a kind of name2001-08-30 14:56:19.0
    is a subtopic of The Basics of Java2001-08-30 14:56:19.0
    is composed of a series of words separated by dotslink: chapter2section2.8.html#973, 2001-08-30 14:56:19.0
    should have the domain name of the organization (with the components inverted) prepended to the package name by convention to assure that each package name is unique in the worldlink: chapter2section2.8.html#979, 2001-08-30 14:56:19.0
    Java primitive data typehas part Java primitive data type name2001-08-30 14:56:19.0
    is a kind of Java data type2001-08-30 14:56:19.0
    is a subtopic of The Basics of Java2001-08-30 14:56:19.0
    is normally used instead of wrapper class instances for arithmeticlink: chapter2section2.8.html#623, 2001-08-30 14:56:19.0
    Java primitive data type nameis a kind of name2001-08-30 14:56:19.0
    is a subtopic of The Basics of Java2001-08-30 14:56:19.0
    starts with a lower-case letterlink: chapter2section2.8.html#574, 2001-08-30 14:56:19.0
    Java programis portable because it is compiled into bytecode that can run on any computer with a VMlink: chapter2section2.8.html#510, 2001-08-30 14:56:20.0
    is a kind of program2001-08-30 14:56:20.0
    is a subtopic of The Basics of Java2001-08-30 14:56:20.0
    Java programmeris a kind of programmer2001-08-30 14:56:20.0
    is a subtopic of 2.10 - Difficulties and Risks in Programming Language Choice and Object-Oriented Programming2001-08-30 14:56:20.0
    should consider languages other than Java for number-crunching applications2001-08-30 14:56:20.0
    should follow the specific conventions for commenting classes and methods that allow for documentation to be automatically generated using a program called 'javadoc'2001-08-30 14:56:20.0
    should learn about about the different programming strategies that make a Java program run faster2001-08-30 14:56:20.0
    Java programmer-created exception classis a kind of Java exception2001-08-30 14:56:20.0
    is a subtopic of The Basics of Java2001-08-30 14:56:20.0
    Java public classis a kind of Java class2001-08-30 14:56:20.0
    is a subtopic of The Basics of Java2001-08-30 14:56:20.0
    can be accessed from outside its packagelink: chapter2section2.8.html#1025, 2001-08-30 14:56:20.0
    Java relational comparison operatoris a kind of Java operator2001-08-30 14:56:20.0
    is a subtopic of The Basics of Java2001-08-30 14:56:20.0
    Java serveris a kind of server2001-08-30 14:56:20.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:20.0
    receives messages from the client using an instance of InputStream2001-08-30 14:56:20.0
    sends messages to the client using an instance of OutputStream2001-08-30 14:56:20.0
    sends stream of information to the client2001-08-30 14:56:20.0
    may send messages to Java client at any time once a connection is established2001-08-30 14:56:20.0
    must have an instance of Socket class in order to exchange information with clients2001-08-30 14:56:20.0
    Java source codeis a kind of source code2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:20.0
    is interpretedlink: chapter2section2.8.html#510, 2001-08-30 14:56:20.0
    is stored in files ending with the .java suffixlink: chapter2section2.8.html#507, 2001-08-30 14:56:21.0
    must be placed inside a classlink: chapter2section2.8.html#756, 2001-08-30 14:56:21.0
    Java source filecontains Java source code2001-08-30 14:56:21.0
    contains one classlink: chapter2section2.8.html#758, 2001-08-30 14:56:21.0
    is a kind of source file2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    can use the import statement to use the facilities of another packagelink: chapter2section2.8.html#984, 2001-08-30 14:56:21.0
    should declare the package to which its class belongs using the package keywordlink: chapter2section2.8.html#982, 2001-08-30 14:56:21.0
    Java special operatorhas purpose to shorten certain expressionslink: chapter2section2.8.html#652, 2001-08-30 14:56:21.0
    is a kind of Java operator2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    Java statementis a kind of statement2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    is terminated by a semicolonlink: chapter2section2.8.html#534, 2001-08-30 14:56:21.0
    Java string constantis a kind of Java constant2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    is defined by placing it in double quoteslink: chapter2section2.8.html#823, 2001-08-30 14:56:21.0
    Java subclassis a kind of Java class2001-08-30 14:56:21.0
    is a kind of subclass2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    is created using the extends keywordlink: chapter2section2.8.html#900, 2001-08-30 14:56:21.0
    Java switch statementhas form
    switch(primitiveVariable)
    {
    case value1:
    // statements to execute if variable equals value1
    break;
    case value2:
    // statements to execute if variable equals value2
    break;
    ...
    default:
    // statements to execute if none of the above is true
    break;
    }
    link: chapter2section2.8.html#737, 2001-08-30 14:56:21.0
    is a kind of Java decision-making statement2001-08-30 14:56:21.0
    is a subtopic of The Basics of Java2001-08-30 14:56:21.0
    can be avoided by using polymorphismlink: chapter2section2.8.html#741, 2001-08-30 14:56:21.0
    Java symbolis a kind of symbol2001-08-30 14:56:22.0
    is a subtopic of The Basics of Java2001-08-30 14:56:22.0
    Java terminal I/Ohas example
    //Print
    System.out.println("This line will be printed");
    //Read from the keyboard
    byte[] buffer = new byte[1024];
    System.in.read(buffer);
    String theInput = new String(buffer).trim();
    link: chapter2section2.8.html#918, 2001-08-30 14:56:22.0
    is a kind of subject2001-08-30 14:56:22.0
    is a subtopic of The Basics of Java2001-08-30 14:56:22.0
    Java try catch statementhas example
    //Any division by zero that occurs when executing the 
    //try block will result in execution of the catch block.
    //Once either block completes, execution continues
    //at the statement after the catch block.
    try
    {
    result = numerator / denominator;
    validResult = true;
    }
    catch (ArithmeticException e)
    {
    validResult = false;
    }
    link: chapter2section2.8.html#883, 2001-08-30 14:56:22.0
    is a kind of Java decision-making statement2001-08-30 14:56:22.0
    is a subtopic of The Basics of Java2001-08-30 14:56:22.0
    Java user interface componentis a kind of user interface component2001-08-30 14:56:22.0
    is a subtopic of 7.7 - Implementing a Simple GUI in Java2001-08-30 14:56:22.0
    Java variableis a kind of variable2001-08-30 14:56:22.0
    is a subtopic of The Basics of Java2001-08-30 14:56:22.0
    is declared by giving the data type followed by the name of the variablelink: chapter2section2.8.html#563, 2001-08-30 14:56:22.0
    can be accessed by other variables and methods in any class in the same package by defaultlink: chapter2section2.8.html#1021, 2001-08-30 14:56:22.0
    can have an interface as its type which means that, with the variable, you can invoke any operation supported by the interfacelink: chapter2section2.8.html#952, 2001-08-30 14:56:22.0
    Java variable declarationhas example
    int anInteger;
    link: chapter2section2.8.html#568, 2001-08-30 14:56:22.0
    is a kind of Java declaration2001-08-30 14:56:22.0
    is a subtopic of The Basics of Java2001-08-30 14:56:22.0
    can be placed practically anywhere in Java source code although it is good practice to only declare variables at the beginning of blockslink: chapter2section2.8.html#564, 2001-08-30 14:56:22.0
    Java variableshould be as private as possible2001-08-30 14:56:22.0
    Java wrapper classcontains the methods parseInt, toHexString, isDigitlink: chapter2section2.8.html#634, 2001-08-30 14:56:22.0
    contains useful class methodslink: chapter2section2.8.html#633, 2001-08-30 14:56:22.0
    corresponds to Java primitive data typelink: chapter2section2.8.html#609, 2001-08-30 14:56:22.0
    has purpose to allow you to do something with primitive values beyond what the basic operators can accomplishlink: chapter2section2.8.html#608, 2001-08-30 14:56:22.0
    is a kind of Java class2001-08-30 14:56:23.0
    is a subtopic of The Basics of Java2001-08-30 14:56:23.0
    see also Java instance of wrapper class2001-08-30 14:56:23.0
    java.iohas part InputStream2001-08-30 14:56:23.0
    has part OutputStream2001-08-30 14:56:23.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:23.0
    is an instance of Java package2001-08-30 14:56:23.0
    java.langis a subtopic of The Basics of Java2001-08-30 14:56:23.0
    is an instance of Java packagelink: chapter2section2.8.html#563, 2001-08-30 14:56:23.0
    java.nethas purpose to permit the creation of a TCP/IP connection between two applications2001-08-30 14:56:23.0
    is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:23.0
    is an instance of Java package2001-08-30 14:56:23.0
    javadochas purpose documenting Java programs2001-08-30 14:56:23.0
    is a subtopic of Programming Style Guidelines2001-08-30 14:56:23.0
    is an instance of program2001-08-30 14:56:23.0
    Javadoc pageshas URL java.sun.com/javadoc    2001-08-30 14:56:23.0
    is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:56:23.0
    is an instance of web site about Java2001-08-30 14:56:23.0
    JavaScripthas purpose to add functionality to web pageslink: chapter2section2.8.html#531, 2001-08-30 14:56:23.0
    is a subtopic of The Basics of Java2001-08-30 14:56:23.0
    is an instance of scripting language2001-08-30 14:56:24.0
    is not the same as Javalink: chapter2section2.8.html#532, 2001-08-30 14:56:23.0
    shares many of the same keywords with Javalink: chapter2section2.8.html#532, 2001-08-30 14:56:24.0
    shares much of the same syntax with Javalink: chapter2section2.8.html#532, 2001-08-30 14:56:24.0
    JavaWorldhas URL www.javaworld.com/javaworld    2001-08-30 14:56:24.0
    is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:56:24.0
    is an instance of web site about Java2001-08-30 14:56:24.0
    JITCis a subtopic of The Basics of Java2001-08-30 14:56:24.0
    is an abbreviation for just-in-time compilationlink: chapter2section2.8.html#522, 2001-08-30 14:56:24.0
    is an instance of abbreviation2001-08-30 14:56:24.0
    joinhas multiple incoming transitions that must be triggered in separate threads2001-08-30 14:56:24.0
    has one outgoing transition that will be taken when all incoming transitions have been triggered2001-08-30 14:56:24.0
    has definition A symbol in an activity diagram indicating a point where several threads wait for each other. When all threads reach the join, control continues in a single thread2001-08-30 14:56:24.0
    is a kind of symbol in activity diagram2001-08-30 14:56:24.0
    is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:56:24.0
    is drawn as a short line at which transitions can start and end2001-08-30 14:56:24.0
    Joint Application Developmenthas benefit the energy generated by intense JAD sessions can often shorten the period required to work out the requirements from several months to several days2001-08-30 14:56:24.0
    has definition An approach to defining requirements, in which all the stakeholders meet intensively for several days in a secluded location2001-08-30 14:56:24.0
    has result a written requirements document2001-08-30 14:56:24.0
    involves developers meeting with customers and users in a secluded location for a period of three to five days to define the requirements2001-08-30 14:56:24.0
    is a kind of requirements gathering2001-08-30 14:56:24.0
    is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:24.0
    is abbreviated as JAD2001-08-30 14:56:24.0
    is related to brainstorming2001-08-30 14:56:24.0
    takes place away from the offices of any of the participants so that nobody is interrupted by any other activity2001-08-30 14:56:24.0
    may include regular brainstorming, and negotiation of specific wording2001-08-30 14:56:24.0
    just-in-time compilationhas definition A kind of compilation that converts a method into machine code the first time it is executed and stores the machine code to save work on subsequent callslink: chapter2section2.8.html#522, 2001-08-30 14:56:24.0
    is a kind of compilation2001-08-30 14:56:24.0
    is a subtopic of The Basics of Java2001-08-30 14:56:24.0
    is abbreviated as JITClink: chapter2section2.8.html#522, 2001-08-30 14:56:24.0
    keeping the level of abstraction highhas advantage it allows you to understand the essence of a subsystem and make important decisions without knowing unnecessary details2001-08-30 14:56:24.0
    is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:56:24.0
    is an instance of design principle2001-08-30 14:56:25.0
    kernel layerhandles such functions as process creation, swapping and scheduling2001-08-30 14:56:25.0
    is a kind of layer2001-08-30 14:56:25.0
    is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:25.0
    keywordis a kind of programming language construct2001-08-30 14:56:25.0
    is a subtopic of The Basics of Java2001-08-30 14:56:25.0
    known bugs listhas definition A list of defects in a system that have not yet been fixed2001-08-30 14:56:25.0
    is a kind of document2001-08-30 14:56:25.0
    is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:25.0
    labelis a kind of name2001-08-30 14:56:25.0
    is a subtopic of 5.4 - Generalization2001-08-30 14:56:25.0
    languageis a kind of representation2001-08-30 14:56:25.0
    is a subtopic of The Basics of Java2001-08-30 14:56:25.0
    see also language^22001-08-30 14:56:25.0
    language^2has definition In the context of a client-server system, the messages that can be sent from one computer to another2001-08-30 14:56:25.0
    is a kind of language2001-08-30 14:56:25.0
    is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:56:25.0
    see also language2001-08-30 14:56:25.0
    large software development teamis a kind of software development team2001-08-30 14:56:26.0
    is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:56:25.0
    can make development more complex and lead to designs that have higher coupling2001-08-30 14:56:25.0
    large software projectis a kind of software project2001-08-30 14:56:26.0
    is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:26.0
    may be divided into many smaller software projects2001-08-30 14:56:26.0
    large software systemhas requirements document for a large system2001-08-30 14:56:26.0
    is hard to understand2001-08-30 14:56:26.0
    is a kind of software system2001-08-30 14:56:26.0
    is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:56:26.0
    requires a software architecture^32001-08-30 14:56:26.0
    cannot be understood by one person2001-08-30 14:56:26.0
    must be developed by a software development team2001-08-30 14:56:26.0
    must be developed using engineering discipline2001-08-30 14:56:26.0
    large-scale change to systemis a kind of change2001-08-30 14:56:26.0
    is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:56:26.0
    must be carefully assessed before going ahead2001-08-30 14:56:26.0
    late bindingis a synonym of dynamic binding2001-08-30 14:56:26.0
    lawhas localization issues
    • Many applications will have to accommodate different ways that taxes are calculated, accounting is performed, or records are kept
    • The use of cryptography might be restricted
    • Patents, trademarks and copyrights might place restrictions on designs
    2001-08-30 14:56:26.0
    is a kind of locale-dependent feature2001-08-30 14:56:26.0
    is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:26.0
    law of conservation of bugsis a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:26.0
    is an instance of rule2001-08-30 14:56:26.0
    states the number of bugs remaining in a large system is proportional to the number of bugs already fixed2001-08-30 14:56:26.0
    Law of Demeteris a subtopic of 6.7 - The Delegation Pattern2001-08-30 14:56:26.0
    is an instance of rule2001-08-30 14:56:26.0
    means that a method should only access data passed as arguments, linked via associations, or obtained via calls to operations on other neighbouring data in the context of software design2001-08-30 14:56:26.0
    states only talk to your immediate friends2001-08-30 14:56:26.0
    was formulated by a team from Northeastern University in Boston2001-08-30 14:56:26.0
    should make incremental development much easier2001-08-30 14:56:26.0
    layercommunicates using procedure calls or by inter-process communication where the lower layers can become servers and the higher layers can become clients2001-08-30 14:56:26.0
    has definition A subsystem that provides a set of services and has layer cohesion2001-08-30 14:56:26.0
    has example The set of related services which could form a layer might include:
    • Services for computation
    • Services for transmission of messages or data
    • Services for storage of data
    • Services for managing security
    • Services for interacting with users
    • Services provided by an operating system
    • Services provided directly by the hardware
      2001-08-30 14:56:26.0
      has well-defined interface that is used by layer immediately above2001-08-30 14:56:26.0
      is a kind of component2001-08-30 14:56:27.0
      is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:56:26.0
      is often divided into smaller subsystems2001-08-30 14:56:26.0
      is part of multi-layer system2001-08-30 14:56:26.0
      only communicates with the layer immediately below it2001-08-30 14:56:27.0
      sees a lower layer as a set of services it can use2001-08-30 14:56:27.0
      layer cohesionallows side-effects2001-08-30 14:56:27.0
      has definition A form of cohesion in which the facilities for providing or accessing a set of services through an API or hardware interface are kept together. There must also be a strict hierarchy in which higher level layers can access only lower-level layers. In other words, the system is effectively divided into layers2001-08-30 14:56:27.0
      has example The set of related services which could form a layer might include:
      • Services for computation
      • Services for transmission of messages or data
      • Services for storage of data
      • Services for managing security
      • Services for interacting with users
      • Services provided by an operating system
      • Services provided directly by the hardware
        2001-08-30 14:56:27.0
        is a kind of cohesion2001-08-30 14:56:27.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:56:27.0
        requires that the layers must form a hierarchy - higher layers can access services of lower layers, but it is essential that the lower layers do not access higher layers2001-08-30 14:56:27.0
        simplifies systems2001-08-30 14:56:27.0
        layerusually provides services through an API2001-08-30 14:56:27.0
        leaf classhas definition A class at the very bottom of an inheritance hierarchy2001-08-30 14:56:27.0
        is a kind of concrete class2001-08-30 14:56:27.0
        is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:56:27.0
        learnabilityhas definition The speed with which a new user can become proficient with the system2001-08-30 14:56:27.0
        has example a user might be able to learn the most important 20% of the system in 3 days if the system is simple and intuitive; 7 days if the system is simple but non-intuitive, and 11 days if the system is complex and non-intuitive2001-08-30 14:56:27.0
        is a kind of measurement2001-08-30 14:56:27.0
        is a kind of software quality2001-08-30 14:56:27.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:27.0
        is concerned with ordinary use2001-08-30 14:56:27.0
        is reduced by information overload2001-08-30 14:56:27.0
        measures how fast a new user can learn the system2001-08-30 14:56:27.0
        can be described in terms of learning curves2001-08-30 14:56:27.0
        can be improved by having fewer things to learn, or by making the learning process more intuitive2001-08-30 14:56:27.0
        learning curvedescribes the learnability of software2001-08-30 14:56:27.0
        has definition A curve on a diagram that plots the time spent learning on one axis, and the amount of functionality learned on the other axis2001-08-30 14:56:27.0
        is a kind of measurement2001-08-30 14:56:27.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:27.0
        legacy systemhas definition A software system which is still undergoing evolution, but on which some or all of the original developers are no longer working2001-08-30 14:56:27.0
        is a kind of software system2001-08-30 14:56:28.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:28.0
        level 1 test caseis the most important2001-08-30 14:56:28.0
        is a kind of test case2001-08-30 14:56:28.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:56:28.0
        verifies that the system runs and is safe2001-08-30 14:56:28.0
        level 2 test caseis a kind of test case2001-08-30 14:56:28.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:56:28.0
        verifies that the system performs its day-to-day functions correctly and is therefore a 'success'2001-08-30 14:56:28.0
        level 3 test caseis the least important2001-08-30 14:56:28.0
        is a kind of test case2001-08-30 14:56:28.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:56:28.0
        verifies that requirements of lesser importance are correct2001-08-30 14:56:28.0
        can provide some redundancy - for example extra testing of additional combinations of input2001-08-30 14:56:28.0
        licensehas definition A legal document authorizing the holder to perform some activity2001-08-30 14:56:28.0
        is a kind of document2001-08-30 14:56:28.0
        is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:56:28.0
        lifelinebecomes an activation box during the period of time that the object is performing computations2001-08-30 14:56:28.0
        has definition A dashed line in a sequence diagram indicating the period of time during which an object exists2001-08-30 14:56:28.0
        is a kind of symbol in sequence diagram2001-08-30 14:56:28.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:28.0
        is attached to each object or actor in a sequence diagram2001-08-30 14:56:28.0
        is drawn as a vertical dashed line2001-08-30 14:56:28.0
        linkconnects two objects - an instance of each of the two classes involved in the association2001-08-30 14:56:28.0
        has definition A reference from one object to another2001-08-30 14:56:28.0
        is a kind of data abstraction2001-08-30 14:56:29.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:28.0
        is an instance of association2001-08-30 14:56:29.0
        is drawn as a line connecting two objects in a UML instance diagram2001-08-30 14:56:29.0
        never has multiplicity symbols2001-08-30 14:56:29.0
        LinkedListis less efficient than ArrayList and Vector for operations such as extracting an arbitrary elementlink: chapter2section2.8.html#849, 2001-08-30 14:56:29.0
        is more efficient than ArrayList and Vector for operations such as inserting an element in the middlelink: chapter2section2.8.html#849, 2001-08-30 14:56:29.0
        is a subtopic of The Basics of Java2001-08-30 14:56:29.0
        is an instance of Java collection class2001-08-30 14:56:29.0
        listis a kind of user interface component2001-08-30 14:56:29.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:29.0
        listeninghas definition A state in which a server is waiting for clients to connect2001-08-30 14:56:29.0
        is a kind of state2001-08-30 14:56:29.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:56:29.0
        live activationhas definition The period of time when an object is performing work2001-08-30 14:56:29.0
        is a kind of subject2001-08-30 14:56:29.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:29.0
        livelockhas definition A failure in which a system can never get out of a limited set of states, although it is not in deadlock2001-08-30 14:56:29.0
        is a kind of deadlock or livelock2001-08-30 14:56:29.0
        is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:56:29.0
        can appear as a hung system where the system is still consuming CPU time2001-08-30 14:56:29.0
        may not hang a system2001-08-30 14:56:29.0
        loading to and saving from persistent storageis a kind of responsibility2001-08-30 14:56:29.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:56:29.0
        is often omitted from from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:56:29.0
        localehas definition An environment where the language, culture, laws, currency and many other factors may be different2001-08-30 14:56:29.0
        is a kind of subject2001-08-30 14:56:29.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:29.0
        Locale classis a subtopic of 7.5 - Usability Principles2001-08-30 14:56:30.0
        is an instance of Java class2001-08-30 14:56:30.0
        is used to format numbers2001-08-30 14:56:30.0
        locale-dependent featurehas localization issues2001-08-30 14:56:30.0
        is a kind of subject2001-08-30 14:56:30.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:30.0
        localhosthas definition A special host name that always refers to the current computer2001-08-30 14:56:30.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:30.0
        is an instance of host name2001-08-30 14:56:30.0
        localizationhas definition The process of adapting a system to a particular locale2001-08-30 14:56:30.0
        is a kind of process2001-08-30 14:56:30.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:30.0
        lockinghas definition A mechanism for reserving a resource so as to avoid inappropriate concurrent access2001-08-30 14:56:30.0
        is a kind of practice2001-08-30 14:56:30.0
        is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:56:30.0
        can prevent critical races2001-08-30 14:56:30.0
        can slow performance since it takes a lot of extra work to manipulate and check the locks2001-08-30 14:56:30.0
        may use a mechanism such as semaphores2001-08-30 14:56:30.0
        longis a kind of Java primitive data type2001-08-30 14:56:30.0
        is a subtopic of The Basics of Java2001-08-30 14:56:30.0
        requires 64 bitslink: chapter2section2.8.html#569, 2001-08-30 14:56:30.0
        stores an integerlink: chapter2section2.8.html#569, 2001-08-30 14:56:30.0
        long methodcontains more than 20 lines of code2001-08-30 14:56:30.0
        is a kind of method2001-08-30 14:56:30.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:56:30.0
        should be avoided2001-08-30 14:56:30.0
        should be divided into shorter methods2001-08-30 14:56:30.0
        long statementis a kind of statement2001-08-30 14:56:31.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:56:31.0
        should be divided into multiple lines such that the second and subsequent lines begin with an operator and are indented2001-08-30 14:56:31.0
        long^2is a subtopic of The Basics of Java2001-08-30 14:56:31.0
        is an instance of Java keyword2001-08-30 14:56:31.0
        look and feelis a kind of subject2001-08-30 14:56:31.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:31.0
        is standardized for each operating system2001-08-30 14:56:31.0
        loophas identical syntax in Java, C and C++link: chapter2section2.8.html#743, 2001-08-30 14:56:31.0
        has part condition2001-08-30 14:56:31.0
        is a kind of statement2001-08-30 14:56:31.0
        is a subtopic of The Basics of Java2001-08-30 14:56:31.0
        low couplinghas definition A kind of coupling in which the interconnections among parts of a system are reduced, making makes the resulting application easier to understand, modify and test2001-08-30 14:56:31.0
        is a kind of coupling2001-08-30 14:56:31.0
        is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:56:31.0
        low maintainabilityis a kind of maintainability2001-08-30 14:56:31.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:56:31.0
        may be caused by a highly efficient design that is hard to understand2001-08-30 14:56:31.0
        may cause defects that reduce reliability2001-08-30 14:56:31.0
        low reliabilityis a kind of reliability2001-08-30 14:56:32.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:56:32.0
        may be caused by low maintainability2001-08-30 14:56:32.0
        machine codeis a kind of code2001-08-30 14:56:32.0
        is a subtopic of The Basics of Java2001-08-30 14:56:32.0
        magazineis a kind of publication2001-08-30 14:56:32.0
        maintainabilitydescribes the ease with which the software can be changed2001-08-30 14:56:32.0
        has definition An important quality of software that measures the extent to which the software can be modified at the lowest possible cost2001-08-30 14:56:32.0
        is a kind of external software quality2001-08-30 14:56:32.0
        is a kind of measurement2001-08-30 14:56:32.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:56:32.0
        is affected by commenting2001-08-30 14:56:32.0
        is affected by complexity of code2001-08-30 14:56:32.0
        is constrained by software architecture2001-08-30 14:56:32.0
        is increased by the use of modularity2001-08-30 14:56:32.0
        can reduce costs for both developers and customers2001-08-30 14:56:32.0
        maintenancehas definition In the context of software, any process involving modifying software following its general release to users2001-08-30 14:56:32.0
        is a kind of process2001-08-30 14:56:32.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:32.0
        is part of software engineering2001-08-30 14:56:32.0
        maintenance projectis a kind of synonym2001-08-30 14:56:32.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:32.0
        is a synonym for evolutionary project2001-08-30 14:56:32.0
        manyis a kind of multiplicity2001-08-30 14:56:32.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:32.0
        is drawn as a star in a UML diagram2001-08-30 14:56:32.0
        means any integer greater than or equal to zero2001-08-30 14:56:32.0
        many-to-manyhas example A secretary can work for many managers, and a manager can have many secretaries2001-08-30 14:56:32.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:32.0
        is an instance of multiplicity pattern2001-08-30 14:56:32.0
        many-to-many associationis a kind of association2001-08-30 14:56:32.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:32.0
        many-to-onehas example A company has many employees, but an employee can only work for one company2001-08-30 14:56:32.0
        is the most common multiplicity pattern2001-08-30 14:56:32.0
        is the same as one-to-many2001-08-30 14:56:33.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:33.0
        is an instance of multiplicity pattern2001-08-30 14:56:33.0
        many-to-one associationis a kind of association2001-08-30 14:56:33.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:33.0
        Mastering the Requirements Processhas author S. Robertson, J. Robertson2001-08-30 14:56:33.0
        has ISBN number 0-201-36046-22001-08-30 14:56:33.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:56:33.0
        is an instance of book about requirements analysis2001-08-30 14:56:33.0
        was published by Addison-Wesley2001-08-30 14:56:33.0
        was published in 20002001-08-30 14:56:33.0
        measurementis a kind of subject2001-08-30 14:56:33.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:56:33.0
        mechanical engineeringis a kind of engineering2001-08-30 14:56:33.0
        is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:56:33.0
        mechanismis a kind of subject2001-08-30 14:56:33.0
        is a subtopic of The Basics of Java2001-08-30 14:56:33.0
        memory leakhas definition A situation in which a program requests memory but does not release it when it is no longer needed2001-08-30 14:56:33.0
        is a kind of inappropriate management of resources2001-08-30 14:56:33.0
        is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:56:33.0
        can be detected by running a program for an extended period, and using a utility that indicates the amount of memory being used2001-08-30 14:56:33.0
        can cause a computer to perform poorly or even run out of memory2001-08-30 14:56:33.0
        can occur in programs written in C, C++ and certain other languages2001-08-30 14:56:33.0
        mentoris a kind of software developer2001-08-30 14:56:33.0
        is a subtopic of 1.9 - Difficulties And Risks In Software Engineering as a Whole2001-08-30 14:56:33.0
        menuis a kind of user interface component2001-08-30 14:56:33.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:33.0
        messagehas definition Any information sent as a component interacts with another, including using procedure calls, or network communication2001-08-30 14:56:34.0
        is a kind of subject2001-08-30 14:56:34.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:34.0
        can be represented by a message in sequence diagram2001-08-30 14:56:34.0
        message in collaboration diagramare ordered by a numbering scheme to indicate the order in which messages are sent2001-08-30 14:56:34.0
        is a kind of symbol in collaboration diagram2001-08-30 14:56:34.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:34.0
        is drawn as an arrow, labelled with the message name and optional arguments2001-08-30 14:56:34.0
        message in interaction diagramis a kind of symbol in interaction diagram2001-08-30 14:56:34.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:34.0
        message in sequence diagramhas optional part an argument list and a response2001-08-30 14:56:34.0
        has part label2001-08-30 14:56:34.0
        has syntax response:=message(arg,...)2001-08-30 14:56:34.0
        is a kind of symbol in sequence diagram2001-08-30 14:56:34.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:34.0
        is drawn as an arrow between activation boxes of the sender and receiver2001-08-30 14:56:34.0
        is drawn as an arrow from actor to object, , or from object to object2001-08-30 14:56:34.0
        metaphorhas localization issues
        • can invoke different impressions in people of different cultures
        2001-08-30 14:56:34.0
        is a kind of locale-dependent feature2001-08-30 14:56:35.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:34.0
        methodhas definition A concrete implementation of an operation; a procedure in a class2001-08-30 14:56:35.0
        is equivalent to the terms "function member" or "member function" which are used in C++2001-08-30 14:56:35.0
        is equivalent to the terms "routine", "function" or "procedure" which are used in non object oriented languages2001-08-30 14:56:35.0
        is a kind of procedural abstraction2001-08-30 14:56:35.0
        is a kind of procedure2001-08-30 14:56:35.0
        is a subtopic of 2.4 - Methods, Operations and Polymorphism2001-08-30 14:56:35.0
        method callis a kind of message2001-08-30 14:56:35.0
        is a subtopic of The Basics of Java2001-08-30 14:56:35.0
        methodshould have a comment at its head if the method is non-obvious2001-08-30 14:56:35.0
        methodologydescribes detailed sequences of steps for performing analysis and design2001-08-30 14:56:35.0
        has definition A description of a process; it usually prescribes how to do things in a step by step manner2001-08-30 14:56:35.0
        is a kind of subject2001-08-30 14:56:35.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:56:35.0
        is often supported by tools developed by the author of the process, or others2001-08-30 14:56:35.0
        usually describes aspects of project management2001-08-30 14:56:35.0
        usually requires the use of a particular notation and the production of documentation in particular formats2001-08-30 14:56:35.0
        metrichas definition A scale on which a software product or process may be measured2001-08-30 14:56:35.0
        is a kind of measurement2001-08-30 14:56:35.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:35.0
        Microsoft Java toolshas URL microsoft.com/java    2001-08-30 14:56:35.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:56:35.0
        is an instance of programming environment2001-08-30 14:56:35.0
        milestonehas definition An important deadline date, at which a specific event may occur, and when a specific deliverable may be required2001-08-30 14:56:35.0
        is a kind of subject2001-08-30 14:56:35.0
        is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:56:35.0
        is drawn as a diamond in a Gantt chart2001-08-30 14:56:35.0
        mistakeis a kind of problem2001-08-30 14:56:36.0
        is a subtopic of 10.1 - Basic Definitions2001-08-30 14:56:36.0
        mixed testingis a synonym of sandwich testing2001-08-30 14:56:36.0
        mobility impaired useris a kind of user with a disability2001-08-30 14:56:36.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:36.0
        may not be able to use a mouse or keyboard2001-08-30 14:56:36.0
        may prefer to use voice input2001-08-30 14:56:36.0
        modal dialoghas definition A dialog that the user must dismiss before interacting with any other window2001-08-30 14:56:36.0
        is a kind of dialog2001-08-30 14:56:36.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:36.0
        limits the user's options2001-08-30 14:56:36.0
        prevents the user from interacting with any other window until he or she has dismissed the modal dialog2001-08-30 14:56:36.0
        should be avoided because it forces the user to constantly press 'OK' or 'Cancel' to move on to the next step2001-08-30 14:56:36.0
        modehas definition A state in which the UI restricts the affordance2001-08-30 14:56:36.0
        has example if a dialog appears saying 'Do you really want to delete a file?' and all the user can do is click 'Cancel' or 'OK', then the system is in a mode2001-08-30 14:56:36.0
        is a kind of state2001-08-30 14:56:36.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:36.0
        modelbecomes the core of documentation describing the system2001-08-30 14:56:36.0
        has definition An abstract representation of a system, that conveys a certain aspect of it in an understandable and analyzable way2001-08-30 14:56:36.0
        is crucial in software development2001-08-30 14:56:36.0
        is a kind of representation2001-08-30 14:56:36.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:56:36.0
        is used to describe a software system2001-08-30 14:56:36.0
        is used to validate a software system2001-08-30 14:56:36.0
        see also model^22001-08-30 14:56:36.0
        will contain classes from the original system if the system is an extension to an existing system2001-08-30 14:56:36.0
        will contain many classes from the framework if the system is being built using a framework2001-08-30 14:56:36.0
        should be understandable by clients and users so they can participate in the development process as much as possible2001-08-30 14:56:36.0
        should be properly reviewed2001-08-30 14:56:36.0
        should provide abstraction so that not all details are visible at once2001-08-30 14:56:36.0
        should provide insights about the system when software engineers analyze it2001-08-30 14:56:36.0
        should use a standard notation such as UML so that everybody who looks at it will interpret it the same way2001-08-30 14:56:36.0
        Model-View-Controllerfacilitates divide-and-conquer because the three components can be independently designed2001-08-30 14:56:37.0
        has definition A architectural pattern used to separate the functional layer of the system (the model) from two aspects of the user interface, the view and the controller2001-08-30 14:56:37.0
        increases cohesion because the components have stronger layer cohesion than if the view and controller were together in a single UI layer2001-08-30 14:56:37.0
        increases flexibility because it is usually quite easy to change the UI by changing the view, the controller, or both2001-08-30 14:56:37.0
        increases layer cohesion of the user interface layer2001-08-30 14:56:37.0
        increases reuse because the view and controller normally make extensive use of reusable components for various kinds of UI controls2001-08-30 14:56:37.0
        is a kind of software architecture2001-08-30 14:56:37.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:37.0
        is abbreviated as MVC2001-08-30 14:56:37.0
        is related to the multi-layer architecture2001-08-30 14:56:37.0
        reduces coupling because the communication channels between the three components are minimal and easy to find2001-08-30 14:56:37.0
        reduces the coupling between the user interface layer and the rest of the system, as well as between different aspects of the UI itself2001-08-30 14:56:37.0
        separates the functional layer of the system (the model) from two aspects of the user interface, the view and the controller2001-08-30 14:56:37.0
        model^2contains contains the underlying classes whose instances are to be viewed and manipulated2001-08-30 14:56:36.0
        has definition The functional layer in the MVC architectural pattern - the underlying classes whose instances are to be viewed and manipulated2001-08-30 14:56:36.0
        is a kind of layer2001-08-30 14:56:37.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:36.0
        see also model2001-08-30 14:56:37.0
        uses the observer design pattern to separate it from the view2001-08-30 14:56:37.0
        does not know what view and controller are attached to it2001-08-30 14:56:36.0
        Modeling Reactive Systems with Statecharts: The STATEMATE Approachhas author D. Harel and M. Politi2001-08-30 14:56:37.0
        has ISBN number 0-07-026205-52001-08-30 14:56:37.0
        has URL www.wisdom.weizmann.ac.il/~harel/books/stm.html    2001-08-30 14:56:37.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:56:37.0
        is an instance of book about modelling interactions and behaviour2001-08-30 14:56:37.0
        was published by McGraw-Hill2001-08-30 14:56:37.0
        was published in 19982001-08-30 14:56:37.0
        modelleris a kind of software developer2001-08-30 14:56:37.0
        is a subtopic of 5.10 - Difficulties and Risks When Creating Class Diagrams2001-08-30 14:56:37.0
        performs modelling2001-08-30 14:56:37.0
        modellinghas definition The process of creating a model2001-08-30 14:56:37.0
        is a particularly difficult skill2001-08-30 14:56:37.0
        is a kind of process2001-08-30 14:56:37.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:56:37.0
        is not emphasized as part of education programs2001-08-30 14:56:37.0
        can be performed using
        • diagrams
        • semi-formal or formal languages that express the information systematically or mathematically
        2001-08-30 14:56:37.0
        modelling languageis a kind of language2001-08-30 14:56:37.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:56:37.0
        modellingmay be used during design2001-08-30 14:56:37.0
        may be used during requirements analysis2001-08-30 14:56:37.0
        may use diagrams2001-08-30 14:56:37.0
        may use formal languages2001-08-30 14:56:37.0
        moderatorhas definition A person who leads a brainstorming session2001-08-30 14:56:37.0
        is a kind of person2001-08-30 14:56:38.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:38.0
        is a synonym of facilitator2001-08-30 14:55:35.0
        may participate in brainstorming discussions if he or she wishes2001-08-30 14:56:38.0
        modified softwareis a kind of software2001-08-30 14:56:38.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:56:38.0
        may have to be completely redesigned after many changes to it have caused it to deteriorate significantly2001-08-30 14:56:38.0
        modularitycontributes to maintainability2001-08-30 14:56:38.0
        has definition The extent to which software is divided into components, called modules, which have high internal cohesion, low coupling between each other, and simple interfaces2001-08-30 14:56:38.0
        is a kind of measurement2001-08-30 14:56:38.0
        is a kind of software quality2001-08-30 14:56:38.0
        is a subtopic of 2.7 - Concepts that Define Object Orientation2001-08-30 14:56:38.0
        modulehas definition A component that is defined at the programming language level, such as file, method or package2001-08-30 14:56:38.0
        has high cohesion if related aspects of a system are kept together in this module, and unrelated aspects are kept out2001-08-30 14:56:38.0
        is a kind of component2001-08-30 14:56:38.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:38.0
        is implemented2001-08-30 14:56:38.0
        lacks side effects if it does not modify any data, and does not leave behind any information, other than its result, that would have an effect on other computations2001-08-30 14:56:38.0
        multi-layerallows replacement of a layer by an improved version, or by one with a different set of capabilities2001-08-30 14:56:38.0
        anticipates obsolescence: databases and UI systems tend to change; by isolating these in separate layers, the system becomes more resistant to obsolescence2001-08-30 14:56:38.0
        facilitates designing for portability because all the facilities that are dependent on a particular platform can be isolated in one of the lower layers2001-08-30 14:56:38.0
        facilitates designing for testability because individual layers, particularly the UI layer, database layer and communications layer, can be tested independently2001-08-30 14:56:38.0
        facilitates divide and conquer since the separate layers can be independently designed2001-08-30 14:56:38.0
        has definition An architectural pattern in which a system is divided into layers2001-08-30 14:56:38.0
        increases abstraction because when you design the higher layers, you do not need to know the details of how the lower layers are implemented2001-08-30 14:56:38.0
        increases cohesion by facilitating independent designing of layers2001-08-30 14:56:38.0
        increases reusability because the lower layers can often be designed generically so that they can be used to provide the same services for different systems2001-08-30 14:56:38.0
        is a kind of architectural pattern2001-08-30 14:56:38.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:38.0
        is used to build a multi-layer system2001-08-30 14:56:38.0
        reduces coupling since well-designed lower layers do not know about the higher layers2001-08-30 14:56:38.0
        can be used to produce a complex system can be built by superposing layers at increasing levels of abstraction2001-08-30 14:56:38.0
        multi-layer systemcontains
        • a separate layer at the very top to handle the user interface
        • layers that provide the application functions determined by the use-cases
        • layers at the bottom provide services such as data storage and transmission
        2001-08-30 14:56:38.0
        contains layers with each layer communicating only with the layer immediately below it2001-08-30 14:56:38.0
        has part layer2001-08-30 14:56:38.0
        is a kind of software system2001-08-30 14:56:38.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:38.0
        uses multi-layer architectural pattern2001-08-30 14:56:38.0
        multiobjecthas definition A symbol in an interaction diagram showing several overlapping objects, which are the target of a set of messages defined by an iteration expression2001-08-30 14:56:38.0
        is a kind of symbol in interaction diagram2001-08-30 14:56:39.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:39.0
        is drawn as overlapping rectangles2001-08-30 14:56:39.0
        represents the presence of multiple similar objects2001-08-30 14:56:39.0
        multiple inheritancehas definition Inheritance from more than one superclass2001-08-30 14:56:39.0
        is a kind of inheritance2001-08-30 14:56:39.0
        is a subtopic of The Basics of Java2001-08-30 14:56:39.0
        can be avoided by using the player-role pattern2001-08-30 14:56:39.0
        can result in more complex systems than single inheritancelink: chapter2section2.8.html#936, 2001-08-30 14:56:39.0
        should be avoided if possible2001-08-30 14:56:39.0
        multiplicityhas definition Information placed at each end of an association indicating how many instances of one class can be related to instances of the other class2001-08-30 14:56:39.0
        is a kind of subject2001-08-30 14:56:39.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:39.0
        is drawn as a range separated by two dots (e.g. 2..3) in a UML class diagram2001-08-30 14:56:39.0
        can be written as a specific positive integer or as several multiplicity values or ranges separated by commas2001-08-30 14:56:39.0
        multiplicity patternis a kind of pattern2001-08-30 14:56:39.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:39.0
        multiplicityshould be as least restrictive as possible so as not to reduce the flexibility of the system2001-08-30 14:56:39.0
        multiplicity symbolis a kind of symbol in UML diagram2001-08-30 14:56:39.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:39.0
        musichas advantages
        • conveys mood
        • adds attractiveness
        2001-08-30 14:56:39.0
        has problems
        • does not usually convey meaning
        • frequently annoying since people have different tastes in music
        2001-08-30 14:56:39.0
        is a kind of coding technique2001-08-30 14:56:39.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:39.0
        MVCis a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:39.0
        is an abbreviation for Model-View-Controller2001-08-30 14:56:39.0
        is an instance of abbreviation2001-08-30 14:56:39.0
        nameis a kind of representation2001-08-30 14:56:40.0
        name spaceis a kind of programming language construct2001-08-30 14:56:40.0
        is a subtopic of The Basics of Java2001-08-30 14:56:40.0
        Napsteris an instance of peer-to-peer system2001-08-30 14:56:40.0
        NASA's Guide to Software Quality Assurancehas URL satc.gsfc.nasa.gov/assure/assuregb.html    2001-08-30 14:56:40.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:40.0
        is an instance of web site about software quality assurance2001-08-30 14:56:40.0
        NASA's Software Assurance Technology Centrehas URL satc.gsfc.nasa.gov    2001-08-30 14:56:40.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:40.0
        is an instance of web site about software quality assurance2001-08-30 14:56:40.0
        National Society of Professional Engineers (US)has URL www.nspe.org    2001-08-30 14:56:40.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:56:40.0
        is an instance of engineering web site2001-08-30 14:56:40.0
        nativeis a subtopic of The Basics of Java2001-08-30 14:56:40.0
        is an instance of Java keyword2001-08-30 14:56:40.0
        navigating and searchingis a kind of responsibility2001-08-30 14:56:40.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:56:40.0
        nestingis a kind of practice2001-08-30 14:56:40.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:56:40.0
        should not be allowed to too many levels2001-08-30 14:56:40.0
        Netscape's Software Engineering sitehas URL directory.netscape.com/browse.psp?cp=nrpuswscwsc&id=5445    2001-08-30 14:56:41.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:56:41.0
        is an instance of software engineering web site2001-08-30 14:56:41.0
        netstathas example netstat -a -p TCP2001-08-30 14:56:41.0
        has purpose to find out which ports are in use2001-08-30 14:56:41.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:41.0
        is an instance of Windows command2001-08-30 14:56:41.0
        network file systemhas clients programs on any computer that access files that happen to be on other computers2001-08-30 14:56:41.0
        has server a program whose main purpose is to allow clients on other computers to access files such as Unix NFS and Novel NetWare2001-08-30 14:56:41.0
        is a kind of client-server system2001-08-30 14:56:41.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:56:41.0
        newhas purpose to create new objectslink: chapter2section2.8.html#774, 2001-08-30 14:56:41.0
        is an instance of Java keyword2001-08-30 14:56:41.0
        is an instance of Java operator2001-08-30 14:56:41.0
        newsgroupis a kind of publication2001-08-30 14:56:41.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:56:41.0
        non-functional requirementdescribes a constraint that must be adhered to during development2001-08-30 14:56:41.0
        has definition A requirement that constrains design of a system, but does not describe a service that the system is to provide2001-08-30 14:56:41.0
        is a kind of requirement2001-08-30 14:56:41.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:56:41.0
        restricts the freedom of software engineers as they make design decisions because it limits what resources can be used and sets bounds on aspects of the software's quality2001-08-30 14:56:41.0
        must be verifiable by measuring various aspects of the system and seeing if the measurements conform with the requirement2001-08-30 14:56:41.0
        non-functional requirementsdescribes constraints that must be adhered to during development2001-08-30 14:56:41.0
        is a kind of requirements document2001-08-30 14:56:41.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:56:41.0
        non-modal dialogallows the user to choose the sequence in which they work2001-08-30 14:56:42.0
        has definition A separate window that the user can choose to interact with, but does not have to2001-08-30 14:56:42.0
        is a kind of dialog2001-08-30 14:56:42.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:42.0
        non-singleton conditionis the inverse of singleton condition2001-08-30 14:56:42.0
        is a kind of situation2001-08-30 14:56:42.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:42.0
        occurs when there is almost always one of something, but occasionally there can be more than one2001-08-30 14:56:42.0
        not handling null conditionshas definition A common defect in which a program behaves abnormally when a null condition is encountered2001-08-30 14:56:42.0
        has testing strategy determine all possible null conditions and run test cases that would highlight any inappropriate behaviour2001-08-30 14:56:42.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:42.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:42.0
        not handling singleton or non-singleton conditionshas definition A common defect in which a program does not properly handle singleton conditions or non-singleton conditions2001-08-30 14:56:42.0
        has testing strategy brainstorm to determine unusual conditions and run appropriate tests2001-08-30 14:56:42.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:42.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:42.0
        not setting up the correct preconditions for an algorithmhas definition A common defect in which a program proceeds to do its work even when specifies preconditions, that state what must be true before the algorithm should be executed, are not satisfied2001-08-30 14:56:42.0
        has testing strategy run test cases in which each precondition is not satisfied - preferably its input values are just beyond what the algorithm can accept2001-08-30 14:56:42.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:42.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:42.0
        not terminating a loop or recursionhas definition A common defect in which a loop or a recursion does not always terminate, i.e. it is 'infinite'2001-08-30 14:56:42.0
        has testing strategy
        • assume that the programmer has made an error
        • should analyse what causes a repetitive action to be stopped
        • should run test cases that the tester anticipates might not be handled correctly
        2001-08-30 14:56:42.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:43.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:42.0
        not using enough bits or digits to store maximum valueshas testing strategy test using very large numbers to ensure the system has a wide enough margin of error2001-08-30 14:56:43.0
        is a kind of defect in a numerical algorithm2001-08-30 14:56:43.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:56:43.0
        not using enough places after the decimal pointforces the system to round excessively, which can mean that data is stored inaccurately and can also lead to a build-up of errors2001-08-30 14:56:43.0
        has testing strategy perform calculations that involve many significant figures, and large differences in magnitude2001-08-30 14:56:43.0
        is a kind of defect in a numerical algorithm2001-08-30 14:56:43.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:56:43.0
        not using enough significant figuresforces the system to round excessively, which can mean that data is stored inaccurately and can also lead to a build-up of errors2001-08-30 14:56:43.0
        has testing strategy perform calculations that involve many significant figures, and large differences in magnitude2001-08-30 14:56:43.0
        is a kind of defect in a numerical algorithm2001-08-30 14:56:43.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:56:43.0
        notehas definition A small block of text embedded in a UML diagram2001-08-30 14:56:43.0
        is a kind of subject2001-08-30 14:56:43.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:43.0
        noun phrasehas definition A string of nouns, or a noun modified by one or more adjectives2001-08-30 14:56:43.0
        has example "small shiny car door handle"2001-08-30 14:56:43.0
        is a kind of subject2001-08-30 14:56:43.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:56:43.0
        novice programmeris a kind of programmer2001-08-30 14:56:44.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:56:43.0
        can create a complex system that performs some useful function but is highly disorganized in terms of its design2001-08-30 14:56:43.0
        nullis a subtopic of The Basics of Java2001-08-30 14:56:44.0
        is an instance of Java keyword2001-08-30 14:56:44.0
        null conditionhas definition A situation where there normally exists one or more data items to process, but sometimes there are none2001-08-30 14:56:44.0
        is a kind of situation2001-08-30 14:56:44.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:44.0
        number formatis a kind of locale-dependent feature2001-08-30 14:56:44.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:44.0
        number of bugsis proportional to the number of bugs remaining2001-08-30 14:56:44.0
        is a kind of measurement2001-08-30 14:56:44.0
        is a subtopic of 10.13 - Difficulties and Risks in Quality Assurance2001-08-30 14:56:44.0
        number of completed use casesindicates the progress of a project's development2001-08-30 14:56:44.0
        is a kind of number of use cases2001-08-30 14:56:44.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:56:44.0
        number of defects found when inspecting a productis a kind of measurement2001-08-30 14:56:44.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:44.0
        number of failures encountered by usersis a kind of measurement2001-08-30 14:56:44.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:44.0
        number of failures found when testing a productis a kind of measurement2001-08-30 14:56:44.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:44.0
        number of questions posed by users to the help deskis a kind of measurement2001-08-30 14:56:44.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:44.0
        number of use casesindicates a project's complexity2001-08-30 14:56:44.0
        is a kind of measurement2001-08-30 14:56:45.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:56:44.0
        objecthas live activation while the object is performing computations in a sequence diagram2001-08-30 14:56:45.0
        has behaviour2001-08-30 14:56:45.0
        has definition A data element in an object-oriented system, which has its own identity, belongs to a particular class, and has behaviour and properties2001-08-30 14:56:45.0
        has state2001-08-30 14:56:45.0
        has synonym instance: instance is used when you are talking about the role with respect to the class and object is used when talking in a more general way2001-08-30 14:56:45.0
        is distinct from every other object even if they contain the same data2001-08-30 14:56:45.0
        is in a state until an event occurs that causes it to change state2001-08-30 14:56:45.0
        is a kind of data item2001-08-30 14:56:45.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:45.0
        is a synonym of instance2001-08-30 14:55:59.0
        is drawn as a rectangle containing a colon and the underlined name of the class (optional if it is clear from the context), which may be preceded by an optional instance name in a UML instance diagram2001-08-30 14:56:45.0
        is structured2001-08-30 14:56:45.0
        can be referred to by several different variables at the same time2001-08-30 14:56:45.0
        can be referred to without reference to the data (instance variables) contained in it2001-08-30 14:56:45.0
        can represent any entity to which you can associate properties and behaviour2001-08-30 14:56:45.0
        Object Constraint Languagecontains many built-in keywords designed to formally specify constraints in software models2001-08-30 14:56:45.0
        has definition A language used to write Boolean constraints and assertions in UML2001-08-30 14:56:45.0
        is the recommended language for writing constraints in a UML diagram2001-08-30 14:56:45.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:45.0
        is abbreviated as OCL2001-08-30 14:56:45.0
        is an instance of specification language2001-08-30 14:56:45.0
        is not related to Java2001-08-30 14:56:45.0
        see also OCL expression2001-08-30 14:56:45.0
        see also OCL statement2001-08-30 14:56:45.0
        Object Lifecycles: Modelling the World in Stateshas author S. Shlaer, and S. Mellor2001-08-30 14:56:45.0
        has ISBN number 0-13-629940-72001-08-30 14:56:45.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:56:45.0
        is an instance of book about modelling interactions and behaviour2001-08-30 14:56:45.0
        was published by Yourdon Press2001-08-30 14:56:45.0
        was published in 19922001-08-30 14:56:45.0
        object orientationhas definition A near-synonym for the object-oriented paradigm2001-08-30 14:56:45.0
        is a kind of paradigm2001-08-30 14:56:45.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:45.0
        Object Oriented Analysishas author P. Coad and E. Yourdon2001-08-30 14:56:45.0
        object oriented analysishas definition The process of deciding which classes will be important to the users, and working out the structure, relationships and behaviour of these classes2001-08-30 14:56:45.0
        Object Oriented Analysishas ISBN number2001-08-30 14:56:45.0
        object oriented analysisis a kind of analysis2001-08-30 14:56:46.0
        is a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:46.0
        Object Oriented Analysisis a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:46.0
        object oriented analysisis abbreviated as OOA2001-08-30 14:56:46.0
        Object Oriented Analysisis an instance of book about object oriented development processes2001-08-30 14:56:46.0
        was published by Yourdon Press2001-08-30 14:56:46.0
        was published in 19912001-08-30 14:56:46.0
        object oriented analysisdoes not require an understanding of how objects are physically represented using a particular programming language2001-08-30 14:56:45.0
        does not require an understanding of whether objects are stored in random-access memory or on disk2001-08-30 14:56:45.0
        object oriented designfollows object oriented analysis2001-08-30 14:56:46.0
        is a kind of design2001-08-30 14:56:46.0
        is a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:46.0
        is abbreviated as OOD2001-08-30 14:56:46.0
        require an understanding of how objects are physically represented using a particular programming language2001-08-30 14:56:46.0
        requires an understanding of whether objects are stored in random-access memory or on disk2001-08-30 14:56:46.0
        requires the skill of organizing classes into inheritance hierarchies2001-08-30 14:56:46.0
        object oriented frameworkcontains classes, some of which should be abstract2001-08-30 14:56:46.0
        contains methods in abstract classes which are the slots that are filled when concrete methods are created in the concrete subclasses2001-08-30 14:56:46.0
        has API that is defined by the set of all public methods of the public classes2001-08-30 14:56:46.0
        is a kind of framework2001-08-30 14:56:46.0
        is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:56:46.0
        is composed of a library of classes2001-08-30 14:56:46.0
        object oriented languagehas features 2001-08-30 14:56:46.0
        has features abstraction, modularity and encapsulation2001-08-30 14:56:46.0
        is a kind of programming language2001-08-30 14:56:46.0
        is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:56:46.0
        object oriented systemcombines procedural abstraction with data abstraction2001-08-30 14:56:46.0
        is a kind of system2001-08-30 14:56:46.0
        is a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:46.0
        makes use of abstraction in order to help make software less complex2001-08-30 14:56:46.0
        object oriented testinghas example 2001-08-30 14:56:46.0
        is a kind of testing performed by software engineers2001-08-30 14:56:47.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:47.0
        object stream classhas example //creation
        output = new ObjectOutputStream(clientSocket.getOutputStream());
        //sending an object
        output.writeObject(msg);
        //receiving an object (in a loop)
        msg = input.readObject();
        2001-08-30 14:56:47.0
        is a kind of filter2001-08-30 14:56:47.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:47.0
        is wrapped around a binary stream2001-08-30 14:56:47.0
        object symbolis a kind of symbol in UML diagram2001-08-30 14:56:47.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:56:47.0
        Object-Oriented Analysis and Design With Applicationshas author G. Booch2001-08-30 14:56:47.0
        has ISBN number2001-08-30 14:56:47.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:47.0
        is an instance of book about object oriented development processes2001-08-30 14:56:47.0
        was published by Addison-Wesley2001-08-30 14:56:47.0
        was published in 19942001-08-30 14:56:47.0
        Object-Oriented Modelling and Designhas author J. Rumbaugh, J. et al.2001-08-30 14:56:47.0
        has ISBN number2001-08-30 14:56:47.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:47.0
        is an instance of book about object oriented development processes2001-08-30 14:56:48.0
        was published by Prentice Hall2001-08-30 14:56:48.0
        was published in 19912001-08-30 14:56:48.0
        object-oriented paradigmhas definition An approach to software design and programming in which software is primarily thought of as a collection of classes that each have responsibilities for various operations, and which are instantiated at run time to create objects2001-08-30 14:56:48.0
        has feature polymorphism2001-08-30 14:56:48.0
        has fundamental units objects2001-08-30 14:56:48.0
        helps to ensure communicational cohesion2001-08-30 14:56:48.0
        is a kind of paradigm2001-08-30 14:56:48.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:48.0
        organizes code into classes that each contain procedures for manipulating instances of that class alone2001-08-30 14:56:48.0
        Object-Oriented Software Engineering : A Use Case Driven Approachhas author I. Jacobson2001-08-30 14:56:48.0
        has ISBN number2001-08-30 14:56:48.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:48.0
        is an instance of book about object oriented development processes2001-08-30 14:56:48.0
        was published by Addison-Wesley2001-08-30 14:56:48.0
        was published in 19942001-08-30 14:56:48.0
        Object-Oriented Software Engineering: Conquering Complex and Changing Systemshas author Bernd Bruegge2001-08-30 14:56:48.0
        has ISBN number 0-13-489725-02001-08-30 14:56:48.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:56:48.0
        is an instance of software engineering book2001-08-30 14:56:48.0
        was published by Prentice Hall2001-08-30 14:56:48.0
        was published in 19992001-08-30 14:56:48.0
        Object-Oriented Systems Analysis: Modelling the World in Datahas author S. Shlaer and S. Mellor2001-08-30 14:56:48.0
        has ISBN number2001-08-30 14:56:48.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:48.0
        is an instance of book about object oriented development processes2001-08-30 14:56:48.0
        was published by Yourdon Press2001-08-30 14:56:48.0
        was published in 19892001-08-30 14:56:48.0
        object-oriented testinghas definition Testing that focuses on the specific properties of object oriented programs2001-08-30 14:56:48.0
        is a kind of testing2001-08-30 14:56:48.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:48.0
        ObjectInputStreamcontains Java objects2001-08-30 14:56:47.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:47.0
        is an instance of object stream class2001-08-30 14:56:47.0
        uses serialization2001-08-30 14:56:47.0
        objectivehas definition A measurable value you wish to attain2001-08-30 14:56:47.0
        is a kind of measurement2001-08-30 14:56:47.0
        is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:56:47.0
        is influenced by memory efficiency, CPU efficiency, maintainability, portability and usability2001-08-30 14:56:47.0
        should be obtained from non-functional requirements2001-08-30 14:56:47.0
        Objective-Cis a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:56:47.0
        is an instance of object oriented language2001-08-30 14:56:47.0
        ObjectOutputStreamcontains Java objects2001-08-30 14:56:49.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:49.0
        is an instance of object stream class2001-08-30 14:56:49.0
        uses serialization2001-08-30 14:56:49.0
        ObjectPlanthas URL www.arctaedius.com/ObjectPlant/    2001-08-30 14:56:49.0
        is a shareware tool for the Macintosh2001-08-30 14:56:49.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:49.0
        is an instance of tool for drawing UML diagrams2001-08-30 14:56:49.0
        Objects By Design's list of UML modelling toolshas URL www.objectsbydesign.com/tools/umltools_byCompany.html    2001-08-30 14:56:49.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:56:49.0
        is an instance of web site about UML2001-08-30 14:56:49.0
        Objects Have Class!: An Introduction to Programming in Javahas author David A. Poplawski2001-08-30 14:56:49.0
        has ISBN number 0-07-242340-42001-08-30 14:56:49.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:56:49.0
        is an instance of book about Java programming2001-08-30 14:56:49.0
        was published by McGraw Hill2001-08-30 14:56:49.0
        was published in 20012001-08-30 14:56:49.0
        observationhas purpose to gather subtle information that stakeholders may not think of telling you2001-08-30 14:56:49.0
        involves taking a notebook and 'shadowing' important potential users as they do their work, writing down everything they do, asking users to talk as they work and explain what they are doing, and perhaps videotaping the session so you can analyze it in more detail later2001-08-30 14:56:49.0
        is a kind of requirements gathering2001-08-30 14:56:49.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:49.0
        takes a lot of time2001-08-30 14:56:49.0
        should only be done during the development of large systems, with which potential users will be performing complex tasks, because observation, and analysing the resulting information, can consume a large amount of time2001-08-30 14:56:49.0
        observerhas antipatterns
        • connecting an observer directly to an observable so that they both have references to each other
        • making the observers subclasses of the observable
        2001-08-30 14:56:49.0
        has context
        • When you create a two-way association between two classes, the code for the classes becomes inseparable
        • When you compile one, the other one has to be available since the first one explicitly refers to it
        • This means if you want to reuse one of the classes, you also have to reuse the other; similarly, if you change one, you probably have to change the other
        2001-08-30 14:56:49.0
        has definition A pattern found in class diagrams in which instances of one class are informed of changes to instances of a second class2001-08-30 14:56:49.0
        has forces
        • You want to maximize the flexibility of the system to the greatest extent possible.
        2001-08-30 14:56:49.0
        has problem How do you reduce the interconnection between classes, especially between classes that belong to different modules or subsystems?2001-08-30 14:56:49.0
        has references one of the Gang of Four patterns.2001-08-30 14:56:49.0
        has solution
        1. Create an abstract class «Observable» that maintains a collection of «Observer» instances.
        2. The «Observable» class is very simple; it merely has a mechanism to add and remove observers, as well as a method notifyObservers that sends an update message to each «Observer».
        3. Any application classes can declare itself to be a subclass of «Observable».
        4. «Observer» is an interface, defining only an abstract update method.
        5. Any class can thus be made to observe an Observable by declaring that it implements the interface, and asking to be a member of the observer list of the «Observable».
        6. The «Observer» can then expect calls to its update method whenever the «Observable» changes.
        7. Using this pattern, the «Observable» neither has to know the nature of the classes that will be interested in receiving the update messages, nor what they will do with this information.
        2001-08-30 14:56:49.0
        is a subtopic of 6.6 - The Observer Pattern2001-08-30 14:56:50.0
        is an instance of design pattern2001-08-30 14:56:50.0
        can be used to separate the model^2 from the controller in the Model-View-Controller architecture2001-08-30 14:56:49.0
        obsolescencehas definition The tendency for a technology to reach a state where it is no longer useful, is superseded by better technology or must be upgraded in order to continue to function correctly2001-08-30 14:56:50.0
        is a kind of process2001-08-30 14:56:50.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:56:50.0
        occasional useris a kind of user2001-08-30 14:56:50.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:50.0
        occurrencehas definition An object that is a member of a set of classes that set share common information but also differ from each other in important ways2001-08-30 14:56:50.0
        has example a member of the set of all episodes of a television series - they have the same producer and the same series title, but different story-lines.2001-08-30 14:56:50.0
        is a kind of object2001-08-30 14:56:50.0
        is a subtopic of 6.2 - The Abstraction-Occurrence Pattern2001-08-30 14:56:50.0
        OCLis a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:50.0
        is an abbreviation for Object Constraint Language2001-08-30 14:56:50.0
        is an instance of abbreviation2001-08-30 14:56:50.0
        OCL statementhas example {startPoint <> endPoint} constrains the two ends of a LineSegment to be different2001-08-30 14:56:50.0
        is a kind of statement2001-08-30 14:56:50.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:50.0
        is not compiled2001-08-30 14:56:50.0
        is not executed2001-08-30 14:56:50.0
        specifies a logical fact (a constraint) about the system that must remain true2001-08-30 14:56:50.0
        can be used for automatic code generation2001-08-30 14:56:50.0
        can consist of
        • References to role names, association names, attributes and the results of operations.
        • The logical values true and false
        • Logical operators such as and, or, =, >, < or <> (not equals)
        • String values such as: 'a string'
        • Integers and real numbers (the latter having a decimal point)
        • Arithmetic operations *, /, +, -
        2001-08-30 14:56:50.0
        can navigate from class to class using a dot to separate components. For example, in LinearShape, to refer to the length of the edges you can refer to edge.length.2001-08-30 14:56:50.0
        can refer to all the values in a collection using the forall operator2001-08-30 14:56:50.0
        can refer to special OCL properties of a collection itself using the -> operator2001-08-30 14:56:50.0
        can use the implies operator which is true if either the left hand side is false or if both sizes are true2001-08-30 14:56:50.0
        can use the {ordered} constraint to indicate that an OCL collection is a sequence, which allows you refer to special properties such as first and last2001-08-30 14:56:50.0
        does not have to be written on a UML diagram but can be written separately with a context specified2001-08-30 14:56:50.0
        OCL statement in a class diagramis a kind of OCL statement2001-08-30 14:56:50.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:50.0
        can specify what the values of attributes and associations must be2001-08-30 14:56:50.0
        can state the preconditions and postconditions of operations2001-08-30 14:56:50.0
        off-by-one errorhas definition A defect in which a program inappropriately adds or subtracts one, or inappropriately loops one too many times or one too few times2001-08-30 14:56:50.0
        has testing strategy develop boundary tests in which you verify that the program computes the correct numerical answer, or performs the correct number of iterations2001-08-30 14:56:51.0
        is very common especially in graphical applications2001-08-30 14:56:51.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:51.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:51.0
        oneindicates that that there must be exactly one instance linked to each object at the other end of the association in a UML diagram2001-08-30 14:56:51.0
        is a kind of multiplicity2001-08-30 14:56:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:51.0
        one-to-manyis the most common multiplicity pattern2001-08-30 14:56:51.0
        is the same as many-to-one2001-08-30 14:56:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:51.0
        is an instance of multiplicity pattern2001-08-30 14:56:51.0
        one-to-many associationis a kind of association2001-08-30 14:56:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:51.0
        one-to-onehas example For each company, there is exactly one board of directors2001-08-30 14:56:51.0
        is less common than other multiplicity patterns2001-08-30 14:56:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:51.0
        is an instance of multiplicity pattern2001-08-30 14:56:51.0
        one-to-one associationis a kind of association2001-08-30 14:56:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:51.0
        one-to-one compositionis a kind of composition2001-08-30 14:56:51.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:56:51.0
        often corresponds to a complex attribute that can be shown as an attribute or, if you want to emphasize the details of the composed class, as a composition2001-08-30 14:56:51.0
        one-way associationis a kind of association2001-08-30 14:56:51.0
        is a subtopic of 5.9 - Implementing Class Diagrams in Java2001-08-30 14:56:51.0
        one-way association where the multiplicity at the other end is 'many'is a kind of one-way association2001-08-30 14:56:51.0
        is a subtopic of 5.9 - Implementing Class Diagrams in Java2001-08-30 14:56:51.0
        is implemented by using a collection class such as Vector in Java2001-08-30 14:56:51.0
        one-way association where the multiplicity at the other end is 'one' or 'optional'is a kind of one-way association2001-08-30 14:56:52.0
        is a subtopic of 5.9 - Implementing Class Diagrams in Java2001-08-30 14:56:51.0
        is implemented by declaring an instance variable of that class in Java2001-08-30 14:56:52.0
        OOis a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:52.0
        is an abbreviation for object oriented2001-08-30 14:56:52.0
        is an instance of abbreviation2001-08-30 14:56:52.0
        OOAis a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:52.0
        is an abbreviation for object oriented analysis2001-08-30 14:56:52.0
        is an instance of abbreviation2001-08-30 14:56:52.0
        OODis a subtopic of 2.2 - Classes and Objects2001-08-30 14:56:52.0
        is an abbreviation for object oriented design2001-08-30 14:56:52.0
        is an instance of abbreviation2001-08-30 14:56:52.0
        OOPis a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:52.0
        is an abbreviation for object oriented programming2001-08-30 14:56:52.0
        is an instance of abbreviation2001-08-30 14:56:52.0
        open beta releasehas definition A version of a system released for beta testing by any member of the general public who wishes to participate2001-08-30 14:56:52.0
        is bad engineering practice because it results in wasted time on the part of the users, since many people will discover the same problems2001-08-30 14:56:52.0
        is low quality2001-08-30 14:56:52.0
        is a kind of release2001-08-30 14:56:52.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:56:52.0
        relies on beta testing by users to discover problems2001-08-30 14:56:52.0
        operating systemcontains a kernel layer and higher level layers dealing with such functions as user account management, screen display, etc.2001-08-30 14:56:52.0
        is a kind of multi-layer system2001-08-30 14:56:53.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:52.0
        operationcarries out a responsibility of a class2001-08-30 14:56:53.0
        has definition The abstract notion of something that can be done by one or more classes2001-08-30 14:56:53.0
        is a kind of procedural abstraction2001-08-30 14:56:53.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:56:53.0
        is implemented as a set of methods2001-08-30 14:56:53.0
        is used to discuss and specify a type of behaviour, independently of any code which implements that behaviour2001-08-30 14:56:53.0
        operation symbolis a kind of symbol in UML diagram2001-08-30 14:56:53.0
        is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:56:53.0
        operatoris a kind of programming language construct2001-08-30 14:56:53.0
        is a subtopic of The Basics of Java2001-08-30 14:56:53.0
        operator precedence errorhas definition A defect in which a programmer omits needed parentheses, or puts parentheses in the wrong place2001-08-30 14:56:53.0
        has testing strategy
        • run tests that anticipate possible errors
        • use code inspections
        2001-08-30 14:56:53.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:53.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:53.0
        may be obvious2001-08-30 14:56:53.0
        may be hidden until special conditions arise2001-08-30 14:56:53.0
        opportunistic approachhas definition An unsatisfactory process model in which developers keep on modifying the software until they or their users are satisfied2001-08-30 14:56:53.0
        has weaknesses
        • Since requirements and design are not worked out before implementing a system, the system might satisfy certain user needs, but reaching a high-level of user satisfaction will require many changes
        • The software will deteriorate rapidly since it was not well designed
        • There is no control of costs or schedule since there are no plans to work towards
        • There are many undetected defects since there is no recognition of the need for systematic testing and other forms of quality assurance
        • The cost of developing and maintaining software is very high
        2001-08-30 14:56:53.0
        is a kind of process model2001-08-30 14:56:54.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:56:53.0
        optimistic-likely-pessimistic estimationhas definition An approach to cost estimation in which you make three estimates for each task and for the project as a whole: An optimistic estimate, (in which everything goes well) the likely estimate and a pessimistic estimate (where you account for everything that could go wrong)2001-08-30 14:56:54.0
        is a kind of cost estimation2001-08-30 14:56:54.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:56:54.0
        optionalis a kind of multiplicity2001-08-30 14:56:54.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:56:54.0
        is written as 0..12001-08-30 14:56:54.0
        means there can be either zero or one object linked to an object at the other end of the association2001-08-30 14:56:54.0
        ordering operations poorly so errors build uphas testing strategy
        • if a numerical application is designed to work with floating-point numbers, then make sure it works with inputs that vary widely in magnitude, including both large positive and large negative exponents
        • pay particular attention to the accuracy of the result when a floating point value is being repeatedly decremented or incremented by small amounts
        2001-08-30 14:56:54.0
        is a kind of defect in a numerical algorithm2001-08-30 14:56:54.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:56:54.0
        occurs when you do small operations on large floating point numbers, and excessive rounding or truncation errors build up2001-08-30 14:56:54.0
        organizationis a kind of person or group2001-08-30 14:56:54.0
        OutputStreamcontains a message composed of bytes2001-08-30 14:56:54.0
        has example of instance creation output = clientSocket.getOutputStream();2001-08-30 14:56:54.0
        is a member of the java.io package2001-08-30 14:56:54.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:56:54.0
        is an instance of stream class2001-08-30 14:56:54.0
        over-constrainhas definition To make a decision that constrains future choices, with insufficient justification2001-08-30 14:56:54.0
        is a kind of action2001-08-30 14:56:54.0
        is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:56:54.0
        overridinghas definition The situation where a method local to a class is used in place of a method that otherwise would have been inherited2001-08-30 14:56:54.0
        is a kind of practice2001-08-30 14:56:54.0
        is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:56:54.0
        packagehas definition A collection of modelling elements that are grouped together because they are logically related2001-08-30 14:56:55.0
        has dependency / with another package if there is a dependency between an element in one package and an element in another2001-08-30 14:56:55.0
        is difficult to use if it depends on many other packages, since using it will also necessitate importing its dependent packages2001-08-30 14:56:55.0
        is a kind of representation2001-08-30 14:56:55.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:56:55.0
        is divided up into classes2001-08-30 14:56:55.0
        is drawn as as a box, with a smaller box attached above its top left corner2001-08-30 14:56:55.0
        is not the same as package^2 in Java2001-08-30 14:56:55.0
        is often used to represent a Java package2001-08-30 14:56:55.0
        see also package^22001-08-30 14:56:55.0
        see also package^32001-08-30 14:56:55.0
        package diagramhas definition A type of UML class diagram showing packages and their relationships2001-08-30 14:56:55.0
        is a kind of UML diagram2001-08-30 14:56:55.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:56:55.0
        package^2has definition A facility for grouping a set of classes2001-08-30 14:56:55.0
        is a kind of programming language construct2001-08-30 14:56:55.0
        is a subtopic of The Basics of Java2001-08-30 14:56:55.0
        see also package2001-08-30 14:56:55.0
        see also package^32001-08-30 14:56:55.0
        package^3has example package finance.banking.accounts;link: chapter2section2.8.html#983, 2001-08-30 14:56:55.0
        has purpose to declare the package that a class belongs tolink: chapter2section2.8.html#982, 2001-08-30 14:56:55.0
        is a subtopic of The Basics of Java2001-08-30 14:56:55.0
        is an instance of Java keyword2001-08-30 14:56:55.0
        see also package2001-08-30 14:56:55.0
        see also package^22001-08-30 14:56:55.0
        paletteis a kind of non-modal dialog2001-08-30 14:56:55.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:55.0
        paper prototypehas benefit can often be a very powerful tool for eliciting ideas and feedback2001-08-30 14:56:55.0
        has benefit very easy to create2001-08-30 14:56:55.0
        has definition A set of pictures of a system used to demonstrate how the system would work if implemented2001-08-30 14:56:55.0
        has purpose to show to customers and users in sequence, to explain what would happen when the system runs2001-08-30 14:56:55.0
        is ideal for parallel development2001-08-30 14:56:55.0
        is a kind of prototype2001-08-30 14:56:55.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:56:55.0
        represents the user interface of a system2001-08-30 14:56:55.0
        paradigmhas definition An approach to software design and programming2001-08-30 14:56:56.0
        is a kind of subject2001-08-30 14:56:56.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:56:56.0
        parallel designis a synonym of parallel development2001-08-30 14:56:56.0
        parallel developmenthas definition Independent development of a system or subsystem by several developers, with the objective of exploring design space and generating a variety of different design ideas; the best ideas are generally chosen for further development2001-08-30 14:56:56.0
        is a kind of development2001-08-30 14:56:56.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:56:56.0
        is a synonym of parallel design2001-08-30 14:56:56.0
        can be done using paper prototypes2001-08-30 14:56:56.0
        paraphraserhas definition A person in an inspection who steps through the document explaining it in their own words2001-08-30 14:56:56.0
        is a kind of tester2001-08-30 14:56:56.0
        is a subtopic of 10.10 - Inspections2001-08-30 14:56:56.0
        Pareto principleis a synonym of 80-20 rule2001-08-30 14:56:56.0
        parseInthas example
        // converts aString to an int 
        int i = Integer.parseInt(aString);
        link: chapter2section2.8.html#634, 2001-08-30 14:56:56.0
        has purpose to convert a string to an intlink: chapter2section2.8.html#634, 2001-08-30 14:56:56.0
        is a subtopic of The Basics of Java2001-08-30 14:56:56.0
        is an instance of Java class methodlink: chapter2section2.8.html#633, 2001-08-30 14:56:56.0
        patternhas definition A widely understood solution to a particular type of problem2001-08-30 14:56:56.0
        is a kind of subject2001-08-30 14:56:56.0
        is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:56:56.0
        pattern languagehas definition A group of interrelated design patterns2001-08-30 14:56:56.0
        is a kind of language2001-08-30 14:56:57.0
        is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:56:56.0
        patternshould be as general as possible2001-08-30 14:56:56.0
        should be described in an easy-to-understand form so that people can determine when and how to use it2001-08-30 14:56:56.0
        should contain a solution that has been proven to effectively solve the problem in the indicated context2001-08-30 14:56:56.0
        patterns communityhas definition A loose but large collection of people who believe in the usefulness of patterns in software engineering, as well as in certain philosophies regarding their development2001-08-30 14:56:57.0
        have philosophies
        • Patterns represent well-known knowledge and no pattern could ever be patented
        • Patterns should be in the public domain, where possible, and people should be encouraged to improve the pattern to make it more usable
        • When patterns are written or modified, they should be reviewed in a public setting by a group of peers of the author
        • Patterns should be written for the public good
        2001-08-30 14:56:57.0
        is a kind of person or group2001-08-30 14:56:57.0
        is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:56:57.0
        Patterns in Java Volume 1: A Catalog of Reusable Design patterns Illustrated with UMLhas author M. Grand2001-08-30 14:56:57.0
        has ISBN number 0-471-25839-32001-08-30 14:56:57.0
        is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:56:57.0
        is an instance of book about design patterns2001-08-30 14:56:57.0
        was published by Wiley2001-08-30 14:56:57.0
        was published in 19982001-08-30 14:56:57.0
        peer-to-peerhas definition A variant of the client-server architectural pattern in which components can serve as both servers and clients to each other2001-08-30 14:56:57.0
        is a kind of client-server architecture2001-08-30 14:56:57.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:57.0
        peer-to-peer systemallows each program to function as both a client and a server2001-08-30 14:56:57.0
        contains software components that are distributed over several hosts and that can each be both a server and a client2001-08-30 14:56:57.0
        has definition A client-server system in which each program can act as both a client and a server for all the other programs2001-08-30 14:56:57.0
        is a kind of client-server system2001-08-30 14:56:57.0
        is a kind of client-server system2001-08-30 14:56:57.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:56:57.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:56:57.0
        percentage of code that is reusedis a kind of measurement2001-08-30 14:56:57.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:57.0
        perfective maintenancehas definition A type of maintenance that includes reengineering, and is sometimes applied more broadly to include enhancement2001-08-30 14:56:57.0
        is a kind of maintenance2001-08-30 14:56:57.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:57.0
        perfective projectis a kind of synonym2001-08-30 14:56:58.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:56:57.0
        is a synonym for reengineering project2001-08-30 14:56:57.0
        performing a calculation in the wrong part of a control constructhas definition A common defect in which the program performs an action when it should not, or does not perform an action when it should2001-08-30 14:56:58.0
        has testing strategy
        • design tests that execute each loop zero times, exactly once, and more than once
        • ensure that anything 'bad' or 'unusual' that could happen while looping is made to occur on the first iteration and the last iteration
        2001-08-30 14:56:58.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:56:58.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:56:58.0
        is typically caused by inappropriately excluding the action from, or including the action in, a loop or if-then-else construct2001-08-30 14:56:58.0
        may not be caught using black-box testing, so glass-box testing or inspections may be more effective2001-08-30 14:56:58.0
        personis a kind of person or group2001-08-30 14:56:58.0
        can understand requirements better if they are expressed in terms of use cases2001-08-30 14:56:58.0
        person or groupis a kind of subject2001-08-30 14:56:58.0
        person's namehas localization issues
        • Family name comes first in some cultures, last in others and is non-existent in others
        • In some cultures a person's legal name differs from their commonly-used name
        • Salutations such as Mr. and Dr. can vary widely. In some cultures it is expected that people will have multiple salutations, all used at once
        2001-08-30 14:56:58.0
        is a kind of locale-dependent feature2001-08-30 14:56:58.0
        is a kind of name2001-08-30 14:56:58.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:56:58.0
        person-monthhas definition A measure of effort. One person month is the amount of work done by one person in one month if they are working full time2001-08-30 14:56:58.0
        is a kind of measurement2001-08-30 14:56:58.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:56:58.0
        measures effort2001-08-30 14:56:58.0
        Personal Software Processdefines A disciplined approach that an individual software developer can use to improve the quality and efficiency of his or her personal work2001-08-30 14:56:58.0
        has definition A disciplined approach that an individual software developer can use to improve the quality and efficiency of his or her personal work2001-08-30 14:56:58.0
        has key tenet personally inspecting your own work2001-08-30 14:56:58.0
        is a kind of process standard2001-08-30 14:56:58.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:56:58.0
        is abbreviated as PSP2001-08-30 14:56:58.0
        was developed at the Software Engineering Institute of Carnegie Mellon University2001-08-30 14:56:58.0
        PERTis a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:56:58.0
        is an abbreviation for Program Evaluation Review Technique2001-08-30 14:56:58.0
        is an instance of abbreviation2001-08-30 14:56:59.0
        PERT chartcontains nodes, each of which shows the elapsed time and effort estimates2001-08-30 14:56:59.0
        forms a graph, whose nodes are tasks, and whose arcs are dependencies2001-08-30 14:56:59.0
        has definition A diagram showing the sequence in which tasks must be completed2001-08-30 14:56:59.0
        has purpose to determine the critical path2001-08-30 14:56:59.0
        is a kind of diagram2001-08-30 14:56:59.0
        is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:56:59.0
        is used in Program Evaluation Review Technique2001-08-30 14:56:59.0
        is used in project scheduling2001-08-30 14:56:59.0
        represents activities, each of which has one or more predecessors on which it depends, and one or more successors, which depend on it2001-08-30 14:56:59.0
        shows the sequence in which tasks must be completed2001-08-30 14:56:59.0
        can show optimistic, likely and pessimistic estimates of time and effort2001-08-30 14:56:59.0
        Peter G. Neumann's Risks Digestcontains numerous reports of software failures2001-08-30 14:56:59.0
        has URL catless.ncl.ac.uk/Risks/    2001-08-30 14:56:59.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:56:59.0
        is an instance of web site about software failures2001-08-30 14:56:59.0
        Petri Nets Worldhas URL www.daimi.au.dk/PetriNets    2001-08-30 14:56:59.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:56:59.0
        is an instance of web site about modelling interactions and behaviour2001-08-30 14:56:59.0
        phased-release modelcorrects some, but not all, of the problems of the waterfall model2001-08-30 14:56:59.0
        has definition An approach to incremental development in which, after requirements gathering and planning, the project is broken into separate subprojects, or phases2001-08-30 14:56:59.0
        has weaknesses
        • It suggests that all requirements be finalized at the start of development
        • It downplays the importance of prototyping
        2001-08-30 14:56:59.0
        is a kind of process model2001-08-30 14:56:59.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:56:59.0
        recommends the use of incremental development2001-08-30 14:56:59.0
        suggests that after requirements gathering and planning, the project should be broken into separate subprojects, or phases which can be released to customers when ready2001-08-30 14:56:59.0
        photographhas advantages helps users better appreciate reality2001-08-30 14:56:59.0
        has problems
        • can take a lot of space on screen and can slow response time due to downloading
        • not usable by blind people
        2001-08-30 14:56:59.0
        is a kind of coding technique2001-08-30 14:56:59.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:56:59.0
        should have a label if its meaning is not obvious, using a caption or pop-up label that appears when the user moves the mouse over it2001-08-30 14:57:00.0
        pilot systemis a synonym of prototype2001-08-30 14:57:00.0
        pipehas definition A connection between two filters in a pipe-and-filter architecture. It joins the output of one filter to the input to another2001-08-30 14:57:00.0
        is a kind of abstraction2001-08-30 14:57:00.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:57:00.0
        pipe and filterfacilitates designing for testability because it is normally easy to test the individual processes2001-08-30 14:57:00.0
        has advantage the system can be modified easily by adding or changing the transformational processes2001-08-30 14:57:00.0
        has definition An architectural pattern in which data in a standard format is passed through a series of processes (filters) that transform it in some way2001-08-30 14:57:00.0
        increases cohesion because the processes have functional cohesion2001-08-30 14:57:00.0
        increases flexibility2001-08-30 14:57:00.0
        increases reusability because the processes can often be used in many different contexts2001-08-30 14:57:00.0
        increases reuse because it is often possible to find reusable components to insert into a pipeline2001-08-30 14:57:00.0
        is a kind of architectural pattern2001-08-30 14:57:00.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:57:00.0
        is a synonym of transformational architectural pattern2001-08-30 14:58:05.0
        is a synonym of transformational architecture2001-08-30 14:58:05.0
        reduces coupling because the processes have only one input and one output, normally using a standard format2001-08-30 14:57:00.0
        uses a pipeline2001-08-30 14:57:00.0
        pipelinehas definition A series of processes that transform data in the pipe-and-filter architectural pattern2001-08-30 14:57:00.0
        is a kind of subject2001-08-30 14:57:00.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:57:00.0
        platformdescribes what hardware and operating system the software must be able to work on2001-08-30 14:57:00.0
        is a kind of non-functional requirement2001-08-30 14:57:00.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:00.0
        normally specifies the least powerful platforms and declares that it must work on anything more recent or more powerful2001-08-30 14:57:00.0
        player-rolehas antipatterns merging all the properties and behaviours into the Player class which however, creates an overly complex class - much of the power of object orientation is lost2001-08-30 14:57:00.0
        has context
        • A role is a particular set of properties associated with an object in a particular context.
        • An object may play different roles in different contexts.
        2001-08-30 14:57:00.0
        has definition A pattern in found in class diagrams in which one class (the player) has several associated role classes. Instances of the role classes can change over the lifetime of a player2001-08-30 14:57:00.0
        has forces 2001-08-30 14:57:00.0
        has problem How do you best model players and roles so that a player can change roles or possess multiple roles?2001-08-30 14:57:00.0
        has related patterns Abstraction-Occurrence pattern2001-08-30 14:57:00.0
        has solution
        1. Create a «Player» class to represent the object that plays different roles.
        2. Create an association from this class to an abstract «Role» class, which is the superclass of a set of possible roles.
        3. The subclasses of this «Role» class encapsulate all the properties and behaviours associated with the different roles.
        4. If the «Player» can only play one role at a time, the multiplicity between «Player» and «Role» can be one-to-one, otherwise it will be one-to-many.
        2001-08-30 14:57:00.0
        is a subtopic of 6.4 - The Player-Role Pattern2001-08-30 14:57:00.0
        is an instance of design pattern2001-08-30 14:57:00.0
        polymorphic operationis a kind of operation2001-08-30 14:57:01.0
        is a subtopic of 2.4 - Methods, Operations and Polymorphism2001-08-30 14:57:00.0
        is implemented by several different methods2001-08-30 14:57:00.0
        lets a running program decide, every time an operation is called, which of several identically-named methods to invoke2001-08-30 14:57:01.0
        polymorphismexists when several classes which each implement the operation either have a common superclass in which the operation exists, or else implement an interface that contains the operation2001-08-30 14:57:01.0
        gets power from dynamic binding2001-08-30 14:57:01.0
        has definition A property of object oriented software by which an abstract operation may be performed in different ways in different classes2001-08-30 14:57:01.0
        is one of the fundamental features of the object oriented paradigm2001-08-30 14:57:01.0
        is a kind of software quality2001-08-30 14:57:01.0
        is a subtopic of 2.4 - Methods, Operations and Polymorphism2001-08-30 14:57:01.0
        porthas definition A number associated with a server on a host, used by a client that wishes to connect to that server2001-08-30 14:57:01.0
        is a kind of subject2001-08-30 14:57:01.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:01.0
        portabilityhas definition The ability for software to be run in a variety of different hardware or software environments with no or minimal changes2001-08-30 14:57:01.0
        is a kind of software quality2001-08-30 14:57:01.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:01.0
        post-mortem analysishas definition The process of looking back at a completed project's design and its development process, in order to identify those aspects where improvements can be made in future projects2001-08-30 14:57:01.0
        is a kind of analysis2001-08-30 14:57:01.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:01.0
        postal code formathas localization issues
        • You should almost never require a specific format for these items since they differ so widely and can change at any time
        • Allow free-form input of whatever the user wants to type
        2001-08-30 14:57:01.0
        is a kind of locale-dependent feature2001-08-30 14:57:01.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:57:01.0
        postconditionhas definition A statement that is guaranteed to be true following the successful completion of some action2001-08-30 14:57:01.0
        is a kind of statement2001-08-30 14:57:01.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:01.0
        power useris a kind of user2001-08-30 14:57:02.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:01.0
        is a synonym of expert user2001-08-30 14:55:33.0
        learns software of considerable complexity quickly2001-08-30 14:57:02.0
        wants powerful features such as keyboard shortcuts2001-08-30 14:57:02.0
        wants software that allows them to do their job as rapidly as possible2001-08-30 14:57:02.0
        practiceis a kind of subject2001-08-30 14:57:02.0
        preconditionhas definition A statement that must be true before some algorithm, method or use case is executed2001-08-30 14:57:02.0
        is a kind of statement2001-08-30 14:57:02.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:57:02.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:02.0
        principleis a kind of criterion2001-08-30 14:57:02.0
        principle behind frameworksis a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:57:02.0
        is an instance of principle2001-08-30 14:57:02.0
        states that applications that do different but related things tend to have similar designs - in particular, the patterns of interactions among the components tend to be very similar2001-08-30 14:57:02.0
        Principles and Guidelines in Software User Interface Designhas author D.J. Mayhew2001-08-30 14:57:02.0
        has ISBN number 0-13-721929-62001-08-30 14:57:02.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:57:02.0
        is an instance of book about user interfaces and usability2001-08-30 14:57:02.0
        was published by Prentice-Hall2001-08-30 14:57:02.0
        was published in 19922001-08-30 14:57:02.0
        Principles of Object Oriented Analysis and Designhas author J. Martin, and J. Odell2001-08-30 14:57:02.0
        has ISBN number2001-08-30 14:57:02.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:57:02.0
        is an instance of book about object oriented development processes2001-08-30 14:57:02.0
        was published by Prentice Hall2001-08-30 14:57:02.0
        was published in 19922001-08-30 14:57:02.0
        printlnhas example
        System.out.println("This line will be printed");
        link: chapter2section2.8.html#918, 2001-08-30 14:57:02.0
        is a subtopic of The Basics of Java2001-08-30 14:57:02.0
        is an instance of Java method2001-08-30 14:57:03.0
        priorityhas definition An ordering that states which qualities override others in those cases where you must make compromises2001-08-30 14:57:03.0
        is a kind of subject2001-08-30 14:57:03.0
        is a subtopic of 9.3 - Techniques for Making Good Design Decisions2001-08-30 14:57:03.0
        is influenced by memory efficiency, CPU efficiency, maintainability, portability and usability2001-08-30 14:57:03.0
        should be obtained from non-functional requirements2001-08-30 14:57:03.0
        privacyallows changes to code to be more easily made since one can be confident that 'outsiders' are not relying on too many details2001-08-30 14:57:03.0
        improves encapsulation by ensuring that only programmers working inside a class (or inside a package) can use all of its facilities2001-08-30 14:57:03.0
        is a kind of practice2001-08-30 14:57:03.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:03.0
        privateis a subtopic of The Basics of Java2001-08-30 14:57:03.0
        is an instance of Java access control keyword2001-08-30 14:57:03.0
        is used to declare private methodlink: chapter2section2.8.html#1004, 2001-08-30 14:57:03.0
        private methodis a kind of Java method2001-08-30 14:57:03.0
        is a subtopic of The Basics of Java2001-08-30 14:57:03.0
        can only be accessed by code in the same classlink: chapter2section2.8.html#1023, 2001-08-30 14:57:03.0
        problemhas definition In the broad context of software engineering, a difficulty, challenge, need or desire faced by a customer that is to be solved by developing software2001-08-30 14:57:03.0
        has solution which will normally entail developing software, although you may decide that it is better to purchase software or to develop a non-software solution2001-08-30 14:57:03.0
        is a kind of subject2001-08-30 14:57:03.0
        is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:57:03.0
        should be written as a simple problem statement in one or two sentences2001-08-30 14:57:03.0
        problem statementis a kind of document2001-08-30 14:57:03.0
        is a subtopic of 4.3 - Defining The Problem and the Scope2001-08-30 14:57:03.0
        can be used to evaluate requirements based on the question: 'are we adequately solving the problem?'2001-08-30 14:57:03.0
        may have to be refined several times2001-08-30 14:57:03.0
        should be defined as early as possible2001-08-30 14:57:03.0
        should depend on the user's ultimate high-level goal when they use the system, and the customers high-level goal for having it developed2001-08-30 14:57:03.0
        problem^2is a kind of subject2001-08-30 14:57:04.0
        is part of design pattern2001-08-30 14:57:03.0
        procedural abstractionhas advantage when using a certain procedure, a programmer does not need to worry about all the details of how it performs its computations; he or she only needs to know how to call it and what it computes2001-08-30 14:57:04.0
        hides the details of procedures2001-08-30 14:57:04.0
        is a kind of abstraction2001-08-30 14:57:04.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:57:04.0
        procedural cohesionhas definition A form of cohesion in which procedures that are called one after another are kept together2001-08-30 14:57:04.0
        is weaker than sequential cohesion2001-08-30 14:57:04.0
        is a kind of cohesion2001-08-30 14:57:04.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:04.0
        is achieved when you keep together several procedures that are used one after another, even though one does not necessarily provide input to the next2001-08-30 14:57:04.0
        procedural paradigmhas definition An approach to software design and programming in which software is primarily thought of as a hierarchy of procedures - the root of the hierarchy is typically a main procedure, which calls other procedures, etc. (in contrast to the object-oriented paradigm)2001-08-30 14:57:04.0
        hides many of the details of computations2001-08-30 14:57:04.0
        is a kind of paradigm2001-08-30 14:57:04.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:57:04.0
        organizes code into procedures that each manipulate different types of data2001-08-30 14:57:04.0
        provides procedural abstraction2001-08-30 14:57:04.0
        works badly if the program's purpose is to perform calculations on complex data2001-08-30 14:57:04.0
        works well if the program's purpose is to perform complex calculations with relatively simple data2001-08-30 14:57:04.0
        procedureis a kind of programming language construct2001-08-30 14:57:04.0
        provides procedural abstraction2001-08-30 14:57:04.0
        may have one or more preconditions2001-08-30 14:57:04.0
        processhas definition Anything that operates for a period of time, normally consuming resources during that time and using them to create a useful result2001-08-30 14:57:04.0
        is a kind of subject2001-08-30 14:57:05.0
        see also process^22001-08-30 14:57:05.0
        process modelfunctions as an aid to thinking, not as a rigid prescription of the way to do things2001-08-30 14:57:05.0
        has definition A general approach for organizing a project into activities; an aid to thinking, not a rigid prescription of the way to do things2001-08-30 14:57:05.0
        helps the project manager and his or her team to decide what work should be done and in what sequence to perform the work2001-08-30 14:57:05.0
        is a kind of subject2001-08-30 14:57:05.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:57:05.0
        is a synonym of software process model2001-08-30 14:57:42.0
        process standardhas definition A document describing a well-respected way of developing software2001-08-30 14:57:05.0
        is a kind of standard2001-08-30 14:57:05.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:05.0
        process^2has definition A running thread of execution in a computer2001-08-30 14:57:05.0
        is a kind of subject2001-08-30 14:57:05.0
        see also process2001-08-30 14:57:05.0
        professional engineerhas definition A person who has been issued a license, by some jurisdiction, to perform engineering2001-08-30 14:57:05.0
        is a kind of engineer2001-08-30 14:57:05.0
        is a subtopic of 1.3 - Software Engineering as a Branch of the Engineering Profession2001-08-30 14:57:05.0
        Professional Engineering Institutions (UK)has URL www.pei.org.uk    2001-08-30 14:57:05.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:05.0
        is an instance of engineering web site2001-08-30 14:57:05.0
        Professional Engineers Ontariohas URL www.peo.on.ca    2001-08-30 14:57:05.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:05.0
        is an instance of engineering web site2001-08-30 14:57:05.0
        programis a kind of subject2001-08-30 14:57:06.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:05.0
        is written by programmer2001-08-30 14:57:05.0
        program element nameis a kind of name2001-08-30 14:57:06.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:06.0
        can be very long if the length is justified because it adds clarity2001-08-30 14:57:06.0
        should be highly descriptive of the purpose and function of the element2001-08-30 14:57:06.0
        should not be less than about six characters except perhaps for loop counter variables, where i and j are commonly used2001-08-30 14:57:06.0
        Program Evaluation Review Techniqueis similar to techniques called the "Critical Path Method" and "Precedence Networks"2001-08-30 14:57:06.0
        is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:57:06.0
        is abbreviated as PERT2001-08-30 14:57:06.0
        is an instance of project scheduling technique2001-08-30 14:57:06.0
        uses PERT chart2001-08-30 14:57:06.0
        programmust be readable by humans2001-08-30 14:57:06.0
        should follow consistent guidelines that make the program easy to read2001-08-30 14:57:06.0
        programmeris responsible for anticipating things that can go wrong and writing exception handling code in preparationlink: chapter2section2.8.html#881, 2001-08-30 14:57:06.0
        is a kind of software developer2001-08-30 14:57:06.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:06.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:06.0
        often uses glass-box testing informally when he is verifying his own code2001-08-30 14:57:06.0
        writes program2001-08-30 14:57:06.0
        can write comments before writing the code2001-08-30 14:57:06.0
        may also design the system2001-08-30 14:57:06.0
        may have difficulty thinking at the level of abstraction needed to create effective models2001-08-30 14:57:06.0
        must ensure that the code she writes based on a UML diagram always respects the constraints imposed by each OCL statement2001-08-30 14:57:06.0
        must learn documentation navigation, which includes looking up the methods available to achieve some objective2001-08-30 14:57:06.0
        should adhere to object oriented principles2001-08-30 14:57:06.0
        should apply the 'isa' rule religiously2001-08-30 14:57:06.0
        should avoid duplication of code2001-08-30 14:57:06.0
        should avoid over-use of class variables or class methods2001-08-30 14:57:06.0
        should choose alternative that makes code simpler over more complicated one2001-08-30 14:57:06.0
        should comment any changes to the code so that it is easy to see what has changed from one version to the next2001-08-30 14:57:06.0
        should comment whatever is non-obvious2001-08-30 14:57:06.0
        should create several small classes, rather than one big, complex class2001-08-30 14:57:06.0
        should ensure that anything that is true in a superclass is also true in its subclasses2001-08-30 14:57:06.0
        should follow consistent guidelines that make programs easy to read when writing programs2001-08-30 14:57:06.0
        should group classes into logical sections with a clear comment separating each section if a class has many methods2001-08-30 14:57:06.0
        should keep related methods together inside a class2001-08-30 14:57:06.0
        should keep the number of instance variables small. If this number exceeds 10, then consider splitting the class into separate classes - e.g. a superclass and a subclass2001-08-30 14:57:06.0
        should not comment obvious things since they add clutter2001-08-30 14:57:06.0
        should not use tab characters in code - use two spaces for indentation instead because when code is printed on certain printers, or displayed in certain editors, the width of the indentation resulting from the tab can vary and make the code hard to read2001-08-30 14:57:06.0
        should pay attention to to the documentation describing which features of Java are deprecated2001-08-30 14:57:06.0
        should reject 'clever' or 'cool' coding techniques unless they make the code simpler to understand2001-08-30 14:57:06.0
        should remember that shorter code is not necessarily better code but unnecessarily long code is also bad2001-08-30 14:57:06.0
        should restructure code to make it simpler if necessary2001-08-30 14:57:06.0
        should take advantage of polymorphism, inheritance, abstract classes, and methods2001-08-30 14:57:06.0
        should use consistent code layout style2001-08-30 14:57:06.0
        should write comments at the same time as writing code , and perhaps even before writing the code2001-08-30 14:57:06.0
        programmingis the final stage of design because it involves making decisions about programming language constructs, variable declarations etc.2001-08-30 14:57:06.0
        is a kind of process2001-08-30 14:57:07.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:06.0
        is part of design2001-08-30 14:57:07.0
        is part of software engineering2001-08-30 14:57:07.0
        programming environmentis a kind of tool2001-08-30 14:57:07.0
        is a subtopic of The Basics of Java2001-08-30 14:57:07.0
        programming languagecomes with basic libraries and APIs2001-08-30 14:57:07.0
        has definition A language used to write computer programs2001-08-30 14:57:07.0
        is a kind of language2001-08-30 14:57:07.0
        programming language constructis a kind of subject2001-08-30 14:57:07.0
        Programming Pearlshas author J. Bentley2001-08-30 14:57:07.0
        has ISBN number 0-201-65788-02001-08-30 14:57:07.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:57:07.0
        is an instance of book about programming2001-08-30 14:57:07.0
        was published by Addison-Wesley2001-08-30 14:57:07.0
        was published in 20002001-08-30 14:57:07.0
        Programming Style Guidelinesis a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:57:07.0
        progress baris a kind of user interface component2001-08-30 14:57:07.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:57:07.0
        project managementhas definition All the activities needed to plan and execute a project.2001-08-30 14:57:07.0
        has difficulties
        • Accurately estimating costs is a constant challenge
        • It is very difficult to measure progress and meet deadlines
        • It is difficult to deal with lack of human resources or technology that is needed to successfully run a project
        • Communicating effectively in a large project is hard
        • It is hard to obtain agreement and commitment from others
        2001-08-30 14:57:07.0
        includes all the activities needed to plan and execute a project2001-08-30 14:57:07.0
        is a kind of process2001-08-30 14:57:07.0
        is a subtopic of Chapter 11 - Managing the Software Process2001-08-30 14:57:07.0
        is performed by project manager2001-08-30 14:57:07.0
        is performed by software engineer2001-08-30 14:57:07.0
        project management standardis a kind of standard2001-08-30 14:57:07.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:07.0
        project manageracts as a mentor2001-08-30 14:57:07.0
        bases cost estimate on2001-08-30 14:57:07.0
        determines how the plans need to change, and takes action to keep the project on track2001-08-30 14:57:07.0
        directs people to appropriate sources of information2001-08-30 14:57:07.0
        directs subordinates and contractors2001-08-30 14:57:07.0
        ensures that hardware and software is available2001-08-30 14:57:08.0
        ensures that people always have somebody to talk to about problems2001-08-30 14:57:08.0
        ensures that people feel rewarded, respected and motivated2001-08-30 14:57:08.0
        ensures that people have the requisite security clearance2001-08-30 14:57:08.0
        estimates the amount of time that will be required to complete the project2001-08-30 14:57:08.0
        estimates the cost of the system which involves studying the requirements and determining how much effort they will take to design and implement2001-08-30 14:57:08.0
        finds customers2001-08-30 14:57:08.0
        finds office space2001-08-30 14:57:08.0
        fires people who are not performing adequately2001-08-30 14:57:08.0
        gives advice about engineering problems2001-08-30 14:57:08.0
        gives people feedback to help them improve their work2001-08-30 14:57:08.0
        has activities
        • Deciding what needs to be done
        • Estimating costs
        • Ensuring there are suitable people to undertake the project
        • Defining responsibilities
        • Scheduling
        • Making arrangements for the work
        • Directing
        • Being a technical leader
        • Reviewing and approving decisions made by others
        • Building morale and supporting staff
        • Monitoring and controlling
        • Co-ordinating the work with managers of other projects
        • Reporting
        • Continually striving to improve the process
        2001-08-30 14:57:08.0
        has definition The person responsible for performing project management tasks2001-08-30 14:57:07.0
        has goal to please the customer or sell the most software, while spending the least money2001-08-30 14:57:08.0
        helps employees resolve inter-personal conflicts2001-08-30 14:57:08.0
        helps people solve problems by leading discussions2001-08-30 14:57:08.0
        hires employees2001-08-30 14:57:08.0
        initiates the paperwork involved in hiring or subcontracting2001-08-30 14:57:08.0
        is a kind of stakeholder2001-08-30 14:57:08.0
        is a subtopic of 11.1 - What is Project Management?2001-08-30 14:57:08.0
        is a synonym of development manager2001-08-30 14:55:19.0
        is part of software development team2001-08-30 14:57:08.0
        makes high-level decisions about requirements and design2001-08-30 14:57:08.0
        negotiates contracts2001-08-30 14:57:08.0
        often has education in business administration2001-08-30 14:57:08.0
        often uses lines of code to give an intermediate cost estimate that people can easily understand although you usually cannot accurately base cost estimates on lines of code until you have almost completed design2001-08-30 14:57:08.0
        performs project management2001-08-30 14:57:08.0
        plans work schedule2001-08-30 14:57:08.0
        runs the organization that is developing the software2001-08-30 14:57:08.0
        selects the overall processes that will be followed2001-08-30 14:57:08.0
        sets up training courses2001-08-30 14:57:08.0
        takes the ultimate legal responsibility for declaring that proper engineering practice has been followed, and that the manager believes the resulting system will be safe2001-08-30 14:57:08.0
        tells customers and higher-level managers what they need or want to know2001-08-30 14:57:08.0
        uses cost-benefit analysis to choose among alternatives2001-08-30 14:57:08.0
        wants software that sells more and pleases customers while costing less to develop and maintain2001-08-30 14:57:08.0
        works with customers to determine their problem and the scope of the project2001-08-30 14:57:08.0
        does not perform activities such as hiring, building morale, and issuing the final directions if there is a departmental manager to do them instead2001-08-30 14:57:07.0
        may be judged on when they deliver product, not on its quality level2001-08-30 14:57:08.0
        may not be familiar with small details of the project2001-08-30 14:57:08.0
        must have knowledge about how to manage software projects2001-08-30 14:57:08.0
        must realize that the vicious circle of software reuse exists and costs money - in order to save money in the longer term, an investment in reusable code is justified2001-08-30 14:57:08.0
        should allow time to re-engineer part or all of the system periodically2001-08-30 14:57:08.0
        should be realistic in initial requirements gathering2001-08-30 14:57:08.0
        should develop a close relationship with other members of the team so that he or she is more keenly aware at all times about the progress achieved, and the potential risks2001-08-30 14:57:08.0
        should encourage all necessary communication between team members2001-08-30 14:57:08.0
        should ensure that everybody understands the position of everybody else, the costs and benefits of each alternative, and the rationale behind any compromises2001-08-30 14:57:08.0
        should ensure that everybody's proposed responsibility is clearly expressed2001-08-30 14:57:08.0
        should follow an iterative approach2001-08-30 14:57:08.0
        should improve cost estimation skills so as to account for the kinds of problems that may occur2001-08-30 14:57:08.0
        should learn how to run effective meetings2001-08-30 14:57:08.0
        should listen to everybody's opinion2001-08-30 14:57:08.0
        should make sure that everybody has the information they need2001-08-30 14:57:08.0
        should make sure that project information is readily available for browsing, e.g. using an Intranet web site2001-08-30 14:57:08.0
        should monitor communication between team members2001-08-30 14:57:08.0
        should realize that attention to quality of reusable components is essential so that potential re-users have confidence in them2001-08-30 14:57:08.0
        should realize that developing and reusing reusable components improves reliability, and can foster a sense of confidence2001-08-30 14:57:08.0
        should realize that developing reusable components will normally simplify the resulting design, independently of whether reuse actually occurs2001-08-30 14:57:08.0
        should reward software developer for developing reusable components2001-08-30 14:57:08.0
        should take assertive action, when needed, to ensure progress occurs2001-08-30 14:57:08.0
        should take courses in negotiating skills, leadership, written and oral communication2001-08-30 14:57:08.0
        should take into account a realistic assessment of the resources available when determining the requirements and the project plan2001-08-30 14:57:08.0
        should use 'groupware' technology to help specific groups of people exchange the information they need to know2001-08-30 14:57:08.0
        project plandescribes the overall process model2001-08-30 14:57:08.0
        describes the problem to be solved, as in the requirements document2001-08-30 14:57:08.0
        describes the proposed team structure, the skills needed on that team, the plan for on-going training and the allocation of general responsibilities to team members2001-08-30 14:57:08.0
        describes the risks and difficulties that are expected to be most critical to this project, or to specific subsystems and how they are to be monitored and resolved2001-08-30 14:57:09.0
        describes the stakeholders2001-08-30 14:57:09.0
        divides the system into subsystems and releases, that can be allocated to people or teams2001-08-30 14:57:09.0
        gives a brief history of the project to date - you can update this as the project proceeds2001-08-30 14:57:09.0
        gives references to related projects and any documents produced so far, such as requirements definitions2001-08-30 14:57:09.0
        has definition A document used in project management describing all aspects of the project's process, including the process model, tasks, risks, cost estimates, team structure and schedule2001-08-30 14:57:08.0
        includes Gantt and PERT charts showing the allocations of tasks to people, the periods of time they will work on each task, as well as the critical path(s)2001-08-30 14:57:09.0
        includes the present cost estimates for the tasks and subsystems, showing all calculations, and including pessimistic and optimistic values2001-08-30 14:57:09.0
        is a kind of document2001-08-30 14:57:09.0
        is a subtopic of 11.6 - Contents of a Project Plan2001-08-30 14:57:09.0
        lists the tasks to be completed for each subsystem and release2001-08-30 14:57:09.0
        outlines the techniques to be employed for requirements gathering, design, implementation, quality assurance, change management; risk management, and ongoing project management; documents to be produced, including contents of these documents; ways to measure and track the project2001-08-30 14:57:09.0
        states the business objectives for the project, including quantified anticipated benefits2001-08-30 14:57:09.0
        should contain
            Purpose
          1. Background information
          2. Processes to be used
          3. Subsystems and planned releases
          4. Risks and challenges
          5. Tasks
          6. Cost estimates
          7. Team
          8. Schedule and milestones
        2001-08-30 14:57:09.0
        project schedulinghas definition The process of deciding what sequence the various activities will be done, and when they should start and complete2001-08-30 14:57:09.0
        is a kind of process2001-08-30 14:57:09.0
        is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:57:09.0
        can use Gantt chart2001-08-30 14:57:09.0
        can use PERT chart2001-08-30 14:57:09.0
        project scheduling techniqueis a kind of subject2001-08-30 14:57:09.0
        project that builds on framework or componentsallows the developer to benefit from reusing software that has been shown to be reliable2001-08-30 14:57:09.0
        gives the developer much of the freedom to innovate that he or she would have if performing green field development2001-08-30 14:57:09.0
        is a kind of software project2001-08-30 14:57:09.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:57:09.0
        is becoming increasingly common2001-08-30 14:57:09.0
        starts with a framework, or involves plugging together several components that are already developed and provide significant functionality2001-08-30 14:57:09.0
        project where requirements have already been determinedis a kind of software project2001-08-30 14:57:09.0
        is a subtopic of 4.2 - The Starting Point for Software Projects2001-08-30 14:57:09.0
        must be handled carefully because if the customer has not done a good job of analysis and specification, the requirements are likely to be poor2001-08-30 14:57:09.0
        project where requirements must be determinedis a kind of software project2001-08-30 14:57:09.0
        is a subtopic of 4.2 - The Starting Point for Software Projects2001-08-30 14:57:09.0
        propagationhas definition A mechanism whereby an operation in an aggregate is implemented by having the aggregate perform that operation on its parts - in other words, the operation is propagated to the parts2001-08-30 14:57:09.0
        has example the weight of an aggregate could be obtained by summing the weights of its parts2001-08-30 14:57:09.0
        is a kind of process2001-08-30 14:57:09.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:57:09.0
        often occurs in aggregations2001-08-30 14:57:09.0
        often results in the properties of the parts being propagated back to the aggregate2001-08-30 14:57:09.0
        propertydescribes an object's current state2001-08-30 14:57:10.0
        is a kind of subject2001-08-30 14:57:10.0
        is a subtopic of 2.2 - Classes and Objects2001-08-30 14:57:10.0
        protectedis a subtopic of The Basics of Java2001-08-30 14:57:10.0
        is an instance of Java access control keyword2001-08-30 14:57:10.0
        is used to declare protected methodlink: chapter2section2.8.html#1004, 2001-08-30 14:57:10.0
        protected methodis a kind of Java method2001-08-30 14:57:10.0
        is a subtopic of The Basics of Java2001-08-30 14:57:10.0
        can only be accessed by code in the same package as this class as well as code in any subclasses, even if they are not in the same packagelink: chapter2section2.8.html#1018, 2001-08-30 14:57:10.0
        protocolhas definition The languages and rules by which two programs or processes communicate, as in a client-server system2001-08-30 14:57:10.0
        is a kind of subject2001-08-30 14:57:10.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:57:10.0
        protocol designhas definition The design of communications protocols2001-08-30 14:57:10.0
        is a kind of design2001-08-30 14:57:10.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:57:10.0
        prototypehas benefit it is easily modified many times in response to feedback from users2001-08-30 14:57:10.0
        has definition A version of a system created primarily to learn more about the requirements, and not intended to be the final product2001-08-30 14:57:10.0
        has purpose to gather requirements by allowing software engineers to obtain early feedback about their ideas2001-08-30 14:57:10.0
        is a kind of system2001-08-30 14:57:10.0
        is a subtopic of 1.8 - The Eight Themes Emphasized in this Book2001-08-30 14:57:10.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:10.0
        is a synonym of pilot system2001-08-30 14:57:00.0
        may be developed using a rapid prototyping language2001-08-30 14:57:10.0
        may not perform any computations2001-08-30 14:57:10.0
        should be produced early to get a view of potential problems2001-08-30 14:57:10.0
        should not be turned into the final system since it will be hard to maintain, and will contain many bugs2001-08-30 14:57:10.0
        usually contains part of the system's eventual functionality2001-08-30 14:57:10.0
        prototypinghas definition The process of developing prototypes2001-08-30 14:57:10.0
        is a kind of requirements gathering2001-08-30 14:57:11.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:11.0
        can help highlight potential ambiguities and misunderstandings in the requirements2001-08-30 14:57:10.0
        can help resolve conflicts over requirements - when users actually use different prototypes they may change their preferences2001-08-30 14:57:10.0
        can uncover invalid assumptions made in domain analysis or requirements analysis2001-08-30 14:57:10.0
        proxyhas antipatterns Instead of using proxy objects, beginner designers often scatter complex code around their application to load objects from databases. A strategy that only works for very small systems is to load the whole database into memory when the program starts.2001-08-30 14:57:11.0
        has context
        • There may be a time-delay and a complex mechanism involved in creating instances of heavyweight classes.
        2001-08-30 14:57:11.0
        has definition A pattern found in which a lightweight object stands in place of a heavyweight object that has the same interface. It transparently loads the heavyweight object when needed2001-08-30 14:57:11.0
        has forces
        • You want all the objects in a domain model to be available for programs to use when they execute a system's various responsibilities
        • It is important for many objects to persist from run to run of the same program
        • in a large system it would be impractical for all the objects to be loaded into memory whenever a program starts
        • It would be ideal to be able to program the application as if all the objects were located in memory
        2001-08-30 14:57:11.0
        has problem How can you reduce the need to create instances of a heavyweight class? In particular, how can you reduce the need to load large numbers of them from a database or server, when not all of them will be needed? A related problem is this: If you load one object from a database or server, how can you avoid loading all the other objects that are linked to it.2001-08-30 14:57:11.0
        has references one of the Gang of Four patterns2001-08-30 14:57:11.0
        has related patterns several patterns that obtain their power from delegating responsibilities to other classes, hence it uses the Delegation pattern2001-08-30 14:57:11.0
        has solution
        1. Create a simpler version of the «HeavyWeight» class.
        2. We will call this simpler version a «Proxy».
        3. The «Proxy» has the same interface as the «HeavyWeight», so programmers can declare variables without caring whether a «Proxy» or its «HeavyWeight» version will be put in the variable.
        2001-08-30 14:57:11.0
        is a subtopic of 6.12 - The Proxy Pattern2001-08-30 14:57:11.0
        is an instance of design pattern2001-08-30 14:57:11.0
        PSPis a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:11.0
        is an abbreviation for Personal Software Process2001-08-30 14:57:11.0
        is an instance of abbreviation2001-08-30 14:57:11.0
        publicis a subtopic of The Basics of Java2001-08-30 14:57:11.0
        is an instance of Java access control keyword2001-08-30 14:57:11.0
        is used to declare a public classlink: chapter2section2.8.html#1004, 2001-08-30 14:57:11.0
        is used to declare public methodlink: chapter2section2.8.html#1004, 2001-08-30 14:57:11.0
        public methodis a kind of Java method2001-08-30 14:57:11.0
        is a subtopic of The Basics of Java2001-08-30 14:57:11.0
        can be accessed by any code anywherelink: chapter2section2.8.html#1016, 2001-08-30 14:57:11.0
        publicationis a kind of subject2001-08-30 14:57:11.0
        pure virtual functionis a C++ abstract operation2001-08-30 14:57:11.0
        is a kind of operation2001-08-30 14:57:11.0
        is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:57:11.0
        purely decorative graphichas advantages makes the interface more attractive and helps to emphasize its organization2001-08-30 14:57:11.0
        has problems
        • can be distracting or annoying
        • not usable by blind people
        2001-08-30 14:57:12.0
        is a kind of coding technique2001-08-30 14:57:12.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:12.0
        qualityhas definition An attribute of a product or process that, if improved, would better satisfy one or more of the stakeholders of that product or service2001-08-30 14:57:12.0
        is a kind of criterion2001-08-30 14:57:12.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:57:12.0
        quality assurancehas definition The process of ensuring that the quality of a product or process is sufficient to meet the needs of the stakeholders2001-08-30 14:57:12.0
        has part inspecting2001-08-30 14:57:12.0
        has part reviewing2001-08-30 14:57:12.0
        has part testing2001-08-30 14:57:12.0
        has part validation2001-08-30 14:57:12.0
        has part verification2001-08-30 14:57:12.0
        has risk it is very easy to forget to test some aspects of a software system2001-08-30 14:57:12.0
        has risk people have different abilities and knowledge when it comes to quality2001-08-30 14:57:12.0
        has risk the conflict between achieving adequate quality levels, and 'getting the product out of the door'2001-08-30 14:57:12.0
        is a kind of process2001-08-30 14:57:12.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:12.0
        is often seen as an overhead expense to be reduced2001-08-30 14:57:12.0
        occurs throughout a project2001-08-30 14:57:12.0
        quality assurance and testing standardis a kind of standard2001-08-30 14:57:12.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:12.0
        quality assuranceshould be handled by a separate department2001-08-30 14:57:12.0
        race conditionhas example one thread unexpectedly changes data that is being used by another thread, resulting in incorrect results2001-08-30 14:57:12.0
        has example two processes or threads normally work together to achieve some outcome; however if one is sped up or slowed down then the outcome is incorrect2001-08-30 14:57:12.0
        is a synonym of critical race2001-08-30 14:57:12.0
        can be prevented by using various mechanisms, such as semaphores, that allow data items to be locked so that they cannot be accessed by other threads when they are not ready2001-08-30 14:57:12.0
        RADis a subtopic of 1.5 - Software Quality2001-08-30 14:57:13.0
        is an abbreviation for Rapid Applications Development2001-08-30 14:57:12.0
        is an instance of abbreviation2001-08-30 14:57:13.0
        rapid prototyping languagehas purpose to allows you to very quickly create code to display the important parts of a user interface, algorithm or database2001-08-30 14:57:13.0
        has weaknesses inefficiency, or limitations on your ability to create robust and flexible designs2001-08-30 14:57:13.0
        is a kind of programming language2001-08-30 14:57:13.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:13.0
        is not designed for creating the final version of complex systems2001-08-30 14:57:13.0
        Rational Rosehas URL www.rational.com    2001-08-30 14:57:13.0
        is the most widely used tool for drawing UML diagrams2001-08-30 14:57:13.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:57:13.0
        is an instance of tool for drawing UML diagrams2001-08-30 14:57:13.0
        Rational Unified Processis a subtopic of 5.1 - What is UML?2001-08-30 14:57:13.0
        is an instance of methodology2001-08-30 14:57:13.0
        uses UML to represent models2001-08-30 14:57:13.0
        rationalehas definition The reasoning underlying requirements or design decisions2001-08-30 14:57:13.0
        is a kind of subject2001-08-30 14:57:13.0
        is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:57:13.0
        is a subtopic of 9.6 - Writing a Good Design Document2001-08-30 14:57:13.0
        should be documented2001-08-30 14:57:13.0
        read-only interfacehas antipatterns making the read only class a subclass of the «Mutable» class, overriding all methods that modify properties, such that they throw an exception2001-08-30 14:57:13.0
        has context
        • You sometimes want certain privileged classes to be able to modify attributes of objects that are otherwise immutable.
        2001-08-30 14:57:13.0
        has definition A pattern in which an interface is used to restrict which classes have privileges to call update methods of a class2001-08-30 14:57:13.0
        has forces 2001-08-30 14:57:13.0
        has problem How do you create a situation where some classes see a class as read-only (i.e. the class is immutable) whereas others are able to make modifications?2001-08-30 14:57:13.0
        has solution
        1. Create a «Mutable» class as you would create any other class, except make sure it is not public; this ensures that it can be accessed only from its package.
        2. All classes that need to modify the class, often called «Mutator» classes, must be put in this package.
        3. Then create a public interface we will call the «ReadOnlyInterface», that has only the read-only operations of «Mutable» - i.e. only operations that get its values.
        4. The «Mutable» class implements the «ReadOnlyInterface».
        2001-08-30 14:57:13.0
        is a subtopic of 6.11 - The Read-Only Interface Pattern2001-08-30 14:57:13.0
        is an instance of design pattern2001-08-30 14:57:13.0
        readObjectis a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:13.0
        is an instance of Java method2001-08-30 14:57:13.0
        is used in client-server systems2001-08-30 14:57:13.0
        waits until an object is received over the socket, or until an I/O error occurs, which will happen if the program at the other end of the connection is terminated2001-08-30 14:57:13.0
        real-time softwarehas concern safety2001-08-30 14:57:14.0
        has definition Software that must react immediately to stimuli from the environment2001-08-30 14:57:14.0
        has design issue responsiveness2001-08-30 14:57:14.0
        has purpose to operate special-purpose hardware such as embedded systems, industrial plants and telephone networks2001-08-30 14:57:14.0
        is a kind of software2001-08-30 14:57:14.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:57:14.0
        is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:57:14.0
        realistic requirementhas definition A requirement that the development team has the expertise and technology to implement on the required platform within the budget and time available2001-08-30 14:57:14.0
        is a kind of requirement2001-08-30 14:57:14.0
        is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:57:14.0
        recordis a kind of data abstraction2001-08-30 14:57:14.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:57:14.0
        recovery from failurehas example for a word processing program: The system will allow users to continue their work after a failure with the loss of no more than 20 words of typing or 20 formatting commands2001-08-30 14:57:14.0
        is a kind of measurement2001-08-30 14:57:14.0
        is a kind of non-functional requirement2001-08-30 14:57:14.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:14.0
        is specified as the maximum-allowed impact of a failure2001-08-30 14:57:14.0
        reducing couplingis a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:14.0
        is an instance of design principle2001-08-30 14:57:14.0
        reengineeringhas definition A type of maintenance performed to improve the design of some part of a software system, in general so that it has higher maintainability. In general, no new features are added for users2001-08-30 14:57:14.0
        has part forward engineering2001-08-30 14:57:14.0
        has part refactoring2001-08-30 14:57:15.0
        has purpose to increase maintainability of a system2001-08-30 14:57:14.0
        includes
        • cleaning up the code to make it more readable
        • completely replacing a layer
        • re-factoring part of the design
        2001-08-30 14:57:15.0
        is a kind of maintenance2001-08-30 14:57:15.0
        is a kind of software engineering2001-08-30 14:57:15.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:57:15.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:57:15.0
        reduces long-term costs2001-08-30 14:57:15.0
        reengineering projectinvolves changing the system internally so that it is more maintainable, without making significant changes that the user will notice2001-08-30 14:57:15.0
        is a kind of evolutionary project2001-08-30 14:57:15.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:57:15.0
        reengineeringshould make the system more amenable to adding features in the future2001-08-30 14:57:15.0
        should not include adding any new features for users2001-08-30 14:57:15.0
        refactoringhas definition Changing part of the design; performed as part of reengineering2001-08-30 14:57:15.0
        is a kind of maintenance2001-08-30 14:57:15.0
        is a kind of software engineering2001-08-30 14:57:15.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:57:15.0
        is part of reengineering2001-08-30 14:57:15.0
        referencehas definition A variable that refers to an object2001-08-30 14:57:15.0
        is a kind of variable2001-08-30 14:57:15.0
        is a subtopic of 2.3 - Instance Variables2001-08-30 14:57:15.0
        reflexive associationhas definition An association in which both ends connect to the same class2001-08-30 14:57:15.0
        is a kind of association2001-08-30 14:57:15.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:57:15.0
        regression test caseis a kind of test case2001-08-30 14:57:15.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:15.0
        must cover as much of the system as possible2001-08-30 14:57:15.0
        regression testinghas definition The process of re-testing the a system, using a selected subset of test cases, after changes are made2001-08-30 14:57:15.0
        has purpose to test software again once some defects have been fixed in case new defects have been inadvertently added2001-08-30 14:57:15.0
        is a kind of testing performed by software engineers2001-08-30 14:57:16.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:16.0
        tests a subset of the previously successful test cases because it tends to be far too expensive to re-run every single test case every time a change is made to software2001-08-30 14:57:16.0
        related patternhas definition A pattern that are similar to another pattern2001-08-30 14:57:16.0
        is a kind of design pattern2001-08-30 14:57:16.0
        is a subtopic of 6.1 - Introduction to Patterns2001-08-30 14:57:16.0
        is part of design pattern2001-08-30 14:57:16.0
        relationis a kind of subject2001-08-30 14:57:16.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:57:16.0
        releaseis a kind of subject2001-08-30 14:57:16.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:16.0
        release noteshas definition A document describing a particular release of software, including a known bugs list2001-08-30 14:57:16.0
        is a kind of document2001-08-30 14:57:16.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:16.0
        reliabilitydepends on the number of mistakes made by the software engineers who developed the software2001-08-30 14:57:16.0
        has definition An important quality of software that measures the frequency of failures, as encountered by testers and end-users2001-08-30 14:57:16.0
        is more important than efficiency in a safety-critical system2001-08-30 14:57:16.0
        is a kind of external software quality2001-08-30 14:57:16.0
        is a kind of measurement2001-08-30 14:57:16.0
        is a kind of non-functional requirement2001-08-30 14:57:16.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:57:16.0
        is a subtopic of 10.1 - Basic Definitions2001-08-30 14:57:16.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:16.0
        is affected by complexity of code2001-08-30 14:57:16.0
        is affected indirectly by commenting2001-08-30 14:57:16.0
        is specified as the average amount of time between failures or the probability of a failure in a given period2001-08-30 14:57:16.0
        can be improved by ensuring the software is easy to implement and change, and also ensuring that if failures occur, the system can handle them or can recover easily2001-08-30 14:57:16.0
        remote display systemhas clients programs that want to display information on the screen, such as X-Windows2001-08-30 14:57:16.0
        has server a program that manages the screen and allows applications, perhaps running on other computers, to display their output, such as a Unix X-Windows server2001-08-30 14:57:16.0
        is a kind of client-server system2001-08-30 14:57:17.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:57:17.0
        rendezvoushas multiple incoming transitions2001-08-30 14:57:17.0
        has multiple outgoing transitions that must be triggered in separate threads once all the incoming transitions are triggered2001-08-30 14:57:17.0
        has definition In concurrent programming, a situation where several threads meet and wait for each other2001-08-30 14:57:17.0
        is a kind of symbol in activity diagram2001-08-30 14:57:17.0
        is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:57:17.0
        is drawn as a short line at which transitions can start and end2001-08-30 14:57:17.0
        representationis a kind of subject2001-08-30 14:57:17.0
        requirementchanges regularly2001-08-30 14:57:17.0
        has definition A statement about what the proposed system will do that all stakeholders agree must be made true in order for the customer's problem to be adequately solved2001-08-30 14:57:17.0
        has part problem statement2001-08-30 14:57:17.0
        indicates how the system is to behave2001-08-30 14:57:17.0
        is concise2001-08-30 14:57:17.0
        is a kind of subject2001-08-30 14:57:17.0
        is a subtopic of 4.4 - What Is a Requirement?2001-08-30 14:57:17.0
        is expressed as a fact2001-08-30 14:57:17.0
        is grouped with other requirements into a requirements document2001-08-30 14:57:17.0
        is normally expressed in a natural language such as English (using present tense and active voice), sometimes supplemented by a formal mathematical language, and often by some form of diagram2001-08-30 14:57:17.0
        can be gathered from various stakeholders, other software systems and any documentation that might be available2001-08-30 14:57:17.0
        does not describe how the system will be implemented2001-08-30 14:57:17.0
        does not describe the domain2001-08-30 14:57:17.0
        may be given a unique number for traceability2001-08-30 14:57:17.0
        may be shown as a diagram2001-08-30 14:57:17.0
        must be agreed upon by all stakeholders2001-08-30 14:57:17.0
        should be important for the solution of the current problem2001-08-30 14:57:17.0
        should be logically consistent2001-08-30 14:57:17.0
        should be realistic with available resources2001-08-30 14:57:17.0
        should be unambiguous2001-08-30 14:57:17.0
        should be uniquely identifiable2001-08-30 14:57:17.0
        should be verifiable2001-08-30 14:57:17.0
        should be analysed if there is any doubt whether it is realistic2001-08-30 14:57:17.0
        should be changed whenever the benefits of doing so outweigh the costs2001-08-30 14:57:17.0
        should be cut if cost-benefit analysis shows that it will have minimum benefit but still cost a lot to develop2001-08-30 14:57:17.0
        should be expressed using clear and consistent notation, using language that the customers can understand, and consistent with the other requirements2001-08-30 14:57:17.0
        should have benefits that outweigh the costs of development2001-08-30 14:57:17.0
        should help solve a customer's problem2001-08-30 14:57:17.0
        should lead to a system of sufficient quality - one that is sufficiently usable, safe, efficient, reliable and maintainable2001-08-30 14:57:17.0
        should not indicate how it will be implemented in order to give the designer as much freedom as possible to make decisions2001-08-30 14:57:17.0
        should not over-constrain the design of the system2001-08-30 14:57:17.0
        requirement stabilityhas definition A measure of the extent to which requirements are likely to change2001-08-30 14:57:17.0
        is a kind of measurement2001-08-30 14:57:17.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:57:17.0
        requirements analysisdetermines the responsibilities of a system2001-08-30 14:57:18.0
        has definition The process of deciding on the requirements of a software system2001-08-30 14:57:18.0
        has part modelling2001-08-30 14:57:18.0
        has part use case analysis2001-08-30 14:57:18.0
        has risk
        • misunderstanding and lack of understanding of the domain or the real problem
        • Requirements can change rapidly, resulting in requirements 'churn'
        • attempting to do too much which occurs when inadequate boundaries have been placed on the problem or the solution, or when those boundaries are not respected
        • It may be hard to reconcile conflicting sets of requirements
        • It is hard to state requirements precisely
        2001-08-30 14:57:18.0
        has typical mistake over-constraint2001-08-30 14:57:18.0
        includes defining the problem to be solved and what software will be created to solve it2001-08-30 14:57:18.0
        is a kind of analysis2001-08-30 14:57:18.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:18.0
        is part of requirements and specification2001-08-30 14:57:18.0
        is performed after domain analysis2001-08-30 14:57:18.0
        never stops2001-08-30 14:57:18.0
        should continue throughout the life of a software system2001-08-30 14:57:18.0
        requirements and specificationhas part defining the problem2001-08-30 14:57:18.0
        has part domain analysis2001-08-30 14:57:18.0
        has part requirements analysis2001-08-30 14:57:18.0
        has part requirements gathering2001-08-30 14:57:18.0
        has part requirements specification2001-08-30 14:57:18.0
        is a kind of process2001-08-30 14:57:18.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:18.0
        requirements churnis a kind of quality2001-08-30 14:57:18.0
        is a subtopic of 4.12 - Difficulties and Risks In Domain and Requirements Analysis2001-08-30 14:57:18.0
        is caused by rapid changes in requirements2001-08-30 14:57:18.0
        can be avoided by incremental development, building flexibility into the design, regular reviews of the requirements and, above all, always working with a respect for the inevitability of change2001-08-30 14:57:18.0
        requirements creephas definition The tendency for the set of requirements to relentlessly increase in size during the course of development, resulting in a system that is more expensive and complex than originally intended2001-08-30 14:57:18.0
        is a kind of process2001-08-30 14:57:18.0
        is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:57:18.0
        occurs when changes to a system are really enhancements in disguise2001-08-30 14:57:18.0
        can be avoided by
        • using incremental development
        • carefully documenting the problem boundaries at an early stage
        • estimating the time any proposed requirement will take
        • . deferring major changes to subsequent releases if possible
        2001-08-30 14:57:18.0
        may result in very significant cost overruns in projects2001-08-30 14:57:18.0
        requirements definitionhas definition A high-level requirements document that describes requirements using language understandable by customers and end users2001-08-30 14:57:18.0
        is a kind of requirements document2001-08-30 14:57:19.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:18.0
        requirements documentcontains functional and non-functional requirements2001-08-30 14:57:19.0
        depends on 2001-08-30 14:57:19.0
        forms the basis for testing the system2001-08-30 14:57:19.0
        goes through several iterations of development and review2001-08-30 14:57:19.0
        has version number2001-08-30 14:57:19.0
        has definition Any document describing a set of requirements2001-08-30 14:57:19.0
        has part functional requirements2001-08-30 14:57:19.0
        has part non-functional requirements2001-08-30 14:57:19.0
        has parts a clear title, and sections with meaningful headings and subheadings2001-08-30 14:57:19.0
        is definitive only when all the stakeholders agree they are to be implemented2001-08-30 14:57:19.0
        is a kind of document2001-08-30 14:57:19.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:19.0
        is subject to change caused by:2001-08-30 14:57:19.0
        requirements document derived from use casesis a kind of requirements document2001-08-30 14:57:19.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:19.0
        tends to mirror mirror the way users worked before the software was developed2001-08-30 14:57:19.0
        does not usually lead to innovative solutions2001-08-30 14:57:19.0
        requirements document for a large systemconsists of a series of documents arranged in a hierarchy2001-08-30 14:57:19.0
        is more detailed than the requirements document for a small system because there is more to say and because the system will need to be divided into subsystems so that different teams can work on each part2001-08-30 14:57:19.0
        is a kind of requirements document2001-08-30 14:57:19.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:19.0
        requirements documentmust be written at a high-enough level so that the potential users can read it2001-08-30 14:57:19.0
        must not be too large at an early stage in requirements gathering because the risk that these will have to be completely re-written is too great2001-08-30 14:57:19.0
        should be sufficiently complete2001-08-30 14:57:19.0
        should be well designed so its structure can be easily understood, so it can be quickly scanned and so any given requirement can be easily found2001-08-30 14:57:19.0
        should be well organized2001-08-30 14:57:19.0
        should be agreed to by all the stakeholders2001-08-30 14:57:19.0
        should be reviewed by the author and stakeholders2001-08-30 14:57:19.0
        should be updated when incremental changes are made to the system2001-08-30 14:57:19.0
        should contain rationale for all requirements that involve a large amount of analysis, that are controversial or for which several alternatives are considered, so that software engineers in the future do not have to repeat your analysis when they make changes, the reader is convinced that you did in fact consider the alternatives, and the reader is alerted to the fact that the requirement may be controversial2001-08-30 14:57:19.0
        should have sections
        1. Problem: A succinct description of the problem the system is solving
        2. Background information: information that will help readers understand the requirements. It should contain references to domain analysis documents
        3. Environment and system models: the context in which the system runs and a global overview of the system or subsystem
        4. Functional Requirements: Services provided to the user and to other systems
        5. Non-functional requirements: any constraints that must be imposed on the design of the system
        2001-08-30 14:57:19.0
        should have changes in each new version highlighted for the reader using change bars2001-08-30 14:57:19.0
        should not contain requirements in the introduction and conclusion to avoid the problem of changing the requirements in one place and forgetting to change them in another place2001-08-30 14:57:19.0
        requirements elicitationhas definition The process of actively asking stakeholders to describe their view of the requirements; an important aspect of requirements gathering2001-08-30 14:57:19.0
        is a kind of process2001-08-30 14:57:20.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:20.0
        is part of requirements gathering2001-08-30 14:57:20.0
        Requirements Engineering and Rapid Development: An Object-Oriented Approachhas author I. Graham, L. Graham2001-08-30 14:57:20.0
        has ISBN number 0-201-36047-02001-08-30 14:57:20.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:57:20.0
        is an instance of book about requirements analysis2001-08-30 14:57:20.0
        was published by Addison-Wesley2001-08-30 14:57:20.0
        was published in 19982001-08-30 14:57:20.0
        Requirements Engineering Specialists Group of the British Computer Societyhas URL www.resg.org.uk    2001-08-30 14:57:20.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:57:20.0
        is an instance of web site about requirements analysis2001-08-30 14:57:20.0
        requirements gatheringhas definition A step in requirements analysis in which information is obtained that will form the basis of the requirements2001-08-30 14:57:20.0
        is a kind of process2001-08-30 14:57:20.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:20.0
        is part of requirements and specification2001-08-30 14:57:20.0
        requirements principleis a kind of principle2001-08-30 14:57:20.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:20.0
        states separate the 'what' from the 'how'. The 'what' refers to the requirements - what is needed to solve the problem. The 'how' refers to how the solution will be designed and implemented.2001-08-30 14:57:20.0
        requirements reviewculminates in a formal requirements review meeting at which all stakeholders are present2001-08-30 14:57:20.0
        has definition The process of systematically evaluating a requirements document2001-08-30 14:57:20.0
        is a kind of reviewing2001-08-30 14:57:20.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:20.0
        requirements specialistis a kind of software developer2001-08-30 14:57:20.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:57:20.0
        is part of software development team2001-08-30 14:57:20.0
        requirements specificationconsists of writing a precise set of instructions that define what the software should do, including how the software behaves from the perspective of the user, but no details of the implementation2001-08-30 14:57:20.0
        determines the interface of any component built to implement a system2001-08-30 14:57:20.0
        has definition A specification of requirements; i.e. a requirements document that is more detailed than a requirements definition2001-08-30 14:57:20.0
        is a kind of specification2001-08-30 14:57:21.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:20.0
        is a synonym of design specification2001-08-30 14:55:17.0
        is part of requirements and specification2001-08-30 14:57:21.0
        resourcehas definition Anything consumed in the development, operation or maintenance of a product or process2001-08-30 14:57:21.0
        is a kind of subject2001-08-30 14:57:21.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:57:21.0
        resource usageallows others to efficiently plan hardware upgrades2001-08-30 14:57:21.0
        has example you could specify that no more than a certain amount of memory is to be used by the system, and that the system must consume less than 10% of the CPU's time2001-08-30 14:57:21.0
        is a kind of measurement2001-08-30 14:57:21.0
        is a kind of non-functional requirement2001-08-30 14:57:21.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:21.0
        is specified in terms of the maximum amount of these resources that the system will consume2001-08-30 14:57:21.0
        response timehas definition The time that elapses from when a user issues a command to when the system provides enough results so the user can continue his or her work2001-08-30 14:57:21.0
        is acceptable if it is at least as fast as other applications that users are accustomed to2001-08-30 14:57:21.0
        is a kind of measurement2001-08-30 14:57:21.0
        is a kind of non-functional requirement2001-08-30 14:57:21.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:21.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:57:21.0
        can be a problem due to the need to load information over a network or process large volumes of information2001-08-30 14:57:21.0
        may be up to about 15-20 seconds for operations such as loading complex pages from the net over a modem-based connection if the user understands that they are naturally time-consuming and an indication of progress is shown2001-08-30 14:57:21.0
        should appear instantaneous for some operations such as tracking the cursor, popping up of menus and echoing of input2001-08-30 14:57:21.0
        should be a second or less for operations such as saving most data, moving between windows, obtaining help, and obtaining the first feedback from any longer operation2001-08-30 14:57:21.0
        should be evaluated on the slowest hardware that end-users are likely to encounter2001-08-30 14:57:21.0
        should not be more than 15-20 seconds unless the user interface warns the user so the user can do something else while waiting or choose not to perform the operation2001-08-30 14:57:21.0
        responsibilityhas definition Something a system is required to do that is allocated to a particular class2001-08-30 14:57:21.0
        is a kind of subject2001-08-30 14:57:21.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:21.0
        is carried out by operation2001-08-30 14:57:21.0
        can be found by looking for verbs and nouns describing actions in the system description2001-08-30 14:57:21.0
        may require several operations but one public operation will be in charge, all others will be private2001-08-30 14:57:21.0
        must be attributed to a class2001-08-30 14:57:21.0
        responsibility of a classis a kind of responsibility2001-08-30 14:57:21.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:21.0
        should be related to all other responsibilities of that class2001-08-30 14:57:21.0
        restricting accesscontrols access to methods, instance variables and class variableslink: chapter2section2.8.html#1006, 2001-08-30 14:57:22.0
        is goodlink: chapter2section2.8.html#1006, 2001-08-30 14:57:22.0
        is a kind of practice2001-08-30 14:57:22.0
        is a subtopic of The Basics of Java2001-08-30 14:57:22.0
        is part of encapsulation2001-08-30 14:57:22.0
        makes code easier to understand and changelink: chapter2section2.8.html#1008, 2001-08-30 14:57:22.0
        makes designs more flexiblelink: chapter2section2.8.html#1008, 2001-08-30 14:57:22.0
        reduces couplinglink: chapter2section2.8.html#1009, 2001-08-30 14:57:22.0
        returnis a subtopic of The Basics of Java2001-08-30 14:57:22.0
        is an instance of Java keyword2001-08-30 14:57:22.0
        reusabilityhas definition A quality that measures of the extent to which a product or process can be used in different contexts from which it was originally designed2001-08-30 14:57:22.0
        is a kind of external software quality2001-08-30 14:57:22.0
        is a kind of measurement2001-08-30 14:57:22.0
        is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:57:22.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:22.0
        is constrained by software architecture2001-08-30 14:57:22.0
        reusable componenthas definition A piece of software, such as a library, command, framework or application that is reused in a software system2001-08-30 14:57:22.0
        is a kind of component2001-08-30 14:57:22.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:57:22.0
        is usually more reliable than software not designed to be reused because it is tested in all the systems it is used in, and because it is used in different contexts, exposing any weak points2001-08-30 14:57:22.0
        simplifies the design of software systems2001-08-30 14:57:22.0
        will be of high quality if its designer followed the same steps as the development of complete applications: domain and requirements analysis, design, documentation, testing and inspection, and if a software engineer is available to properly maintain it2001-08-30 14:57:22.0
        will be reused if it is of high quality2001-08-30 14:57:22.0
        reusable component developerbuilds confidence in the reusable technology by
        • guaranteeing support
        • ensuring it is of high quality
        • responding to the needs of the users
        2001-08-30 14:57:22.0
        develops software components that are intended to be reused2001-08-30 14:57:22.0
        is a kind of software developer2001-08-30 14:57:22.0
        is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:57:22.0
        overcomes competition with other developers of reusable components by:
        • Ensuring the reusable technology is as useful and as high quality as possible
        • Advertise the presence and advantages of the reusable software
        2001-08-30 14:57:22.0
        uses a catalog of reusable components to find appropriate components2001-08-30 14:57:23.0
        must catalog reusable components so that software engineers will be able to find them2001-08-30 14:57:22.0
        must document reusable components so that software engineers will be able to use them easily2001-08-30 14:57:22.0
        must follow good software engineering practices2001-08-30 14:57:22.0
        must provide support for the components after they are developed2001-08-30 14:57:22.0
        should follow the same steps as the development of complete applications: domain and requirements analysis, design, documentation, testing and inspection2001-08-30 14:57:22.0
        should monitor the success or failure of the reusable software so you can improve your investment decisions in future projects2001-08-30 14:57:22.0
        should plan the development of the reusable technology, in the same manner as if it were a product for a client2001-08-30 14:57:23.0
        reusable component developmenthas benefits
        • Looking at a problem at a more general level tends to make it easier to understand: Details relevant to only certain specific cases are discarded, which leads to better abstractions and simpler structure of the resulting design
        • The very process of developing reusable components separately from their target system reduces the interconnections among parts of the system
        2001-08-30 14:57:23.0
        has risks
        • Risk from an uncertain investment: Developing reusable technology takes time away from developing applications and is therefore a calculated risk
        • The so-called 'not invented here syndrome': A framework developed by one set of developers might not be used because others fear it might not be supported
        • Competition: Reusable technology might not end up being used if somebody else develops competing technology that gains wide acceptance
        • Divergence: Several development teams using the same framework may want to change it in different ways
        2001-08-30 14:57:23.0
        is a kind of development2001-08-30 14:57:23.0
        is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:57:23.0
        should follow the same steps as the development of complete applications: domain and requirements analysis, design, documentation, testing and inspection2001-08-30 14:57:23.0
        reusable componentmust be cataloged2001-08-30 14:57:22.0
        must be documented2001-08-30 14:57:22.0
        must have software engineer available to properly maintain it2001-08-30 14:57:22.0
        reusable softwareis flexible2001-08-30 14:57:23.0
        is understandable2001-08-30 14:57:23.0
        is well documented2001-08-30 14:57:23.0
        is a kind of program2001-08-30 14:57:23.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:23.0
        was designed to facilitate reuse2001-08-30 14:57:23.0
        can be used in a variety of different systems2001-08-30 14:57:23.0
        reusehas definition The practice of using the same code or design in more than one place2001-08-30 14:57:23.0
        has purpose to reduce the large cost associated with developing the same thing over and over again2001-08-30 14:57:23.0
        has risks 2001-08-30 14:57:23.0
        is one of the keys to successful software development2001-08-30 14:57:23.0
        is a kind of practice2001-08-30 14:57:23.0
        is a subtopic of 3.2 - Incorporating Reusability and Reuse Into Software Engineering2001-08-30 14:57:23.0
        is not a strong part of the development culture of many organizations2001-08-30 14:57:23.0
        is not as extensive in software engineering projects as might be desirable2001-08-30 14:57:23.0
        can occur if software developers reuse existing good-quality components, and also contribute to reusable components that others can use2001-08-30 14:57:23.0
        may be prevented because of a vicious circle: Developers do not develop high quality reusable components, so there is nothing to reuse. Since there is nothing to reuse, software developers take so much time to develop applications that they lack time to invest in reusable frameworks or libraries2001-08-30 14:57:23.0
        may not be practised because
        • developing anything reusable is seen as not directly benefiting the current customer
        • If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
        • Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
        2001-08-30 14:57:23.0
        reuse of applicationsinvolves taking complete applications and adapting them to the needs of the client by adding a small amount of extra software that makes the applications behave in special ways the client wants2001-08-30 14:57:23.0
        is a kind of reuse2001-08-30 14:57:23.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:23.0
        reuse of classes and commandsis a kind of reuse2001-08-30 14:57:23.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:23.0
        takes advantage of libraries of classes or procedures, or of powerful commands built into languages and operating systems which represent implemented algorithms, data structures and other facilities2001-08-30 14:57:23.0
        reuse of commercial off-the-shelf softwarehas example take a standard email application and add a feature that would always update the 'address book' with data from the corporate employee and client databases2001-08-30 14:57:23.0
        is a kind of reuse of applications2001-08-30 14:57:23.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:23.0
        reuse of expertiseis a kind of reuse2001-08-30 14:57:24.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:24.0
        takes advantage of software engineers who have many years of experience working on projects and who can often save considerable time when it comes to developing new systems because they do not need to re-think many issues: their past experience tells them what needs to be done2001-08-30 14:57:24.0
        reuse of frameworksis a kind of reuse2001-08-30 14:57:24.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:24.0
        reuse of standard designs and algorithmsis a kind of reuse2001-08-30 14:57:24.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:24.0
        takes advantage of algorithms and other aspects of designs described in various books, standards documents and articles2001-08-30 14:57:24.0
        reusing existing designs and code where possiblehas advantage it allows you to take advantage of the investment you or others have made in reusable components2001-08-30 14:57:24.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:24.0
        is an instance of design principle2001-08-30 14:57:24.0
        reviewinghas definition The process of systematically proceeding through a software document to perform a function such as validation, or verification2001-08-30 14:57:24.0
        is a kind of process2001-08-30 14:57:24.0
        is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:57:24.0
        ripple effecthas definition The situation in which removing defects causes new ones to be added2001-08-30 14:57:24.0
        is a kind of quality2001-08-30 14:57:24.0
        risk managementhas definition The process of evaluating risks and taking corrective action, including revising plans, on a regular basis2001-08-30 14:57:24.0
        has part risk analysis2001-08-30 14:57:24.0
        is a kind of process2001-08-30 14:57:24.0
        is a subtopic of 1.8 - The Eight Themes Emphasized in this Book2001-08-30 14:57:24.0
        roleacts as an alternative name for the class to which it is attached2001-08-30 14:57:24.0
        has definition A name given to one end of an association that acts as a synonym for the class at that end2001-08-30 14:57:24.0
        is a kind of label2001-08-30 14:57:24.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:57:24.0
        labels an association2001-08-30 14:57:24.0
        can be attached to either or both ends of an association2001-08-30 14:57:24.0
        role^2has definition A class in the player-role pattern whose instances can be attached to player objects2001-08-30 14:57:24.0
        is a kind of class2001-08-30 14:57:25.0
        is a subtopic of 6.4 - The Player-Role Pattern2001-08-30 14:57:24.0
        root cause analysishas definition The process of determining the ultimate reason why a software engineer made the error introduced a defect2001-08-30 14:57:25.0
        has objective to determine why a software engineer made the error that resulted in a defect occurring2001-08-30 14:57:25.0
        is a kind of analysis2001-08-30 14:57:25.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:25.0
        routine call couplinghas definition A form of coupling in which one routine calls another2001-08-30 14:57:25.0
        is always present in an object oriented system2001-08-30 14:57:25.0
        is a kind of coupling2001-08-30 14:57:25.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:25.0
        can be reduced by reducing the total number of routines that a particular class or package calls: If you use a sequence of two or more methods to compute something, and this sequence is used in more than one place, then you can reduce routine call coupling by writing a single routine that encapsulates the sequence2001-08-30 14:57:25.0
        rulehas definition A principle that should almost always be applied2001-08-30 14:57:25.0
        is a kind of principle2001-08-30 14:57:25.0
        Runnableis a subtopic of The Basics of Java2001-08-30 14:57:25.0
        is an instance of Java interfacelink: chapter2section2.8.html#1039, 2001-08-30 14:57:25.0
        safety critical systemhas example systems that control industrial processes, vehicles, telecommunications networks, medical equipment and many consumer devices2001-08-30 14:57:25.0
        is a kind of system2001-08-30 14:57:25.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:25.0
        must have its requirements subjected to rigorous analysis and review2001-08-30 14:57:25.0
        should be precisely specified if it could jeopardize safety or the environment if it fails2001-08-30 14:57:25.0
        sandwich testingcombines bottom-up testing and top-down testing2001-08-30 14:57:25.0
        has definition An incremental testing strategy in which you test the top layers and bottom layers, and finally test the integrated system2001-08-30 14:57:25.0
        has procedure
        1. test the user interface in isolation, using stubs
        2. test the very lowest level functions, using drivers
        3. when the complete system is integrated, only the middle layer remains on which to perform the final set of tests
        2001-08-30 14:57:25.0
        is a kind of vertical incremental testing2001-08-30 14:57:25.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:25.0
        is a synonym of mixed testing2001-08-30 14:56:36.0
        may be the most effective form of integration testing for many systems2001-08-30 14:57:25.0
        scenarioclarifies the associated use case2001-08-30 14:57:25.0
        has definition An instance of a use case that expresses a specific occurrence of the use case with a specific actor operating at a specific time and using specific data2001-08-30 14:57:25.0
        is a kind of representation2001-08-30 14:57:26.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:25.0
        schedulehas definition The allocation of tasks to time periods2001-08-30 14:57:26.0
        is a kind of representation2001-08-30 14:57:26.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:57:26.0
        schedule^2has definition The total elapsed time of a project2001-08-30 14:57:26.0
        is a kind of measurement2001-08-30 14:57:26.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:57:26.0
        schedulinghas definition Determining the sequence of tasks, plus deciding when the tasks should start, and setting deadlines for when they must be complete2001-08-30 14:57:26.0
        is a kind of process2001-08-30 14:57:26.0
        is a subtopic of 11.1 - What is Project Management?2001-08-30 14:57:26.0
        is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:57:26.0
        scientisthas definition A person who seeks new knowledge about nature (in contrast to engineer)2001-08-30 14:57:26.0
        has role to seek out new knowledge2001-08-30 14:57:26.0
        is a kind of person2001-08-30 14:57:26.0
        is a subtopic of 1.8 - The Eight Themes Emphasized in this Book2001-08-30 14:57:26.0
        scopehas definition The region of a source text over which a declaration holds2001-08-30 14:57:26.0
        is a kind of subject2001-08-30 14:57:27.0
        is a subtopic of The Basics of Java2001-08-30 14:57:26.0
        scope of a Java class variableis a kind of scope of a variable2001-08-30 14:57:27.0
        is a subtopic of The Basics of Java2001-08-30 14:57:27.0
        is defined by the public, private and protected keywordslink: chapter2section2.8.html#1028, 2001-08-30 14:57:27.0
        scope of a Java instance variableis a kind of scope of a variable2001-08-30 14:57:27.0
        is a subtopic of The Basics of Java2001-08-30 14:57:27.0
        is defined by the public, private and protected keywordslink: chapter2section2.8.html#1028, 2001-08-30 14:57:27.0
        scope of a variableconsists of the parts of the source code in which reference to the variable can be madelink: chapter2section2.8.html#1027, 2001-08-30 14:57:27.0
        is a kind of scope2001-08-30 14:57:27.0
        is a subtopic of The Basics of Java2001-08-30 14:57:27.0
        scope of a variable defined in a blockis a kind of scope of a variable2001-08-30 14:57:27.0
        is a subtopic of The Basics of Java2001-08-30 14:57:27.0
        is defined by the start and end of the blocklink: chapter2section2.8.html#1029, 2001-08-30 14:57:27.0
        scope^2has definition The extent of a software project2001-08-30 14:57:27.0
        is broad if the problem is broad or contains a long list of subproblems2001-08-30 14:57:27.0
        is a kind of subject2001-08-30 14:57:27.0
        is a subtopic of 4.3 - Defining The Problem and the Scope2001-08-30 14:57:27.0
        can be narrowed by excluding subproblems2001-08-30 14:57:27.0
        may be too narrow if the problem statement is inappropriate2001-08-30 14:57:27.0
        may be wrong if the problem statement is inappropriate2001-08-30 14:57:27.0
        should be defined as early as possible2001-08-30 14:57:27.0
        scripting languageis a kind of programming language2001-08-30 14:57:27.0
        is a subtopic of 3.1 - Reuse: Building on the Work and Experience of Others2001-08-30 14:57:27.0
        is interpreted2001-08-30 14:57:27.0
        scroll baris a kind of user interface component2001-08-30 14:57:27.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:27.0
        selecting a menu itemis a kind of command2001-08-30 14:57:27.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:27.0
        semaphorehas definition A mechanism that allow data items to be locked so that they cannot be accessed by other threads when they are not ready2001-08-30 14:57:27.0
        is a kind of mechanism2001-08-30 14:57:28.0
        is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:57:28.0
        can prevent race conditions2001-08-30 14:57:27.0
        sequence diagramarranges objects from left to right across the diagram with an actor that initiates the interaction often shown on the left2001-08-30 14:57:28.0
        has definition A UML interaction diagram showing the sequence of messages exchanged by the set of objects and optionally an actor. Actors and objects are on one axis, and time is on the other2001-08-30 14:57:28.0
        has part activation box2001-08-30 14:57:28.0
        has part iteration expression2001-08-30 14:57:28.0
        has part lifeline2001-08-30 14:57:28.0
        is better than collaboration diagram when:
        • You want the reader to be able to easily see the order in which messages occur
        • You want to build an interaction model from a use case
        • You need to show details of messages, such as parameters and return values
        2001-08-30 14:57:28.0
        is a kind of interaction diagram2001-08-30 14:57:28.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:57:28.0
        represents iteration over objects by preceding the message name with an asterisk, and showing an iteration expression in square brackets2001-08-30 14:57:28.0
        represents message as an arrow between activation boxes of the sender and receiver2001-08-30 14:57:28.0
        represents time as the vertical dimension with time progressing downwards to the bottom of the diagram2001-08-30 14:57:28.0
        shows the destruction of an object using a big 'X' symbol on a lifeline2001-08-30 14:57:28.0
        shows the sequence of messages exchanged by the set of objects (and optionally an actor) performing a certain task2001-08-30 14:57:28.0
        sequential cohesionhas definition A form of cohesion in which a series of procedures, where one provides input to the next, are kept together2001-08-30 14:57:28.0
        is a strong form of temporal cohesion2001-08-30 14:57:28.0
        is less important than communicational cohesion since different data types may be involved in the different stages of a sequentially cohesive module2001-08-30 14:57:28.0
        is stronger than procedural cohesion2001-08-30 14:57:28.0
        is a kind of cohesion2001-08-30 14:57:28.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:28.0
        is achieved when a series of procedures, in which one procedure provides input to the next, are kept together - and everything else is kept out2001-08-30 14:57:28.0
        sequentially cohesive modulecontains nothing other than the set of procedures that co-operate with another module, where one provides input to the next2001-08-30 14:57:28.0
        is a kind of cohesive module2001-08-30 14:57:28.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:28.0
        serializationhas definition A process in Java by which every object is converted by an ObjectOutputStream into a binary form for transmission, and then reconstructed when it is received by an ObjectInputStream2001-08-30 14:57:28.0
        is a kind of process2001-08-30 14:57:28.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:28.0
        is used to save objects into a binary file2001-08-30 14:57:28.0
        serveraccepts connections from clients, normally involving some form of validation to ensure that the client is allowed to connect.2001-08-30 14:57:28.0
        continues to serve currently connected clients after it has stopped listening2001-08-30 14:57:28.0
        disconnects clients - the client may request disconnection by sending a message to the server, the client may just disappear suddenly due to the client crashing or the network connecting going down, or the server may force a client to disconnect if the client is not behaving well2001-08-30 14:57:28.0
        does concurrently
        • Waiting for interactions with the user who is in charge of the server, and responding as necessary
        • Waiting for clients to try to connect and establishing connections as needed
        • For each connected client, waiting for messages coming from that client, and responding when messages arrive
        2001-08-30 14:57:28.0
        has definition A program or process that, in response to requests from clients, provides some kind of service2001-08-30 14:57:28.0
        is a kind of process^22001-08-30 14:57:29.0
        is a kind of program2001-08-30 14:57:29.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:57:28.0
        keeps a record of the connection while a client is connected2001-08-30 14:57:29.0
        listens for clients attempting to connect2001-08-30 14:57:29.0
        reacts to messages from connected clients: performing computations or obtaining information, and normally sending some information back to the requesting client and perhaps sending a message to another client or broadcasting messages to many clients at once.2001-08-30 14:57:29.0
        stops listening if the number of connected clients becomes too high, or prior to shutting down2001-08-30 14:57:29.0
        terminates when necessary, which involves such actions as notifying each client before terminating its connection2001-08-30 14:57:29.0
        will not accept new client connections if it has stopped listening2001-08-30 14:57:29.0
        can also be a client at the same time2001-08-30 14:57:28.0
        may be accessed by many clients simultaneously2001-08-30 14:57:29.0
        may be located on the same computer as its clients or on a different computer2001-08-30 14:57:29.0
        must be able to handle connections from many clients2001-08-30 14:57:29.0
        must be able to respond to messages from all the connected clients2001-08-30 14:57:29.0
        must initialize itself so that it is able to provide the required service2001-08-30 14:57:29.0
        server socket ServerSocket class2001-08-30 14:57:29.0
        has definition Data in a server used to generate connections on a port2001-08-30 14:57:29.0
        is a kind of socket2001-08-30 14:57:29.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:29.0
        serverusually operates with at least two concurrent threads, and in general n+2, threads where n is the number of connected clients2001-08-30 14:57:29.0
        ServerSocket classhas example of accepting a connection the server must have a thread constantly listening for connections using a statement like the following, embedded in a loop:
        Socket clientSocket = serverSocket.accept();
        The above statement will wait indefinitely in the accept method until a client tries to connect, then it will try to create an instance of Socket class to handle the new connection. If this is successful both client and server now have instances of Socket class and can communicate freely with each other.
        2001-08-30 14:57:29.0
        has example of connecting Socket clientSocket= new Socket(host, port);2001-08-30 14:57:29.0
        has example of listening ServerSocket serverSocket = new ServerSocket(port);
        where port is the integer representing the port number on which the server should be listening
        2001-08-30 14:57:29.0
        has purpose to allow a server to listen to a port2001-08-30 14:57:29.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:29.0
        is an instance of Java class2001-08-30 14:57:29.0
        see also server socket2001-08-30 14:57:29.0
        set of equivalence classes for a systemcontains a number of equivalence classes equal to the product of the number of classes of the individual inputs2001-08-30 14:57:29.0
        has definition The set of all possible combinations of inputs to a system2001-08-30 14:57:29.0
        has part one or more equivalence class2001-08-30 14:57:29.0
        is a kind of subject2001-08-30 14:57:29.0
        is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:57:29.0
        may be very large2001-08-30 14:57:29.0
        setting and getting values of attributesis a kind of responsibility2001-08-30 14:57:29.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:29.0
        is often omitted from a model because the presence of such responsibilities can largely be inferred from the class diagram2001-08-30 14:57:29.0
        severity levelhas definition A number given to a failure, defect or test case, indicating the amount of impact it has on the user or customer2001-08-30 14:57:29.0
        is a kind of measurement2001-08-30 14:57:30.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:57:29.0
        shelfwarehas definition Software that is not used2001-08-30 14:57:30.0
        is a kind of bad software2001-08-30 14:57:30.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:30.0
        may be produced if the software engineer does not realize what customers and users consider to be their very basic needs2001-08-30 14:57:30.0
        shortis a kind of Java primitive data type2001-08-30 14:57:30.0
        is a subtopic of The Basics of Java2001-08-30 14:57:30.0
        requires 16 bitslink: chapter2section2.8.html#567, 2001-08-30 14:57:30.0
        stores an integerlink: chapter2section2.8.html#567, 2001-08-30 14:57:30.0
        short circuit operatoris a kind of Java operator2001-08-30 14:57:30.0
        is a subtopic of The Basics of Java2001-08-30 14:57:30.0
        does not compute right hand side of an expression if the left hand side is not truelink: chapter2section2.8.html#583, 2001-08-30 14:57:30.0
        short^2is a subtopic of The Basics of Java2001-08-30 14:57:30.0
        is an instance of Java keyword2001-08-30 14:57:30.0
        shrink-wrapped softwarehas definition A term for generic software, so-called because it is often sold in boxes tightly wrapped in plastic2001-08-30 14:57:30.0
        is a synonym of generic software2001-08-30 14:57:30.0
        side effecthas definition A change to the state of the system made by a procedure, other than merely returning a result2001-08-30 14:57:30.0
        is a kind of event2001-08-30 14:57:30.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:30.0
        signaturehas definition The format of an operation or message, including arguments and return value2001-08-30 14:57:30.0
        is a kind of model2001-08-30 14:57:30.0
        is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:57:30.0
        simple collaboration diagramis a kind of collaboration diagram2001-08-30 14:57:31.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:30.0
        can be converted into a sequence diagram2001-08-30 14:57:30.0
        simple programis easier to change than a complicated program2001-08-30 14:57:31.0
        is a kind of program2001-08-30 14:57:31.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:31.0
        saves money because software developers are more likely to notice defects2001-08-30 14:57:31.0
        should not be used when simplification requires a significant drop in efficiency2001-08-30 14:57:31.0
        simple sequence diagramis a kind of sequence diagram2001-08-30 14:57:31.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:31.0
        can be converted into a collaboration diagram2001-08-30 14:57:31.0
        Simula-67is a subtopic of 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations2001-08-30 14:57:31.0
        is an instance of object oriented language2001-08-30 14:57:31.0
        was the first object oriented language2001-08-30 14:57:31.0
        was designed to allow programmers to write programs that simulate the way objects in the real world behave2001-08-30 14:57:31.0
        single inheritanceis a kind of inheritance2001-08-30 14:57:31.0
        is a subtopic of The Basics of Java2001-08-30 14:57:31.0
        results in simpler systems than multiple inheritancelink: chapter2section2.8.html#936, 2001-08-30 14:57:31.0
        singletonhas context 2001-08-30 14:57:31.0
        has definition A pattern that ensures that a certain class can have only one instance2001-08-30 14:57:31.0
        has example the Company or University classes in systems that run the business of that company or university2001-08-30 14:57:31.0
        has forces 2001-08-30 14:57:31.0
        has problem How do you ensure that it is never possible to create more than one instance of a singleton class?2001-08-30 14:57:31.0
        has references one of the Gang of Four patterns.2001-08-30 14:57:31.0
        has solution In a singleton class, create the following:2001-08-30 14:57:31.0
        is a subtopic of 6.5 - The Singleton Pattern2001-08-30 14:57:31.0
        is an instance of design pattern2001-08-30 14:57:31.0
        singleton conditionhas definition A situation in which there is normally more than one of something, but should be tested for the case where there is only one2001-08-30 14:57:31.0
        is the inverse of non-singleton condition2001-08-30 14:57:31.0
        is a kind of situation2001-08-30 14:57:31.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:57:31.0
        occurs when there is normally more than one of something, but sometimes there is only one2001-08-30 14:57:31.0
        singleton^2has definition A class for which only one instance should exist2001-08-30 14:57:32.0
        is a kind of class2001-08-30 14:57:32.0
        is a subtopic of 6.5 - The Singleton Pattern2001-08-30 14:57:32.0
        situationis a kind of subject2001-08-30 14:57:32.0
        skilled programmeris a kind of programmer2001-08-30 14:57:32.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:57:32.0
        can be up to ten times as productive as a less skilled programmer2001-08-30 14:57:32.0
        slothas definition A missing part in a framework that is filled in by the application developer who is adapting the framework to suit his or her needs2001-08-30 14:57:32.0
        is similar to a hook except that a slot must be filled in2001-08-30 14:57:32.0
        is a kind of representation2001-08-30 14:57:32.0
        is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:57:32.0
        small software development teamis a kind of software development team2001-08-30 14:57:32.0
        is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:57:32.0
        can make development more complex and lead to designs that have higher coupling2001-08-30 14:57:32.0
        small software projectis a kind of software project2001-08-30 14:57:32.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:57:32.0
        may require a single team of three or four developers2001-08-30 14:57:32.0
        small software systemis a kind of software system2001-08-30 14:57:32.0
        is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:57:32.0
        can be developed by a programmer working alone2001-08-30 14:57:32.0
        Smalltalkis a subtopic of The Basics of Java2001-08-30 14:57:32.0
        is an instance of object oriented language2001-08-30 14:57:32.0
        uses a virtual machinelink: chapter2section2.8.html#530, 2001-08-30 14:57:32.0
        sockethas definition Data in a client or server that represents an end of a TCP/IP connection. A complete connection has two sockets, one in the client and one in the server2001-08-30 14:57:32.0
        is a kind of mechanism2001-08-30 14:57:33.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:32.0
        see also Socket class2001-08-30 14:57:33.0
        Socket classhas purpose to encapsulate information concerning TCP/IP connections between applications2001-08-30 14:57:33.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:33.0
        is an instance of Java class2001-08-30 14:57:33.0
        see also socket2001-08-30 14:57:33.0
        SoftSeeks's list of project management toolshas URL www.softseek.com/Business_and_Productivity/Project_Management    2001-08-30 14:57:33.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:33.0
        is an instance of web site about project management2001-08-30 14:57:33.0
        softwaredeteriorates as it is changed repeatedly2001-08-30 14:57:33.0
        has definition Programs and related data that run on a computer2001-08-30 14:57:33.0
        has quality which is only as good as its lowest-quality reusable component2001-08-30 14:57:33.0
        is hard to change correctly2001-08-30 14:57:33.0
        is intangible2001-08-30 14:57:33.0
        is more reliable if it has fewer failures2001-08-30 14:57:33.0
        is a kind of subject2001-08-30 14:57:33.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:57:33.0
        is designed usually for human beings to use2001-08-30 14:57:33.0
        often has a poor design and is steadily becoming worse2001-08-30 14:57:33.0
        software architectis responsible for leading the decision-making about the architecture, and maintaining the documentation describing the architectural model2001-08-30 14:57:33.0
        is a kind of software developer2001-08-30 14:57:33.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:57:33.0
        is part of software development team2001-08-30 14:57:33.0
        often leads a team of software engineers2001-08-30 14:57:33.0
        software architectureconstrains the overall efficiency, reusability and maintainability of the system2001-08-30 14:57:33.0
        is a kind of pattern2001-08-30 14:57:34.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:57:33.0
        is decided early in the design process, although it will continue to mature as iterative development proceeds2001-08-30 14:57:33.0
        see also software architecture^22001-08-30 14:57:34.0
        see also software architecture^32001-08-30 14:57:34.0
        software architecture bookis a kind of book2001-08-30 14:57:34.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:57:34.0
        Software Architecture for Product Families: Principles and Practicehas author Mehdi Jazayeri, Alexander Ran, Frank Van Der Linden, Philip Van Der Linden2001-08-30 14:57:34.0
        has ISBN number 0-201-69967-22001-08-30 14:57:34.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:57:34.0
        is an instance of software architecture book2001-08-30 14:57:34.0
        was published by Addison-Wesley2001-08-30 14:57:34.0
        was published in 20002001-08-30 14:57:34.0
        Software Architecture in Practicehas author Len Bass, Paul Clements, Rick Kazman, Ken Bass2001-08-30 14:57:34.0
        has ISBN number 0-201-19930-02001-08-30 14:57:34.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:57:34.0
        is an instance of software architecture book2001-08-30 14:57:34.0
        was published by Addison-Wesley2001-08-30 14:57:34.0
        was published in 19982001-08-30 14:57:34.0
        software architecturemust be understood by software engineers2001-08-30 14:57:34.0
        Software architecture resources on the webhas URL www.serc.nl/people/florijn/interests/arch.html    2001-08-30 14:57:34.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:57:34.0
        is an instance of web site about software architecture2001-08-30 14:57:34.0
        software architecture^2has definition The process of designing the global organization of a software system, including dividing software into subsystems, deciding how these will interact, and determining their interfaces2001-08-30 14:57:34.0
        involves deciding how the software is to be divided into subsystems and how the subsystems are to interact2001-08-30 14:57:34.0
        involves the development of a variety of high level views of the system2001-08-30 14:57:34.0
        is a kind of design2001-08-30 14:57:34.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:57:34.0
        is a synonym of architecture design2001-08-30 14:54:34.0
        plays a central role in software engineering2001-08-30 14:57:34.0
        see also software architecture2001-08-30 14:57:34.0
        see also software architecture^32001-08-30 14:57:34.0
        software architecture^3is a synonym of architectural model2001-08-30 14:57:34.0
        softwarecan be easily duplicated2001-08-30 14:57:33.0
        can have usability without utility^22001-08-30 14:57:33.0
        can have utility without usability2001-08-30 14:57:33.0
        Software Capability Maturity Modelcontains five levels: organizations start at level 1, and as their processes become better they can move up towards level 5.2001-08-30 14:57:34.0
        has definition A process standard containing five levels of maturity; developed at Carnegie Mellon University2001-08-30 14:57:34.0
        is a kind of process standard2001-08-30 14:57:35.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:34.0
        is abbreviated as CMM2001-08-30 14:57:34.0
        was developed at the Software Engineering Institute of Carnegie Mellon University2001-08-30 14:57:35.0
        software changeis a kind of process2001-08-30 14:57:35.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:57:35.0
        is often done without fully understanding the software design2001-08-30 14:57:35.0
        tends to introduce new bugs2001-08-30 14:57:35.0
        software crisishas definition The situation that is said to have existed since a least the late 1970's, characterized by an inability of software developers to deliver good quality software on time and on budget2001-08-30 14:57:35.0
        is a kind of situation2001-08-30 14:57:35.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:57:35.0
        software designeris a kind of designer2001-08-30 14:57:35.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:57:35.0
        may have to propose that the requirements be changed if new issues raised by design decisions have no solutions2001-08-30 14:57:35.0
        may have to revise previous decisions if new issues raised by design decisions have no solutions2001-08-30 14:57:35.0
        may not propose the same solution to a design issue as another designer2001-08-30 14:57:35.0
        should explore different paths through design space - investigating the consequences of choosing different alternatives when major issues arise2001-08-30 14:57:35.0
        software developerasks several evaluators to independently perform heuristic evaluations2001-08-30 14:57:35.0
        develops software2001-08-30 14:57:35.0
        has definition A person involved in the development of software2001-08-30 14:57:35.0
        has goal rewarding career, recognition, or the challenge of solving difficult problems or by being a well-respected 'guru' in a certain area of expertise2001-08-30 14:57:35.0
        is a kind of stakeholder2001-08-30 14:57:35.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:57:35.0
        is part of software development team2001-08-30 14:57:35.0
        maintains software2001-08-30 14:57:35.0
        most often works on custom software2001-08-30 14:57:35.0
        often fails to adequately involve users in the development process2001-08-30 14:57:35.0
        often has significantly less knowledge about modelling than about design and programming2001-08-30 14:57:35.0
        often underestimates software development time because it is very hard for people to assess the quality of software or to appreciate the amount of work involved in its development2001-08-30 14:57:35.0
        performs cost estimation2001-08-30 14:57:35.0
        reuses libraries and APIs delivered with a programming language2001-08-30 14:57:35.0
        wants software that is easy to design and maintain and which has parts that are easy to reuse2001-08-30 14:57:36.0
        can avoid creating design documents before starting to program but this is not a good idea and tends to result in an inflexible and overly-complex system2001-08-30 14:57:35.0
        may be judged on when they deliver product, not on its quality level2001-08-30 14:57:35.0
        may be reluctant to develop new libraries, APIs and frameworks because
        • developing anything reusable is seen as not directly benefiting the current customer
        • If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
        • Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
        2001-08-30 14:57:35.0
        may refuse to reuse components in which they lack confidence2001-08-30 14:57:35.0
        must ensure that the set of use cases is complete and that they are expressed consistently and unambiguously2001-08-30 14:57:35.0
        must inform the project manager about any problems2001-08-30 14:57:35.0
        must understand the customer's business environment, their problems and the available technology which can be used to solve the problems2001-08-30 14:57:35.0
        software developer practising user centred designdesigns software based on an understanding of the users' tasks2001-08-30 14:57:36.0
        designs the user interface following principles of good usability2001-08-30 14:57:36.0
        involves users in the decision making process as much as possible throughout development2001-08-30 14:57:36.0
        is a kind of software developer2001-08-30 14:57:36.0
        is a subtopic of 7.1 - User Centred Design2001-08-30 14:57:36.0
        knows the characteristics of her users allows her to design a system that matches their level of knowledge, their abilities and their preferences2001-08-30 14:57:36.0
        performs use case analysis2001-08-30 14:57:36.0
        must develop an understanding of the users of a system2001-08-30 14:57:36.0
        should ask users to work with and give their feedback about prototypes, on-line help and draft user manuals2001-08-30 14:57:36.0
        software developershould avoid the use of obscure features of technology because later versions of the technology might be changed in ways that are incompatible with how you have used it or the producer of the technology might go out of business or withdraw it from the market2001-08-30 14:57:35.0
        should be rewarded for developing reusable components2001-08-30 14:57:35.0
        should emphasize the use case or use cases which are central to the system, which represent a high risk because of problematic implementation, or which have high political or commercial value2001-08-30 14:57:35.0
        should identify all the use cases associated with the software product2001-08-30 14:57:35.0
        should not document a design only after it is complete2001-08-30 14:57:35.0
        should not omit design documentation2001-08-30 14:57:35.0
        should not use a design pattern without understanding in depth the forces that need to be balanced, and if another pattern would better balance the forces2001-08-30 14:57:35.0
        should only reuse technology that others are also reusing2001-08-30 14:57:35.0
        should realize that attention to quality of reusable components is essential so that potential re-users have confidence in them2001-08-30 14:57:35.0
        should realize that developing and reusing reusable components improves reliability, and can foster a sense of confidence2001-08-30 14:57:35.0
        should realize that developing reusable components will normally simplify the resulting design, independently of whether reuse actually occurs2001-08-30 14:57:35.0
        should work for several months on a testing team; this will heighten her awareness of quality problems she should avoid when she returns to designing software2001-08-30 14:57:36.0
        software developer using a frameworkfills in hooks and slots2001-08-30 14:57:36.0
        is a kind of software developer2001-08-30 14:57:36.0
        is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:57:36.0
        reuses the overall design envisioned by the framework's designer, and also a body of code that implements that design2001-08-30 14:57:36.0
        uses services that the framework provides, i.e. methods that perform useful functions, called the API2001-08-30 14:57:36.0
        software developer using an object oriented frameworkcreates concrete classes that extend the abstract classes in the framework2001-08-30 14:57:36.0
        is a kind of software developer using a framework2001-08-30 14:57:36.0
        is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:57:36.0
        software developmenthas challenge dividing up the work and ensuring that the teams communicate effectively and produce subsystems that properly connect with each other to produce a large but functioning system2001-08-30 14:57:36.0
        is labour-intensive2001-08-30 14:57:36.0
        is a kind of process2001-08-30 14:57:36.0
        is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:57:36.0
        cannot be automated like some other areas of engineering2001-08-30 14:57:36.0
        software development companyis a kind of organization2001-08-30 14:57:36.0
        is a subtopic of 10.13 - Difficulties and Risks in Quality Assurance2001-08-30 14:57:36.0
        may follow what is often called an opportunistic approach if it does not follow good software engineering practices2001-08-30 14:57:36.0
        should consider Consider quality assurance to be an integral and on-going part of development2001-08-30 14:57:36.0
        should encourage developers and maintainers to work for several months on a testing team; this will heighten their awareness of quality problems they should avoid when they return to designing software2001-08-30 14:57:36.0
        should give people tasks that fit their natural personalities2001-08-30 14:57:36.0
        should have a separate department to handle quality assurance2001-08-30 14:57:36.0
        should not sacrifice those activities that can ensure quality are often sacrificed in order to meet deadlines2001-08-30 14:57:36.0
        should provide developers with feedback about their performance in terms of producing quality software so they have something measurable to improve2001-08-30 14:57:36.0
        should publish statistics about quality (within the organization) so people who ignore it will be embarrassed2001-08-30 14:57:36.0
        should recognize the importance of quality2001-08-30 14:57:37.0
        should schedule adequate time for all quality assurance activities2001-08-30 14:57:37.0
        should train people in testing and inspecting techniques2001-08-30 14:57:37.0
        software development teamhas optimal team size for a given estimated development effort - doubling the size of a team will not halve the development time2001-08-30 14:57:37.0
        has part configuration management specialist2001-08-30 14:57:37.0
        has part database specialist2001-08-30 14:57:37.0
        has part hardware and third-party software specialist2001-08-30 14:57:37.0
        has part modeller2001-08-30 14:57:37.0
        has part project manager2001-08-30 14:57:37.0
        has part requirements specialist2001-08-30 14:57:37.0
        has part software architect2001-08-30 14:57:37.0
        has part software developer2001-08-30 14:57:37.0
        has part technical writer2001-08-30 14:57:37.0
        has part technology specialist2001-08-30 14:57:37.0
        has part tester2001-08-30 14:57:37.0
        has part user interface designer2001-08-30 14:57:37.0
        is a kind of team2001-08-30 14:57:37.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:57:37.0
        can be proud of evolving a high-quality product such that it continues to meet the needs of customers2001-08-30 14:57:37.0
        can be assigned to one subsystem of a larger project2001-08-30 14:57:37.0
        can be organized as a hierarchical manager-subordinate structure, as an egoless team, or somewhere in between2001-08-30 14:57:37.0
        can be positively affected by a certain amount of deadline pressure2001-08-30 14:57:37.0
        can work faster if
        • it has good access and rapport with its customers and users
        • if the project has a single user or customer
        2001-08-30 14:57:37.0
        can work more efficiently if it has skilled management and a mature development methodology that includes such things as quality assurance, risk management, and iterative development2001-08-30 14:57:37.0
        does not have constant size2001-08-30 14:57:37.0
        may be slowed down by
        • following an ad-hoc approach
        • poor access and rapport with the customers
        • delays caused by slow or poor decision making
        • many customers and users needing time to negotiate decisions and requiring compromises to satisfy everyone
        2001-08-30 14:57:37.0
        may make mistakes if they are under intense pressure to deliver software by a certain date and these mistakes can actually end up delaying them2001-08-30 14:57:37.0
        may often work on legacy system2001-08-30 14:57:37.0
        must coordinate with other software development teams working on the same project2001-08-30 14:57:37.0
        must understand only the overall software architecture, the details of its own subsystem, plus the interfaces to related subsystems2001-08-30 14:57:37.0
        should be sized such that the total amount of required knowledge and exchange of information is reduced2001-08-30 14:57:37.0
        should follow guidelines found in process standards2001-08-30 14:57:37.0
        should include an experienced modeller2001-08-30 14:57:37.0
        should include at least two people capable of performing each role, so that if somebody leaves or is sick, the project is not paralyzed2001-08-30 14:57:37.0
        should not add people to a team if it gets behind schedule, in the hope of catching up because the new people will take time to learn what has been done, and will require support from the other people in the meantime, slowing them down2001-08-30 14:57:37.0
        softwaredoes not wear out with use like other engineering artefacts2001-08-30 14:57:33.0
        software engineerapplies well-understood techniques in an organized and disciplined way2001-08-30 14:57:37.0
        assists the manager of the development team2001-08-30 14:57:37.0
        checks for valid generalizations by checking that:
        • superclasses and subclasses have unambiguous names
        • each subclass retains its distinctiveness throughout its life
        • all the inherited features make sense in each subclass
        2001-08-30 14:57:38.0
        communicates with other software engineers orally and in writing2001-08-30 14:57:38.0
        designs software systems2001-08-30 14:57:38.0
        fills in certain missing details of a framework to complete the application or subsystem it represents2001-08-30 14:57:38.0
        has definition A person who has education in, and experience performing software engineering; an engineer who specializes in software2001-08-30 14:57:38.0
        has purpose to solve problems economically by developing high quality software2001-08-30 14:57:38.0
        is a kind of engineer2001-08-30 14:57:38.0
        is a kind of software developer2001-08-30 14:57:38.0
        is a subtopic of 1.1 - The Nature of Software2001-08-30 14:57:38.0
        is often not educated as an engineer2001-08-30 14:57:38.0
        is rarely taught interviewing skills2001-08-30 14:57:38.0
        makes design decision by using all the knowledge at his or her disposal, including:
        • Knowledge of the requirements
        • Knowledge of the design as created so far
        • Knowledge of the technology available
        • Knowledge of software design principles and 'best practices'
        • Knowledge about what has worked well in the past
        2001-08-30 14:57:38.0
        performs domain analysis by gathering information from domain experts, books, software and its documentation, and any other available documents2001-08-30 14:57:38.0
        performs interviewing as part of requirements gathering2001-08-30 14:57:38.0
        performs observation as part of requirements gathering2001-08-30 14:57:38.0
        reuses commercial off-the-shelf software by adding extra code called glue code which is often written using scripting languages which run using an interpreter2001-08-30 14:57:38.0
        reuses complete applications and adapts them to the needs of the client by adding a small amount of extra software that makes the applications behave in special ways the client wants2001-08-30 14:57:38.0
        reuses expertise when they have many years of experience working on projects and can often save considerable time when it comes to developing new systems because they do not need to re-think many issues: their past experience tells them what needs to be done2001-08-30 14:57:38.0
        reuses frameworks2001-08-30 14:57:38.0
        reuses implemented algorithms, data structures and other facilities contained in libraries of classes or procedures, or of powerful commands built into languages and operating systems2001-08-30 14:57:38.0
        reuses standard designs and algorithms described in books, standards documents and articles by implementing them if they are appropriate to the current task2001-08-30 14:57:38.0
        uses use case analysis to help define the tasks that the user interface must help the user perform2001-08-30 14:57:39.0
        can design highly maintainable software by anticipating future changes and adding flexibility2001-08-30 14:57:38.0
        can write detailed requirements before starting to design the system only if he or she is developing software in a well-known domain and using well-known technology2001-08-30 14:57:38.0
        cannot develop a perfect user interface without the input of users2001-08-30 14:57:38.0
        cannot know whether a system meets the customer's needs until it is delivered and in use2001-08-30 14:57:38.0
        does not have to become an expert in the domain to do domain analysis2001-08-30 14:57:38.0
        does not need to exceed quality objectives which helps them avoid spending more effort than is necessary2001-08-30 14:57:38.0
        software engineer doing interviewingasks
        • about specific details such as maximums and minimums, whether there are any exceptions to rules and what possible changes might be anticipated
        • about the stakeholder's vision for the future
        • about any alternative ideas, or how they would feel about alternative ideas you have
        • what would be a minimally acceptable solution to the problem
        • about other sources of information
        • the interviewee to draw diagrams or such things as the flow of information, the chain of command or how some technology works
        2001-08-30 14:57:39.0
        is a kind of software engineer2001-08-30 14:57:39.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:57:39.0
        prepares an extensive list of questions2001-08-30 14:57:39.0
        must develop listening skills and empathy for users and customers2001-08-30 14:57:39.0
        should allow several hours for each interview2001-08-30 14:57:39.0
        should hold a series of interviews with the most important stakeholders2001-08-30 14:57:39.0
        should interview as many stakeholders as possible, as well as users of competing products, marketing personnel, and people involved with other systems that may interact in any way with the proposed system2001-08-30 14:57:39.0
        software engineermay become the manager of a development team at some point in her career2001-08-30 14:57:38.0
        may have to optimize certain aspects of designs - achieving the best possible levels of certain qualities, while not exceeding a certain budget and at the same time meeting objectives for the other qualities2001-08-30 14:57:38.0
        may not reuse software because there are no reusable components available to reuse, or because they do not feel confident about reusing whatever is available2001-08-30 14:57:38.0
        may perform project management2001-08-30 14:57:38.0
        must be able to find reusable components2001-08-30 14:57:38.0
        must be able to write clear documentation2001-08-30 14:57:38.0
        must be understand the software architecture of a system they are working on2001-08-30 14:57:38.0
        must effectively communicate with people, to understand how they work and to understand what impact any proposed software may have on these people's productivity2001-08-30 14:57:38.0
        must ensure that his systems can be produced within a limited budget and by a certain due date2001-08-30 14:57:38.0
        must have sufficient general education, plus training in the technology to be used2001-08-30 14:57:38.0
        must plan budget and schedule which requires a great deal of knowledge about what is required to produce a system, and how long each activity should take2001-08-30 14:57:38.0
        must realize that the vicious circle of software reuse exists and costs money - in order to save money in the longer term, an investment in reusable code is justified2001-08-30 14:57:38.0
        should adjust the requirements or design as soon as important changes are discovered2001-08-30 14:57:38.0
        should avoid duplication of requirements so as to help ensure consistency2001-08-30 14:57:38.0
        should avoid obscure features of any technology2001-08-30 14:57:38.0
        should avoid requirements creep2001-08-30 14:57:38.0
        should avoid technology sold by just a single vendor and which has relatively few other customers2001-08-30 14:57:38.0
        should balance the benefits of the use of third-party technology with the risks of problems2001-08-30 14:57:38.0
        should be aware of things which may change2001-08-30 14:57:38.0
        should be able to use cost-benefit analysis to choose among alternatives2001-08-30 14:57:38.0
        should build flexibility and other aspects of maintainability into the software from the start so that changes are easier to make2001-08-30 14:57:38.0
        should check the consistency of requirements with any standards, with other requirements in the document, with higher-level requirements and with the requirements for other subsystems2001-08-30 14:57:38.0
        should combine the best features of each process model2001-08-30 14:57:38.0
        should continually interact with users and clients to keep up-to-date on their needs2001-08-30 14:57:38.0
        should create prototypes to try out the technology you will be using2001-08-30 14:57:38.0
        should design system to meet quality objectives2001-08-30 14:57:38.0
        should design user interface after doing some domain analysis and defining the problem2001-08-30 14:57:38.0
        should design for flexibility to accommodate potential changes2001-08-30 14:57:38.0
        should design with change in mind2001-08-30 14:57:38.0
        should develop negotiating and other 'people' skills2001-08-30 14:57:38.0
        should develop prototypes based on rough requirements to check out the validity of the ideas or the reliability of the technology before writing detailed requirements2001-08-30 14:57:38.0
        should divide a system into smaller subsystems, so that each one is naturally simpler2001-08-30 14:57:38.0
        should evaluate the requirements in a project where requirements have already been determined to ensure that the requirements on which is based are of good quality2001-08-30 14:57:38.0
        should follow a good requirements gathering and analysis process2001-08-30 14:57:38.0
        should follow the IEEE/ACM code of ethics2001-08-30 14:57:38.0
        should have a mentor2001-08-30 14:57:38.0
        should have user interface design skills2001-08-30 14:57:38.0
        should learn how users and customers think and behave so it will be easier to produce software that meets their needs2001-08-30 14:57:38.0
        should make their designs reusable by designing and documenting software so that it is understandable and flexible enough be used in a variety of different systems2001-08-30 14:57:38.0
        should narrow the scope^2 of a system if possible by defining a more precise problem2001-08-30 14:57:38.0
        should not accept a contract where she is required to implement requirements with no changes allowed2001-08-30 14:57:38.0
        should not add unnecessary new features2001-08-30 14:57:38.0
        should not ignore long-term needs of the customers2001-08-30 14:57:38.0
        should not rush changes2001-08-30 14:57:38.0
        should not undertake a serious software project without doing domain analysis2001-08-30 14:57:39.0
        should participate in promoting and marketing the project2001-08-30 14:57:39.0
        should perform quality assurance activities on each change in a system2001-08-30 14:57:39.0
        should practice on prototypes or systems that are of lesser importance in order to gain sufficient experience in a particular technology2001-08-30 14:57:39.0
        should prototype the system early, especially those parts that involve complex algorithms, in order to determine whether performance will be satisfactory2001-08-30 14:57:39.0
        should recognize activities that are not consistent with the goal of solving customers' problems, such as adding unnecessary features, and situations when it would be most cost effective not to develop software at all, to develop simpler software or to purchase existing software2001-08-30 14:57:39.0
        should redesign parts of an over-complex system as necessary2001-08-30 14:57:39.0
        should regularly evaluate how the system will impact all the stakeholders, and work closely with them to foster increased understanding of issues2001-08-30 14:57:39.0
        should remove features that are not needed2001-08-30 14:57:39.0
        should reuse others' work, rather than re-developing software that others have already developed2001-08-30 14:57:39.0
        should set objectives for quality when starting a project2001-08-30 14:57:39.0
        should study Peter G. Neumann's Risks Digest to ensure they do not recreate the failures listed in it2001-08-30 14:57:39.0
        should take time to understand software before making changes2001-08-30 14:57:39.0
        should understand process standards2001-08-30 14:57:39.0
        should understand the application domain so he or she can communicate effectively with clients and users2001-08-30 14:57:39.0
        should understand basically how their managers run projects2001-08-30 14:57:39.0
        should use tools that aid in understanding the structure of a software system2001-08-30 14:57:39.0
        should use widely used technology because it is more likely to be supported and have had its defects removed2001-08-30 14:57:39.0
        should work with the customer to resolve any problems with requirements in a project where requirements have already been determined2001-08-30 14:57:39.0
        software engineeringhas challenge accurately forecasting how much time it will take either to develop a system, or to make a specific set of changes2001-08-30 14:57:39.0
        has definition from the Canadian Standards Association The systematic activities involved in the design, implementation and testing of software to optimize its production and support2001-08-30 14:57:39.0
        has definition from the IEEE (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1)2001-08-30 14:57:39.0
        has definition The process of solving customers problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints. The application of engineering to software systems of any kind2001-08-30 14:57:39.0
        has goal solving customers' problems2001-08-30 14:57:39.0
        has part ensuring that maintenance and evolution of software is done in a systematic way2001-08-30 14:57:39.0
        has part evolution2001-08-30 14:57:39.0
        has part maintenance2001-08-30 14:57:39.0
        has part managing software projects2001-08-30 14:57:39.0
        has part programming2001-08-30 14:57:39.0
        has part programming2001-08-30 14:57:39.0
        has part project management2001-08-30 14:57:39.0
        involves applying well-understood techniques in an organized and disciplined way2001-08-30 14:57:39.0
        involves the translation of higher-level designs into particular programming languages2001-08-30 14:57:39.0
        is / labour-intensive2001-08-30 14:57:39.0
        is highly iterative2001-08-30 14:57:39.0
        is undergoing development in its technology and techniques2001-08-30 14:57:39.0
        is a kind of process2001-08-30 14:57:39.0
        is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:57:39.0
        is normally organized into software projects2001-08-30 14:57:39.0
        sometimes consists of developing completely new software2001-08-30 14:57:39.0
        uses resources such as the time and money of the stakeholders, and the CPU-time and memory of computers2001-08-30 14:57:40.0
        Software Engineering Body of Knowledgehas URL www.swebok.org    2001-08-30 14:57:40.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:40.0
        is an instance of software engineering web site2001-08-30 14:57:40.0
        software engineering bookis a kind of book2001-08-30 14:57:40.0
        Software Engineering Institute at Carnegie Mellon Universityhas web site www.sei.cmu.edu    2001-08-30 14:57:40.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:40.0
        is an instance of organization2001-08-30 14:57:40.0
        software engineering magazineis a kind of magazine2001-08-30 14:57:40.0
        software engineering processhas definition A process used by software engineers Normally refers to specific approaches to performing software engineering or specific software engineering activities such as requirements analysis or testing2001-08-30 14:57:40.0
        is a synonym of development2001-08-30 14:57:40.0
        software engineering team modelis a kind of subject2001-08-30 14:57:40.0
        is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:57:40.0
        software engineeringusually consists of modifying software that has been already written - this is because software is normally continually changed over a period of years until it becomes obsolete2001-08-30 14:57:40.0
        software engineering web siteis a kind of engineering web site2001-08-30 14:57:40.0
        Software Engineering, a Practitioner's Approachhas author R. Pressman2001-08-30 14:57:40.0
        has ISBN number 0-07-365578-32001-08-30 14:57:40.0
        has web site www.mhhe.com/engcs/compsci/pressman    2001-08-30 14:57:40.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:40.0
        is an instance of software engineering book2001-08-30 14:57:40.0
        was published by McGraw Hill2001-08-30 14:57:40.0
        was published in 20002001-08-30 14:57:40.0
        Software Engineering: Theory and Practicehas author Shari Lawrence Pfleeger2001-08-30 14:57:40.0
        has ISBN number ISBN 0-13-624842-X2001-08-30 14:57:40.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:41.0
        is an instance of software engineering book2001-08-30 14:57:41.0
        was published by Prentice Hall2001-08-30 14:57:41.0
        was published in 19982001-08-30 14:57:41.0
        software engineering^2developed out of computer science2001-08-30 14:57:41.0
        has been recognized since the mid 1990s as a distinct branch of the engineering profession2001-08-30 14:57:41.0
        has definition The field of study of how to effectively do the process of software engineering2001-08-30 14:57:41.0
        is a kind of engineering2001-08-30 14:57:41.0
        is a subtopic of 1.2 - What is Software Engineering?2001-08-30 14:57:41.0
        is taught in universities as distinct from programs in computer science and computer engineering2001-08-30 14:57:41.0
        Software Engineering^3has author Ian Sommerville2001-08-30 14:57:41.0
        has ISBN number 0-201-39815-X2001-08-30 14:57:41.0
        is a subtopic of 1.10 - Software and Software Engineering - References2001-08-30 14:57:41.0
        is an instance of software engineering book2001-08-30 14:57:41.0
        was published by Addison-Wesley2001-08-30 14:57:41.0
        was published in 20002001-08-30 14:57:41.0
        Software Inspectionhas author T. Gilb, D. Graham, S. Finzi2001-08-30 14:57:41.0
        has ISBN number 0-201-63181-42001-08-30 14:57:41.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:41.0
        is an instance of book about software inspection2001-08-30 14:57:41.0
        was published by Addison-Wesley2001-08-30 14:57:41.0
        was published in 19932001-08-30 14:57:41.0
        Software Inspection An Industry Best Practicehas editor D.A. Wheeler, B. Brykczynski, and R.N. Meeson, Jr.2001-08-30 14:57:41.0
        has ISBN number 0-818-67340-02001-08-30 14:57:41.0
        has URL www.computer.org/cspress/catalog/bp07340.htm    2001-08-30 14:57:41.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:41.0
        is an instance of book about software inspection2001-08-30 14:57:41.0
        was published by IEEE CS Press2001-08-30 14:57:41.0
        was published in 19962001-08-30 14:57:41.0
        software libraryis a kind of subject2001-08-30 14:57:41.0
        is a subtopic of 1.9 - Difficulties And Risks In Software Engineering as a Whole2001-08-30 14:57:41.0
        may have bugs and incompatibilities2001-08-30 14:57:41.0
        softwaremust be designed with users' input otherwise it may not be usable2001-08-30 14:57:33.0
        software process modelis a synonym of process model2001-08-30 14:57:42.0
        software projectis a kind of subject2001-08-30 14:57:42.0
        is a subtopic of 1.6 - Software Engineering Projects2001-08-30 14:57:42.0
        is often completed behind schedule and over budget, or are not completed at all2001-08-30 14:57:42.0
        often has problem failure to stick to cost and time because of the inherent complexity of software, the relative immaturity of software engineering and its technologies, lack of knowledge and experience on the part of software engineers, the inherent human tendency towards over-confidence, , and pressure to offer excessively low prices and short development times in order to obtain contracts or make sales2001-08-30 14:57:42.0
        does not have economy of scale as it gets larger due to the increasingly large amount of co-ordination involved2001-08-30 14:57:42.0
        Software Project Managementhas author B. Hughes and M. Cotterell2001-08-30 14:57:42.0
        has ISBN number 0-07-709505-72001-08-30 14:57:42.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:42.0
        is an instance of book about project management2001-08-30 14:57:42.0
        was published by McGraw-Hill    2001-08-30 14:57:42.0
        was published in 19992001-08-30 14:57:42.0
        software projectmay be at risk from models that are incomplete, incorrect or not flexible enough2001-08-30 14:57:42.0
        should not be undertaken without a sound domain analysis2001-08-30 14:57:42.0
        Software Project Survival Guidehas author S. McConnell2001-08-30 14:57:42.0
        has ISBN number 1-57231-621-2001-08-30 14:57:42.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:42.0
        is an instance of book about project management2001-08-30 14:57:42.0
        was published by Microsoft Press2001-08-30 14:57:42.0
        was published in 19972001-08-30 14:57:42.0
        software projectusually involves modifying an existing system2001-08-30 14:57:42.0
        software qualityis hard to assess2001-08-30 14:57:42.0
        is a kind of quality2001-08-30 14:57:42.0
        is a subtopic of 1.5 - Software Quality2001-08-30 14:57:42.0
        Software Requirements Engineering, Second Editionhas editor R. Thayer, M. Dorfman and S. Bailin2001-08-30 14:57:42.0
        has ISBN number 0-8186-7738-42001-08-30 14:57:42.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:57:42.0
        is an instance of book about requirements analysis2001-08-30 14:57:42.0
        was published by IEEE CS Press2001-08-30 14:57:42.0
        was published in 19972001-08-30 14:57:42.0
        Software Reusehas author I. Jacobson2001-08-30 14:57:42.0
        has ISBN number 0-201-92476-52001-08-30 14:57:42.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:57:42.0
        is an instance of book about software reuse2001-08-30 14:57:43.0
        was published by Addison-Wesley2001-08-30 14:57:43.0
        was published in 19932001-08-30 14:57:43.0
        Software Reuse Techniques: Adding Reuse to the System Development Processhas author C. McClure2001-08-30 14:57:43.0
        has ISBN number 0-136-61000-52001-08-30 14:57:43.0
        has web site www.reusability.com    2001-08-30 14:57:43.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:57:43.0
        is an instance of book about software reuse2001-08-30 14:57:43.0
        was published by Prentice-Hall2001-08-30 14:57:43.0
        was published in 19972001-08-30 14:57:43.0
        software reuse web siteis a kind of web site2001-08-30 14:57:43.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:57:43.0
        Software Runawayshas author R.L. Glass2001-08-30 14:57:43.0
        has ISBN number 1-57231-621-72001-08-30 14:57:43.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:43.0
        is an instance of book about project management2001-08-30 14:57:43.0
        was published by Prentice Hall2001-08-30 14:57:43.0
        was published in 19982001-08-30 14:57:43.0
        software systembecomes 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 features2001-08-30 14:57:43.0
        is better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors2001-08-30 14:57:43.0
        is a kind of system2001-08-30 14:57:43.0
        is a subtopic of 1.9 - Difficulties And Risks In Software Engineering as a Whole2001-08-30 14:57:43.0
        is typically initially developed as a prototype2001-08-30 14:57:43.0
        undergoes evolution over its life-span2001-08-30 14:57:43.0
        can automate business process2001-08-30 14:57:43.0
        can be divided in many ways:2001-08-30 14:57:43.0
        must have well-described requirements if other systems or subsystems are going to use its services or communicate with it2001-08-30 14:57:43.0
        should be designed for flexibility right from the start2001-08-30 14:57:43.0
        Software Testing and Continuous Quality Improvementhas author W.E. Lewis2001-08-30 14:57:43.0
        has ISBN number 0-84939-833-92001-08-30 14:57:43.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:43.0
        is an instance of book about software testing2001-08-30 14:57:43.0
        was published by CRC Press2001-08-30 14:57:43.0
        was published in 20002001-08-30 14:57:43.0
        software testing hotlisthas author Bret Pettichord2001-08-30 14:57:43.0
        has URL www.io.com/~wazmo/qa    2001-08-30 14:57:43.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:44.0
        is an instance of web site about software testing2001-08-30 14:57:44.0
        software testing newsgrouphas address news:comp. software.testing2001-08-30 14:57:44.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:44.0
        is an instance of newsgroup2001-08-30 14:57:44.0
        software testing newsgroup FAQhas URL www.faqs.org/faqs/software-eng/testing-faq    2001-08-30 14:57:44.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:44.0
        is an instance of web site about software testing2001-08-30 14:57:44.0
        software testing online resourceshas author Roland Untch2001-08-30 14:57:44.0
        has URL www.mtsu.edu/~storm    2001-08-30 14:57:44.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:44.0
        is an instance of web site about software testing2001-08-30 14:57:44.0
        source codehas part comment2001-08-30 14:57:44.0
        has part line of code2001-08-30 14:57:44.0
        is a kind of code2001-08-30 14:57:44.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:57:44.0
        is a subtopic of The Basics of Java2001-08-30 14:57:44.0
        is stored in source file2001-08-30 14:57:44.0
        cannot always be made completely obvious without comments2001-08-30 14:57:44.0
        should be written in lines no longer than 80 characters so that readers do not have to scroll right, and so that the code always prints correctly2001-08-30 14:57:44.0
        should consist of between about 25% and 50% comments2001-08-30 14:57:44.0
        should use consistent layout style2001-08-30 14:57:44.0
        source filecontains source code2001-08-30 14:57:44.0
        is a kind of component2001-08-30 14:57:44.0
        is a kind of file2001-08-30 14:57:44.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:57:44.0
        is a subtopic of The Basics of Java2001-08-30 14:57:44.0
        specializationhas definition The inverse of generalization2001-08-30 14:57:45.0
        has purpose to provide details of a particular use case in a group of use cases that are described in a generalization2001-08-30 14:57:45.0
        is a kind of use case2001-08-30 14:57:45.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:45.0
        is used much like subclasses in a class diagram2001-08-30 14:57:45.0
        specificationhas definition A document that gives complete detail about something. Normally implicitly means requirements specification, but the term design specification is sometimes also used to mean a detailed and precise design document2001-08-30 14:57:45.0
        is a kind of document2001-08-30 14:57:45.0
        is a subtopic of 4.7 - Types of Requirements Document2001-08-30 14:57:45.0
        specification languageis a kind of language2001-08-30 14:57:45.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:57:45.0
        spiral modelfollows principles:2001-08-30 14:57:45.0
        has definition An incremental process model that explicitly embraces prototyping and an iterative approach to software development2001-08-30 14:57:45.0
        has steps
        • a project undergoes a large number of cycles, starting with a small prototype
        • each loop of the spiral follows a mini-waterfall process
        • before each cycle of the spiral ends, a review is held
        • subsequent cycles become official releases
        • the cycling only ends when the system is finally retired
        2001-08-30 14:57:45.0
        is a kind of process model2001-08-30 14:57:45.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:57:45.0
        suggests that the first thing to do before embarking on each new loop of the spiral is to decide what are the major difficulties to be handled2001-08-30 14:57:45.0
        spoken wordhas advantages
        • essential when there is no screen or only a small screen (e.g. on a telephone system)
        • mportant for blind people who otherwise must rely on tools that convert text into Braille
        2001-08-30 14:57:45.0
        has problems
        • can be overheard, violating privacy
        • can be annoying
        • sequential, so the user has to request replay if he or she missed part of it
        • slower for most users than reading text
        • not usable by deaf people
        2001-08-30 14:57:45.0
        is a kind of coding technique2001-08-30 14:57:45.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:45.0
        stable architecturehas definition An architecture that permits changes to a system to be made without the architecture having to change2001-08-30 14:57:45.0
        is a kind of software architecture2001-08-30 14:57:45.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:57:45.0
        stable sorthas definition A sort algorithm that leaves items, as much as possible, in the same order they were in prior to sorting2001-08-30 14:57:45.0
        is a kind of algorithm2001-08-30 14:57:45.0
        is a subtopic of 10.4 - Defects in Numerical Algorithms2001-08-30 14:57:45.0
        stakeholderhas definition A person or organization that may be affected by the success or failure of a project or organization2001-08-30 14:57:45.0
        is a kind of person2001-08-30 14:57:46.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:57:46.0
        must agree on requirements2001-08-30 14:57:46.0
        stamp couplinghas definition A form of coupling in which two components modify or access data in the same object2001-08-30 14:57:46.0
        has disadvantage if the shared class changes, then all the classes that access its variables will likely have to change2001-08-30 14:57:46.0
        is a kind of coupling2001-08-30 14:57:46.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:46.0
        can be reduced by requiring that all variables of the shared class only be accessible via methods2001-08-30 14:57:46.0
        standardhas definition A document describing a body of well-respected information that engineers should conform to in order to ensure they are following best-practice, and will consistently produce good-quality products2001-08-30 14:57:46.0
        is a kind of criterion2001-08-30 14:57:46.0
        is a kind of document2001-08-30 14:57:46.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:57:46.0
        start statechanges to a regular state when the system or object starts running2001-08-30 14:57:46.0
        contains one unlabelled transition pointing out of it2001-08-30 14:57:46.0
        has definition The state a system or object is in when it starts running2001-08-30 14:57:46.0
        is a kind of state2001-08-30 14:57:46.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:46.0
        is represented by start state symbol in a state diagram2001-08-30 14:57:46.0
        start state symbolis a kind of symbol in state diagram2001-08-30 14:57:46.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:46.0
        is drawn as a black circle2001-08-30 14:57:46.0
        statedetermines the way an object or system behaves in response to any events that occur2001-08-30 14:57:46.0
        has definition A situation in which a system or object behaves in a specific way in response to any events that occur2001-08-30 14:57:46.0
        is a kind of subject2001-08-30 14:57:46.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:46.0
        is represented by state symbol in a state diagram2001-08-30 14:57:46.0
        state diagramcontains one or more end states2001-08-30 14:57:46.0
        contains only one start state2001-08-30 14:57:46.0
        describes the externally visible behaviour of a system or of an individual object2001-08-30 14:57:46.0
        has definition A UML diagram showing states and transitions, used to describe the externally visible behaviour of a system or of an individual object2001-08-30 14:57:46.0
        has part action symbol2001-08-30 14:57:46.0
        has part activity symbol2001-08-30 14:57:47.0
        has part end state2001-08-30 14:57:47.0
        has part guard condition2001-08-30 14:57:47.0
        has part start state2001-08-30 14:57:47.0
        is a kind of UML diagram2001-08-30 14:57:47.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:57:47.0
        shows how systems behave internally2001-08-30 14:57:47.0
        can be nested inside a state of another state diagram2001-08-30 14:57:46.0
        usually shows states and events concerning only one class2001-08-30 14:57:47.0
        state symbolis a kind of symbol in state diagram2001-08-30 14:57:47.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:47.0
        is drawn as a rounded rectangle that contains the name of the state2001-08-30 14:57:47.0
        statementis a kind of programming language construct2001-08-30 14:57:47.0
        is a subtopic of The Basics of Java2001-08-30 14:57:47.0
        should be not more than one line long if possible2001-08-30 14:57:47.0
        staticis a subtopic of The Basics of Java2001-08-30 14:57:47.0
        is an instance of Java keyword2001-08-30 14:57:47.0
        is used to mark a class variable or class methodlink: chapter2section2.8.html#625, 2001-08-30 14:57:47.0
        static methodhas definition A synonym for class method, so named because one declares a method to be a class method in Java and C++ using the 'static' keyword'2001-08-30 14:57:47.0
        is a synonym of class method2001-08-30 14:57:47.0
        static variableis a synonym of class variable2001-08-30 14:57:47.0
        stereotypehas definition A way to use some of the standard UML notation to represent something special2001-08-30 14:57:47.0
        has example the «interface» notation for indicating an interface in a UML diagram by drawing it as a class rectangle, with the expression «interface» at the top, and (optionally) a list of supported operations2001-08-30 14:57:47.0
        is a kind of representation2001-08-30 14:57:47.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:57:47.0
        stream classis a kind of Java class2001-08-30 14:57:48.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:47.0
        stress testinghas definition Testing on minimal configurations and at peak loads or with missing resources2001-08-30 14:57:48.0
        is a kind of testing2001-08-30 14:57:48.0
        is a subtopic of 10.6 - Defects in Handling Stress and Unusual Situations2001-08-30 14:57:48.0
        Stringconsists of a collection of characterslink: chapter2section2.8.html#821, 2001-08-30 14:57:48.0
        is a subtopic of The Basics of Java2001-08-30 14:57:48.0
        is an instance of Java collection class2001-08-30 14:57:48.0
        uses zero-based indexing2001-08-30 14:57:48.0
        structural modellinghas definition A type of modelling used to represent the data or architecture of software2001-08-30 14:57:48.0
        involves representing such things as the classes and objects present in the domain or in the software2001-08-30 14:57:48.0
        is a kind of modelling2001-08-30 14:57:48.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:48.0
        structural testingis a synonym of glass-box testing2001-08-30 14:57:48.0
        structureis a kind of data abstraction2001-08-30 14:57:48.0
        is a subtopic of 2.1 - What is Object Orientation?2001-08-30 14:57:48.0
        stubhas definition A piece of code that has the same interface (i.e. API) as the lower level layers, but which does not perform any real computations or manipulate any real data2001-08-30 14:57:48.0
        is a kind of procedural abstraction2001-08-30 14:57:48.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:48.0
        is used in top-down testing2001-08-30 14:57:48.0
        returns a fixed default value2001-08-30 14:57:48.0
        subclasshas definition A class that is an extension of another class, and hence inherits from the other class2001-08-30 14:57:48.0
        inherits all instance variables and methods defined in its ancestor classeslink: chapter2section2.8.html#933, 2001-08-30 14:57:48.0
        is a kind of class2001-08-30 14:57:49.0
        is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:57:48.0
        is a synonym of derived class2001-08-30 14:55:14.0
        subjectis a kind of kbTop2001-08-30 14:57:49.0
        substatehas definition A state within a state2001-08-30 14:57:49.0
        is a kind of state2001-08-30 14:57:49.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:49.0
        substringhas arguments starting position and ending position + 1link: chapter2section2.8.html#833, 2001-08-30 14:57:49.0
        has example
         String sub = "submariner".substring(0,3);  // = "sub"
        link: chapter2section2.8.html#834, 2001-08-30 14:57:49.0
        has purpose to extract part of a stringlink: chapter2section2.8.html#832, 2001-08-30 14:57:49.0
        has result a new String with a sequence of characters from the original stringlink: chapter2section2.8.html#832, 2001-08-30 14:57:49.0
        is a subtopic of The Basics of Java2001-08-30 14:57:49.0
        is an instance of Java method2001-08-30 14:57:49.0
        subsystemhas definition A system that is part of a larger system, and which has a definite interface2001-08-30 14:57:49.0
        is a kind of system2001-08-30 14:57:49.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:57:49.0
        can be divided up into one or more packages2001-08-30 14:57:49.0
        subsystem diagramhas definition A UML diagram showing details of a subsystem, including aspects of its operations, its specification and its realization2001-08-30 14:57:49.0
        is a kind of UML diagram2001-08-30 14:57:49.0
        is a subtopic of 9.4 - Software Architecture2001-08-30 14:57:49.0
        Sun's official web sitehas URL java.sun.com    2001-08-30 14:57:49.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:57:49.0
        is an instance of web site about Java2001-08-30 14:57:50.0
        superis a subtopic of The Basics of Java2001-08-30 14:57:50.0
        is an instance of Java keyword2001-08-30 14:57:50.0
        superclasshas definition A class of which another class is an extension, and hence defines properties that are inherited by the other class2001-08-30 14:57:50.0
        is a kind of class2001-08-30 14:57:50.0
        is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:57:50.0
        is a synonym of base class2001-08-30 14:54:38.0
        swimlanehas definition A division in a UML activity diagram showing the activities performed by a particular object2001-08-30 14:57:50.0
        is a kind of symbol in activity diagram2001-08-30 14:57:50.0
        is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:57:50.0
        is drawn as a box that form a column, containing activities associated with one class2001-08-30 14:57:50.0
        Swing componentis a kind of Java user interface component2001-08-30 14:57:50.0
        is a subtopic of 7.7 - Implementing a Simple GUI in Java2001-08-30 14:57:50.0
        switchis a subtopic of The Basics of Java2001-08-30 14:57:50.0
        is an instance of Java keyword2001-08-30 14:57:50.0
        symbolis a kind of subject2001-08-30 14:57:50.0
        symbol in activity diagramis a kind of symbol2001-08-30 14:57:50.0
        is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:57:50.0
        symbol in collaboration diagramis a kind of symbol2001-08-30 14:57:50.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:50.0
        symbol in interaction diagramis a kind of symbol2001-08-30 14:57:50.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:50.0
        symbol in sequence diagramis a kind of symbol2001-08-30 14:57:51.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:50.0
        symbol in state diagramis a kind of symbol2001-08-30 14:57:51.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:57:51.0
        symbol in UML diagramis a kind of symbol2001-08-30 14:57:51.0
        is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:57:51.0
        symbol in use case diagramis a kind of symbol2001-08-30 14:57:51.0
        is a subtopic of 8.1 - Interaction Diagrams2001-08-30 14:57:51.0
        symmetric connectionhas definition A connection in which the client communicates with the server in the same way as the server communicates with the client2001-08-30 14:57:51.0
        is a kind of connection2001-08-30 14:57:51.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:57:51.0
        symmetric reflexive associationhas definition A reflexive association in which the roles at either end are identical2001-08-30 14:57:51.0
        is a kind of reflexive association2001-08-30 14:57:51.0
        is a subtopic of 5.3 - Associations and Multiplicity2001-08-30 14:57:51.0
        synchronizationhas definition A mechanism to guarantee that only one thread can access an object at a time2001-08-30 14:57:51.0
        has purpose to avoid problems that can arise when two threads can both modify the same object at the same timelink: chapter2section2.8.html#1106, 2001-08-30 14:57:51.0
        is a kind of mechanismlink: chapter2section2.8.html#1108, 2001-08-30 14:57:51.0
        is a kind of practice2001-08-30 14:57:51.0
        is a subtopic of The Basics of Java2001-08-30 14:57:51.0
        synchronizedhas purpose to ensure that no other thread can access an object until the synchronized method terminates2001-08-30 14:57:51.0
        is a subtopic of The Basics of Java2001-08-30 14:57:51.0
        is an instance of Java keyword2001-08-30 14:57:52.0
        synonymis a kind of kbTop2001-08-30 14:57:52.0
        systemexists even if its components change over the course of time, or are replaced by equivalent components2001-08-30 14:57:52.0
        has definition A logical entity, having a set of definable responsibilities or objectives, and consisting of hardware, software or both2001-08-30 14:57:52.0
        has part component2001-08-30 14:57:52.0
        has part hardware2001-08-30 14:57:52.0
        has part module2001-08-30 14:57:52.0
        has part software2001-08-30 14:57:52.0
        has part subsystem2001-08-30 14:57:52.0
        has scope2001-08-30 14:57:52.0
        is complex if its scope is broad2001-08-30 14:57:52.0
        is in a state until an event occurs that causes it to change state2001-08-30 14:57:52.0
        is a kind of subject2001-08-30 14:57:52.0
        is divided up into subsystems2001-08-30 14:57:52.0
        can have specification which is then implemented by a collection of components2001-08-30 14:57:52.0
        system domain modelcontains domain classes, associations and attributes2001-08-30 14:57:52.0
        contains elements that represent things in the domain2001-08-30 14:57:52.0
        is a kind of model2001-08-30 14:57:52.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:52.0
        is a synonym of domain model2001-08-30 14:55:23.0
        is developed during requirements analysis, or the early stages of design2001-08-30 14:57:52.0
        omits many classes that are needed to build a complete system; in fact it can contain less than half the classes of the system2001-08-30 14:57:52.0
        only models things that will actually be implemented2001-08-30 14:57:52.0
        does not contain elements that do not represent things in the domain, but are needed to build a complete system2001-08-30 14:57:52.0
        system modelcontains
        • the system domain model
        • user interface classes
        • classes representing aspects of the system's architecture such as clients, servers, files, and databases
        • utility classes that make parts of the system more reusable, easier to maintain or easier to connect to other systems
        2001-08-30 14:57:52.0
        contains elements that do not represent things in the domain, but are needed to build a complete system2001-08-30 14:57:52.0
        contains elements that represent things in the domain2001-08-30 14:57:52.0
        is a kind of model2001-08-30 14:57:52.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:52.0
        only models things that will actually be implemented2001-08-30 14:57:52.0
        system model class diagramis a kind of class diagram2001-08-30 14:57:52.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:52.0
        should be developed in such a way that it can be used independently of a particular set of user interface classes or architectural classes2001-08-30 14:57:52.0
        systems engineeringhas definition A type of design that involves deciding which requirements should be implemented using hardware, and which using software2001-08-30 14:57:52.0
        is normally only necessary for embedded and other real-time systems2001-08-30 14:57:52.0
        is a kind of engineering2001-08-30 14:57:52.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:57:52.0
        is part of design2001-08-30 14:57:52.0
        tabbed dialogallows the user to quickly enter several different types of information2001-08-30 14:57:52.0
        is a kind of dialog2001-08-30 14:57:53.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:57:52.0
        task analysishas definition The process of determining the detailed steps needed to perform a task effectively and efficiently2001-08-30 14:57:53.0
        is a kind of analysis2001-08-30 14:57:53.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:57:53.0
        TCPhas definition An important protocol used to establish and manage connections between computers2001-08-30 14:57:53.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:53.0
        is an abbreviation for Transport Control Protocol2001-08-30 14:57:53.0
        is an instance of abbreviation2001-08-30 14:57:53.0
        is an instance of protocol2001-08-30 14:57:53.0
        TCP/IPhas definition An important pair of protocols used to establish connections and send data between computers2001-08-30 14:57:53.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:57:53.0
        is an abbreviation for Transport Control Protocol / Internet Protocol2001-08-30 14:57:53.0
        is an instance of abbreviation2001-08-30 14:57:53.0
        is an instance of protocol2001-08-30 14:57:53.0
        teamis a kind of person or group2001-08-30 14:57:53.0
        is a subtopic of 10.10 - Inspections2001-08-30 14:57:53.0
        Team Software Processdescribes how teams of software engineers can work together effectively2001-08-30 14:57:53.0
        is a kind of process standard2001-08-30 14:57:53.0
        is a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:57:53.0
        is abbreviated as TSP2001-08-30 14:57:53.0
        was developed at the Software Engineering Institute of Carnegie Mellon University2001-08-30 14:57:53.0
        technical writeris responsible for ensuring that on-line help and user manuals are well written2001-08-30 14:57:53.0
        is a kind of software developer2001-08-30 14:57:53.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:57:53.0
        is part of software development team2001-08-30 14:57:53.0
        technique for prototyping class diagramshas procedure
        • identify a class and write its names on a card
        • add the class' attributes and responsibilities to the card
        • move the cards around to arrange a class diagram
        • draw lines among the cards to represent associations and generalizations
        2001-08-30 14:57:53.0
        is a kind of process2001-08-30 14:57:54.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:57:53.0
        uses CRC (Class-Responsibility-Collaboration) cards2001-08-30 14:57:54.0
        technology changehas example a new release of the operating system2001-08-30 14:57:54.0
        is a kind of change2001-08-30 14:57:54.0
        is a subtopic of 4.9 - Managing Changing Requirements2001-08-30 14:57:54.0
        may force changes in a requirement2001-08-30 14:57:54.0
        technology specialistis responsible for specialized knowledge and expertise in a technology such as databases, networking, operating systems etc.2001-08-30 14:57:54.0
        is a kind of software developer2001-08-30 14:57:54.0
        is a subtopic of 11.4 - Building Software Engineering Teams2001-08-30 14:57:54.0
        is part of software development team2001-08-30 14:57:54.0
        technology to be usedhas example the programming language or database system2001-08-30 14:57:54.0
        is a kind of non-functional requirement2001-08-30 14:57:54.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:57:54.0
        is specified to ensure that all systems in an organization use the same technology2001-08-30 14:57:54.0
        telephone number formathas localization issues
        • You should almost never require a specific format for these items since they differ so widely and can change at any time
        • Allow free-form input of whatever the user wants to type
        • A common error is to not allow enough characters, or to not allow extensions to be recorded for telephone numbers
        2001-08-30 14:57:54.0
        is a kind of locale-dependent feature2001-08-30 14:57:54.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:57:54.0
        temporal cohesionhas definition A form of cohesion in which aspects of a system are grouped together which are used during the same phase of execution of a program, i.e. execute close together in time2001-08-30 14:57:54.0
        has example a designer would achieve temporal cohesion by placing together all the code used during system start-up or initialization2001-08-30 14:57:54.0
        is weaker than procedural cohesion2001-08-30 14:57:54.0
        is a kind of cohesion2001-08-30 14:57:54.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:54.0
        is achieved when operations that are performed during the same phase of the execution of the program are kept together, and everything else is kept out2001-08-30 14:57:54.0
        should be sought only if the other types of cohesion have been achieved2001-08-30 14:57:54.0
        testhas definition A particular run of a test case on a particular version of the system2001-08-30 14:57:54.0
        is a kind of subject2001-08-30 14:57:55.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:57:54.0
        test casecontains
        1. identification and classification
        2. instructions
        3. expected result
        4. cleanup (when needed) - how to make the system go 'back to normal' or shut down after the test
        2001-08-30 14:57:55.0
        has definition An explicit set of instructions designed to detect a particular class of defect in a software system, by bringing about a failure2001-08-30 14:57:55.0
        is a kind of subject2001-08-30 14:57:55.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:57:55.0
        can give rise to many tests2001-08-30 14:57:55.0
        test case pass targetdepends on the cost of failures vs. the cost of continued testing and fixing of defects2001-08-30 14:57:55.0
        has definition The desired percentage of test cases that will pass testing2001-08-30 14:57:55.0
        has example
        • in a non critical system used by a small number of people, 95% for level 2 and 75% for level 3
        • in a critical system, or one used by a large number of people, 99% for level 2, and 90% for level 3
        2001-08-30 14:57:55.0
        is a kind of measurement2001-08-30 14:57:55.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:55.0
        test caseshould be classified according to importance, or severity level, so that the most important test cases are executed first, and are designed to detect the most severe classes of defect2001-08-30 14:57:55.0
        test harnesshas definition A program that automates testing of a system2001-08-30 14:57:55.0
        is a kind of program2001-08-30 14:57:55.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:55.0
        test planhas definition A document that contains a complete set of test cases for a system, along with other information about the testing process2001-08-30 14:57:55.0
        is a kind of document2001-08-30 14:57:55.0
        is a subtopic of 10.8 - Writing Formal Test Cases and Test Plans2001-08-30 14:57:55.0
        tests explicit and explicit attributes2001-08-30 14:57:55.0
        can be based on use cases2001-08-30 14:57:55.0
        can be started once the requirements are developed2001-08-30 14:57:55.0
        must test every aspect of the requirements2001-08-30 14:57:55.0
        should be written long before the testing starts2001-08-30 14:57:55.0
        Test Process Improvement: A Practical Step-by-Step Guide to Structured Testinghas author T. Koomen, M. Pol, H.W. Broeders, H. Voorthuyzen2001-08-30 14:57:55.0
        has ISBN number 0-201-59624-22001-08-30 14:57:55.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:55.0
        is an instance of book about software testing2001-08-30 14:57:55.0
        was published by Addison-Wesley2001-08-30 14:57:55.0
        was published in 19992001-08-30 14:57:55.0
        test-fix-test cyclehas definition The cycle in which software developers repeatedly run tests, discover and fix defects, and then retest. This continues until quality objectives are met2001-08-30 14:57:56.0
        is a kind of process2001-08-30 14:57:56.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:56.0
        may cause new defects to be added when the software is fixed either because the maintainer tried to fix the problem without fully understanding the ramifications of the change, or because the maintainer made an ordinary human error2001-08-30 14:57:56.0
        testabilityhas definition The ability for software to be instrumented so that it can be automatically tested using a test harness2001-08-30 14:57:55.0
        is a kind of software quality2001-08-30 14:57:56.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:57:56.0
        testerfinds defects by
        • anticipating typical errors made by developers
        • anticipating unusual things that users might try to do
        2001-08-30 14:57:56.0
        is responsible for the first stage of testing2001-08-30 14:57:56.0
        is a kind of software developer2001-08-30 14:57:56.0
        is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:57:56.0
        is part of software development team2001-08-30 14:57:56.0
        knows that software developers tend to have certain habits that can lead to errors, and hence to defects2001-08-30 14:57:56.0
        needs knowledge of software design to determine the equivalence classes of inputs2001-08-30 14:57:56.0
        can stop testing when
        • all of the level 1 test cases have passed
        • certain pre-defined percentages of level 2 and level 3 test cases have passed
        • the targets are achieved and are maintained for at least two cycles of builds
        2001-08-30 14:57:56.0
        cannot test every possible system-wide equivalence class because of the combinatorial explosion of the space of test cases2001-08-30 14:57:56.0
        cannot test software until all the test cases have passed because it is too expensive, and perhaps futile, to try to remove every last bug from most systems2001-08-30 14:57:56.0
        must be suspicious2001-08-30 14:57:56.0
        must design tests that explicitly try to catch a range of specific types of defects that commonly occur2001-08-30 14:57:56.0
        must pay attention to detail2001-08-30 14:57:56.0
        must try to understand how programmers. designers and users think, so as to better find defects2001-08-30 14:57:56.0
        should complete basic testing before inspecting software2001-08-30 14:57:56.0
        should measure the quality of both the product and the process which This allows you to plot the quality over a period of time and determine whether it is improving or not2001-08-30 14:57:56.0
        should not stop testing just when money or time runs out - the result is low quality software that fails often when users start to use it2001-08-30 14:57:56.0
        should only run one test per equivalence class using a representative member of that equivalence class as input2001-08-30 14:57:56.0
        should test
        1. every equivalence class of every individual input
        2. all combinations where an input is likely to affect the interpretation of another
        3. values at the boundaries of equivalence classes
        2001-08-30 14:57:56.0
        testinghas definition An approach to verification that involves systematically executing software to detect defects2001-08-30 14:57:56.0
        involves thinking of what could go wrong without actually studying the software2001-08-30 14:57:56.0
        is complementary to inspecting2001-08-30 14:57:56.0
        is a kind of verification2001-08-30 14:57:56.0
        is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:57:56.0
        requires attention to detail2001-08-30 14:57:56.0
        can find defects whose consequences are obvious but which are buried in complex code, and thus will be hard to detect when inspecting2001-08-30 14:57:56.0
        Testing Computer Softwarehas author C. Kaner, H.Q. Nguyen, J. Falk2001-08-30 14:57:56.0
        has ISBN number 0-471-35846-02001-08-30 14:57:56.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:57:56.0
        is an instance of book about software testing2001-08-30 14:57:56.0
        was published by Wiley2001-08-30 14:57:56.0
        was published in 19992001-08-30 14:57:56.0
        testing performed by software engineersis a kind of testing2001-08-30 14:57:56.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:56.0
        testing performed by users and clientsis a kind of testing2001-08-30 14:57:57.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:57:57.0
        should occur when the developers believe that the software has reached a sufficient level of quality (e.g. it is approaching the quality targets)2001-08-30 14:57:57.0
        testing strategyis a kind of practice2001-08-30 14:57:57.0
        is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:57:57.0
        texthas advantages
        • Unlimited ability to express meaning
        • Simple to generate and display
        • Accessible by blind people using Braille translators
        2001-08-30 14:57:57.0
        has problems
        • takes a lot of space
        • writing clearly and unambiguously is hard
        • not usable by young children or the illiterate
        2001-08-30 14:57:57.0
        is a kind of coding technique2001-08-30 14:57:57.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:57:57.0
        The Basics of Javais a subtopic of Chapter 2 - Review of Object Orientation2001-08-30 14:57:57.0
        The Java Lobbyhas URL www.javalobby.org    2001-08-30 14:57:57.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:57:57.0
        is an instance of web site about Java2001-08-30 14:57:57.0
        The Java Programming Languagehas author Ken Arnold, James Gosling, David Holmes2001-08-30 14:57:57.0
        has ISBN number 0-201-70433-12001-08-30 14:57:57.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:57:57.0
        is an instance of book about Java programming2001-08-30 14:57:57.0
        was published by Addison-Wesley2001-08-30 14:57:57.0
        was published in 20002001-08-30 14:57:57.0
        The Java Tutorialhas URL java.sun.com/docs/books/tutorial    2001-08-30 14:57:57.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:57:57.0
        is an instance of web site about Java2001-08-30 14:57:57.0
        The Living Internetcontains an excellent overview about the Internet, including a discussion of IP addresses etc.2001-08-30 14:57:57.0
        has URL livinginternet.com    2001-08-30 14:57:57.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:57:58.0
        is an instance of web site about the Internet2001-08-30 14:57:58.0
        The Mythical Man-Month, 20th Anniversary Editionhas author F. Brooks2001-08-30 14:57:58.0
        has ISBN number 0-201-83595-92001-08-30 14:57:58.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:58.0
        is an instance of book about project management2001-08-30 14:57:58.0
        was published by Addison Wesley2001-08-30 14:57:58.0
        was published in 19952001-08-30 14:57:58.0
        The Nurnberg Funnel: Designing Minimalist Instruction for Practical Computer Skillhas author J. Carroll2001-08-30 14:57:58.0
        has ISBN number 0-262-03163-92001-08-30 14:57:58.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:57:58.0
        is an instance of book about user interfaces and usability2001-08-30 14:57:58.0
        was published by MIT Press2001-08-30 14:57:58.0
        was published in 19902001-08-30 14:57:58.0
        The Object Management Grouphas URL www.omg.org    2001-08-30 14:57:58.0
        is the home of the UML Specification2001-08-30 14:57:58.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:57:58.0
        is an instance of web site about UML2001-08-30 14:57:58.0
        The Patterns Home Pagehas URL hillside.net/patterns/patterns.html    2001-08-30 14:57:58.0
        is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:57:58.0
        is an instance of web site about design patterns2001-08-30 14:57:58.0
        The project management institute's body of knowledgehas URL www.pmi.org    2001-08-30 14:57:59.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:57:59.0
        is an instance of web site about project management2001-08-30 14:57:59.0
        The SDL Forum Societyhas web site The SDL Forum Society web site    2001-08-30 14:57:59.0
        is the custodian of SDL (Specification and Description Language) as well as Message Sequence Charts, which are similar to sequence charts2001-08-30 14:57:59.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:57:59.0
        is an instance of organization2001-08-30 14:57:59.0
        The SDL Forum Society web sitehas URL www.sdl-forum.org    2001-08-30 14:57:59.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:57:59.0
        is an instance of web site about modelling interactions and behaviour2001-08-30 14:57:59.0
        The Standish Grouphas URL standishgroup.com    2001-08-30 14:57:59.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:57:59.0
        is an instance of web site about project management2001-08-30 14:57:59.0
        The UML Bibliographyhas URL www.db.informatik.uni-bremen.de/umlbib    2001-08-30 14:57:59.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:57:59.0
        is an instance of web site about UML2001-08-30 14:57:59.0
        The Unified Modelling Language Reference Manualhas author J. Rumbaugh, I. Jacobson, G. Booch2001-08-30 14:57:59.0
        has ISBN number 0-20130998-X2001-08-30 14:57:59.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:57:59.0
        is an instance of book about UML2001-08-30 14:58:00.0
        was published by Addison-Wesley2001-08-30 14:58:00.0
        was published in 19982001-08-30 14:58:00.0
        The Unified Modelling Language User Guidehas author G. Booch, J. Rumbaugh, I. Jacobson2001-08-30 14:58:00.0
        has ISBN number 0-201-57168-42001-08-30 14:58:00.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:58:00.0
        is an instance of book about UML2001-08-30 14:58:00.0
        was published by Addison-Wesley2001-08-30 14:58:00.0
        was published in 19982001-08-30 14:58:00.0
        The Unified Software Development Processhas author I. Jacobson, G. Booch, J. Rumbaugh2001-08-30 14:58:00.0
        has ISBN number 0-201-57169-22001-08-30 14:58:00.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:58:00.0
        is an instance of book about UML2001-08-30 14:58:00.0
        was published by Addison-Wesley2001-08-30 14:58:00.0
        was published in 19992001-08-30 14:58:00.0
        The Usability Engineering Lifecycle: A Practitioner's Handbook for User Interface Designhas author D.J. Mayhew2001-08-30 14:58:00.0
        has ISBN number 1-55860-561-42001-08-30 14:58:00.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:00.0
        is an instance of book about user interfaces and usability2001-08-30 14:58:00.0
        was published by Morgan Kaufmann2001-08-30 14:58:00.0
        was published in 19992001-08-30 14:58:00.0
        The Usability Professionals Association web sitehas URL www.UPAssoc.org    2001-08-30 14:58:00.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:00.0
        is an instance of web site about usability2001-08-30 14:58:00.0
        The User Interface Hall of Shamehas URL www.iarchitect.com/shame.htm    2001-08-30 14:58:00.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:00.0
        is an instance of web site about usability2001-08-30 14:58:01.0
        thin-client systemhas advantage it is easy to download the client program over the network and to launch it2001-08-30 14:58:01.0
        has definition A client-server system in which the client is as small as possible and the server does most of the computation2001-08-30 14:58:01.0
        is a kind of client-server system2001-08-30 14:58:01.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:58:01.0
        Thinking in Javahas author Bruce Eckel2001-08-30 14:58:01.0
        has ISBN number 0-13-027363-52001-08-30 14:58:01.0
        has URL http://www.bruceeckel.com/Books    2001-08-30 14:58:01.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:58:01.0
        is an instance of book about Java programming2001-08-30 14:58:01.0
        was published by Prentice Hall2001-08-30 14:58:01.0
        was published in 20002001-08-30 14:58:01.0
        thishas example
         this.accountHolder = accountHolder;
        link: chapter2section2.8.html#769, 2001-08-30 14:58:01.0
        is a subtopic of The Basics of Java2001-08-30 14:58:01.0
        is an instance of Java keyword2001-08-30 14:58:01.0
        represents the current objectlink: chapter2section2.8.html#772, 2001-08-30 14:58:01.0
        threadhas definition A path of execution that can run concurrently with other paths of execution2001-08-30 14:58:01.0
        is a kind of subject2001-08-30 14:58:01.0
        is a subtopic of The Basics of Java2001-08-30 14:58:01.0
        is supported by many operating systems and programming languageslink: chapter2section2.8.html#1034, 2001-08-30 14:58:01.0
        see also Thread class2001-08-30 14:58:01.0
        see also thread in Java2001-08-30 14:58:01.0
        can run at the same time as another threadlink: chapter2section2.8.html#1032, 2001-08-30 14:58:01.0
        Thread classhas definition A Java class that implements the general concept of a thread2001-08-30 14:58:01.0
        is a subtopic of The Basics of Java2001-08-30 14:58:01.0
        is an instance of Java class2001-08-30 14:58:01.0
        thread in Javahas example
        public class ThreadExample implements Runnable
        {
        private int counterNumber; // Identifies the thread
        private int counter; // How far the thread has executed
        private int limit; // Where counter will stop
        private long delay; // Pause in execution of thread in milisecs

        // Constructor
        private ThreadExample(int countTo, int number, long delay)
        {
        counter = 0;
        limit = countTo;
        counterNumber = number;
        this.delay = delay;
        }

        //The run method; when this finishes, the thread terminates
        public void run()
        {
        try
        {
        while (counter <= limit)
        {
        System.out.println("Counter "
        + counterNumber + " is now at " + counter++);
        Thread.sleep(delay);
        }
        }
        catch(InterruptedException e) {}
        }

        // The main method: Executed when the program is started
        public static void main(String[] args)

        //Create 3 threads and run them
        Thread firstThread = new Thread(new ThreadExample(5, 1, 66));
        Thread secondThread = new Thread(new ThreadExample(5, 2, 45));
        Thread thirdThread = new Thread(new ThreadExample(5, 3, 80));

        firstThread.start();
        secondThread.start();
        thirdThread.start();
        }
        }
        link: chapter2section2.8.html#1061, 2001-08-30 14:58:01.0
        is a kind of thread2001-08-30 14:58:02.0
        is a subtopic of The Basics of Java2001-08-30 14:58:02.0
        is created by
        1. Creating a class to contain the code that will control the thread. This can be made a subclass of Thread class, or else it can implement the interface Runnable.
        2. Writing a method called run in your class. The run method will normally take a reasonably long time to execute - perhaps it waits for input in a loop. When the thread is started, this run method executes, concurrently with any other thread in the system. When the run method ends, the thread terminates
        3. Creating an instance of Thread class, or your subclass of Thread class, and invoking the start operation on this instance. If you implemented the interface Runnable, you have to pass an instance of your class to the constructor of Thread class.
        link: chapter2section2.8.html#1037, 2001-08-30 14:58:02.0
        three-tier model of client-server architecturehas definition A model in which a server communicates with both a client (usually through the Internet) and with a database (usually within an intranet, for security reasons)2001-08-30 14:58:02.0
        is a kind of client-server architecture2001-08-30 14:58:02.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:02.0
        is used to design three-tier systems2001-08-30 14:58:02.0
        three-tier systemcontains a server which communicates with both a client (usually through the Internet) and with a database (usually within an intranet, for security reasons) and which acts as a client when accessing the database server2001-08-30 14:58:02.0
        is a kind of client-server system2001-08-30 14:58:02.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:02.0
        uses three-tier model of client-server architecture2001-08-30 14:58:02.0
        throughputis a kind of measurement2001-08-30 14:58:02.0
        is a kind of non-functional requirement2001-08-30 14:58:02.0
        is a subtopic of 4.5 - Types of Requirements2001-08-30 14:58:02.0
        is specified in terms of computations or transactions per minute2001-08-30 14:58:02.0
        throwis a subtopic of The Basics of Java2001-08-30 14:58:02.0
        is an instance of Java keyword2001-08-30 14:58:02.0
        throwsis a subtopic of The Basics of Java2001-08-30 14:58:02.0
        is an instance of Java keyword2001-08-30 14:58:02.0
        tight couplingcauses a system to be hard to understand and change because
        • changes in one place will require changes somewhere else. Requiring changes to be made in more than one place is problematic since it is time-consuming to find the different places that need changing, and it is likely that errors will be made
        • A network of interdependencies makes it hard to see at a glance how some component works
        2001-08-30 14:58:02.0
        is a kind of coupling2001-08-30 14:58:02.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:58:02.0
        time formathas localization issues
        • Times have many formats
        2001-08-30 14:58:02.0
        is a kind of locale-dependent feature2001-08-30 14:58:02.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:02.0
        time zonehas localization issues
        • Three-digit time-zone abbreviations can be re-used in different countries and languages; they should generally not be relied on
        • Daylight savings time starts and ends on different dates in different places (or may not exist at all)
        • All times should be relative to Universal Standard Time
        2001-08-30 14:58:02.0
        is a kind of locale-dependent feature2001-08-30 14:58:03.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:03.0
        see also TimeZone class2001-08-30 14:58:03.0
        TimeZone classdeals with the difference between Universal Time Coordinated (UTC or GMT) and local time2001-08-30 14:58:03.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:03.0
        is an instance of Java class2001-08-30 14:58:03.0
        see also time zone2001-08-30 14:58:03.0
        timing and co-ordination defectis a kind of defect2001-08-30 14:58:03.0
        is a subtopic of 10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races2001-08-30 14:58:03.0
        occur when several threads or processes interact in inappropriate ways2001-08-30 14:58:03.0
        only occurs in a situation involving some form of concurrency2001-08-30 14:58:03.0
        toHexStringhas example
        // converts to hexadecimal 
        intString s = Integer.toHexString(anInt);
        link: chapter2section2.8.html#635, 2001-08-30 14:58:03.0
        has purpose to convert an int to hexadecimallink: chapter2section2.8.html#635, 2001-08-30 14:58:03.0
        is a subtopic of The Basics of Java2001-08-30 14:58:03.0
        is an instance of Java class methodlink: chapter2section2.8.html#633, 2001-08-30 14:58:03.0
        toolis a kind of subject2001-08-30 14:58:03.0
        is a subtopic of The Basics of Java2001-08-30 14:58:03.0
        tool for drawing UML diagramsis a kind of tool2001-08-30 14:58:03.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:58:03.0
        toolbaris a kind of non-modal dialog2001-08-30 14:58:03.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:03.0
        top-down approach to identifying generalizationsdivides up a complex class, creating new subclasses2001-08-30 14:58:03.0
        is a subtopic of 5.8 - The Process Of Developing Class Diagrams2001-08-30 14:58:04.0
        is an instance of approach to identifying generalizations2001-08-30 14:58:04.0
        is an instance of top-down design2001-08-30 14:58:04.0
        top-down designhas advantage gives the system being designed a good structure2001-08-30 14:58:04.0
        has definition An approach to design in which one starts with the high-level architecture of the system, then elaborates the design of subsystems until finally designing the low-level details such as the structure of individual classes2001-08-30 14:58:04.0
        is a kind of design2001-08-30 14:58:04.0
        is a subtopic of 9.1 - The Process of Design2001-08-30 14:58:04.0
        top-down testingfinds defects in the layer that was most recently integrated2001-08-30 14:58:04.0
        has definition An incremental testing strategy in which you start by testing only the user interface, with the underlying functionality simulated by stubs, then you work downwards, integrating lower and lower layers2001-08-30 14:58:04.0
        has disadvantage the cost of writing the stubs2001-08-30 14:58:04.0
        has procedure
        1. test only the user interface, with the underlying functionality simulated by stubs
        2. work downwards, integrating lower and lower layers, each time creating stubs for the layers that remain un-integrated
        3. as you integrate each lower layer, test the system again
        2001-08-30 14:58:04.0
        is a kind of vertical incremental testing2001-08-30 14:58:04.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:58:04.0
        toStringhas default implementation the name of the class followed by a hexadecimal code that distinguishes one instance from anotherlink: chapter2section2.8.html#830, 2001-08-30 14:58:04.0
        has purpose to convert any kind of object into a stringlink: chapter2section2.8.html#827, 2001-08-30 14:58:04.0
        is a subtopic of The Basics of Java2001-08-30 14:58:04.0
        is an instance of Java methodlink: chapter2section2.8.html#827, 2001-08-30 14:58:04.0
        should be written for every class you createlink: chapter2section2.8.html#829, 2001-08-30 14:58:04.0
        traceabilityhas definition The ability to determine the information that led to a decision being made2001-08-30 14:58:04.0
        is important because design documents to be able to say which requirement is being implemented by a given aspect of the design2001-08-30 14:58:04.0
        is a kind of measurement2001-08-30 14:58:04.0
        is a kind of software quality2001-08-30 14:58:04.0
        is a subtopic of 4.8 - Reviewing Requirements2001-08-30 14:58:04.0
        trackinghas definition In the context of project management, he process of determining how well you are sticking to the cost estimate and schedule2001-08-30 14:58:04.0
        is a kind of process2001-08-30 14:58:04.0
        is a subtopic of 11.5 - Project Scheduling and Tracking2001-08-30 14:58:04.0
        uses earned value chart2001-08-30 14:58:04.0
        transactionchanges data stored by the system2001-08-30 14:58:05.0
        has example in the airline system transactions might be used to add a new flight, add a booking, change a booking or delete a booking2001-08-30 14:58:05.0
        is a kind of command2001-08-30 14:58:05.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:05.0
        is part of transaction-processing architectural pattern2001-08-30 14:58:05.0
        transaction handlerhas example the dynamic binding and dispatching of polymorphic methods2001-08-30 14:58:05.0
        is a kind of component2001-08-30 14:58:05.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:05.0
        transaction-processingcontains a process which reads a series of inputs describing a transaction one by one, and a transaction handler that decides what to do with each transaction, and which dispatches a procedure call or message to a component that will handle the transaction2001-08-30 14:58:05.0
        facilitates divide-and-conquer since the design of each handler can be given to separate software engineers2001-08-30 14:58:05.0
        has definition An architectural pattern in which a transaction dispatcher inputs transactions and dispatches them to handlers2001-08-30 14:58:05.0
        is a kind of architectural pattern2001-08-30 14:58:05.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:05.0
        transaction-processing systemhas clients programs that send specific requests to perform some kind of transaction, such as debiting a bank account or booking an airline ticket2001-08-30 14:58:05.0
        has server a program that centralizes all the functions of some business and processes transactions when they arrive2001-08-30 14:58:05.0
        is a kind of client-server system2001-08-30 14:58:05.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:58:05.0
        transformational architectural patternis a synonym of pipe and filter2001-08-30 14:58:05.0
        transformational architectureis a synonym of pipe and filter2001-08-30 14:58:05.0
        transientis a subtopic of The Basics of Java2001-08-30 14:58:05.0
        is an instance of Java keyword2001-08-30 14:58:05.0
        transitionhas definition A change of state in response to an event2001-08-30 14:58:05.0
        is a kind of event2001-08-30 14:58:05.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:58:05.0
        is represented by transition symbol in a state diagram2001-08-30 14:58:05.0
        occurs instantaneously2001-08-30 14:58:05.0
        represents a change of state in response to an event2001-08-30 14:58:06.0
        transition in a state diagramis a kind of transition2001-08-30 14:58:06.0
        is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:58:06.0
        is usually caused by an external event2001-08-30 14:58:06.0
        transition in an activity diagramis a kind of transition2001-08-30 14:58:06.0
        is a subtopic of 8.3 - Activity Diagrams2001-08-30 14:58:06.0
        is usually caused by an internal event2001-08-30 14:58:06.0
        transitionmay be triggered by a condition becoming true2001-08-30 14:58:05.0
        may be triggered by an event2001-08-30 14:58:05.0
        transition symbolis a kind of symbol in state diagram2001-08-30 14:58:06.0
        is a subtopic of 8.2 - State Diagrams2001-08-30 14:58:06.0
        is drawn as an arrow connecting two states, with a label representing the event that causes the change of state2001-08-30 14:58:06.0
        trigger questionhas definition A question in a brainstorming session for which the participants can provide simple one-line answers that are more than just numbers or yes/no responses2001-08-30 14:58:06.0
        has example
        • What features are important in the system?
        • What future sources of data should we anticipate?
        • What outputs should be produced by the system?
        • What classes do we need in our domain model?
        • What interview questions should we ask?
        • What issues have we not considered?
        • What are the risks or difficulties in this project?
        • What trigger questions can we ask?
        2001-08-30 14:58:06.0
        is a kind of subject2001-08-30 14:58:06.0
        is a subtopic of 4.6 - Some Techniques for Gathering and Analyzing Requirements2001-08-30 14:58:06.0
        can be determined by the person who called the meeting, by the moderator, by a quick discussion, or by brainstorming, followed by a vote2001-08-30 14:58:06.0
        trueis a subtopic of The Basics of Java2001-08-30 14:58:06.0
        is an instance of Java keyword2001-08-30 14:58:06.0
        tryis a subtopic of The Basics of Java2001-08-30 14:58:06.0
        is an instance of Java keyword2001-08-30 14:58:06.0
        TSPis a subtopic of 10.11 - Quality Assurance in General2001-08-30 14:58:06.0
        is an abbreviation for Team Software Process2001-08-30 14:58:06.0
        is an instance of abbreviation2001-08-30 14:58:06.0
        type use couplinghas definition A form of coupling in which several components make use of the same globally-defined data type2001-08-30 14:58:06.0
        has disadvantage if the type definition changes, then the users of the type may well have to change.2001-08-30 14:58:06.0
        is less problematic than common coupling2001-08-30 14:58:06.0
        is similar to common coupling, but instead of data being shared, only data types are shared2001-08-30 14:58:06.0
        is a kind of coupling2001-08-30 14:58:06.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:58:06.0
        occurs when a class declares a variable as having another class as its type2001-08-30 14:58:06.0
        occurs in typed languages such as Java2001-08-30 14:58:06.0
        can be reduced by
        • ensuring that a class is only type-coupled to classes in a relatively small number of packages
        • declaring the type of a variable to be the most general possible class or interface that contains the required operations
        2001-08-30 14:58:06.0
        cannot be avoided2001-08-30 14:58:06.0
        UCDis an abbreviation for user centred design2001-08-30 14:58:07.0
        is an instance of abbreviation2001-08-30 14:58:07.0
        UIis a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:07.0
        is an abbreviation for user interface2001-08-30 14:58:07.0
        is an instance of abbreviation2001-08-30 14:58:07.0
        UMLis a subtopic of 5.1 - What is UML?2001-08-30 14:58:07.0
        is an abbreviation for Unified Modelling Language2001-08-30 14:58:07.0
        is an instance of abbreviation2001-08-30 14:58:07.0
        UML diagramdescribes aspects of the architectural model2001-08-30 14:58:07.0
        has part constraint2001-08-30 14:58:07.0
        has part note2001-08-30 14:58:07.0
        is a kind of diagram2001-08-30 14:58:07.0
        is a subtopic of 5.6 - More Advanced Features of Class Diagrams2001-08-30 14:58:07.0
        see also Unified Modelling Language2001-08-30 14:58:07.0
        shows classes, their attributes and operations as well as the various types of relationships that exist among the classes2001-08-30 14:58:07.0
        UML diagram designerdiscovers classes in source material such as requirements descriptions, interview notes, or the results of brainstorming sessions2001-08-30 14:58:07.0
        identifies associations and attributes once a good initial list of classes has been identified, starting with the most important classes and working outwards towards the classes that are less important2001-08-30 14:58:07.0
        invents classes that are needed to solve a particular design problem2001-08-30 14:58:07.0
        is a kind of designer2001-08-30 14:58:07.0
        is a subtopic of 5.2 - Essentials of UML Class Diagrams2001-08-30 14:58:07.0
        can find classes by extracting the nouns and noun phrases from source materials2001-08-30 14:58:07.0
        can hide part objects inside the aggregate object to improve the encapsulation of the system so that methods in the system would be able to perform most operations on the aggregate, without needing to know about the existence of the parts2001-08-30 14:58:07.0
        can identify generalizations using a bottom-up approach to identifying generalizations or a top-down approach to identifying generalizations2001-08-30 14:58:07.0
        should ask herself whether a less restrictive multiplicity could also makes sense in some circumstances2001-08-30 14:58:07.0
        should avoid overdoing generalization2001-08-30 14:58:07.0
        should be concerned with reuse when identifying classes2001-08-30 14:58:07.0
        should create an interface instead of a superclass if you will sometimes need to declare a variable that can contain instances of several classes, yet:
        • The classes are very dissimilar except for having a few operations in common, or
        • One or more of the classes already have their own superclasses, or
        • Different implementations of the same class might be available
        2001-08-30 14:58:07.0
        should create a distinct class if a subset of a class's attributes form a coherent group2001-08-30 14:58:07.0
        should defer decisions about directionality to later phases of development, when the detailed design is created because although making associations one-directional can improve efficiency and reduce complexity, it might also limit the flexibility of the system.2001-08-30 14:58:07.0
        should distribute responsibilities among the classes so no one class has an unfair share, and hence becomes unduly complex2001-08-30 14:58:07.0
        should mark an association as an aggregation if the following are true:
        1. You can state that the parts 'are part of' the aggregate, or the aggregate 'is composed of' the parts
        2. When something owns or controls the aggregate, then they also own or control the parts
        2001-08-30 14:58:07.0
        should not represent actions as if they were associations2001-08-30 14:58:07.0
        should not think of generalizations as special associations, a common misconception which arises because both generalizations and associations connect classes together in a class diagram2001-08-30 14:58:07.0
        should read every association in both directions to verify that it makes sense because it is very common to make errors when creating associations - it is particularly easy to get the multiplicity wrong2001-08-30 14:58:07.0
        should split a class into several distinct classes if it has too many responsibilities2001-08-30 14:58:07.0
        should work in the following sequence
        1. Identify a first set of candidate classes
        2. Starting with the most important classes, add any associations and attributes that clearly will be needed
        3. Work out the most clear generalizations
        4. List the main responsibilities of each class
        5. Based on responsibilities, decide on specific operations that are needed
        6. Iterate over the entire process, examining the model to see if you need to add or delete classes, associations, attributes, generalizations, responsibilities or operations
        7. Repeat the last step as needed until the model is satisfactory
        2001-08-30 14:58:08.0
        UML Distilledhas author M. Fowler2001-08-30 14:58:08.0
        has ISBN number ISBN 0-201-65783-X2001-08-30 14:58:08.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:58:08.0
        is an instance of software architecture book2001-08-30 14:58:08.0
        was published by Addison-Wesley2001-08-30 14:58:08.0
        was published in 19992001-08-30 14:58:08.0
        UML distilled: A Brief Guide to the Standard Object Modeling Languagehas author Martin Fowler2001-08-30 14:58:08.0
        has ISBN number 0-201-65783-X2001-08-30 14:58:08.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:58:08.0
        is an instance of book about UML2001-08-30 14:58:08.0
        was published by Addison-Wesley2001-08-30 14:58:08.0
        was published in 19992001-08-30 14:58:08.0
        unamehas example uname -n2001-08-30 14:58:08.0
        has purpose to find the host name of a computer2001-08-30 14:58:08.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:58:08.0
        is an instance of Unix or Linux command2001-08-30 14:58:08.0
        unexpected exceptioncauses failure2001-08-30 14:58:08.0
        is a kind of exception2001-08-30 14:58:08.0
        is a subtopic of 10.2 - Effective and Efficient Testing2001-08-30 14:58:08.0
        occurs in a situation that was not anticipated by the programmer2001-08-30 14:58:08.0
        Unicodeis a subtopic of The Basics of Java2001-08-30 14:58:08.0
        is an instance of coding scheme2001-08-30 14:58:08.0
        can represent all the symbols used in English and other languageslink: chapter2section2.8.html#816, 2001-08-30 14:58:08.0
        Unified Modelling Languagehas custodian Object Management Group (OMG)2001-08-30 14:58:08.0
        has definition A standard language for modelling various aspects of software, which includes, among other things, a set of diagrammatic notations2001-08-30 14:58:08.0
        has extension mechanisms which allow software designers to represent concepts that are not part of the core of UML2001-08-30 14:58:08.0
        has objective to assist in software development2001-08-30 14:58:08.0
        has semantics which describe the meaning of the various notations2001-08-30 14:58:08.0
        is a kind of graphical language2001-08-30 14:58:09.0
        is a subtopic of 5.1 - What is UML?2001-08-30 14:58:09.0
        is abbreviated as UML2001-08-30 14:58:09.0
        is accepted as the standard approach to representing many aspects of software2001-08-30 14:58:09.0
        is an instance of modelling language2001-08-30 14:58:09.0
        is associated with Object Constraint Language (OCL), a textual language that allows you to state various facts about the elements of the diagrams2001-08-30 14:58:09.0
        is not a methodology because it does not describe in a step-by-step way how to do things2001-08-30 14:58:08.0
        is used to create visual models of a software system2001-08-30 14:58:09.0
        was invented by Booch, Rumbaugh and Jacobson in the 1990's2001-08-30 14:58:09.0
        uninitialized objecthas value nulllink: chapter2section2.8.html#793, 2001-08-30 14:58:09.0
        is a kind of Java object2001-08-30 14:58:09.0
        is a subtopic of The Basics of Java2001-08-30 14:58:09.0
        unit testinghas definition Testing an individual module or component in isolation2001-08-30 14:58:09.0
        is a kind of testing performed by software engineers2001-08-30 14:58:09.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:58:09.0
        Unix or Linux commandis a kind of command2001-08-30 14:58:09.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:58:09.0
        usabilityhas definition An important quality of software that measures the extent to which a product or process is learnable, enables users to be productive and avoid errors, and also subjectively satisfies them (in contrast to utility^2)2001-08-30 14:58:09.0
        has part acceptability2001-08-30 14:58:09.0
        has part efficiency of use2001-08-30 14:58:09.0
        has part error handling2001-08-30 14:58:09.0
        has part learnability2001-08-30 14:58:09.0
        is important2001-08-30 14:58:09.0
        is a kind of usefulness2001-08-30 14:58:09.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:09.0
        Usability Engineeringhas author J. Nielsen2001-08-30 14:58:09.0
        has ISBN number 0-12-518406-92001-08-30 14:58:09.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:10.0
        is an instance of book about user interfaces and usability2001-08-30 14:58:10.0
        was published by Academic Press Professional2001-08-30 14:58:10.0
        was published in 19942001-08-30 14:58:10.0
        usability evaluationis a kind of verification2001-08-30 14:58:10.0
        is a subtopic of 7.6 - Evaluating User Interfaces2001-08-30 14:58:10.0
        must adhere to ethical principle of usability evaluation2001-08-30 14:58:10.0
        usability principleis a kind of principle2001-08-30 14:58:10.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:10.0
        usability principle 1is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:10.0
        is an instance of usability principle2001-08-30 14:58:10.0
        states Do not rely only on usability guidelines - always test with users2001-08-30 14:58:10.0
        can be followed by testing a user interface on users2001-08-30 14:58:10.0
        usability principle 10is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:10.0
        is an instance of usability principle2001-08-30 14:58:10.0
        states Consider the needs of different groups of users2001-08-30 14:58:10.0
        can be followed by
        • accommodating people from different locales and people with disabilities
        • ensuring that the system is usable by both beginners and experts
        2001-08-30 14:58:10.0
        usability principle 11is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:10.0
        is an instance of usability principle2001-08-30 14:58:10.0
        states Provide all necessary help2001-08-30 14:58:10.0
        can be followed by
        • organizing help well
        • integrating help with the application
        • ensuring that the help is accurate
        2001-08-30 14:58:10.0
        usability principle 12is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Be consistent within the application and between applications2001-08-30 14:58:11.0
        can be followed by
        • using similar layouts and graphic designs throughout your application
        • following look-and-feel standards
        • mimicking other applications
        2001-08-30 14:58:11.0
        usability principle 2is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Base UI designs on users' tasks as expressed in use cases2001-08-30 14:58:11.0
        can be followed by 2001-08-30 14:58:11.0
        usability principle 3is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Ensure that the sequences of actions to achieve a task are as simple as possible2001-08-30 14:58:11.0
        can be followed by
        • making sure users can move from step to step easily as they perform their tasks
        • making sure that user has to read the smallest amount of text, to navigate the least, to type the least and not to be lead into making errors
        • making sure the user does not have to repeatedly select menu items to complete a single task
        • avoiding sequences of modal dialogs, since they give users the feeling that the computer is in control of the interaction
        2001-08-30 14:58:11.0
        usability principle 4is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Ensure that the user always knows what he or she can and should do next, and what will happen when he or she does it2001-08-30 14:58:11.0
        can be followed by
        • Ensuring that the user can see what commands are available and are not available
        • making the most important commands stand out
        2001-08-30 14:58:11.0
        usability principle 5is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Provide good feedback including effective error messages2001-08-30 14:58:11.0
        can be followed by
        • informing users of the progress of operations and of their location as they navigate
        • when something goes wrong, explaining the situation in adequate detail and help the user to resolve the problem
        2001-08-30 14:58:11.0
        usability principle 6is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:11.0
        states Ensure that the user can always get out, go back or undo an action2001-08-30 14:58:11.0
        can be followed by ensuring that all operations can be done and that it is easy for the user to navigate back to where they came from2001-08-30 14:58:11.0
        usability principle 7is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:11.0
        is an instance of usability principle2001-08-30 14:58:12.0
        states Ensure that response time is adequate2001-08-30 14:58:12.0
        can be followed by
        • Recognizing that users are very sensitive to slow response time, and that they compare your system to others in this regard
        • keeping response time less than a second for most operations
        • warning users of longer delays and inform them of progress
        2001-08-30 14:58:11.0
        usability principle 8is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:12.0
        is an instance of usability principle2001-08-30 14:58:12.0
        states Ensure that the user always feels in control2001-08-30 14:58:12.0
        can be followed by
        • making sure that everything that appears on the screen should be easily understandable to users
        • avoiding technical jargon and acronyms
        • employing technical writers to compose text and graphic designers to create graphics
        • labelling items so their meaning is obvious
        2001-08-30 14:58:12.0
        usability principle 9is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:12.0
        is an instance of usability principle2001-08-30 14:58:12.0
        states Ensure that the UI's appearance is uncluttered2001-08-30 14:58:12.0
        can be followed by
        • trying to avoid displaying too much information
        • organizing the information effectively
        2001-08-30 14:58:12.0
        Usable Webhas URL www.usableweb.com    2001-08-30 14:58:12.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:12.0
        is an instance of web site about usability2001-08-30 14:58:12.0
        use caseassists an architect with the first draft of the architectural model2001-08-30 14:58:12.0
        describes the user's interaction with the system2001-08-30 14:58:12.0
        give an architect an idea about which components will be needed and how they will interact2001-08-30 14:58:12.0
        has a use case name2001-08-30 14:58:12.0
        has actors the actors or actor who can perform this use case (optional)2001-08-30 14:58:12.0
        has definition A way in which a system can be used, described as a step-by-step sequence of actions, along with the system's response and certain other information2001-08-30 14:58:12.0
        has goals zero or more goals2001-08-30 14:58:12.0
        has postconditions zero or more postconditions2001-08-30 14:58:12.0
        has preconditions zero or more preconditions which describe the state of the system before the use case occurs2001-08-30 14:58:12.0
        has related use cases zero or more use cases that may be generalizations, specializations, extensions or inclusions of this one2001-08-30 14:58:12.0
        has steps each step of the use case using a two column format, with the left column showing the actions taken by the actor, and the right column showing the system responses2001-08-30 14:58:12.0
        has summary2001-08-30 14:58:12.0
        includes only actions in which the actor interacts with the computer2001-08-30 14:58:12.0
        is a kind of subject2001-08-30 14:58:12.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:12.0
        is used to develop requirements2001-08-30 14:58:12.0
        is used to validate requirements2001-08-30 14:58:12.0
        normally includes only actions in which the actor interacts with the system2001-08-30 14:58:12.0
        use case analysisassists a software engineer to define the tasks that the user interface must help the user perform2001-08-30 14:58:12.0
        has definition The process of dividing up the functionality of the system into use cases, and determining the relationships among those use cases2001-08-30 14:58:13.0
        has procedure
        1. determine the classes of users (or other systems) that will use the facilities of this system
        2. to determine the tasks that each actor will need to do with the system
        3. break each use case down into more detail
        2001-08-30 14:58:13.0
        has purpose to model the system from the point of view of how users or other systems interact with this system when trying to achieve their objectives2001-08-30 14:58:13.0
        helps developers model different user roles2001-08-30 14:58:13.0
        is an intuitive way to understand and organize what the system should do, since it is based on user tasks and expresses the tasks in natural language2001-08-30 14:58:13.0
        is similar to task analysis2001-08-30 14:58:13.0
        is useful for requirements analysis2001-08-30 14:58:13.0
        is a kind of analysis2001-08-30 14:58:13.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:13.0
        can be used to determine responsibilities2001-08-30 14:58:12.0
        can be used to eliminate proposed functionality if the functionality does not support any use case2001-08-30 14:58:12.0
        can help define the scope of the system, i.e. what the system must do and does not have to do2001-08-30 14:58:13.0
        does not cover all aspects of software, such as an activity that is internal to a system2001-08-30 14:58:13.0
        use casecan be used to plan the development process2001-08-30 14:58:12.0
        can be used to structure user manuals2001-08-30 14:58:12.0
        can form the basis for the definition of test cases2001-08-30 14:58:12.0
        can serve as as part of the contract between the customers and the developer2001-08-30 14:58:12.0
        use case diagramcontains actor symbols and use case symbols with arrows indicating which actors perform which use cases2001-08-30 14:58:13.0
        has definition A UML diagram showing actors, use cases and their relationships2001-08-30 14:58:13.0
        has purpose to show the relationships among a set of use cases and actors2001-08-30 14:58:13.0
        helps a software engineer to convey a high level picture of the functionality of a system2001-08-30 14:58:13.0
        is a kind of UML diagram2001-08-30 14:58:13.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:13.0
        summarize the system from the user's perspective2001-08-30 14:58:13.0
        use casedoes not describe the computations the system performs2001-08-30 14:58:12.0
        Use Case Maps for Object-Oriented Systemshas author R.J.A. Buhr, and R. Casselman2001-08-30 14:58:13.0
        has ISBN number 0-13-456542-82001-08-30 14:58:13.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:58:13.0
        is an instance of book about modelling interactions and behaviour2001-08-30 14:58:13.0
        was published by Prentice Hall2001-08-30 14:58:13.0
        was published in 19962001-08-30 14:58:13.0
        use casemay have high political or commercial value2001-08-30 14:58:12.0
        may have one or more preconditions2001-08-30 14:58:12.0
        may represent a high risk because for some reason their implementation is problematic.2001-08-30 14:58:12.0
        use case modelconsists of a set of use cases, and an optional description or diagram indicating how they are related2001-08-30 14:58:13.0
        has part description or diagram indicating how use cases are related2001-08-30 14:58:13.0
        has part use case2001-08-30 14:58:13.0
        is a kind of model2001-08-30 14:58:13.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:13.0
        use case modellinghas definition Representing the sequences of actions performed by users of software.2001-08-30 14:58:13.0
        is a kind of modelling2001-08-30 14:58:13.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:58:13.0
        see also use case2001-08-30 14:58:13.0
        use casemust be validated using requirements validation methods2001-08-30 14:58:12.0
        use case nameis a kind of name2001-08-30 14:58:13.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:13.0
        use caseshould be independent of any particular user interface design2001-08-30 14:58:12.0
        use case symbolis a kind of symbol in UML diagram2001-08-30 14:58:13.0
        is a subtopic of 7.3 - Developing Use Case Models of Systems2001-08-30 14:58:13.0
        is drawn as an ellipse2001-08-30 14:58:13.0
        Use Cases: Requirements in Contexthas author D. Kulak and E. Guiney2001-08-30 14:58:14.0
        has ISBN number 0-201-65767-82001-08-30 14:58:14.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:58:14.0
        is an instance of book about requirements analysis2001-08-30 14:58:14.0
        was published by Addison-Wesley2001-08-30 14:58:14.0
        was published in 20002001-08-30 14:58:14.0
        use of a non-stable sorthas testing strategy deliberately run an experiment to see if the results are as expected2001-08-30 14:58:14.0
        is a kind of use of an inappropriate standard algorithm2001-08-30 14:58:14.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        use of a search or sort that is case sensitive when it should not behas testing strategy test algorithms with mixed-case data to see if the algorithm behaves as expected2001-08-30 14:58:14.0
        is a kind of use of an inappropriate standard algorithm2001-08-30 14:58:14.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        use of a search or sort that is not case sensitive when it should behas testing strategy test algorithms with mixed-case data to see if the algorithm behaves as expected2001-08-30 14:58:14.0
        is a kind of use of an inappropriate standard algorithm2001-08-30 14:58:14.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        use of an inappropriate standard algorithmhas definition A common defect in which an unnecessarily inefficient or otherwise inappropriate algorithm is used2001-08-30 14:58:14.0
        has testing strategy design tests that highlight the properties of inappropriate algorithms such as execution time2001-08-30 14:58:14.0
        is a kind of defect in an ordinary algorithm2001-08-30 14:58:14.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        use of an inefficient search algorithmhas testing strategy
        • create a big enough list (e.g. 1 million elements) so that an unordered search should take some measurable time
        • sort the data, and measure how much time searching takes
        • double the number of sorted elements and measure the search time again
        • both searches should take negligible time; if they do take measurable time, then the time should be almost equal
        2001-08-30 14:58:14.0
        is a kind of use of an inappropriate standard algorithm2001-08-30 14:58:14.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        use of an inefficient sort algorithmhas example using a 'bubble sort' instead of a more efficient approach to sorting2001-08-30 14:58:14.0
        has testing strategy
        • increase the number of items being sorted and observe how execution time is effected
        • a good algorithm should take slightly more than double the first time - a bad algorithm will increase with the square of the number of items
        2001-08-30 14:58:14.0
        is a kind of use of an inappropriate standard algorithm2001-08-30 14:58:15.0
        is a subtopic of 10.3 - Defects in Ordinary Algorithms2001-08-30 14:58:14.0
        usefulnessconsists of utility^2 and usability2001-08-30 14:58:15.0
        has definition The extent to which a system can be used to perform a task; combines usability and utility^22001-08-30 14:58:15.0
        is essential2001-08-30 14:58:15.0
        is a kind of external software quality2001-08-30 14:58:15.0
        is a kind of measurement2001-08-30 14:58:15.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:15.0
        is measured in the context of particular types of users2001-08-30 14:58:15.0
        Useit.comhas author Jakob Nielsen2001-08-30 14:58:15.0
        has URL www.useit.com    2001-08-30 14:58:15.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:15.0
        is an instance of web site about usability2001-08-30 14:58:15.0
        userfeels that he or she has enough information to make decisions if the system informs her of what it is doing, has done and is about to do2001-08-30 14:58:15.0
        has a perception of acceptable response time based on the other applications she uses2001-08-30 14:58:15.0
        has characteristics that vary from one user to another including:
        • goals for using the system, depending on job function or roles
        • potential patterns of use such as how often the system is used
        • demographics such as age
        • knowledge of the domain and of computers
        • physical ability
        • psychological traits and emotional feelings
        2001-08-30 14:58:15.0
        has definition A person who uses software (in contrast to customer)2001-08-30 14:58:15.0
        has goal doing enjoyable or interesting work, and gaining recognition for the work they have done2001-08-30 14:58:15.0
        is a kind of stakeholder2001-08-30 14:58:15.0
        is a subtopic of 1.4 - Stakeholders in Software Engineering2001-08-30 14:58:15.0
        is concerned with efficiency2001-08-30 14:58:15.0
        is concerned with reliability2001-08-30 14:58:15.0
        likes software that is easy to learn and use, makes their life easier, helps them achieve more, or allows them to have fun2001-08-30 14:58:15.0
        makes mistakes2001-08-30 14:58:15.0
        often welcomes new or improved software2001-08-30 14:58:15.0
        wants software that is easy to learn2001-08-30 14:58:15.0
        wants software that is easy to learn, efficient to use, and which helps get work done2001-08-30 14:58:15.0
        can learn an application quickly if it is similar to an application they already know2001-08-30 14:58:15.0
        can notice a single small spot of red or orange on an entire screen2001-08-30 14:58:15.0
        user centred designhas definition An approach to software engineering using techniques that focus on users and their needs2001-08-30 14:58:16.0
        helps developers prioritize their work so that the most important features reach the users sooner2001-08-30 14:58:16.0
        is a kind of design2001-08-30 14:58:16.0
        is a subtopic of 7.1 - User Centred Design2001-08-30 14:58:16.0
        is abbreviated as UCD2001-08-30 14:58:16.0
        requires developers to understand users2001-08-30 14:58:16.0
        can be accomplished if developers follow certain guidelines including: 2001-08-30 14:58:15.0
        can ensure that unnecessary features and functions are not added to the software2001-08-30 14:58:15.0
        can improve the quality of software2001-08-30 14:58:15.0
        can improve the system's efficiency of use2001-08-30 14:58:15.0
        can make the system more attractive so users may be more willing to buy and use it2001-08-30 14:58:15.0
        can reduce costs associated with changing the system later2001-08-30 14:58:15.0
        can reduce costs by only developing features that are needed2001-08-30 14:58:16.0
        can reduce the cost to produce, operate and maintain software2001-08-30 14:58:16.0
        can reduce the time needed to learn the system2001-08-30 14:58:16.0
        can reduce training and support costs2001-08-30 14:58:16.0
        user community for use case mapshas URL www.usecasemaps.org    2001-08-30 14:58:16.0
        is a subtopic of 8.5 - Modelling Interactions and Behaviour - References2001-08-30 14:58:16.0
        is an instance of web site about modelling interactions and behaviour2001-08-30 14:58:16.0
        userdoes not fear bad consequences of what he does if he can undo any action2001-08-30 14:58:15.0
        does not feel that the computer is in control of her time if response time is adequate2001-08-30 14:58:15.0
        user interfaceis the part of a system that is most likely to cause users to perceive a lack of quality.2001-08-30 14:58:16.0
        is a kind of subject2001-08-30 14:58:16.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:16.0
        is abbreviated as UI2001-08-30 14:58:16.0
        is often the most complex part of the system to design, and the part that is most likely to cause users to perceive a lack of quality2001-08-30 14:58:16.0
        was simpler in the early days of computing2001-08-30 14:58:16.0
        can take over half of all development effort2001-08-30 14:58:16.0
        user interface componenthas definition A component used to create the user interface such as a menu, list, input field etc.2001-08-30 14:58:16.0
        is a kind of component2001-08-30 14:58:16.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:16.0
        is a synonym of control2001-08-30 14:55:04.0
        is a synonym of widget2001-08-30 14:58:24.0
        user interface designhas been historically seen as separate from software engineering2001-08-30 14:58:16.0
        has definition The design of the user interface of a software system2001-08-30 14:58:16.0
        involves deciding in detail how the user is to interact with the system2001-08-30 14:58:16.0
        is a kind of design2001-08-30 14:58:16.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:16.0
        is part of design2001-08-30 14:58:16.0
        should be done in conjunction with other software engineering activities2001-08-30 14:58:16.0
        should be performed after domain analysis and problem definition2001-08-30 14:58:16.0
        should be understood by all software engineers2001-08-30 14:58:16.0
        user interface designerasks user's opinions2001-08-30 14:58:16.0
        avoids modal dialogs because they force the user to constantly press 'OK' or 'Cancel' to move on to the next step2001-08-30 14:58:16.0
        avoids technical jargon and acronyms in text2001-08-30 14:58:16.0
        bases user interface design on user's tasks2001-08-30 14:58:16.0
        chooses coding techniques with care2001-08-30 14:58:16.0
        employs a skilled writer to write the text and a skilled graphical designer to create graphics2001-08-30 14:58:16.0
        ensure that the user interface appears uncluttered2001-08-30 14:58:16.0
        ensures that everything that appears on the screen is understandable by all users2001-08-30 14:58:16.0
        ensures that good labels are used so that all coding techniques are fully understood by users2001-08-30 14:58:17.0
        ensures that if operations take up to 15-20 seconds, such as loading complex pages from the net over a modem-based connection, the user understands that they are naturally time-consuming and an indication of progress is shown2001-08-30 14:58:17.0
        ensures that response time is adequate2001-08-30 14:58:17.0
        ensures that response times are a second or less for operations such as saving most data, moving between windows, obtaining help, and obtaining the first feedback from any longer operation2001-08-30 14:58:17.0
        ensures that the application mimics other applications2001-08-30 14:58:17.0
        ensures that the system has different modes for beginners and power users if the system is complex2001-08-30 14:58:17.0
        ensures that the system is usable by people with disabilities2001-08-30 14:58:17.0
        ensures that the user always feels in control by being allowed to set system preferences2001-08-30 14:58:17.0
        ensures that the user can always get out, go back or undo an action2001-08-30 14:58:17.0
        ensures that the user can see what commands are available and are not available2001-08-30 14:58:17.0
        ensures that the user can undo an action that may have changed data in the system2001-08-30 14:58:17.0
        ensures that the user does not have to navigate anywhere to do subsequent steps of a task2001-08-30 14:58:17.0
        ensures that the user interface does not have too many pages, each with only a small amount of information, because the user will have to spend much time navigating and will become lost2001-08-30 14:58:16.0
        ensures that the user interface does not use too many different colours, fonts or graphics2001-08-30 14:58:17.0
        ensures that the user interface informs users of the progress of operations, changes of state, and of their location as they navigate2001-08-30 14:58:17.0
        ensures that the user interface only displays essential information, while allowing the user to request additional information by navigating to another dialog box, tab or page2001-08-30 14:58:16.0
        ensures that the user interface warns the user if the response time for an operation will be more than 15-20 seconds so the user can do something else while waiting or choose not to perform the operation2001-08-30 14:58:17.0
        ensures that the user is not affected by information overload2001-08-30 14:58:17.0
        ensures that the user is warned before they perform an action, if the action cannot be undone and asks the user to confirm an action if it can have serious consequences and cannot be undone2001-08-30 14:58:17.0
        ensures that when something goes wrong, the user interface explains the situation in adequate detail and helps the user to resolve the problem2001-08-30 14:58:17.0
        evaluates how users use prototypes of user interfaces2001-08-30 14:58:17.0
        evaluates response time by testing on the slowest hardware that end-users are likely to encounter2001-08-30 14:58:17.0
        follows look-and-feel standards2001-08-30 14:58:17.0
        follows usability principles but not rely solely on them2001-08-30 14:58:17.0
        internationalizes the user interface2001-08-30 14:58:17.0
        is aware of locale-dependent features2001-08-30 14:58:17.0
        is responsible for making sure that usability is kept at the forefront of the design process2001-08-30 14:58:17.0
        is a kind of designer2001-08-30 14:58:17.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:17.0
        is part of software development team2001-08-30 14:58:17.0
        makes the most important commands stand out by using large buttons, by being the first item in a menu or by being the leftmost icon in a toolbar2001-08-30 14:58:17.0
        makes sure that elements are arranged in straight lines or several columns2001-08-30 14:58:17.0
        performs use case analysis and designs the user interface based on this2001-08-30 14:58:17.0
        provides good help system2001-08-30 14:58:17.0
        reduces the amount of reading and manipulation the user has to do2001-08-30 14:58:17.0
        thinks about the sequence of activities the user will want to perform to get their job done2001-08-30 14:58:17.0
        uses grouping, colour and fonts to help highlight the organization of information2001-08-30 14:58:17.0
        uses similar layouts and graphic designs throughout the application2001-08-30 14:58:17.0
        always defers to users by both asking their opinions and evaluating how they use prototypes2001-08-30 14:58:16.0
        should avoid fancy and unusual UI designs, and especially the design of new controls, because they will be more sensitive to changes2001-08-30 14:58:17.0
        should not focus on the commands, fields and icons etc. that are needed because this approach tends to result in systems that do not fit the users' tasks2001-08-30 14:58:17.0
        should not give the user too much to look at2001-08-30 14:58:17.0
        should not invent new user interface controls because users will have to figure them out2001-08-30 14:58:17.0
        should use simpler UI frameworks that are widely used by others2001-08-30 14:58:17.0
        user interface layerhandles the user interface2001-08-30 14:58:17.0
        is a kind of layer2001-08-30 14:58:17.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:17.0
        must be independent because there will often be several different UIs for the application2001-08-30 14:58:17.0
        should be at the top of a multi-layer system2001-08-30 14:58:17.0
        user interface prototypinginvolves extensive discussion with, and evaluation by, both users and other user interface designers2001-08-30 14:58:17.0
        is iterative2001-08-30 14:58:17.0
        is a kind of prototyping2001-08-30 14:58:17.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:17.0
        user interfaceshould always be tested on users2001-08-30 14:58:16.0
        user interface statechanges if the user issues a command, or if the system itself notifies the user of some happening, such as the completion of an earlier command or the arrival of a message2001-08-30 14:58:17.0
        has definition At any point in time, the information displayed in widgets and the user interface's affordance2001-08-30 14:58:17.0
        is a kind of state2001-08-30 14:58:18.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:17.0
        user interface statementis a kind of statement2001-08-30 14:58:18.0
        is a subtopic of Programming Style Guidelines2001-08-30 14:58:18.0
        should be restricted to specifically designed classes2001-08-30 14:58:18.0
        usermay be affected by information overload2001-08-30 14:58:15.0
        may be frustrated when they seek help2001-08-30 14:58:15.0
        may fear that new software could jeopardize their job2001-08-30 14:58:15.0
        may judge utility^2 and usability differently from another user depending on her level of computer experience and the tasks she is performing2001-08-30 14:58:15.0
        may work for customer2001-08-30 14:58:15.0
        must be involved in the development of software2001-08-30 14:58:15.0
        must like a system or they will not use it, even if it has high learnability and efficiency of use2001-08-30 14:58:15.0
        should be able to understand everything that appears on the screen2001-08-30 14:58:15.0
        should be involved in all decision-making that relates to the requirements and to the user interface design and to a limited extent in requirements analysis2001-08-30 14:58:15.0
        should be involved in requirements analysis, user interface design and deployment, and also may play a role in design, quality assurance and project management2001-08-30 14:58:15.0
        should be made to feel involved in the software engineering process resulting in fewer mistakes being made and greater acceptance of the finished product2001-08-30 14:58:15.0
        should feel in control of the computer, not the other way around2001-08-30 14:58:15.0
        should give feedback on prototypes, on-line help and draft user manuals2001-08-30 14:58:15.0
        should not be expected to participate in detailed low-level internal design decisions2001-08-30 14:58:15.0
        user with a disabilityis a kind of user2001-08-30 14:58:18.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:18.0
        utilityhas definition A method or class that has wide applicability to many different subsystems and is designed to be reusable2001-08-30 14:58:18.0
        is a kind of class2001-08-30 14:58:18.0
        is a kind of method2001-08-30 14:58:18.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:18.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:58:18.0
        see also utility^22001-08-30 14:58:18.0
        utility cohesionhas definition A form of cohesion in which utilities which cannot be logically placed in other cohesive units are kept together2001-08-30 14:58:18.0
        is the weakest kind of cohesion since it serves to group together those parts of the system that do not seem to logically belong anywhere else2001-08-30 14:58:18.0
        is a kind of cohesion2001-08-30 14:58:18.0
        is a subtopic of 9.2 - Principles Leading to Good Design2001-08-30 14:58:18.0
        utility^2has definition The extent to which, independent of usability, a product or process provides capabilities needed to solve a customer's problem2001-08-30 14:58:18.0
        is a kind of usefulness2001-08-30 14:58:18.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:18.0
        see also utility2001-08-30 14:58:18.0
        valid generalizationcontains only features that must make sense in each subclass2001-08-30 14:58:18.0
        is a kind of generalization2001-08-30 14:58:18.0
        is a subtopic of 2.5 - Organizing Classes Into Inheritance Hierarchies2001-08-30 14:58:18.0
        validationhas definition The process of ensuring that requirements and designs solve the customer's problem2001-08-30 14:58:18.0
        is a kind of process2001-08-30 14:58:18.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:58:18.0
        variablehas definition A place where you can put data2001-08-30 14:58:18.0
        has scopelink: chapter2section2.8.html#1027, 2001-08-30 14:58:18.0
        has type2001-08-30 14:58:19.0
        is a kind of data item2001-08-30 14:58:19.0
        is a subtopic of 2.3 - Instance Variables2001-08-30 14:58:19.0
        can contain different classes of objects depending on the type of the variable2001-08-30 14:58:18.0
        can refer to a particular object, several different objects during the execution of a program, or no object at all2001-08-30 14:58:18.0
        variable declared as a non-primitive data typecontains an instance of a class2001-08-30 14:58:19.0
        is a kind of variable2001-08-30 14:58:19.0
        is a subtopic of The Basics of Java2001-08-30 14:58:19.0
        is used by calling methods or accessing the object's instance variableslink: chapter2section2.8.html#599, 2001-08-30 14:58:19.0
        uses the name of a class as their typelink: chapter2section2.8.html#591, 2001-08-30 14:58:19.0
        variable declared as primitive data typeis a kind of variable2001-08-30 14:58:19.0
        is a subtopic of The Basics of Java2001-08-30 14:58:19.0
        does not contain object in the sense that its contents is not an instance of any class2001-08-30 14:58:19.0
        variableshould have comment if it is non-obvious2001-08-30 14:58:19.0
        Vectoris a subtopic of The Basics of Java2001-08-30 14:58:19.0
        is an instance of Java collection classlink: chapter2section2.8.html#807, 2001-08-30 14:58:19.0
        verificationhas definition The process of ensuring that the design or implementation conforms to the requirements; the process of ascertaining that the software has no defects2001-08-30 14:58:19.0
        is a kind of process2001-08-30 14:58:19.0
        is a subtopic of 1.7 - Activities Common to Software Projects2001-08-30 14:58:19.0
        vertical frameworkhas fewer slots and hooks than a horizontal framework2001-08-30 14:58:19.0
        has more complete implementation than a horizontal framework2001-08-30 14:58:19.0
        has definition A complete framework for a particular class of applications. A near-synonym for application framework2001-08-30 14:58:19.0
        is a kind of framework2001-08-30 14:58:19.0
        is a subtopic of 3.3 - Frameworks: Reusable Subsystems2001-08-30 14:58:19.0
        is a synonym of application framework2001-08-30 14:54:32.0
        vertical incremental testingis a kind of incremental testing2001-08-30 14:58:20.0
        is a subtopic of 10.9 - Strategies for Testing Large Systems2001-08-30 14:58:19.0
        videohas advantages
        • provides high impact communication of complex information
        • entertaining and hence attractive for users
        2001-08-30 14:58:20.0
        has problems
        • bandwidth-intensive, hence reduces response time
        • sequential, requiring replay
        • viewing consumes the user's time
        • not usable by blind and possibly deaf people
        • expensive to produce
        • may be annoying
        2001-08-30 14:58:20.0
        is a kind of coding technique2001-08-30 14:58:20.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:20.0
        viewcontains objects used to render the appearance of the data from the model in the user interface2001-08-30 14:58:20.0
        displays the various controls with which the user can interact2001-08-30 14:58:20.0
        has definition In the MVC architecture, the class or classes used to render the appearance of the data from the model in the user interface2001-08-30 14:58:20.0
        is a kind of class2001-08-30 14:58:20.0
        is a subtopic of 9.5 - Architectural Patterns2001-08-30 14:58:20.0
        virtual bindingis a synonym of dynamic binding2001-08-30 14:58:20.0
        virtual machineis a kind of component2001-08-30 14:58:20.0
        is a subtopic of The Basics of Java2001-08-30 14:58:20.0
        is abbreviated as VMlink: chapter2section2.8.html#506, 2001-08-30 14:58:20.0
        usually uses just-in-time compilationlink: chapter2section2.8.html#522, 2001-08-30 14:58:20.0
        VMis a subtopic of The Basics of Java2001-08-30 14:58:20.0
        is an abbreviation for virtual machinelink: chapter2section2.8.html#506, 2001-08-30 14:58:20.0
        is an instance of abbreviation2001-08-30 14:58:21.0
        voidis a subtopic of The Basics of Java2001-08-30 14:58:21.0
        is an instance of Java keyword2001-08-30 14:58:21.0
        volatileis a subtopic of The Basics of Java2001-08-30 14:58:21.0
        is an instance of Java keyword2001-08-30 14:58:21.0
        waterfall modelforms the foundation of many software development methodologies in use today2001-08-30 14:58:21.0
        has definition A process model in which the software engineer works in a series of stages2001-08-30 14:58:21.0
        has principles
        • software engineers should work in a series of stages
        • before completing each stage, they should perform quality assurance so that the next stage can be built on a good foundation
        • software engineers sometimes have to step back to earlier stages when they discover a problem in a subsequent stage
        2001-08-30 14:58:21.0
        has some limitations2001-08-30 14:58:21.0
        has weaknesses if followed too closely:2001-08-30 14:58:21.0
        is better than the opportunistic approach2001-08-30 14:58:21.0
        is a kind of process model2001-08-30 14:58:21.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:58:21.0
        is named because diagrams of it tend to look like cascading waterfalls2001-08-30 14:58:21.0
        recognizes the importance of requirements, design and quality assurance2001-08-30 14:58:21.0
        web siteis a kind of publication2001-08-30 14:58:21.0
        web site about British standardshas URL bsonline.techindex.co.uk    2001-08-30 14:58:21.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:58:21.0
        is an instance of web site about standards2001-08-30 14:58:21.0
        web site about design patternsis a kind of web site2001-08-30 14:58:21.0
        is a subtopic of 6.15 - Using Design Patterns - References2001-08-30 14:58:21.0
        web site about extreme programminghas URL www.extremeprogramming.org    2001-08-30 14:58:21.0
        is a subtopic of 11.2 - Software Process Models2001-08-30 14:58:22.0
        is an instance of web site2001-08-30 14:58:22.0
        web site about Javais a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 2.11 - Review of Object Orientation and Java - References2001-08-30 14:58:22.0
        web site about modelling interactions and behaviouris a kind of web site2001-08-30 14:58:22.0
        web site about project managementis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:58:22.0
        web site about requirements analysisis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 4.13 - Developing Requirements - References2001-08-30 14:58:22.0
        web site about software architectureis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 9.9 - Architecting and designing software - References2001-08-30 14:58:22.0
        web site about software failuresis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:58:22.0
        web site about software quality assuranceis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:58:22.0
        web site about software testingis a kind of web site2001-08-30 14:58:22.0
        is a subtopic of 10.14 - Testing and Inspecting to Ensure High Quality - References2001-08-30 14:58:22.0
        web site about standardsis a kind of web site2001-08-30 14:58:23.0
        is a subtopic of 11.8 - Managing the Software Process - References2001-08-30 14:58:22.0
        web site about the client-server architectureis a kind of web site about software architecture2001-08-30 14:58:23.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:58:23.0
        web site about the Internetis a kind of web site2001-08-30 14:58:23.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:58:23.0
        web site about UMLis a kind of web site2001-08-30 14:58:23.0
        is a subtopic of 5.11 - Modelling With Classes - References2001-08-30 14:58:23.0
        web site about usabilityis a kind of web site2001-08-30 14:58:23.0
        is a subtopic of 7.9 - Focusing on Users and Their Tasks - References2001-08-30 14:58:23.0
        weighted average costequals two to three times average salary2001-08-30 14:58:23.0
        has definition The cost of employing a person, including the cost of benefits, office and management support2001-08-30 14:58:23.0
        includes the average salary of a software engineer and the cost of providing that person with benefits, an office, a desk, a computer as well as technical and managerial support2001-08-30 14:58:23.0
        is a kind of cost2001-08-30 14:58:23.0
        is a subtopic of 11.3 - Cost Estimation2001-08-30 14:58:23.0
        is a synonym of burdened cost2001-08-30 14:54:45.0
        whileis a subtopic of The Basics of Java2001-08-30 14:58:23.0
        is an instance of Java keyword2001-08-30 14:58:23.0
        while loophas form
        while(condition)
        {
        // statements to keep executing while condition is true
        }
        link: chapter2section2.8.html#745, 2001-08-30 14:58:23.0
        is a kind of loop2001-08-30 14:58:23.0
        is a subtopic of The Basics of Java2001-08-30 14:58:23.0
        can be interchanged with a for looplink: chapter2section2.8.html#751, 2001-08-30 14:58:23.0
        white-box testingis a synonym of glass-box testing2001-08-30 14:58:23.0
        widgetis a synonym of control2001-08-30 14:55:04.0
        is a synonym of user interface component2001-08-30 14:58:24.0
        windowis a kind of user interface component2001-08-30 14:58:24.0
        is a subtopic of 7.4 - The Basics of User Interface Design2001-08-30 14:58:24.0
        Windows commandis a kind of command2001-08-30 14:58:24.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:58:24.0
        winipcfghas purpose to find the host name of a Windows 95 or 98 computer2001-08-30 14:58:24.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:58:24.0
        is an instance of Windows command2001-08-30 14:58:24.0
        wizardguides the user from one step to the next2001-08-30 14:58:24.0
        is a kind of user interface2001-08-30 14:58:24.0
        is a subtopic of 7.5 - Usability Principles2001-08-30 14:58:24.0
        world wide webhas clients browsers that display web pages and post forms, e.g. Netscape Navigator or Microsoft Internet Explorer2001-08-30 14:58:24.0
        has server web servers that manage sets of web pages and CGI programs, and send information to browsers when sent a URL2001-08-30 14:58:24.0
        is a subtopic of 3.4 - The Client-Server Architecture2001-08-30 14:58:24.0
        is an instance of client-server system2001-08-30 14:58:24.0
        Yahoo software reuse pagehas URL ca.yahoo.com/Computers_and_Internet/Software/Programming_Tools/Software_Engineering/Software_Reuse    2001-08-30 14:58:24.0
        is a subtopic of 3.11 - Basing Software Development on Reusable Technology - References2001-08-30 14:58:24.0
        is an instance of software reuse web site2001-08-30 14:58:24.0
        ypcat hostshas purpose to find the IP address of a Unix or Linux computer corresponding to a host name, or to find the host name corresponding to an IP address2001-08-30 14:58:24.0
        is a subtopic of 3.5 - Technology Needed to Build Client-Server Systems2001-08-30 14:58:24.0
        is an instance of Unix or Linux command2001-08-30 14:58:24.0
        ||indicates logical ORlink: chapter2section2.8.html#579, 2001-08-30 14:54:17.0
        is a subtopic of The Basics of Java2001-08-30 14:54:17.0
        is an instance of Java logical operator2001-08-30 14:54:17.0
        is an instance of short circuit operator2001-08-30 14:54:17.0