Object Oriented Software Engineering   View all facts   Glossary   Help
subject
Next kbTopsynonym    UpkbTop    Previous kbTopabbreviation   

subject comparison table
Subject cause have solution express in determine by occur automatically over-constrain have specification involve is a synonym of base on analysed take be often supported by form identify by have benefit use obtain from function as deteriorate gather from solve describe carry out by include validate using influence by run at see also contain support by express as cut have scope give rise to indicate include only lead to be simpler in perform agree upon by consist of help have part draw as document is part of serve as has definition undertake without find by exist define have example describe in have localization issues be is a subtopic of show as make by complete think of as happen in developed by have postconditions report regularly to change have summary determine have quality give group with have preconditions duplicate represent have example formula write by have related use cases express using standardize for follow design usually for compute by test on abbreviate as have purpose classify according to have current version require has part have problem represent by assist have goals be often attribute to made by have procedure wear out provide divide up into narrow by write as have steps have actors have design with
action                                                                                                            
affordance                                                The set of operations that the user can do in a user interface at any given point in time    the set of typing into an input field, clicking on a button or selecting an item from a menu   7.4 - The Basics of User Interface Design                                                  
algorithm                                                         10.4 - Defects in Numerical Algorithms                                                  
algorithmic cost estimation model                formula                               An approach to cost estimation such as COCOMO or function points, that use mathematical formulas whose parameters are based on industrial experience        11.3 - Cost Estimation     looking at a wide range of software development projects           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
                       provide formulas to compute anticipated cost of a project, taking into account various aspects of the project's size and complexity        
attribute^2                                                A detail in the requirements of a system circling all the important points in the requirements document      10.8 - Writing Formal Test Cases and Test Plans   something that is testable                                              
behaviour                                                The way an object or system acts and reacts, possibly changing its state        2.2 - Classes and Objects                                                  
benefit                                                         9.3 - Techniques for Making Good Design Decisions                                                  
change                                                         4.9 - Managing Changing Requirements                                                  
coding scheme                                                                                                            
combinatorial explosion                                                In the context of testing, the observation that the number of required tests for exhaustive testing will increase exponentially as the number of inputs increases        10.3 - Defects in Ordinary Algorithms                                                  
component                                       a special-purpose function such as the user interface for a particular system        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 functionality       reusable if it can be used in several different systems with little or no modification9.1 - The Process of Design                                                  
connection                                                The existence of a communications channel between two computers, typically a client and server        3.4 - The Client-Server Architecture                               socket in the server                  
constant                                                         The Basics of Java                           to hold a value that does not change   value                  
context                                              design pattern The general situation in which a design pattern applies        6.1 - Introduction to Patterns                                                  
cost                                                         9.3 - Techniques for Making Good Design Decisions                                                  
cost estimate                                                        11.3 - Cost Estimation       other members of the team, to management and to customers                                          
criterion                                                                                                            
critical path                                   the minimum time in which it is possible to complete the project            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 project        11.5 - Project Scheduling and Tracking                        searching for the path through the PERT chart that has the greatest cumulative elapsed time                         
design decisionother new issues to be raised                                               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-off        9.1 - The Process of Design 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
                                    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
           
design option                                                An alternative solution to a design issue        9.1 - The Process of Design                                                  
design space                                                The space of possible design options        9.1 - The Process of Design                                                  
dialog^2                                                The back-and-forth interaction between user and computer        7.4 - The Basics of User Interface Design                                                  
discipline                                                         1.2 - What is Software Engineering?                                                  
domain                            domain^2                   A named computer network        3.5 - Technology Needed to Build Client-Server Systems                                                  
domain^2                            domain                   A general field of business or technology in which users work, and which is learned by the software engineer during domain analysis        4.1 - Domain Analysis                                                  
economies of scale                                                Sub-linear growth in effort as size increases        11.3 - Cost Estimation    software engineering                                             
equivalence class               allows the tester to do efficient yet thorough black box testing                                A set of inputs that a tester believes will be treated similarly by reasonable algorithms        10.2 - Effective and Efficient Testing                                                  
eventa system or object to change from one state to another                                               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 activity        8.2 - State Diagrams                                                  
file                                                         The Basics of Java                                                  
force                                              design pattern In a pattern, an issue or concern that you need to consider when solving the problem, including, criteria for evaluating a good solution        6.1 - Introduction to Patterns                                                  
goal                                                What the user hopes to accomplish by using a system        7.3 - Developing Use Case Models of Systems                                                  
hierarchy                                                         2.5 - Organizing Classes Into Inheritance Hierarchies                                                  
hook                                              system 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 reused       similar to a slot except that a hook represents functionality that it is optional for the developer to provide when they exploit the framework9.2 - Principles Leading to Good Design                                                  
host              prepending characters to the domain's name                                 A computer on a network        3.5 - Technology Needed to Build Client-Server Systems                                               a different number for each of its servers  
inheritance    once you have defined which classes are superclasses and which classes are their subclasses                                           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 latter        2.5 - Organizing Classes Into Inheritance Hierarchies                                                  
inspection meeting                                                         10.10 - Inspections                                       
  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
          
interaction                                                The set of steps in a use case or other piece of functionality        8.1 - Interaction Diagrams                                                  
interface^2                            interface^3                   The operations provided by a module for other modules to use        The Basics of Java                                                  
IP address                                         four numbers, each between 0 and 255      The address of a computer (i.e. a host) connected to an IP network        3.5 - Technology Needed to Build Client-Server Systems                             IP version 4                    
Java clause                                                         The Basics of Java                                                  
Java terminal I/O                                                     
//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();
   The Basics of Java                                                  
live activation                                                The period of time when an object is performing work        8.1 - Interaction Diagrams                                                  
locale                                                An environment where the language, culture, laws, currency and many other factors may be different        7.5 - Usability Principles                                                  
locale-dependent feature                                                         7.5 - Usability Principles                                                  
look and feel                                                         7.5 - Usability Principles                     each operating system                            
measurement                                                         1.5 - Software Quality                                                  
mechanism                                                         The Basics of Java                                                  
message                                                Any information sent as a component interacts with another, including using procedure calls, or network communication        8.1 - Interaction Diagrams                                 a message in sequence diagram                
methodology            tools developed by the author of the process, or others         aspects of project management                         A description of a process; it usually prescribes how to do things in a step by step manner        5.1 - What is UML?                              the use of a particular notation and the production of documentation in particular formats                   
milestone                                            a diamond in a Gantt chart   An important deadline date, at which a specific event may occur, and when a specific deliverable may be required        11.5 - Project Scheduling and Tracking                                                  
multiplicity                                            a range separated by two dots (e.g. 2..3) in a UML class diagram   Information placed at each end of an association indicating how many instances of one class can be related to instances of the other class       as least restrictive as possible so as not to reduce the flexibility of the system5.3 - Associations and Multiplicity                                            a specific positive integer or as several multiplicity values or ranges separated by commas     
note                                                A small block of text embedded in a UML diagram        5.6 - More Advanced Features of Class Diagrams                                                  
noun phrase                                                A string of nouns, or a noun modified by one or more adjectives    "small shiny car door handle"   5.8 - The Process Of Developing Class Diagrams                                                  
paradigm                                                An approach to software design and programming        2.1 - What is Object Orientation?                                                  
pattern                             a solution that has been proven to effectively solve the problem in the indicated context                  A widely understood solution to a particular type of problem     an easy-to-understand form so that people can determine when and how to use it as general as possible6.1 - Introduction to Patterns                                                  
person or group                                                                                                            
pipeline                                                A series of processes that transform data in the pipe-and-filter architectural pattern        9.5 - Architectural Patterns                                                  
port                                                A number associated with a server on a host, used by a client that wishes to connect to that server        3.5 - Technology Needed to Build Client-Server Systems                                                  
practice                                                                                                            
priority                 non-functional requirements        memory efficiency, CPU efficiency, maintainability, portability and usability                     An ordering that states which qualities override others in those cases where you must make compromises        9.3 - Techniques for Making Good Design Decisions                                                  
problem which will normally entail developing software, although you may decide that it is better to purchase software or to develop a non-software solution                                              In the broad context of software engineering, a difficulty, challenge, need or desire faced by a customer that is to be solved by developing software        1.2 - What is Software Engineering?                                            a simple problem statement in one or two sentences     
problem^2                                              design pattern                                                             
process                            process^2                   Anything that operates for a period of time, normally consuming resources during that time and using them to create a useful result                                                           
process model        software process model         an aid to thinking, not as a rigid prescription of the way to do things                       the project manager and his or her team to decide what work should be done and in what sequence to perform the work     A general approach for organizing a project into activities; an aid to thinking, not a rigid prescription of the way to do things        11.2 - Software Process Models                                                  
process^2                            process                   A running thread of execution in a computer                                                           
program                                                        readable by humansProgramming Style Guidelines                  programmer   consistent guidelines that make the program easy to read                           
programming language construct                                                                                                            
project scheduling technique                                                                                                            
property                      an object's current state                                  2.2 - Classes and Objects                                                  
protocol                                                The languages and rules by which two programs or processes communicate, as in a client-server system        3.4 - The Client-Server Architecture                                                  
publication                                                                                                            
rationale                                                The reasoning underlying requirements or design decisions        9.6 - Writing a Good Design Document                                                  
relation                                                         5.6 - More Advanced Features of Class Diagrams                                                  
release                                                         10.9 - Strategies for Testing Large Systems                                                  
representation                                                                                                            
requirement  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 diagram  the design of the system    if there is any doubt whether it is realistic         various stakeholders, other software systems and any documentation that might be availablea customer's problemthe domain        a factif cost-benefit analysis shows that it will have minimum benefit but still cost a lot to develop  how it will be implemented in order to give the designer as much freedom as possible to make decisions a system of sufficient quality - one that is sufficiently usable, safe, efficient, reliable and maintainable  all stakeholders       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 solved       verifiable4.4 - What Is a Requirement?a diagram       whenever the benefits of doing so outweigh the costs   a unique number for traceabilityother requirements into a requirements document      clear and consistent notation, using language that the customers can understand, and consistent with the other requirements          problem statement               benefits that outweigh the costs of development  
resource                                                Anything consumed in the development, operation or maintenance of a product or process        1.5 - Software Quality                                                  
responsibility                       operation                        Something a system is required to do that is allocated to a particular class looking for verbs and nouns describing actions in the system description      5.8 - The Process Of Developing Class Diagrams                              several operations but one public operation will be in charge, all others will be private      a class            
scope                                                The region of a source text over which a declaration holds        The Basics of Java                                                  
scope^2                                                The extent of a software project   as early as possible   too narrow if the problem statement is inappropriate4.3 - Defining The Problem and the Scope                                           excluding subproblems      
set of equivalence classes for a system                             a number of equivalence classes equal to the product of the number of classes of the individual inputs             one or more equivalence class    The set of all possible combinations of inputs to a system       very large10.2 - Effective and Efficient Testing                                                  
situation                                                                                                            
software                   as it is changed repeatedly                            Programs and related data that run on a computer       more reliable if it has fewer failures1.1 - The Nature of Software           which is only as good as its lowest-quality reusable component           human beings to use                with use like other engineering artefacts      a poor design and is steadily becoming worseusers' input otherwise it may not be usable 
software engineering team model                                                         11.4 - Building Software Engineering Teams                                                  
software library                                                         1.9 - Difficulties And Risks In Software Engineering as a Whole                                               bugs and incompatibilities  
software project       modifying an existing system                                         a sound domain analysis      at risk from models that are incomplete, incorrect or not flexible enough1.6 - Software Engineering Projects  behind schedule and over budget, or are not completed at all                             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 sales              economy of scale as it gets larger due to the increasingly large amount of co-ordination involved  
state                                                A situation in which a system or object behaves in a specific way in response to any events that occur        8.2 - State Diagrams          the way an object or system behaves in response to any events that occur                      state symbol in a state diagram                
symbol                                                                                                            
system      which is then implemented by a collection of components                                         A logical entity, having a set of definable responsibilities or objectives, and consisting of hardware, software or both  even if its components change over the course of time, or are replaced by equivalent components    in a state until an event occurs that causes it to change state                                subsystem          subsystems       
test                                                A particular run of a test case on a particular version of the system        10.8 - Writing Formal Test Cases and Test Plans                                                  
test case                             
  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
    many tests             An explicit set of instructions designed to detect a particular class of defect in a software system, by bringing about a failure        10.8 - Writing Formal Test Cases and Test Plans                            importance, or severity level, so that the most important test cases are executed first, and are designed to detect the most severe classes of defect                     
thread                           the same time as another threadthread in Java many operating systems and programming languages                 A path of execution that can run concurrently with other paths of execution        The Basics of Java                                                  
tool                                                         The Basics of Java                                                  
trigger question   the person who called the meeting, by the moderator, by a quick discussion, or by brainstorming, followed by a vote                                            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 responses    
  • 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?
   4.6 - Some Techniques for Gathering and Analyzing Requirements                                                  
use case             the basis for the definition of test cases  to validate requirements     the computations the system performs only actions in which the actor interacts with the systemrequirements validation methods          actions in which the actor interacts with the computer          as part of the contract between the customers and the developerA 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 information       independent of any particular user interface design7.3 - Developing Use Case Models of Systems      zero or more postconditions     an architect an idea about which components will be needed and how they will interact zero or more preconditions which describe the state of the system before the use case occurs a high risk because for some reason their implementation is problematic.  zero or more use cases that may be generalizations, specializations, extensions or inclusions of this one              an architect with the first draft of the architectural modelzero or more goals         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 responsesthe actors or actor who can perform this use case (optional)one or more preconditions  
user interface           over half of all development effort                          the early days of computing                 the part of a system that is most likely to cause users to perceive a lack of quality.7.4 - The Basics of User Interface Design                         usersUI         the most complex part of the system to design, and the part that is most likely to cause users to perceive a lack of quality             

Next kbTopsynonym    UpkbTop    Previous kbTopabbreviation