Software Engineering & Project Management - Module 1

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

1/45

flashcard set

Earn XP

Description and Tags

Comprehensive vocabulary flashcards covering Software Engineering & Project Management Module 1, including software characteristics, process models, Unified Process, PSP/TSP, software myths, and agile frameworks.

46 Terms

1
New cards

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.

2
New cards

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.

3
New cards

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.

4
New cards

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.

5
New cards

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).

6
New cards

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).

7
New cards

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.

8
New cards

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).

9
New cards

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).

10
New cards

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.

11
New cards

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).

12
New cards

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.

13
New cards

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).

14
New cards

Layered Technology

The foundational view of software engineering structured into four interconnected layers: Quality Focus, Process, Methods, and Tools.

15
New cards

Generic Process Framework Activities

The five foundational activities present in all software engineering process models: Communication, Planning, Modeling, Construction, and Deployment.

16
New cards

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.

17
New cards

Software Configuration Management (SCM)

An umbrella activity that manages, controls, and tracks changes across all software work products throughout the entire project lifecycle.

18
New cards

Software Quality Assurance (SQA)

An umbrella activity that establishes, monitors, and verifies process compliance through formal audits and quality reviews.

19
New cards

Technical Reviews

Peer-led inspections of code, models, and specifications designed to catch defects early before formal testing begins.

20
New cards

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.

21
New cards

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.

22
New cards

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.

23
New cards

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.

24
New cards

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.

25
New cards

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.

26
New cards

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.

27
New cards

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.

28
New cards

Elaboration Phase (UP)

The second UP phase which refines use cases, defines five architectural views, mitigates architectural risks, and builds an executable baseline prototype.

29
New cards

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.

30
New cards

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.

31
New cards

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.

32
New cards

Communication Paths Formula

The mathematical formula N(N−1)2\frac{N(N-1)}{2} showing that internal communication channels grow quadratically as the number of team members NN increases.

33
New cards

Software Myths

Erroneous beliefs historically held by management, customers, and practitioners that foster false expectations and lead to major software project missteps.

34
New cards

Agility

An adaptable software development mindset that prioritizes rapid continuous delivery of working increments, customer collaboration, team self-organization, and adaptability to change.

35
New cards

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.

36
New cards

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.

37
New cards

User Stories

Customer-written requirement descriptions on index cards used in XP planning to specify system features, assign development costs, and guide release schedules.

38
New cards

CRC Cards

Class-Responsibility-Collaborator index cards utilized in XP design to identify and organize object-oriented classes, their responsibilities, and interactions.

39
New cards

Spike Solution

A quick, throwaway prototype built in Extreme Programming to explore technical solutions and lower technical risk for difficult or ambiguous customer requirements.

40
New cards

Test-Driven Development (TDD)

A core XP engineering practice requiring developers to write automated unit test cases before developing the actual production code.

41
New cards

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.

42
New cards

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.

43
New cards

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.

44
New cards

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.

45
New cards

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.

46
New cards

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.