Software Development - Software Design Flashcards

1
Q

What is Software development?

A

he process of building software, starting with the original idea and ending with a high-quality working product. This process is also known as the software development life cycle (SDLC)

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

What are the phases of the SDLC

A
Requirements & Analysis
Design
Implementation
Testing
Deployment
Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the first phase of the SDLC

A

Requirements and analysis - the product owner and qualified team members gather the requirements for the software to be built

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

Describe the second phase of the SDLC

A

Design - the software architects and developers design the software based on the provided SRS

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

Describe the implementation phase of the SDLC

A

the developers take the design documentation and develop the code according to that design

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

Describe the testing phase

A

test engineers take the code and install it into the testing environment so they can follow the test plan.

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

Describe the Deployment phase

A

the software is installed into the production environment

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

Describe the Maintenance phase

A

Provides support for customers
Fixes bugs found in production
Works on software improvements
Gathers new requests from the customer

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

What are the three common software methodologies?

A

Waterfall
Agile
Lean

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

Describe Waterfall Software development

A

the process goes in one direction, and can never go backward

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

Describe Agile software development

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

What does the command pip freeze do?

A

Shows the available packages and their version

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

What command allows you to create a virtual env in python

A

python -m venv [name of venv]

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

Why should you make a venv whenever you want to install any packages?

A

Sometime there are dependicies that may interfere with other packages

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

what command deactivates a venv?

A

deactivate

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

What does a requirements.txt file do

A

Shows all of the packages that are needed for that specific venv to work

17
Q

what does the command pip install -r requirements .txt do?

A

installs all of the packages of that particular venv

18
Q

Describe creational patterns

A

used to guide, simplify, and abstract software object creation at scale

19
Q

Describe structural patterns

A

Patterns describing reliable ways of using objects and classes for different kinds of software projects.

20
Q

Describe behavioral patterns

A

Patterns detailing how objects can communicate and work together to meet familiar challenges in software engineering.

21
Q

Describe observer pattern

A

a subscription notification design that lets objects (observers or subscribers) receive events when there are changes to an object (subject or publisher) they are observing

22
Q

What are the three things needed for an observer pattern to work

A

The subject must have the ability to store a list of all of its observers.

The subject must have methods to add and remove observers.

All observers must implement a callback to invoke when the publisher sends a notification, preferably using a standard interface to simplify matters for the publisher. This interface needs to declare the notification mechanism, and it needs to have parameters for the publisher to send the necessary data to the observer.

23
Q

Describe a MVC pattern

A

mplify development of applications that depend on graphic user interfaces. MVC abstracts code and responsibility into three different components: model, view, and controller.

24
Q

What is the model in a MVC

A

the application’s data structure and is responsible for managing the data, logic and rules of the application. It gets input from the controller.

25
Q

What is the view in MVC

A

visual representation (the presentation) of the data

26
Q

What is the controller

A

akes in user input and manipulates it to fit the format for the model or view.