1.0 Software Development and Design Flashcards

1
Q

1.5 Explain the benefits of organizing code into methods / functions, classes, and modules

A

These help with the D.R.Y principle (Don’t Repeat Yourself). Example: Classes are blueprints, Objects are houses, and Functions are things you do to or with objects.

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

1.6 Identify the advantages of common design patterns (MVC and Observer): Observer

A

A pattern where dependant objects are updated or notified by one or more subject objects.

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

1.6 Identify the advantages of common design patterns (MVC and Observer): MVC

A

A high-level abtraction where responsibilities are divided up into three loosely coupled component:
1. Model: the component that stores the data
2. View: the component that displays the data
3. Controller: the component that handles logic flow, user interactions, and directs models and view.

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

1.7 Explain the advantages of version control

A

Maintains a history of changes for reference or rollback.

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

1.8a Utilize common version control operations with Git: Add/remove

A

Add/Remove adds a file to staging Git for version controlling.

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

1.8c Utilize common version control operations with Git: Commit

A

This will take all staged files and snapshot them into Git for version control. This will not update non-staged(added) files.

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

1.8g Utilize common version control operations with Git: diff

A

This command will show any changes that have been made since the last commit. It will list every file that has been changed and display what have been modified inside said files.

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

1.8a Utilize common version control operations with Git: clone

A

This command creates a local copy of a remote directory. Additionally it synchronizes it with the remote repository. Allowing for push/pull.

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

1.8d Utilize common version control operations with Git: push/pull

A

Push: Forces your changes to a repository to the synchronized remote server.
Pull: Updates your repository from a synchronized remote server.

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

1.8e Utilize common version control operations with Git: branch

A

Branches are parralel working enviroments to your master branch. Once you make a second branch everything you do on that branch will not affect the original one, and visa versa. You can still work on both, but the will not affect each other.

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

1.8f Utilize common version control operations with Git: Merge

A

Merging combines two branches, the recieving branch where the changes are being pulled into and the target branch, which is where the changes are being pulled from.

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

1.8f Utilize common version control operations with Git: handling conflicts

A

Conflicts occur when two merging branches both have changes to the same code in the same file and need to figure out which ones to keep. The way to fix this is after you use the merge command an error will appear and give you the option to choose which you would like to keep, choose one and the conflict is resolved.

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

1.1 Compare data formats (XML, JSON, and YAML): YAML

A

YAML is highly human readable, compact and is ideal for configurations. It uses dashes (-) and seperate lines.

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

1.1 Compare data formats (XML, JSON, and YAML): XML

A

XML is best used for legacy systems and SOAP (API web based protocol). It looks similar to html, using <>, </>

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

1.1 Compare data formats (XML, JSON, and YAML): JSON

A

JSON is native to JavaScript making it the defacto language for webpages. It uses brackes [], {}

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

1.2 Describe parsing of common data format (XML, JSON, and YAML) to Python data
structures: JSON

A
17
Q

1.2 Describe parsing of common data format (XML, JSON, and YAML) to Python data
structures: XML

A
18
Q

1.2 Describe parsing of common data format (XML, JSON, and YAML) to Python data
structures: YAML

A
19
Q

1.4 Compare software development methods (agile, lean, and waterfall): Waterfall

A

Outdated method where you do the four basic steps of Requirements, Design, Implementation, and Verification then at the end release and get customer feed back. No additional steps. Example: develop a product over a year and release it to get feedback.

20
Q

1.4 Compare software development methods (agile, lean, and waterfall): Lean

A

Method where you do the four basic steps of Requirements, Design, Implementation, and Verification on a shorter time frame than Waterfall, in addition after customer feedback you will eliminate waste. Example develop a product over 4 months and get feedback so you can get feedback 3 times a year and improve your processes each time.

21
Q

1.4 Compare software development methods (agile, lean, and waterfall): Agile

A

Method where you do the four basic steps of Requirements, Design, Implementation, and Verification on a shorter time frame than Waterfall. Example develop a product over 4 months and get feedback so you can get feedback 3 times a year as opposed to once.

22
Q

1.3 Describe the concepts of test-driven development

A

TDD is centered around the idea of constantly testing as your are developing the application.
1. Create a new test: This test should capture a requirement of the application code we are going to write.
2. Run tests: If there are any failures, correct the tests. Failures here are acceptable.
3. Write code to pass the new test: Add nothing more to the application code except what is required to pass the test.
4. Run tests: If any tests fail, fix the application code and re-run tests.
5. Refactor and improve code: Re-run tests each time the application code is improved and fix the code for each failure.