INF 43 Final

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

1/70

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 6:37 PM on 6/7/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

71 Terms

1
New cards

What is a key difference between programming and software engineering?

 

software engineering involves managing large-scale systems and teams

2
New cards

the essential ingredient that can make up for the other two

people

3
New cards

3 “essential ingredients” of software engineering

people, processes, and tools

4
New cards

A function call presents a simple interface and hides the logic that will be performed. This is an example of...

abstraction

5
New cards

INF 43 recurring fundamental principles

rigor and formality, separation of concerns (modularity, divide and conquer, abstraction), anticipation of change, generality, incrementality

6
New cards

what piece of advice would Fred Brooks be least likely to give?

 You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need.

7
New cards

What matters most from the engineering perspective?

internal quality of the software

8
New cards

What matters most from the business perspective?

money

9
New cards

What matters most from the user perspective?

everything the user sees

10
New cards

4 essential difficulties in software engineering

complexity, conformity, changeability, and invisibility

11
New cards

software engineering

the process of constructing software

12
New cards

Requirements should define:

the what, not the how

13
New cards

 

Requirements issues are at the root of many software failures.

True

14
New cards

If you go into a career in software engineering in the U.S., which one of the following situations is most likely outcome for you (or any random person)?

In-house staff writing systems for internal use

15
New cards

another name for hubble psychology

over-optimism disease

16
New cards

requirements analysis

activity of gathering customer needs

17
New cards

requirements specification

activity of documenting user needs in a requirements document

18
New cards

Ziv’s law

software development is unpredictable and the requirements will never be fully understood

19
New cards

A use case diagram primarily shows:

actors and their interactions with use cases

20
New cards

use case

a set of actions defining interactions between an actor and the system to achieve a goal

21
New cards

Use cases are NOT good for specifying:

non-functional requirements

22
New cards

What is the primary consideration in the ACM Code of Ethics?

public good

23
New cards

Why is lifelong learning important in software engineering?

knowledge quickly becomes outdated

24
New cards

software architecture

the blueprint for a software system’s construction and evolution

25
New cards

components and connectors arranged into ___

configurations

26
New cards

software architecture consists of ___ & ___

components, connectors

27
New cards

prescriptive architecture

as-intended architecture

28
New cards

descriptive architecture

as-realized architecture

29
New cards

architectural erosion

when a system evolves, its prescriptive architecture is modified first, often directly modifying the descriptive architecture

30
New cards

components

the major computational elements or modules of the system

31
New cards

connectors

the communication paths or interaction mechanisms between components

32
New cards

Conceptual integrity is important because it helps ensure that:

 

different teams follow a coherent overall vision

33
New cards

example of model-view architecture

ATM

34
New cards

example of client-server

video games

35
New cards

example of layered arch.

restaurant

36
New cards

example of peer-to-peer

skype

37
New cards

example of pipe-and-filter

compiler

38
New cards

example of publish-subscribe

stock-market ticker

39
New cards

functional decomposition

design process led by breaking down the functionality [ex. authenticate (login, logout), messaging (view, send, delete)…]

40
New cards

relational database

design process led by breaking down the data in a database

41
New cards

object-oriented design and UML

design process led by breaking down the entities identified in the domain and the functionality that accompanies each entity

42
New cards

user interface design

design process led by envisioning the user interface and iterating

43
New cards

purpose of designs

think, talk, and prescribe

44
New cards

UML class diagrams

used in decomposing a system into classes to model domain concepts

45
New cards

parts of a UML class diagram

class name, attributes, parameters

46
New cards

high-cohesion/low-coupling

grouping related functionality and ungrouping unrelated functionality

47
New cards

information hiding

hide design decisions most likely to change

48
New cards

verification

does it conform to its specifications

49
New cards

validation

does it serve its purpose

50
New cards

dijkstra quote

testing can be used to show the presence of bugs, but never to show their presence

51
New cards

mistake

a human action that produces an incorrect result

52
New cards

fault/bug

an incorrect step in a computer program

53
New cards

error

a difference between a computed result and the correct result

54
New cards

failure

the incorrect result of a fault

55
New cards

levels of testing in order from most integration (slowest) to most isolation (fastest)

system, integration, unit

56
New cards

test oracles

a mechanism for deciding wether a test case succeeds or fails

57
New cards

how to know when done testing

problem find rate reaches 0

58
New cards

equivalence class partitioning

if a test fails/passes for a member of a class, it fails/passes for the entire class

59
New cards

boundary class partitioning

tests at boundaries of the classes

60
New cards

combinatorial testing

testing specific combinations of input parameters

61
New cards

black box testing

using specifications to drive test cases

62
New cards

white box testing

use source code to drive test cases

63
New cards

statement coverage

select test case such that every line of code runs

64
New cards

branch coverage

select test cases such that every ‘if’ statement is reached

65
New cards

waterfall

each phase of the development lifecycle must be fully completed and approved before the next one begins

66
New cards

rapid prototyping

build and discard prototypes before committing to full-scale development

67
New cards

incremental

system is built and delivered in small, manageable parts instead of releasing the entire application at once

68
New cards

spiral

evaluating potential risks and building prototypes to mitigate them

69
New cards

rational unified process

iterative and incremental, use case driven, architecture centric

70
New cards

extreme programming

pair programming, short development cycles and frequent releases, adaptability to changing requirements

71
New cards

agile

values customer collaboration, individuals and interactions, working software, and responding to change