1/45
Comprehensive vocabulary flashcards covering Software Engineering & Project Management Module 1, including software characteristics, process models, Unified Process, PSP/TSP, software myths, and agile frameworks.
Software
A tripartite entity comprising instructions (computer programs) that provide desired features and functions when executed, data structures that enable information manipulation, and descriptive documentation detailing operation and use.
Dual Role of Software
The characteristic of software acting both as a product that delivers computing potential and as a vehicle for delivering a product by controlling hardware, transforming information, and coordinating other programs.
Bathtub Curve
A U-shaped failure rate versus time graph typical of physical hardware, depicting high infant mortality, a low constant failure rate, and an ultimate wear-out phase caused by friction, vibration, and thermal stress.
Software Deterioration Curve
A failure rate graph for software showing that rather than physically wearing out, software degrades over time due to side-effects and error spikes introduced by ongoing maintenance changes.
System Software
A category of software written to service other programs, characterized by heavy hardware interaction, multi-user concurrency, complex data structures, and multiple external interfaces (e.g., Operating Systems, Compilers).
Application Software
Stand-alone programs designed to solve specific business needs by processing data to facilitate real-time decision making or transaction processing (e.g., Point-of-Sale systems, Inventory Control).
Engineering/Scientific Software
Software characterized by number-crunching algorithms applied to complex computational domains such as astronomy, volcanology, automotive stress analysis, CAD, and molecular biology.
Embedded Software
Software residing inside a product or system to implement and control operational features for the end-user or the system itself (e.g., keypad control in microwaves, automotive braking control).
Product-Line Software
Mass consumer or niche software developed to provide specific capabilities across a broad spectrum of different buyers (e.g., word processors, spreadsheets, graphics software).
Web Applications (WebApps)
Network-centric software systems spanning linked hypertext files to integrated, data-driven enterprise systems that query corporate databases and execute across diverse client environments.
Artificial Intelligence (AI) Software
Software that uses non-numeric algorithms to solve complex non-computational problems (e.g., robotics, expert systems, pattern recognition, neural networks).
Network Intensiveness
A core attribute of WebApps designating that the software resides on a network and serves a vast, diverse client community across public (Internet) or private (Intranet) networks.
Unpredictable Load
A WebApp attribute where the size of the active user population fluctuates by orders of magnitude from day to day (e.g., 100 users on Monday versus 50,000 users on Thursday).
Layered Technology
The foundational view of software engineering structured into four interconnected layers: Quality Focus, Process, Methods, and Tools.
Generic Process Framework Activities
The five foundational activities present in all software engineering process models: Communication, Planning, Modeling, Construction, and Deployment.
Umbrella Activities
Independent activities applied continuously throughout the software process lifecycle, including Software Project Tracking and Control, Risk Management, SQA, Technical Reviews, Measurement, SCM, Reusability Management, and Work Product Preparation.
Software Configuration Management (SCM)
An umbrella activity that manages, controls, and tracks changes across all software work products throughout the entire project lifecycle.
Software Quality Assurance (SQA)
An umbrella activity that establishes, monitors, and verifies process compliance through formal audits and quality reviews.
Technical Reviews
Peer-led inspections of code, models, and specifications designed to catch defects early before formal testing begins.
Waterfall Model (Classic Life Cycle)
A systematic, linear-sequential process model where project work flows strictly downward through communication, planning, modeling, construction, and deployment phases.
Blocking State
A major drawback of linear models like Waterfall where team progress stalls because certain tasks must wait for predecessor deliverables or complete upfront customer specifications.
V-Model
A variation of the Waterfall model that explicitly visualizes the direct relationship between early specification and design phases and their corresponding verification and testing phases.
Incremental Process Model
A software process model combining linear and parallel flows that delivers an operational Core Product in its initial release, followed by supplementary functional increments.
Prototyping Model
An evolutionary process model designed for fuzzy or poorly understood requirements, utilizing rapid design loops to build prototypes for customer evaluation and refinement.
Spiral Model
A risk-driven evolutionary process model created by Barry Boehm that moves outward in clockwise spiral circuits across four quadrants: Communication, Planning (Risk Analysis), Modeling/Construction, and Deployment.
Unified Process (UP)
A use-case driven, architecture-centric, iterative and incremental software engineering process framework created by Ivar Jacobson, Grady Booch, and James Rumbaugh.
Inception Phase (UP)
The initial UP phase that establishes business scope, conducts stakeholder communication, identifies essential use cases, and produces a Vision Document and Business Case.
Elaboration Phase (UP)
The second UP phase which refines use cases, defines five architectural views, mitigates architectural risks, and builds an executable baseline prototype.
Personal Software Process (PSP)
A structured framework developed by Watts Humphrey that empowers individual engineers to measure personal work, track tasks, and eliminate defects early across five framework activities.
Team Software Process (TSP)
A process framework developed by Watts Humphrey extending PSP to self-directed engineering teams of 3 to 20 members, targeting CMMI Level 5 operational maturity.
Brooks' Law
A software project principle stating that adding manpower to a late software project makes it later, due to the ramp-up training overhead and quadratic explosion of communication paths.
Communication Paths Formula
The mathematical formula 2N(N−1) showing that internal communication channels grow quadratically as the number of team members N increases.
Software Myths
Erroneous beliefs historically held by management, customers, and practitioners that foster false expectations and lead to major software project missteps.
Agility
An adaptable software development mindset that prioritizes rapid continuous delivery of working increments, customer collaboration, team self-organization, and adaptability to change.
Agile Cost of Change Curve
A flattened, gently rising cost trajectory achieved through short iterative cycles, automated regression testing, and refactoring, contrasting with the steep exponential curve of Waterfall.
Extreme Programming (XP)
An agile framework created by Kent Beck designed for small-to-medium teams facing changing requirements, structured around the values of Communication, Simplicity, Feedback, Courage, and Respect.
User Stories
Customer-written requirement descriptions on index cards used in XP planning to specify system features, assign development costs, and guide release schedules.
CRC Cards
Class-Responsibility-Collaborator index cards utilized in XP design to identify and organize object-oriented classes, their responsibilities, and interactions.
Spike Solution
A quick, throwaway prototype built in Extreme Programming to explore technical solutions and lower technical risk for difficult or ambiguous customer requirements.
Test-Driven Development (TDD)
A core XP engineering practice requiring developers to write automated unit test cases before developing the actual production code.
Pair Programming
An XP coding technique where two developers collaborate at one workstation; one developer acts as the driver writing code while the other acts as the navigator reviewing in real time.
Scrum
An agile framework structured around prioritized backlogs and short, timeboxed 30-day (or 2-to-4 week) iterations termed Sprints that produce deployable software increments.
Daily Scrum
A 15-minute daily standup meeting facilitated by the Scrum Master where team members sync progress, discuss blockers, and plan the next 24 hours of work.
Feature-Driven Development (FDD)
A practical, client-valued, object-oriented agile model structured around 2-week iterations across five specific steps: Develop Overall Model, Build Features List, Plan by Feature, Design by Feature, and Build by Feature.
Lean Software Development (LSD)
An agile methodology adapted from Toyota Production System lean manufacturing, governed by 7 principles including Eliminate waste, Deliver fast, and Optimize the whole.
Dynamic Systems Development Method (DSDM)
An agile framework providing governance and strict timeboxing based on the philosophy of delivering an 80% system in 20% of the total project time.