1.0 Software Development and Design Flashcards

(187 cards)

1
Q

XML, JSON, YAML - Which one is “hefty” and not very human readable?

A

XML

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

XML, JSON, YAML - Mostly used for transmitting data between server and a web page

A

JSON

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

XML, JSON, YAML - syntax uses curly braces, square brackets, and quotes for its data representation

A

JSON

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

XML, JSON, YAML - whitespaces are for human readability only, not consumed by the application or script

A

JSON

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

XML, JSON, YAML - whitespaces are used for scoping, defines a structure of the file

A

YAML

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

XML, JSON, YAML - has a mandatory top-most element

A

XML

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

XML, JSON, YAML - most powerful, but most tedious to write/read

A

XML

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

XML, JSON, YAML - used in many configuration files today.

A

YAML

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

XML, JSON, YAML - Similar indention style to Python

A

YAML

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

YAML - What denotes a list?

A

A Dash - similar to writing a shopping list

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

XML - Does XML have predefined tags like HTML?

A

No predefined tags like HTML. The author defines the structure and elements

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

T/F - APIs allow faster prototyping and development of software

A

True

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

APIs use the network for communication, what is a challenge of that?

A

unreliable networks

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

CI/CD

A

continuous integration and continuous deployment

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

YAML

A

YAML ain’t markup language

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

JSON

A

Javascript Object Notation

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

XML

A

eXtensible Markup Language

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

What are the file extensions for XML, JSON, and YAML

A

.xml, .json, and .yaml

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

T/F - In a data format (XML/JSON/YAML), a key must be a string

A

True

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

T/F - In a data format (XML/JSON/XML), a value (in a key/value) could be a string, a number, or a Boolean. Other values could be more complicated, containing an array or an entirely new object

A

True

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

XML - What is used to diferentiate two different objects that are using the same tab names?

A

XML Namespaces and Prefixes

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

What is converting a data structure or an object into a binary or textual format that can be stored and recontructred later called?

A

Serialization

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

Preserving the state of an object, by converting it into a XML, JSON, or YAML file is called what?

A

Serialization

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

Opening a file and reconstructing it to its original state with all the objects defined is called?

A

Deserialization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Receiving a configuration from a switch API in XML, JSON, or YAML and converting it to a data structure Python understands is called what?
Deserialization
26
Extracting details out of a textual file and converting it into valid Python objects is called what?
data or file parsing
27
What are the 19 guiding principles that had considerable influence on how Python was actually designed called?
The Zen of Python
28
How do you access The Zen of Python in a Python script or the interactive shell?
import this
29
How do you check the version of Python installed on your workstation?
python --version or python -V (note the capital V)
30
What is any practically any code outside of your script that you want to use? Already written and available for you to use?
A python Library
31
The basic unit of a XML document is called what?
An element
32
T/F - An XML document must have one and only one root element.
True
33
Where is a collection of packages, libraries, and even entire applications for Python located?
Python Package Index or PyPI
34
What is the package manager for Python called?
pip
35
What data format are these libraries commonly used with? PyYAML and ruamel.yaml
YAML
36
What data format is this library commonly used with? json
JSON
37
What data format are these libraries commonly used with? xmltodict, untangle, minidom, and ElementTree
XML
38
Which library is newer, and is a derivative of the other? pyYAML or ruamel.yaml
ruamel.yaml
39
Which YAML data format library supports YAML 1.2?
ruamel.yaml
40
How do you install Python libraries to be used in your script?
pip install
41
How do you leverage features from a library you have installed, inside a Python script?
import
42
When parsing data from YAML into Python, what is the YAML string converted to within Python? object
dict
43
When parsing data from YAML into Python, what is the YAML string converted to within Python? array
list
44
When parsing data from YAML into Python, what is the YAML string converted to within Python? string
str
45
When parsing data from YAML into Python, what is the YAML string converted to within Python? number (int)
int
46
When parsing data from YAML into Python, what is the YAML string converted to within Python? number (real)
float
47
When parsing data from YAML into Python, what is the YAML string converted to within Python? true
True
48
When parsing data from YAML into Python, what is the YAML string converted to within Python? false
False
49
When parsing data from YAML into Python, what is the YAML string converted to within Python? null
None
50
T/F - A JSON object gets natively translated into a Python Dictionary.
True
51
When parsing data from JSON into Python, what is the JSON data translated to in Python? object
dict
52
When parsing data from JSON into Python, what is the JSON data translated to in Python? array
list
53
When parsing data from JSON into Python, what is the JSON data translated to in Python? string
str
54
When parsing data from JSON into Python, what is the JSON data translated to in Python? number (int)
int
55
When parsing data from JSON into Python, what is the JSON data translated to in Python? number (real)
float
56
When parsing data from JSON into Python, what is the JSON data translated to in Python? true
True
57
When parsing data from JSON into Python, what is the JSON data translated to in Python? false
False
58
When parsing data from JSON into Python, what is the JSON data translated to in Python? null
None
59
What method is used to parse data from JSON into a Python dict?
json.load()
60
What method is used to deserialize from Python dict to JSON?
json.dump()
61
What Python element is translated to from this XML Library? minidom
DOM object - user.getElementsByTagName('name')[0].firstChild.data
62
What Python element is translated to from this XML Library? ElementTree
Element Tree - user.find('name').text
63
What Python element is translated to from this XML Library? xmltodict
Dictonary - user['name']
64
What Python element is translated to from this XML Library? untangle
Object - user.name.cdata
65
Which XML library is the closest to working like YAML or JSON files?
xmltodict
66
Which two data formats natively translate their data to a Python dictionary?
JSON and YAML
67
T/F - Version Control Software keeps track of every modification of the code.
True
68
What is the most popular version control system?
Git
69
T/F - Git is a distributed system, so there is no central server.
True
70
(Version Control) Where are the files of a project located? It is also where all other local copies are pulled.
Remote Repository
71
(Version Control) Where are snapshots, or commits stored, when on the local machine of each individual?
Local Repository
72
(Version Control) Where are all the changes you actually want to perform placed?
Staging Area
73
Git tracks the differences between this directory and the local repository.
Working Directory
74
What is a directory that is initialized with Git called? It can contain anything such as code, images, and any other types of files.
Repository
75
What git command must be used when you create a new project locally on your machine, to initialize the project to work and be tracked by git?
git init
76
What git command is used to start tracking files and add them to the staging area?
git add
77
What git command is used to stop tracking files?
git rm
78
What git command is used to create a local snapshot?
git commit -M
79
What git command is used to fetch changes from the remote repository?
git pull or git fetch
80
What git command is used to send commited changes to the remote repository?
git push
81
How do you configure a Git username and email address?
git config --global user.name | git config --global user.email
82
T/F - When you use the git commit command, you are required to include a message.
True
83
Which git command retrieves changes from the remote repository AND merges them to your current branch?
git pull
84
Which git command retrieves changes from the remote repository, but only stores them to the local repository. It doesn't merge any changes.
git fetch
85
Version Control - what git command do you use to temporarily store modified tracked files?
git stash
86
Version Control - what git command do you use to restore previously stashed modified files?
git stash pop
87
Version Control - what git command would you use to revert commited changes?
git reset
88
Version Control - what git command would you use to undo changes that were committed?
git reset or git revert
89
Version Control - which git undo command leaves commits that you can go back to
git revert
90
Describe the 5 common actions of a typical Git worflow.
``` Directory initialization for Git Adding a File Committing a file to a local repository Pushing a file to a remote repository Updating a local repository by pulling changes from a remote repository ```
91
Where is the central location of the files of the project, from which all developers can pull?
Remote Repository
92
What is a different instance of your repository called?
Branch
93
What is the default instance of your repository called?
Master Branch
94
T/F - You should never develop new features or apply bug fixes directly to the master branch.
True
95
T/F - Always create a separate branch for a new feature or bug fix.
True
96
How do you manipulate branches?
git branch
97
How do you navigate through branches?
git checkout
98
How do you merge branches?
git merge
99
How do you compare changes between branches?
git diff
100
How do you create a new branch in your local repository?
git branch
101
How do you delete a branch from your local repository?
git branch -D
102
How to navigate to a branch after it was created with git branch?
git checkout
103
How do you create a new branch and switch to it in one command?
git checkout -b
104
What is the process used by software creators to design, develop, and test high-quality software products and applications?
The Software Development Lifecycle (SDLC)
105
Name 4 of the 5 methodologies that help implement SDLC.
Waterfall, Agile, Prototyping, Rapid App Development, and Extreme Programming
106
What is the development methodology where a linear process is visualized as moving down through phases?
Waterfall
107
What is one of the newer and most popular development methodologies that is based on frequent and small incremental releases?
Agile
108
Which development methodology has this advantage "Because the process is rigid and structured, it is easy to measure progress and set milestones."
Waterfall
109
What development methodology takes its origin from the Japanese automotive industry? It is merely a concept.
Lean
110
What three major points must an enterprise focus on to fully embarce the lean philosphy?
Purpose, Process, and People
111
What development methodology is a means of implementing the Lean philosophy, based on the concept of short sprints?
Agile
112
Which development method provides continuous and incremental value to the software develpment process?
Agile
113
What project management methodology, or a framework of agile development, places value on iteration and incremental software development?
SCRUM
114
What methodology uses sequential and linear phases | Analysis, Design, Code, and Test?
Waterfall
115
T/F - Lack of good documentation is a disadvantage of Agile development.
True
116
T/F - Late project changes are welcome in agile development.
True
117
What is a short period in which people focus on small but meaningful development tasks?
A Sprint
118
What is the software-development methodology where you write the test code before the actual production code?
(TDD) Test-driven development
119
T/F - TDD ensures that use cases are tested, and source code has automated tests by using the test-first approach
True
120
T/F - TDD is done in iterations - Write tests, Run tests; they must fail, write source code, run all test; they must pass, Refactor the code where necessary
True
121
T/F - When doing TDD, you shouldn't write more code than is needed to get the tests to pass.
True
122
List three advantages of code refactoring in TDD, before moving to the next task.
Better code Structure, Better code readability, Better design
123
What is the first step in a test-driven development iteration?
Write tests that fail
124
What phase in the software development process helps identify bugs and poor code practices, as well as improve the design and overall readability of the code? Its main goal is to find bugs before code is deployed to production, or even to a test server.
Code Review
125
List 2 of the 4 reasons for a code review.
Identify bugs Improve code quaility Get familar with different parts of the project Learn something new
126
T/F - Identifying bugs is the most important reason to a do a code review.
True
127
What are two ways to merge a branch to the master branch?
Direct Merge - using the "git merge" command (not recommended) Merge using pull request - requires code review (recommended option)
128
What GitHub feature is used to initiate a code review?
pull request
129
Which software development methodology is an implentation of the Lean concept in software engineering?
Agile
130
What framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries?
pytest
131
In what relation is a product backlog to a sprint backlog?
Work items are typically moved from product backlog to sprint backlog at the sprint start.
132
Why is the Refactor step required in test-driven development?
to improve code quality
133
T/F - You should write tests, before writing code during test-driven development.
True
134
T/F - You should do code review in every software development project.
True
135
Why do you typically perform a code review?
to improve codebase quality
136
When performing a code review in GitHub, which action notifies the author that changes to the code must be made before merging?
request changes
137
REST
Representational State Transfer
138
API
Application Programming Interface
139
Applications are split into a suite of multiple smaller, independently running components or services, all complementing each other to reach a common goal.
microservices
140
An application that runs as a single logical executable unit.
monolith
141
These are the first line in organizing and achieving certain modularity in your program. You can make order in your code by dividing it into blocks of reusable chunks that are used to perform a single, related task.
Functions
142
What statement can be used to stop a function execution?
return
143
T/F - A variable defined inside a function has a local scope, and are NOT visible outside of the function.
True
144
What does the principle know as DRY mean in programming?
Don't Repeat Yourself
145
What are callable units, that are used to group code called?
functions
146
In python, functions can be grouped and packaged, so that the code is separated from the rest of the application code, and then used together with the rest of the code in the future. What are these groups/packages called?
modules
147
What special system variable needs to be changed to be able to run a Python script directly, instead of by importing it into another script?
__name__
148
What does the special system variable __name__ need to be changed to so that a Python script can be executed and run directly?
__main__
149
What is a construct used in an object-oriented programming (OOP) language?
Class
150
In OOP, what are records or instances of code that allow you to carry data with them and execute defined actions on them?
Objects
151
What represents the blueprint of what an object looks like, how it behaves?
Class
152
T/F - Classes can inherit data from other classes.
True
153
What is the formal description of an object that you want to create? It contains the parameters for holding data and methods that will enable interaction with the object and execution of defined actions.
Class
154
T/F - Python is a "first-class everything", or everything is a class.
True (everything is an object)
155
What method is a special initialization method that is generally known as a constructor and is usually used for the initialization of object data when creating a new object?
__init__
156
What variable represents the instance of the object itself and is used for accessing the data and methods of an object?
self
157
What is similar to a function, but are part of classes and need to define the "self" parameter?
Method
158
What is it called to derive a new class from an existing class?
inheritance
159
Creating a new child class, while maintaining the parameters and methods from the so-called parent class is called what?
inheritance
160
T/F - Too many interactions between different modules can lead to confusion and unwated side effects when something needs to be changed in a module.
True
161
What design principle ensures that when you split your monolithic application into multiple modules, these modules - and the classes accompanying them - have dependencies in one direction only.
Acyclic Dependency Principle
162
What design strategy is defined as follows: High-level modules should not depend on low-level modules. Both should depend on abstractions Abstractions should not depend on details. Details should depend on abstractions
Dependency inversion
163
What is it called when the appropriateness of an object is not determined by its type, but rather by the presence of properties and methods?
Duck typing
164
What software design strategy is defined as follows: Frequently changing, unstable modules can depend on modules that do not change frequently and are as such more stable, but they should not depend on each other in the other direction.
Stable-Dependencies Principle
165
In software development, what is the term for reducing the dependency of a module, class, or function that uses different modules, classes, or functions directly? These systems tend to be easier to maintain and more reusable.
Loosely Coupled
166
In software development, what is it called where objects mentioned are more dependent on one another?
Tightly coupled
167
T/F - Reducing the dependencies between components of a system results in reducing the risk that changes of one component will require you to change any other component.
True
168
What three parameters define the coupling criteria in software development?
Size, Visibility, and Flexibility
169
T/F - functions and methods that take one parameter are more loosely coupled than functions that take 10.
True
170
T/F - A class with too many methods is not an example of loosely coupled code.
True
171
T/F - If you fundamentally change the conditions of a function in a loosely coupled system, no more than one module should be affected.
True
172
If classes, modules, and functions all aim for the same goal, and focused on one thing, what do they have?
Strong Cohesion (high cohesion)
173
What is the optimal combination of coupling and cohesion?
strong cohesion and loose coupling
174
What concepts define what OOP enables?
Abstraction, Encapsulation, Inheritance, and Polymorphism
175
To hide the logic implementation behind an interface is the ambition of what?
Abstraction
176
In Python, how do you mark something as nonpublic data?
an underscore or double underscore
177
Since different programming languages are hard difficult to master, what was created to help create a graphical notation of the programs that are being built
Unified Modeling Language
178
In a Unified Modeling Language diagram, how is inheritance show?
a solid line with an arrow at the end
179
What architecture pattern is also known as the multitier or n-tier architecture pattern, and is one of the most common general purpose software architecture patterns?
Layered Architecture Pattern
180
What are the four typical layers of the layered architecture pattern?
Presentation, Business, Persistence, Database
181
Between Software Architecture Patterns and Software Design Patterns, which is more detailed and dives into the seperate components that ensure optimal coding techniques?
Software Design Patterns
182
What Software Design Pattern ensures that a class has only one instance while providing a global access point to it?
singleton pattern
183
In OOP, presenting a process of concealing data and methods of an object, with the intention to hide the implementation and restrict direct access to the object data is called what?
encapsulation
184
The separation between the view and the model, which is considered a very important design principle in software and should be followed every time that your application has some sort of dynamic behavior when using this design pattern.
Model View Controller
185
What are behavioral patterns that define a one-to-many dependency between objects, together with a subscription mechanism for informing subscribed objects on changes happening on the object they are observing.
Observer design patterns
186
Observer design patterns are also known as what?
Event-Subscriber or Listener
187
When you need to dynamically sync the object state based on changes in some other object, and you cannot predict how many or what kind of objects will need this means of updating, what design pattern would be used?
Observer pattern