Subject |
include |
consist of |
is part of |
result in |
prevent |
require |
emphasize as part of |
is a subtopic of |
have goal |
consists of |
involve |
introduce |
see also |
has part |
perform by |
determine |
use by |
have difficulties |
occur |
have purpose |
organize into |
have definition from the IEEE |
is a synonym of |
have example |
use during |
avoid by |
give |
have risk |
need when |
cause |
see as |
have goals |
have economic constraints |
occur in |
handle by |
do without |
have procedure |
done on |
automate by |
have definition from the Canadian Standards Association |
use |
have part |
be not |
perform using |
has definition |
be |
have challenge |
automate |
analysis | | | | | | | | 2.2 - Classes and Objects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
build | | | | | | | | 10.9 - Strategies for Testing Large Systems | | | compiling and integrating all the components of the software, incorporating any changes since the last time this was done | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | a daily or weekly basis | | | | | | | The process of compiling and integrating all the components of the software, incorporating any changes since the last build | | | |
business process | | | | | | | | 4.9 - Managing Changing Requirements | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | software system | | | | | | A process performed by people in an organization | | | |
casting | | | | | | | | The Basics of Java | | | | | process^2 | | | | | | | to convert an instance of one data type into another which is a subclass of the original type | | | | (String)i.next() | | | | | | | | | | | | | | | | | | | | | | | | |
compilation | | | | | | | | The Basics of Java | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of translating source code into code that is executable by a computer | | | |
construction | | | | | | | | 11.3 - Cost Estimation | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | like construction of buildings | | 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 weak | | | |
contracting-out | | | | | | | | 1.1 - The Nature of Software | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paying to have software (typically custom software) developed by some other organization | | | |
cost estimation | | | | | | | | 11.3 - Cost Estimation | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | elapsed time | | | | The process of estimating the effort and elapsed time of an activity or project | a continuous activity | | |
cost estimation technique | | | | | | | | 11.3 - Cost Estimation | | | | | process^2 | | | | cost estimator | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
defining the problem | | | requirements and specification | | | | | 1.6 - Software Engineering Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A part of requirements and specification that involves narrowing down the scope of the system by determining the precise problem that needs solving | | | |
deployment | | | | | | | | 9.4 - Software Architecture | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 system | | | |
design | | | | | | considerable experience | | 9.1 - The Process of Design | | | | | design^2 | user interface design | | how components will be implemented in a system | | | | | | | | | | | | | | | | - 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
| | | | | | | | | | | | | 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 quality | | | |
deterioration | | | | | | | | 1.1 - The Nature of Software | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tendency of software to accumulate defects as time passes due to errors being made during maintenance | | | |
development | | | | | | | | 4.5 - Types of Requirements | | | | | process^2 | | | | | | | | | | software engineering process | | | | | | | | | | | | | | | | | | | | | | A process used to develop software | | | |
dynamic binding | | | | | programmers from having to write conditional statements to explicitly choose which code to run | | | 2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations | | | | | process^2 | | | | | | | | | | virtual binding | | | | power to polymorphism | | the compiler determines that there more than one possible method that could be executed by a particular call | | | | | | | | | | | | | | | | The process of binding a call to a particular method. This is performed dynamically at run-time due to the presence of polymorphism | | | |
engineering | | | | | | | | 1.3 - Software Engineering as a Branch of the Engineering Profession | | | | | process^2 | | | | | | | | | | | | | | | | | | | | - 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
| | | | | | | | | | | | 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 processes | | | |
enumerating attributes | | | | | | | | 10.8 - Writing Formal Test Cases and Test Plans | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the first step when creating a set of test cases | | |
evolution | | | software engineering | | | | | 1.6 - Software Engineering Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 performed | | | |
generalization^2 | | | | | | | | 5.4 - Generalization | | | | | generalization, generalization^3 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of creating a relationship between a set of similar entities and another entity that contains the common aspects of those entities | | | |
gold-plating | | | | | | | | 4.8 - Reviewing Requirements | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building a list of requirements that does more than needed | | | |
implementation | | | | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of converting a design into an executable software system by programming and related activities | | | |
internationalization | | | | | | | | 7.5 - Usability Principles | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of ensuring that a system can be easily adapted to different locales | | | |
localization | | | | | | | | 7.5 - Usability Principles | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of adapting a system to a particular locale | | | |
maintenance | | | software engineering | | | | | 1.6 - Software Engineering Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the context of software, any process involving modifying software following its general release to users | | | |
modelling | | | | | | | education programs | 5.1 - What is UML? | | | | | process^2 | | | | | | | | | | | | requirements analysis | | | | | | | | | | | | | | | | formal languages | | | - diagrams
- semi-formal or formal languages that express the information systematically or mathematically
| The process of creating a model | a particularly difficult skill | | |
obsolescence | | | | | | | | 9.2 - Principles Leading to Good Design | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 correctly | | | |
programming | | | software engineering | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the final stage of design because it involves making decisions about programming language constructs, variable declarations etc. | | |
project management | all the activities needed to plan and execute a project | | | | | | | Chapter 11 - Managing the Software Process | | | | | process^2 | | software engineer | | | - 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
| | | | | | | | | | | | | | | | | | | | | | | | | | | All the activities needed to plan and execute a project. | | | |
project scheduling | | | | | | | | 11.4 - Building Software Engineering Teams | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | PERT chart | | | | The process of deciding what sequence the various activities will be done, and when they should start and complete | | | |
propagation | | | | the properties of the parts being propagated back to the aggregate | | | | 5.6 - More Advanced Features of Class Diagrams | | | | | process^2 | | | | | | | | | | | the weight of an aggregate could be obtained by summing the weights of its parts | | | | | | | | | | aggregations | | | | | | | | | | | 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 parts | | | |
quality assurance | | | | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | verification | | | | | throughout a project | | | | | | | | | the conflict between achieving adequate quality levels, and 'getting the product out of the door' | | | an overhead expense to be reduced | | | | a separate department | | | | | | | | | | The process of ensuring that the quality of a product or process is sufficient to meet the needs of the stakeholders | | | |
requirements and specification | | | | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | requirements specification | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
requirements creep | | | | very significant cost overruns in projects | | | | 4.9 - Managing Changing Requirements | | | | | process^2 | | | | | | when changes to a system are really enhancements in disguise | | | | | | | - 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
| | | | | | | | | | | | | | | | | | | 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 intended | | | |
requirements elicitation | | | requirements gathering | | | | | 4.6 - Some Techniques for Gathering and Analyzing Requirements | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of actively asking stakeholders to describe their view of the requirements; an important aspect of requirements gathering | | | |
requirements gathering | | | requirements and specification | | | | | 4.6 - Some Techniques for Gathering and Analyzing Requirements | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A step in requirements analysis in which information is obtained that will form the basis of the requirements | | | |
reviewing | | | | | | | | 4.8 - Reviewing Requirements | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of systematically proceeding through a software document to perform a function such as validation, or verification | | | |
risk management | | | | | | | | 1.8 - The Eight Themes Emphasized in this Book | | | | | process^2 | risk analysis | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of evaluating risks and taking corrective action, including revising plans, on a regular basis | | | |
scheduling | | | | | | | | 11.5 - Project Scheduling and Tracking | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Determining the sequence of tasks, plus deciding when the tasks should start, and setting deadlines for when they must be complete | | | |
serialization | | | | | | | | 3.5 - Technology Needed to Build Client-Server Systems | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | to save objects into a binary file | | | | 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 ObjectInputStream | | | |
software change | | | | | | | | 1.1 - The Nature of Software | | | | new bugs | process^2 | | | | | | | | | | | | | | | | | | | | | | | fully understanding the software design | | | | | | | | | | | | |
software development | | | | | | | | 1.2 - What is Software Engineering? | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | labour-intensive | 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 system | like some other areas of engineering |
software engineering | | developing completely new software | | | | | | 1.2 - What is Software Engineering? | solving customers' problems | modifying software that has been already written - this is because software is normally continually changed over a period of years until it becomes obsolete | the translation of higher-level designs into particular programming languages | | process^2 | project management | | | | | | | software projects | (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) | | | | | | | | | | | | | | | | | | The systematic activities involved in the design, implementation and testing of software to optimize its production and support | resources such as the time and money of the stakeholders, and the CPU-time and memory of computers | ensuring that maintenance and evolution of software is done in a systematic way | | | 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 kind | undergoing development in its technology and techniques | accurately forecasting how much time it will take either to develop a system, or to make a specific set of changes | |
technique for prototyping class diagrams | | | | | | | | 5.8 - The Process Of Developing Class Diagrams | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | - 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
| | | | CRC (Class-Responsibility-Collaboration) cards | | | | | | | |
test-fix-test cycle | | | | | | | | 10.9 - Strategies for Testing Large Systems | | | | | process^2 | | | | | | | | | | | | | | | | | 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 error | | | | | | | | | | | | | | | The cycle in which software developers repeatedly run tests, discover and fix defects, and then retest. This continues until quality objectives are met | | | |
tracking | | | | | | | | 11.5 - Project Scheduling and Tracking | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | earned value chart | | | | In the context of project management, he process of determining how well you are sticking to the cost estimate and schedule | | | |
validation | | | | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of ensuring that requirements and designs solve the customer's problem | | | |
verification | | | | | | | | 1.7 - Activities Common to Software Projects | | | | | process^2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of ensuring that the design or implementation conforms to the requirements; the process of ascertaining that the software has no defects | | | |