1/27
These vocabulary flashcards cover the scope, history, economic aspects, and life-cycle models of Software Engineering, as well as the transition from the structured paradigm to the object-oriented paradigm.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Software Engineering
A discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client’s needs.
1968 NATO Conference
A conference in Garmisch, Germany, whose aim was to solve the software crisis.
Software Crisis
The historical state of software production where products were delivered late, over budget, and with residual faults.
Standish Group Data
Data from 2006 indicating that successful projects represented just over one in three cases.
Life-cycle model
A theoretical description of the steps (phases) to follow when building software.
Life cycle
The actual steps performed on a specific software product.
Waterfall Life-Cycle Model
The classical model of software development phases introduced in 1970.
Requirements phase
The classical phase dedicated to exploring the concept and eliciting the client’s requirements.
Analysis (specification) phase
The phase dedicated to analyzing client requirements and drawing up a specification document defining "what the product is supposed to do."
Design phase
The phase comprising architectural design and detailed design to determine "how the product does it."
Implementation phase
A phase consisting of coding, unit testing, integration, and acceptance testing.
Postdelivery maintenance
The process of making changes to a software product after it has been delivered and installed.
Classical Maintenance Definition
A temporal definition where an activity is classified as development or maintenance based on when it is performed relative to installation.
Modern Maintenance (ISO/IEC 1995 definition)
The process that occurs when a software artifact is modified because of a problem or because of a need for improvement or adaptation, regardless of timing.
Corrective maintenance
Maintenance activities performed to fix software faults.
Perfective maintenance
Maintenance activities performed when a client wants to increase the functionality of a software product.
Adaptive maintenance
Maintenance activities performed to adjust the software to changes in its operating environment.
Regression testing
Testing required when correcting faults late in the life cycle to ensure no new faults were introduced.
Structured paradigm
A paradigm that is either action-oriented (e.g., data flow diagrams) or data-oriented (e.g., entity-relationship diagrams), but not both.
Object
A software component that incorporates both data and the actions that are performed on that data.
Information Hiding
An object-oriented principle where the implementation details of an object's data are hidden from external modules.
Encapsulation
The grouping of everything related to a real-world item being modeled into a corresponding independent software unit.
Responsibility-Driven Design
Also called design by contract; a design approach where messages are sent to an object's method without the sender knowing the object's internal structure.
Analysis/Design "Hump"
The jolt or disconnect in the structured paradigm between determining "what" (analysis) and "how" (design).
Commercial off-the-shelf (COTS) software
Standard software products that are sold to the general public.
Linus's Law
An open-source software principle stating, "given enough eyeballs, all bugs are shallow."
Attribute
The generic term for the data component of an object, also known as a state variable, instance variable, or field.
Method
The generic term for the action component of an object, also known as a member function.