Midterm Flashcards

1
Q

What is proof of concept?

A

Validate assumptions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Prototype

A

Preliminary visualization of the product

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is MVP

A

Minimum Viable Product
(minimal usable form of a complete product, has enough features to be viable in a market)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why do we care about confidentiality in projects?

A

We care about the confidentiality of their employers or clients.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why do we care about competance?

A

Engineers should not misrepresent their level of competence.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why do we care about intellectual property rights?

A

Engineers should be aware of local laws governing the use of intellectual property.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Why do we care about computer misuse?

A

Engineers should not use their technical skills to misuse other people’s computers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the 8 IEEE codes of ethics?

A

Public, Client and Employer, Product, Judgement, Management, Profession, Colleagues, Self

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hyrum’s Law

A

Whatever you deliver, someone is going to use it in a way you never imagined.
Give more information on your interface.
Make fewer assumptions about code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Software Engineering?

A

The application of systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a software crisis?

A

project runs over-budget
project runs over-time
software was inefficient
software was low quality
software did not meet requirements
project was unmanageable
code was difficult to maintain
software was never delivered

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the top 3 project success factors?

A

User involvement, Executive Management Support, Clear Statement of Requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the top 3 project challenged factors?

A

lack of user input, incomplete requirement or specifications, changing requirements or specifications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the top 3 project impaired factors?

A

incomplete requirements, lack of user involvement, lack of resources

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the four things that lead to a productive meeting?

A

Have a chair, Set an agenda, Document the meeting, Make tangible action items assigned to people

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the four things Ozkaya says every software engineer should know?

A
  1. Fundamental Knowledge Areas
  2. Data Science
  3. Computing Hardware
  4. Socially Responsible Engineering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is a Software Process?

A

A set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the software lifecycle?

A

Requirements -> Design -> Coding -> Testing -> Deployment -> Repeat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are software specifications?

A

The process of establishing what services are required and the constraints on the system’s operation and development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is software validation?

A

It is intended to show that a system conforms to its specification and meets the requirements of the customer.
Verification: “are we building the product right?”
Validation: “are we building the right product?”
Use AIDT, Analysis, Investigation, Demonstration, Test.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are different software methodologies?

A

Waterfall, V model, prototyping, operational specification, transformation model, phased development, spiral model, agile model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is the waterfall method?

A

It has separate phases that are run through once. Used when requirements are well understood and there is low risk.

POS, CRM, Banking, Healthcare

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the software design V Model

A

Adv: tangible phases, tests written at the start, equal weight to development and testing.
Testing happens at all stages of development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the incremental software design strategy?

A

Working on one feature at a time.
Pros: early increments act as prototype, lower risk of failed project
Cons: system structure tends to degrade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is the iterative software design strategy?
Working on each of the features first level at the same time.
26
What is the spiral model?
Process is represented as a spiral. Each loop is a phase in the process. Realistic model for large-scale software development.
27
What are the five main risk impact areas?
New tech, user/functional requirements, application and system arch, performance, organization.
28
How should you manage risks?
Identify their triggers, classify/prioritize, create a plan, monitor for triggers, implement the plan, communicate risk status
29
What is a prototype?
It is an initial version of a system used to demonstrate concepts and try out design options.
30
What is agile?
an iterative approach to project management. requirements, plans and results are evaluated continuously. involves scrum meetings. values individuals/interactions over processes and tools, working software over comprehensive documentation, customer collab over contracts, responding to change over following a plan.
31
What are the four layers to software engineering?
Quality focus (bedrock) Process (foundation) Methods (technical how-to's) Tools (semi-auto/auto method support)
32
What is CMMi?
Puts process stages into 5 maturity groups. Initial, Managed, Defined, Quantitatively Managed, Optimizing.
33
What does each agile iteration involve?
Analysis, design, coding, testing
34
What are the roles in agile?
stakeholder, product owner, team member, team lead, agile mentor
35
What is velocity in reference to agile?
the total number of completed story points
36
What are burndown charts?
shows the effort per iteration, and is usually decreasing in time.
37
What is Continuous Integration?
the practice of regularly integrating and testing your solution to incorporate changes made to its definition
38
What are different flavours of Agile?
Extreme programming, scrum, lean startup, iterative development, kanban, hybrid, scrumban
39
What are the top 5 agile techniques?
daily standup, retrospectives, sprint/iteration plan, sprint/iteration review, sprint/iteration
40
why use agile?
accelerate software delivery, increase productivity, improve business/it alignment, enhance ability to manage changing priority
41
What is a user story?
it describes functionality that will be valuable to either a user or a purchaser of a system Has a description and acceptance criteria
42
How do we test if a user story is good?
INVEST independent, negotiable, valuable, estimable, small, testable
43
What is an epic?
A larger story that can be split into user stories.
44
What is a persona?
imaginary representation of a user role, described sufficiently so it feels like you know the person
45
What makes a user story smell?
too small interdependent gold plating too many details including user interface details too soon thinking too far ahead splitting too many stories trouble when prioritizing stories customer won't write and prioritize stories
46
What is a non-functional requirement?
describe properties of the system or domain, constraints
47
What are functional requirements?
describe user tasks that the system needs to support
48
What is FURPS?
Functional Usability: how easy to use Reliability: how many errors does the system produces in a given certain runtime Performance: how fast is the system? Supportability: how maintainable is the system?
49
What are some characteristics of requirements?
clear, unambiguous, consistent, verifiable/testable, complete
50
What is traceability?
the relationships between requirements, their sources and the system design Source traceability, Requirements traceability, design traceability
51
Why is traceability important?
Achieve compliance, reduce software defects, increase speed and code maintainability
52
What are behavior diagrams?
depicts behavior features, use case, activity, sequence, state-machine
53
What are interaction diagrams?
behavior diagrams which emphasize object interactions, communication, interaction overview, sequence, timing diagram
54
What are structure diagrams?
depicts the elements of a specification that are irrespective of time, class, composite structure, component, deployment, object, and package diagrams
55
What is a Use Case diagram?
illustrates a unit of functionality provided by the system
56
What is the use-case <> for, and <> for?
<> when one use case adds behavior to a base case <> one use case invokes another (procedure call)
57
What is software modeling?
ways of expressing a software design
58
What are the software modeling principles?
abstraction, decomposition, viewpoints, modularization
59
What is a domain model?
model of entities, attributes, and relationships in the application domain (not a model of software)
60
What is usability referring to?
ease of use, ease of learning, appropriateness to the task being performed
61
What are principles for designing interactive systems?
- involve/consider people who will use the system throughout development - identify usability and user experience goals early in the project - iterate the core activities ( user needs, alternative design solutions, prototypes )
62
What are Don Norman's design principles?
- Visibility (can see what to do) - Feedback (give user information about what has been done like spinners/progress bar) - Constraint (helps the user from selecting incorrect options) - Mapping (relation to control and their effect) - Consistency (application internal&external) - Affordance (design allows you to know how it works)
63
How do you evaluate interactive systems?
heuristic evaluation and guidelines cognitive walkthrough usability testing
64
What are some heuristic guidelines for evaluation?
minimize memorization optimize operations engineer for errors avoid modes be consistent
65
What is the logical view?
logical elements organized in terms of components, layers, subsystems, packages, frameworks, class and interfaces - addresses functional reqs
66
What is the process view?
tasks, processes and threads, responsibilities, collaborations, allocation of logical elements - deals with deadlock, response time, throughput, and faults
67
What is implementation/development view?
deliverables and things that create them - description of the organization
68
What is the deployment/physical view?
physical network configuration between nodes
69
What are different architectural styles?
data flow, call-and-return, independent component, data-centered
70
What are the two branches of diagrams?
behavioral and structural
71
What is a component diagram?
shows the structural relationship between the components of a system - component is an encapsulated, reusable, and replaceable part of software - interface is a collection of one or more methods
72
What is a provided interface in a component diagram?
component produces information used by the required interface of another component
73
What is a required interface in a component diagram?
represent the interfaces where a component requires information in order to perform its proper function
74
What is a port in a component diagram?
it indicates that the component itself does not provide the required interfaces, it delegates the interface to an internal class
75
What is a connector in a component diagram?
a relationship between ports of components. - direct, connecter by interface, delegation
76
What does a sequence diagram to do?
describes dynamic behavior between objects of the system - has participant, message, axes
77
What is an activity diagram?
describes the dynamic behavior of a system - represent activities that are carried out by the system
78
What is coupling?
a measure of interdependency between modules
79
What is the Law of Demeter?
an object should never know the internal details of other objects, designed to promote low coupling
80
What is cohesion?
it is concerned with the relatedness within a module
81
What is SOLID?
Single responsibility Open closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
82
What is the single responsibility principle?
only one reason to change
83
Open closed principle
should be able to extend a classes behavior without modifying it
84
Liskov substitution principle
derived classes must be substitutable for their base classes
85
Interface segregation principle
classes that implement interfaces should not be forced to implement methods they do not use
86
Dependency inversion principle
high level should not depend on low level modules, should depend on abstractions