CPT 816 SE

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/62

flashcard set

Earn XP

Description and Tags

Comprehensive vocabulary flashcards covering the CPT 716 Software Engineering syllabus, past examination papers, diagrams, metrics, architecture, and project management.

Last updated 3:40 PM on 10/15/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

63 Terms

1
New cards

Software Engineering

The application of a systematic, disciplined, engineering-based approach to the design, development, testing, maintenance, and management of software systems to deliver high-quality, reliable, and cost-effective software on time.

2
New cards

Software Evolution

The continuous process of modifying a software system after it has been delivered—including fault fixing, adapting to new environments or regulations, adding enhancements, and improving performance—until retirement.

3
New cards

S-type (Static) Software

A software category defined by Lehman and Belady (1974) where the problem is fully and formally specified; correctness is defined strictly by meeting the specification, and requirements remain stable with little evolution (e.g., factorial or sorting routines).

4
New cards

P-type (Practical) Software

A software category where the problem cannot be completely specified and the program is an approximation of the real world, refined continuously through feedback and improved understanding (e.g., chess software, weather forecasting).

5
New cards

E-type (Embedded) Software

A software category where the system operates directly inside the real world and alters its operational environment; it must continuously evolve to adapt to changing laws, users, and contexts or lose value (e.g., banking or payroll systems).

6
New cards

Software Development Life Cycle (SDLC)

A structured framework that divides the end-to-end software delivery process into manageable, assignable, and measurable stages (Plan, Design, Implement, Test, Deploy, Maintain) to deliver quality software within budget and schedule while minimizing risks.

7
New cards

Systems Analysis and Design (SAD)

A subset of the SDLC focused specifically on studying the initial business problem and existing system to specify, model, and design the logical and physical blueprints for the proposed solution.

8
New cards

Waterfall Model

A plan-driven, sequential software development life-cycle model in which activities cascade systematically through distinct phases (Requirements, Design, Implementation, Testing, Maintenance), with each phase signed off before the next starts.

9
New cards

Iterative Model

A development model where work begins with a small subset of requirements and incrementally enhances software versions across successive cycles, with each iteration producing a working release.

10
New cards
<p>Spiral Model</p>

Spiral Model

A risk-driven software development process model represented as concentric loops, where each loop corresponds to a distinct phase (feasibility, requirements, design) and incorporates explicit risk analysis and evaluation.

11
New cards

Agile SDLC Model

An iterative and incremental methodology emphasizing flexibility, continuous stakeholder feedback, rapid development cycles, and customer collaboration using small increments.

12
New cards

Formal System Development

A variant of the waterfall process where a mathematical model of a system specification is created and refined into executable code using mathematical, consistency-preserving transformations.

13
New cards

Requirements Engineering (RE)

The systematic process of gathering, analyzing, negotiating, documenting, and validating the services, constraints, and operational goals of a target software system to produce an agreed System Requirements Specification document.

14
New cards

Feasibility Study

The initial stage of requirements engineering that evaluates whether a proposed system is technically, economically, and operationally practical, concluding with a formal go or no-go recommendation report.

15
New cards

Requirements Elicitation

The process of discovering system requirements by actively communicating with clients, end users, and other stakeholders through techniques such as interviews, questionnaires, surveys, observation, and prototyping.

16
New cards

Software Requirement Specification (SRS)

A formal contract document created by the system analyst that outlines user requirements in natural language and technical/system requirements in structured language, specifying functional and non-functional requirements, interfaces, and design constraints.

17
New cards

Requirements Validation

The formal check conducted before software construction to ensure that documented requirements are implementable, valid, complete, unambiguous, and demonstrable.

18
New cards

Functional Requirements

Statements that explicitly define the specific behaviors, operations, calculations, and functions that the software system must perform (e.g., authenticating users, sending monthly reports).

19
New cards

Non-Functional Requirements

Implicit qualities and operational constraints governing how well the system performs its functions, including performance, security, reliability, maintainability, usability, and disaster recovery.

20
New cards

Must Have Requirements

Critical requirements without which the software product cannot be considered operational; mandatory for system implementation.

21
New cards

Should Have Requirements

Requirements that enhance core system functionality; negotiable and incorporated during development whenever possible.

22
New cards

Could Have Requirements

Non-essential requirements that provide minor conveniences; the software functions adequately without them, so they are typically reserved for later releases.

23
New cards

Wish List Requirements

Requirements with no direct link to core project objectives, retained purely as speculative considerations for future updates.

24
New cards

Software Metric

A quantitative measurement of countable software attributes and processes used to assess performance, estimate work, track productivity, and monitor product quality.

25
New cards

Control Metrics (Process Metrics)

Software measurements associated with software engineering processes used to guide process management, such as the average time or effort required to fix reported defects.

26
New cards

Predictor Metrics (Product Metrics)

Measurements associated directly with the software product itself used to forecast software characteristics, such as cyclomatic complexity or the number of methods per class.

27
New cards

Project Metrics

Tactical metrics that allow project managers to assess ongoing work, evaluate risks, uncover bottleneck areas before they turn critical, and track quality control across milestones.

28
New cards

Function Point (FP)

A programming language-independent metric measuring software size by calculating external inputs, outputs, inquiries, internal files, and external interface files, adjusted by complexity factors: FP=UFP×(0.65+0.01×∑Fi)\text{FP} = \text{UFP} \times (0.65 + 0.01 \times \sum F_i).

29
New cards

McCabe Cyclomatic Complexity

A complexity metric derived from a program's control flow graph that establishes an upper bound on independent logical execution paths using the formula V(G)=E−N+2V(G) = E - N + 2.

30
New cards

Three-Point Estimation Formula (LOC)

A weighted sizing formula that calculates expected lines of code (EE) from optimistic (aa), most likely (mm), and pessimistic (bb) values via E=a+4m+b6E = \frac{a + 4m + b}{6}.

31
New cards
<p>McCall's Software Quality Factors</p>

McCall's Software Quality Factors

A software quality framework developed by McCall, Richards, and Walters categorizing attributes into three distinct perspectives: Product Operation, Product Revision, and Product Transition.

32
New cards

Software Architecture

The overarching organization of software components (modules), their external interfaces, their interactions, and the data structures they manipulate, providing conceptual integrity to the system.

33
New cards
<p>Layered Architecture</p>

Layered Architecture

An architectural pattern that divides an application into horizontal tiers (such as Presentation/Web, Service/Business, and Persistence/Database), where each tier is restricted to specific duties and communicates with adjacent tiers.

34
New cards
<p>Microservices Architecture</p>

Microservices Architecture

An architectural style structuring an application as a collection of loosely coupled, independently deployable, and scalable services, each bound to a specific business capability and communicating via APIs.

35
New cards
<p>Modular Monolith</p>

Modular Monolith

An architectural approach where an entire software system is deployed as a single unified deployable artifact, but internally segmented into distinct, loosely coupled, self-contained functional modules.

36
New cards
<p>Event-Driven Architecture (EDA)</p>

Event-Driven Architecture (EDA)

A software architecture design pattern that decouples services by triggering and communicating state changes asynchronously through emitted events managed by an intermediary event broker.

37
New cards

Architecture Description Languages (ADLs)

Formal syntactic specifications used to represent, model, and analyze software architectures and facilitate technical communication among stakeholders (e.g., UML, AADL, Acme).

38
New cards

Pattern-Oriented Software Architecture (POSA)

An architectural approach that applies proven, standardized, reusable design templates and patterns (such as Model-View-Controller or Microservices) to recurring system design problems.

39
New cards

Component-Based Development (CBD)

A development methodology emphasizing the construction of software systems through the integration of pre-existing, reusable, and modular software components (e.g., JavaBeans, COM/.NET).

40
New cards

Enterprise Application Integration (EAI)

The technical practice of connecting multiple independent enterprise software applications (such as HR, payroll, and inventory systems) into a coordinated workflow using middleware, APIs, or messaging.

41
New cards

Unified Modeling Language (UML)

An Object Management Group (OMG) standard visual modeling language providing standardized graphical notations to specify, visualize, construct, and document software system artifacts.

42
New cards
<p>Use Case Diagram</p>

Use Case Diagram

A behavioral UML diagram representing user requirements by showing the boundary of a system, the external actors, and the specific use cases depicting system-user interactions.

43
New cards

Actor (UML)

An external entity—such as a human user, automated hardware device, or external system—that interacts with the software system, typically denoted as a stick figure in use case diagrams.

44
New cards

«include» Relationship

A UML use case dependency depicted as a dashed arrow from a base use case to an included use case, denoting mandatory shared behavior that is reused rather than duplicated.

45
New cards

«extend» Relationship

A UML use case relationship represented as a dashed arrow directed toward the base use case, adding optional or conditional behavior at explicitly specified extension points.

46
New cards

Class Diagram

A structural UML diagram showing the static design of a system by presenting classes, their attributes and operations, visibility modifiers (++ public, #\# protected, −- private), and relationships.

47
New cards

Generalization (UML)

A taxonomic relationship in object orientation representing an inheritance hierarchy between a general superclass (parent) and a specialized subclass (child), drawn with a hollow triangular arrowhead.

48
New cards

Aggregation (UML)

A weak 'has-a' or container-containee relationship between classes where the part class can exist independently of the container and has no shared lifecycle with it, denoted by an open diamond.

49
New cards

Composition (UML)

A strong part-whole association where the part class is owned exclusively by the composite whole and shares its lifecycle; if the container is destroyed, the parts are deleted, denoted by a solid filled diamond.

50
New cards

Sequence Diagram

An interaction diagram showing how objects collaborate over time, arranging objects horizontally and mapping sequential message exchanges and activation bars along vertical lifelines.

51
New cards

Collaboration Diagram

An interaction diagram functionally equivalent to a sequence diagram that emphasizes structural object relationships and organization over explicit chronological timing.

52
New cards
<p>State Diagram</p>

State Diagram

A behavioral diagram that models the dynamic lifecycles of an object, detailing the sequence of states it transitions through in response to external stimuli and events.

53
New cards
<p>Entity Relationship Diagram (ERD)</p>

Entity Relationship Diagram (ERD)

A conceptual data model representing data entities (rectangles), their attributes (ellipses), relationships (diamonds), and numerical cardinalities (1:11:1, 1:N1:N, M:NM:N).

54
New cards

The Four Ps of Software Project Management

The four foundational elements required for effective project governance: People (stakeholders and teams), Product (scope and decomposition), Process (life cycle and milestones), and Project (execution and control).

55
New cards

Software Configuration Management (SCM)

A formal administrative discipline for tracking and controlling modifications to software artifacts, source code, documentation, and baselines across the entire development lifecycle.

56
New cards

Baseline (SDLC)

A formal milestone review point denoting the verified completeness of a project phase or deliverable; changes beyond this point require formal change management approval.

57
New cards

Change Control

A formal configuration management workflow comprising identification, validation, impact analysis, control/approval, execution, and formal request closure to prevent uncontrolled scope creep.

58
New cards

Gantt Chart

A horizontal bar chart developed by Henry Gantt (1917) used in project scheduling to map activities, dependencies, and planned durations against time.

59
New cards

Verification

The static quality assurance process of checking whether interim work products conform to predetermined specifications without running code ('Are we building the product right?').

60
New cards

Validation

The dynamic quality assessment process of executing the completed software to ensure it satisfies user requirements and operational needs ('Are we building the right product?').

61
New cards

Patent (Software)

A legal right granted by a government protecting novel, non-obvious software inventions and automated processes, typically for a duration of 2020 years.

62
New cards

Copyright (Software)

A form of intellectual property law that automatically protects original source code, binaries, system documentation, and visual layouts against unauthorized copying.

63
New cards

Open Source Software

Software whose source code, models, and development artifacts are publicly accessible under licenses (e.g., GPL, MIT) permitting inspection, modification, and redistribution through peer review.