Software Engineering Dana Steil, Final Exam

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/90

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

91 Terms

1
New cards

Software Crisis

Dijkstra's statement from 1972

2
New cards

Software Engineering

the process of developing, testing, and maintaining software applications and systems.

3
New cards

Design Patterns

reusable, generalized solutions to commonly occurring problems in software design

4
New cards

cruft

outdated, unnecessary, or poorly written code or leftover files in a software system

5
New cards

push

(In Git) transfer files from the master to the origin.

6
New cards

predicate

a function that takes one or more arguments and returns a Boolean value

7
New cards

lambda

a function definition not bound to a name.

8
New cards

pull

(in Git) transfer files from the origin to your local computer - to get updates.

9
New cards

commit

(in Git) save changes to the local copy of the repo.

10
New cards

Precision

the level of detail in an estimate.

11
New cards

clone

(in Git) transfer files from the origin to your local computer for the first time.

12
New cards

pull request

equesting the maintainer of a repository to git pull in some changes.

13
New cards

Accuracy

closeness of an estimate to the actual value.

14
New cards

Chesterton’s Fence

principle that reminds us to look before we leap. To understand before we act.

15
New cards

Program Product

is software that requires much more testing, maintenance, and documnetation. People will really use it.

16
New cards

Woes of The Craft

  • Reliance on others

  • Useless by the time you are done

  • Debugging is tedious

  • Must be perfect

  • Often told what you have to work on

17
New cards

Brooks’ Law

"Adding manpower to a late software project makes it later."

18
New cards

optimistic

assuming everything will go well and underestimating the time needed for testing and debugging.

19
New cards

Program maintenance

changes made to a program or product after it has been delivered to the customer.

20
New cards

Conceptual integrity

he consistency and clarity of a system's design, which is often easier to achieve in later versions after initial learning.

21
New cards

Communication

What caused the tower of babel to fail

22
New cards

senior architect

should be paired with a second system project manager

23
New cards

second system

An architect’s most dangerous system to build because they are tempted to include everything left out of the previous system.

24
New cards

status review

one of the meeting types that supervisors should clarify meetings as

25
New cards

hustle

Something programming teams need, “energy to go above and beyond“

26
New cards

PERT

Laying out the network, identifying the dependencies, and estimating the legs all force a great deal of very specific planning very early in a project.

27
New cards

conform

Software often has to _______________ to arbitrary external interfaces, such as human institutions, laws, or existing systems, rather than allowing the engineer to define the interfaces based on unifying principles.

28
New cards

accidental

High-level languages, Time-Sharing, and Unified Programming Environments are all past breakthroughs that solved _________________ difficulties.

29
New cards

order of magnitude

there is no single development in technology or management technique which, by itself, promises even one ______________ ____________ _____________ improvement in productivity.

30
New cards

change

Software is constantly subjected to and must respond to pressures for _______________ from its environment (users, hardware, regulations, etc.)

31
New cards

essential

All software construction involves two types of tasks, the _______________  and the accidental.

32
New cards

optimization

improving performance or resource usage without changing functionality.

33
New cards

construction

the best metaphor to help conceptualize software development?

34
New cards

Scalability

the ability of a system to grow to meet future demands.

35
New cards

Incremental Development

building software piece by piece

36
New cards

Latewave

provide numerous programming language choices, comprehensive error checking for code written in those languages, powerful debugging tools, and automatic, reliable performance optimization.

37
New cards

Structured programming

Writing programs with clear, hierarchical control structures.

38
New cards

Information Hiding

concealing design decisions to limit change impact.

39
New cards

Sequential Cohesion

the output of one task is the input of the next.

40
New cards

Temporal Cohesion

Tasks grouped by timing requirements

41
New cards

Error Handling

managing problems that arise during execution.

42
New cards

Exceptions

a specific means by which code can pass along errors or exceptional events to the code that called it.

43
New cards

Completeness

Addressing all required functionality.

44
New cards

Accuracy

The degree to which a system, as built, is free from error, especially with respect to quantitative outputs.

45
New cards

Robustness

The ability of software to handle errors gracefully.

46
New cards

Efficiency

The extent to which software minimizes resource use.

47
New cards

Flexibility

The extent to which you can modify a system for uses or environments other than those for which it was specifically designed.

48
New cards

Regression Test

the execution and verification of previously executed test cases with software that has previously passed those test cases.

49
New cards

Component tests

the execution and verification of a class, package or other element involving multiple programmers or other teams.

50
New cards

white-box

When the tester can see the inner workings of the code being tested.

51
New cards

unit tests

Executing an individual component or function and verifying its validity.

52
New cards

breaks

A successful test does this to the software

53
New cards

Integration testing

the combined execution of two or more classes, packages, or subsystems to verify their validity.

54
New cards

binary

a search technique that can be used to systematically remove parts of the program and see if the errors still occur.

55
New cards

distance

The ease with which two items can be differentiated.

56
New cards

20

Studies of experienced programmers have found roughly a _____-to-1 difference in the time it takes experienced programmers to find the same set of defects found by inexperienced programmers.

57
New cards

set

A psychological _________ is seeing what you expect to see.

58
New cards

Duplicate

______________ code sets you up to make parallel modifications; whenever you make changes in one place, you have to make parallel changes in another place.

59
New cards

modularity

The number of well-defined, well-named routines that do one thing and do it well.

60
New cards

Design ahead

“___________ __________” code is code that programmers have written because they believe that it may be used at some point in the future.

61
New cards

public

belonging to the team rather than private property.

62
New cards

measured

People tend to focus on what gets ____________ and ignore what isn’t.

63
New cards

Configuration management

the practice of identifying project artifacts and handling changes systematically so that a system can maintain its integrity over time. Another name for it is “change control.”

64
New cards

Integration

combining separate software components into a single system.

65
New cards

logical

indentation can be used to show the _____ structure of the code.

66
New cards

Consistent

____________________  structuring of code is more important than the details of how it is structured.

67
New cards

summary comment

distills a few lines of code into one or two sentences.

68
New cards

higher

Comments give you a ___________  level of abstraction than the code itself.

69
New cards

intent comments

operate more at the level of the problem than at the level of the solution.

70
New cards

internal

___________ documentation is also the kind of documentation most likely to remain correct as the code is modified.

71
New cards

The Three Ways

The foundational principles of DevOps: Flow, Feedback, and Continuous Learning.

72
New cards

Single Point of Failure

A part of the system whose failure can bring down the entire service.

73
New cards

Chief Information Officer

Senior executive responsible for IT strategy and systems.

74
New cards

Continuous Integration

The practice of frequently merging code into a shared repository.

75
New cards

Theory of Constraints

A management philosophy that focuses on identifying and managing bottlenecks.

76
New cards

Kanban Board

A visual tool to manage workflow and limit work in progress.

77
New cards

Product Management

The role responsible for defining the features and requirements of a product, acting as the "CEO" of the product team.

78
New cards

Scrum

An iterative agile development methodology where work is divided into "sprints" (2–4 week cycles) to build software incrementally.

79
New cards

deterministic

A characteristic of LLMs, meaning that if you ask the same question multiple times, you might not get the exact same answer each time.

80
New cards

Generative

______AI is artificial intelligence that is capable of creating new content.

81
New cards

Generic Attribute Profile (GATT)

a profile in BLE that defines how two Bluetooth Low Energy devices transfer data back and forth using Services and Characteristics.

82
New cards

Peripheral

he device that a central (client) connects to, such as a smartwatch connecting to a phone.

83
New cards

Pull Request

when a developer proposes changes to a codebase, which are reviewed and discussed before being merged into the main project.

84
New cards

Linting

automatically checking source code for programmatic and stylistic errors to enforce coding standards.

85
New cards

Behavioral Interview

An interview format that uses questions about past experiences ("Tell me about a time when...")

86
New cards

Phone Screen

An early-stage, often informal interview (usually over the phone) designed to quickly assess whether a candidate should move forward in the interview process. It focuses on surface-level fit and potential.

87
New cards

Product Owner

The voice of the business on a Scrum team.

88
New cards

entity relationship

Use ___________ ______________ diagrams when designing a new database schema, planning database migrations, or documenting existing database structures.

89
New cards

Terraform

An open-source Infrastructure as Code (IaC) tool that lets you define, provision, and manage cloud infrastructure using configuration files.

90
New cards

Go

Terraform code is written in the  _________ language.

91
New cards

providers

(in Terraform) define resources, data types, etc. and how to deploy them.