1/28
Vocabulary flashcards covering core definitions, software categories, engineering frameworks, umbrella activities, practice principles, and concepts from Chapter 1 of Software Engineering: A Practitioner's Approach (7th Edition).
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Software
(1) Instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures that enable the programs to adequately manipulate information and (3) documentation that describes the operation and use of the programs.
System Software
A collection of programs written to service other programs, characterized by heavy interaction with computer hardware, heavy usage by multiple users, concurrent operation, complex data structures, and multiple external interfaces.
Application Software
Stand-alone programs that solve a specific business need by processing business or technical data to facilitate business operations or management/technical decision making.
Engineering/Scientific Software
Software characterized by 'number crunching' algorithms, ranging from astronomy to volcanology, automotive stress analysis to space shuttle orbital dynamics, and molecular biology to automated manufacturing.
Embedded Software
Software that resides within a product or system and is used to implement and control features and functions for the end user and for the system itself.
Product-line Software
Software designed to provide a specific capability for use by many different customers, focusing either on a limited marketplace or mass consumer markets.
WebApps
Network-centric software applications ranging from linked hypertext files to sophisticated computing environments integrated with corporate databases and business applications.
Artificial Intelligence Software
Software that makes use of nonnumerical algorithms to solve complex problems not amenable to computation or straightforward analysis, such as robotics, expert systems, and pattern recognition.
Open World Computing
A new category of software characterized by pervasive, distributed computing.
Ubiquitous Computing
A software category centered on wireless networks.
Netsourcing
A software category using the Web as a computing engine.
Open Source
'Free' source code open to the computing community.
Legacy Software
Older software systems that must be adapted, enhanced, extended, or re-architected to meet changing technology or business requirements.
Software Engineering (Seminal Definition)
The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
Software Engineering (IEEE Definition)
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).
Communication (Framework Activity)
A framework activity involving communication and collaboration with customers and stakeholders to understand project objectives and gather requirements.
Planning (Framework Activity)
A framework activity that creates a software project plan describing technical tasks, likely risks, required resources, work products, and a work schedule.
Modeling (Framework Activity)
A framework activity involving the creation of models or sketches to better understand software requirements and the design that will achieve those requirements.
Construction (Framework Activity)
A framework activity that combines code generation (manual or automated) and the testing required to uncover errors in the code.
Deployment (Framework Activity)
A framework activity where software is delivered to the customer, who evaluates the delivered product and provides feedback.
Software Project Management
An umbrella activity that allows the software team to assess progress against the project plan and take necessary action to maintain the schedule.
Formal Technical Reviews
An umbrella activity that assesses software engineering work products to uncover and remove errors before they are propagated to the next activity.
Software Quality Assurance
An umbrella activity that defines and conducts the activities required to ensure software quality.
Software Configuration Management
An umbrella activity that manages the effects of change throughout the software process.
Reusability Management
An umbrella activity that defines criteria for work product reuse and establishes mechanisms to achieve reusable components.
Risk Management
An umbrella activity that assesses risks that may affect the outcome of the project or the quality of the product.
George Polya
Known as the father of modern problem solving, who suggested four steps: 1. Understand the problem, 2. Plan a solution, 3. Carry out the plan, and 4. Examine the result for accuracy.
Hooker's General Principles
Seven fundamental principles of software engineering practice: 1. The Reason It All Exists, 2. KISS (Keep It Simple, Stupid!), 3. Maintain the Vision, 4. What You Produce, Others Will Consume, 5. Be Open to the Future, 6. Plan Ahead for Reuse, and 7. Think!
Software Myths
Beliefs affecting managers, customers, and practitioners that often contain elements of truth but invariably lead to bad decisions.