CSC-210 flashcards
CSC-210 · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Waterfall model
- A sequential lifecycle in which each phase is completed and baselined before the next begins. It suits stable, well-understood requirements but makes late change expensive.
- Scrum Sprint timebox
- A fixed-length iteration of one month or less containing Sprint Planning, Daily Scrum, the Sprint Review, and the Sprint Retrospective. Scope may be renegotiated with the Product Owner, but the timebox itself never extends.
- V-model pairing
- A lifecycle where each construction phase maps to a test level: requirements to acceptance testing, architectural design to system testing, detailed design to integration testing, and coding to unit testing.
- Kanban WIP limit
- A cap on how many items may occupy a workflow column at once. It exposes bottlenecks, reduces multitasking, and shortens cycle time without imposing fixed iterations.
- Functional requirement
- A statement of a behavior, service, or computation the system must provide, such as 'the system shall email a receipt within one minute of payment'. It is distinct from quality constraints.
- Non-functional requirement
- A constraint on how well a function is performed, covering performance, security, availability, usability, or maintainability. It is testable only when quantified with a measurable threshold.
- MoSCoW prioritization
- A requirements ranking scheme using Must have, Should have, Could have, and Won't have this time. Must-haves define the minimum releasable scope and must all be delivered.
- Requirements traceability matrix
- A table mapping each requirement to its source and to design elements, code, and test cases. It reveals orphan requirements, untested requirements, and gaps in coverage.
- Liskov Substitution Principle
- Subtypes must be usable wherever their base type is expected without altering correctness. A subclass that strengthens preconditions or weakens postconditions violates it.
- Coupling versus cohesion
- Coupling measures interdependence between modules; cohesion measures how closely related the responsibilities inside one module are. Good design minimizes coupling and maximizes cohesion.
- Facade pattern
- A structural pattern that provides one simplified interface to a set of subsystem interfaces, reducing client coupling to internal classes without hiding all subsystem access.
- Microservices architecture
- A style decomposing a system into independently deployable services owning their own data. It gains independent scaling and release cadence at the cost of distributed transactions and operational complexity.
- Hash table load factor
- The ratio of stored entries to available buckets. As it rises, collisions increase and average lookup degrades from constant toward linear, so implementations resize and rehash beyond a threshold.
- Binary heap ordering
- A complete binary tree where each parent satisfies the heap property against its children. Insert and extract-min cost O(log n), and building from an array costs O(n).
- Quicksort worst case
- Quicksort partitions around a pivot and averages O(n log n), but degenerates to O(n²) when pivots are consistently extreme, as with sorted input and a naive first-element pivot.
- BFS versus DFS
- Breadth-first search explores level by level with a queue and finds shortest unweighted paths. Depth-first search goes deep with a stack or recursion and supports topological sorting and cycle detection.
- Verification versus validation
- Verification confirms the product conforms to its specification (building it right). Validation confirms it satisfies the user's actual needs (building the right product).
- Boundary value analysis
- A black-box technique selecting test inputs at and just inside or outside the edges of each input range, because defects cluster at boundaries rather than in the middle of valid partitions.
- Cyclomatic complexity
- A count of linearly independent paths through code, computed as edges minus nodes plus two, or predicates plus one. It equals the minimum branch tests needed for full branch coverage.
- Statement versus branch coverage
- Statement coverage requires every executable line to run; branch coverage requires every decision outcome to be taken. Full statement coverage never guarantees full branch coverage.
- Configuration baseline
- A reviewed and approved configuration of items that serves as the reference for further work. Changes to it proceed only through formal change control.
- Continuous delivery versus deployment
- Continuous delivery keeps the mainline in a always-releasable state with a manual approval to ship. Continuous deployment automatically releases every change that passes the pipeline.
- Blue-green deployment
- Running two identical environments and switching traffic from the live one to the newly verified one. Rollback is immediate because the previous environment is still intact.
- Semantic versioning
- A versioning scheme MAJOR.MINOR.PATCH where MAJOR signals incompatible changes, MINOR adds backward-compatible features, and PATCH delivers backward-compatible fixes.
- COCOMO II effort model
- An estimation model where effort in person-months equals a constant times size raised to a scale exponent, adjusted by cost drivers. Effort grows faster than size on large projects.
- Brooks's Law
- The observation that adding people to a late software project delays it further, because new members need ramp-up time and communication paths grow quadratically with team size.
- Three-point PERT estimate
- An expected duration computed as (Optimistic + 4 × Most Likely + Pessimistic) / 6, with standard deviation (Pessimistic − Optimistic) / 6, capturing estimate uncertainty.
- Cost performance index
- Earned value divided by actual cost (EV / AC). A value below 1.0 indicates the project is spending more than the work completed is worth.
- SQL injection prevention
- Use parameterized queries or prepared statements so data never becomes executable SQL, combined with least-privilege database accounts and validation at trust boundaries.
- STRIDE threat categories
- A threat modeling mnemonic: Spoofing identity, Tampering with data, Repudiation, Information disclosure, Denial of service, and Elevation of privilege. Each category suggests specific mitigations.
- Password storage with KDF
- Passwords are stored as salted hashes produced by a deliberately slow key derivation function such as bcrypt, scrypt, or Argon2, making offline brute-force and rainbow-table attacks impractical.
- Code of Ethics precedence
- In the ACM/IEEE Software Engineering Code, the Public principle outranks Client and Employer, Product, Judgment, Management, Profession, Colleagues, and Self when obligations conflict.