CSE 110 Midterm 1 Flashcards

5.0(1)
studied byStudied by 53 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/103

flashcard set

Earn XP

Description and Tags

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

104 Terms

1
New cards

Waterfall Method

Top Down, break up a software development projects into a set of steps running through designing, planning, executing, verifying and maintaining.

2
New cards

4 values of RAIL model

(response, animation, idle, load)

3
New cards

the concept of working from the code first and requiring it to emit pages but do so letting the user know they have messed up or provide them a different version is called:

graceful degradation

4
New cards

the concept of working upwards from the markup to the code in web development is called:

progressive enhancement

5
New cards

web sites or web apps should generally employ graceful degradation?

web apps

6
New cards

web sites or web apps should generally employ progressive enhancement?

web sites

7
New cards

generally fast but inherently insecure

client-side

8
New cards

generally slow but can be controlled

server-side

9
New cards

double diamond

design process which will allow us to expand and contract our thinking as our team builds our product

10
New cards

What are key points of solo development?

  1. developing focus and discipline

  2. avoid complexity

  3. being meticulous with our work

11
New cards

what is pair programming?

two developers working together on the same code synchronously either locally or remotely.

12
New cards

what is the role of a driver in pair programming?

writes the code

13
New cards

what is the role of an observer/navigator in pair programming?

learning and improving the code as we go along and coming to a consensus so it is our code not the driver’s code.

14
New cards

what the ideal pair for pair programming and why?

senior and junior - is a great way to share knowledge and even out a team often eliminating bus factor for created code.

15
New cards

what is a flaw of pair programming?

depends on interpersonal skills and it is quite easy for it to become toxic when one participant judges the other, checks out, etc.

16
New cards

what is mobbing / mob programming and what is its structure?

where the entire Agile team works together on the code. means we have a single driver and many observers, researchers, editors, etc.

17
New cards

what are two benefits of mobbing / mob programming?

  1. good at the start of a project to work out live coding styles and get agreement on code shape and approach.

  2. build some team cohesion in a technical setting.

18
New cards

what is a flaw of mobbing / mob programming that pair programming also has?

exposes poor team social dynamics

19
New cards

key mistake people make in Agile teams?

not formally defining your DoD or Definition of Done.

20
New cards

what is the idea of DoD or Definition of Done?

understand that a task isn’t finished until all the aspects of the task have been addressed. includes unit tests, documentation, other team member review, linting, etc.

21
New cards

what is the 5 points of the Tuckman model (and their specific order)?

  1. forming

  2. storming

  3. norming

  4. performing

  5. adjourning

22
New cards

what is the idea of “Thinking in Bets”?

the idea that the process models and estimation aspects of SE suggest a certain amount of prediction.

23
New cards

Is thinking of "1 / 0 certainty of pass or fail" an example of "Thinking in Bets"?

No, adopt more a percentage outcome of pass fail like 86%/14% or something

24
New cards

Is thinking of "86%/14% pass fail" an example of "Thinking in Bets"?

Yes, adopt more a percentage outcome of pass fail like 86%/14% or something

25
New cards

True or false: if the outcome is bad, it is guarenteed we made a bad decision somewhere

False - Decisions are bets on the future, and they aren't "right" or "wrong" based on whether they turn out well on any particular iteration

26
New cards

True or false: the vast majority of skills are acquired through practice instead of innate ability

true

27
New cards

True or false: one day in the near future we'll finally have a "golden hammer" tool that we can use for most every project

false

28
New cards

True or false: learning a new language or tool initially increases the team's productivity

false

29
New cards

what is not the first step in writing a program?

a) designing
b) architecture
c) research
d) coding

d) coding

30
New cards

What is the most influential factor that affects the success of a software engineering team?

a) product complexity
b) personnel / team capability
c) technology used
d) time constraints

b) personnel / team capability

31
New cards

True or false: There is usually one true perfect solution to most problems that novice programmers are unable to see

false

32
New cards

what does it mean to be a T shaped Engineer

It mean to be a balanced devs who have breadth and depth within reason

33
New cards

What characteristics in a person let them make better decisions?

a) Equal amount of breadth and depth in multiple subjects
b) More depth in one subject and less breadth in multiple subjects
c) All depth in multiple subjects
d) More breadth in multiple subjects and less depth in one subject

a) Equal amount of breadth and depth in multiple subjects

34
New cards

Which of the following is not an example of the new values of software engineering?

a) learning
b) competition
c) cooperation
d) inclusion
e) humility

b) competition

35
New cards

what is top-down design

start with high level and break down towards small pieces.  The common reductionist style

36
New cards

what is bottom-up design

using interactions, data, etc. to grow upwards

37
New cards

what is middle-out design

a surprising concept that has us trying things sometimes completely out of order and still finding value via exploration

38
New cards

Using the Iron Triangle theory, what happens if we increase the number of features?

cost and time increases

39
New cards

True or false: the best teams are the ones where everyone is a 10x developer.

false

40
New cards

True or false: You should pick one of "Top-Down", "Bottom-Up", "Middle-Out" and stick with it to reduce complexity in your design

false

41
New cards

True or false: You should use all of "Top-Down", "Bottom-Up", "Middle-Out" in one project depending on the situation

true

42
New cards

what is the defintion of software engineering?

the study of an application of engineering to design, development and maintenance of software.

43
New cards

what is a 10x Developer?

the idea of high performing developer

44
New cards

How does one become a 10x developer?

It takes long long journey that involves significant commitment and practice.

45
New cards

Why do you think developers get imposter syndrome so commonly?

due to the rapid pace of technological change, high standards, constant learning requirements and a culture of comparison that makes them doubt their abilities and feel like fake despite their skills.

46
New cards

what are the key points of incremental solutions?

focus on doing pieces at a time
provide more safety
utilize feedback

47
New cards

True or False: all at once solutions are now obsolete

false

48
New cards

what is the idea of “all at once solution”

we do the whole thing in one go and release, ie space probe software

49
New cards

True or false: communication is a mostly learned skill rather than an innate ability

true

50
New cards

What is the most important (by a wide margin) factor in making a successful team?

a) psychological safety
b) structure and clarity
c) meaning of work
d) dependability
e) impact of work

a) psychological safety

51
New cards

True or false: in order for a team to feel psychologically safe, they have to know that those who under perform / make big mistakes are punished accordingly.

false

52
New cards

True or false: good teams make sure everyone points out the member who has made a big mistake, and make sure to mention that they're ok with it so that the member feels psychologically safe

false

53
New cards

True or false: you generally want a higher bus factor so that your team is less reliant on any one individual

true

54
New cards

True or false: the technologies used will be more important than the processes we use when developing the project.

false

55
New cards

what are the three key points of the HRT (HEART) method?

Humility, Respect, Trust

56
New cards

True or false: everyone should be able to be leaders of their domain within the team

true

57
New cards

True or false: project Leaders / Managers tend to bog down projects and over-insert themselves, they don't really serve a purpose outside of micromanaging

false

58
New cards

Which of the following is not a stage of group development?

a) warming
b) storming
c) adjourning
d) norming
e) forming
f) performing

a) warming

59
New cards

True or false: diagramming using Unified Modeling Language (UML) is a standardized method used to visualize and communicate system design and user interactions.

true

60
New cards

True or false: users will not always read your use cases and instructional manuals to figure out how to use your software.

true

61
New cards

True or false: users will judge your products based on the “-ilities”

true

62
New cards

True or false: software == code

false

63
New cards

True or false: the build process should be so quick and simple that the CEO can do it

true

64
New cards

a famous developer once said: "The hardest single part of building a software system is deciding ____."

precisely what to build

65
New cards

True or false: it is our job as developers to take the vague requirements of our clients and turn them into specific requirements and goals

true

66
New cards

True or false: programming doesn't translate well to writing since programmers think in code and not words

false

67
New cards

According to Spolsky's cardinal axiom of UI design: A UI is well designed when the program behaves ________

exactly how the user thought it would

68
New cards

What three things make up the Iron Triangle?

Scope, Cost, Schedule

69
New cards

True or false: with proper planning and following a process, we can avoid tradeoffs

FALSE, tradeoffs cannot be avoided, and should be embraced (Iron Triangle)

70
New cards

In the Iron Triangle, do we focus on acceptable quality or pull points?

focus on the acceptable quality.  Without defining quality we are somewhat lost

71
New cards

How many points in the Iron Triangle should you be fixing?

1 point. If you set more, plans become hard to follow.

72
New cards

what are pull points for the iron triangle?

the parts of the iron triangle that you try to increase / keep high. You should only have one at a time.

73
New cards

True or False: If other companies are using a technology, then you should adopt it too

False, when you encounter Fashion Based Problem Solving you need to work at how to describe and explore these fashionable solutions to see if there are novel or just trendy.

74
New cards

Describe the balance between security and usability / ux

more security tends to degrade ux and inversely ease of use might sacrifice security.

75
New cards

what is Postel’s law

the robustness principle that drives much of how the internet works. it states be permissive in what you accepts, and strict with what you emit ("be conservative in what you do, be liberal in what you accept from others")

76
New cards

With a fixed deadline, what tends to happen to quality and features?

Quality and features are sacrificed, may result in lower user-acceptance or profit

77
New cards

True or False: when people schedule deadlines for their projects, they tend to get to their desired quality within that time frame

False. The truth of estimating and completion when you don’t have a fixed date is that deadlines tend to shift to hit the desired quality mark.

78
New cards

what is Conway’s Law?

a law that suggests software architecture and team structure will often be a function of the organizational structure.

79
New cards

If Conway’s Law is a strict rule and we discover that the software architecture is bad, in order to address the poor architecture what might we need to do outside of just focusing on the code itself?

We should be able to compare it to organization size or type

80
New cards

What are the main forces in Software Engineering?

a) 10x developers
b) tech stack
c) the people
d) the money

c) the people

81
New cards

what is the cone of uncertainty

a useful way to remind ourselves that when starting something we are mostly uncertain and the longer time or examination continues especially as we build software the more certain and specific we get.

82
New cards

What does DUF stand for?

Design Up Front

83
New cards
<p>What does this image refer to?</p>

What does this image refer to?

The Spectrum of Process

84
New cards

What factors should influence the decision to use a certain process (ie AGILE or waterfall, there are 5 points to consider)?

1) Risk appetite
2) project type
3) time availability
4) team maturity
5) organization needs

and such as opposed to one particular right or wrong way.

85
New cards
<p><span>What modifications do the professor like to make to the Waterfall Method?</span></p>

What modifications do the professor like to make to the Waterfall Method?

  1. Arrows that point to previous steps if warranted.

  2. Design whirlpool effor before entering build process.

86
New cards

Disadvantages of waterfall include?

1) does not handle change well
2) often do not get user feedback early and often enough without modification (ex. whirlpool idea)
3) may delay progress or gratification in a world that demands to see that

87
New cards

Define bus factor

How many team members "can be hit by a bus" before the entire project is at risk.

88
New cards

describe the concept of user centered design or UCD (and what are two laws to remember for UCD)

We call a strong emphasis on user during the constructive process

Law: You are != your users
Law: Users cannot be your designer

89
New cards

Some of -ilities like security, reliability, etc. are not user focused, but many include:

The system provides the required functions - Utility
Ability to access the systems and its function - Availability
Ability to access the systems within acceptable time - Performance - ility :-)
Ability to be able to use the functions - Accessibility
Ability to be able to use the functions successfully  - Usability
Ability to enjoy the functions - Satisfaction (Satisfiability)

90
New cards

What is one example of an over engineered solution

formal model for hello world

91
New cards

what is an example of under engineered solution

cowboy hacking or rapid iteration for a life and limb application like a heart monitor or autonomous driving system

92
New cards

True or False, software engineering process models provides unique challenges that make it unique from other disciplines and prevent the adoption of process models from elsewhere

False. We’ve known many of the problems with process for a long time, but struggle as an industry to get consensus.

93
New cards

True or false, there is one true way for different aspects of software engineering

False, there is no one true way to do things within software engineering

94
New cards

What mindset should we employ as Software Engineers (SE)?

focus less on perfect eternal solutions and more on situational appropriate solutions.

95
New cards

What are four key values of Extreme Programming (XP)

  1. communication

  2. Feedback

  3. Simplicity

  4. Courage

96
New cards

what is agile software development all about?

it is about speed, user focus, communication, self organization, good tech and design, keeping it simple and dealing with change.

97
New cards

describe daily standups in Agile software development

quick meetings of what you did, what you want/need to do, and any blockers to be cleared

98
New cards

describe user stories in Agile software development

user stories help us write user needs in a manner that we might translate them into the requirements for our project

99
New cards

what is a backlog in Agile software development

a collection of tasks (user stories, bug fixes, etc) that have been defined for the product.

100
New cards

what do backlogs contain, and why do we want small backlogs?

backlogs contain what you will eventually do. The smaller they are, the better since it reflects that we have smaller work in progress tasks