Software development and design Flashcards

1
Q

S: SDLC

A

software development life cycle

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

The most common phases of an SDLC are:

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

S: MVP

A

minimum viable product

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

S: SRS

A

Software Requirement Specification

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

S: HLD

A

High-Level Design

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

S: LLD

A

Low-Level Design

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

Three most popular software development methodologies

A
  • Waterfall
  • Agile
  • Lean
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

The values of agile are:

A
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Agile manifesto lists twelve different principles:

A
1- Customer focus
2- Embrace change and adapt
3- Frequent delivery of working software
4- Collaboration
5- Motivated teams
6- Face-to-face conversations
7- Working software
8- Work at a sustainable pace
9- Agile environment
10- Simplicity
11- Self-organizing teams
12- Continuous Improvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Agile Scrum

A

focuses on small, self-organizing teams that meet daily for short periods and work in iterative sprints, constantly adapting deliverables to meet changing requirements.

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

Agile Methods

A
  • Agile Scrum
  • Lean
  • Extreme Programing (XP)
  • Feature-Driven Development (FDD)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Lean

A

emphasizes elimination of wasted effort in planning and execution, and reduction of programmer cognitive load

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

Sprint

A

the purpose of sprints is to accomplish the frequent delivery of working software principle of the Agile manifesto

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

Backlog

A

backlog is made up of all of the features for the software, in a prioritized list

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

User Stories

A

When a feature gets close to the top of the priority list, it gets broken down into smaller tasks called user stories. Each user story should be small enough that a single team can finish it within a single sprint

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

Scrum Teams

A

Scrum teams are usually made up of people with different roles in order to accomplish the full SDLC

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

seven principles for lean:

A
    • Eliminate waste
    • Amplify learning
    • Decide as late as possible
    • Deliver as fast as possible
    • Empower the team
    • Build integrity in
  1. -Optimize the whole
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

There are seven wastes of software development:

A
  1. Partially Done Work
  2. Extra Processes
  3. Extra Features
  4. Task Switching
  5. Waiting
  6. Motion
  7. Defects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

C: create a virtual environment:

A

python -m venv devfun

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

C: install packages for a virtual environment:

A

source devfun/bin/activate

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

C: show pip instalations

A

pip freeze

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

C: install the packages required by the project.

A

pip install -r requirements.txt

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

best practice to use v_ e_ when working with Python projects

A

virtual environments

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

MVC framework for Python

A

Django

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

MVC framework for Ruby

A

Rails

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

MVC framework for Java

A

Spring

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

MVC framework for Javascript

A

Backbone.js

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

the Gang of Four divided patterns into three main categories:

A
  • Creational
  • Structural
  • Behavioral
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

the Gang of Four divided patterns into three main categories | Creational:

A

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

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

the Gang of Four divided patterns into three main categories | Structural:

A

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

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

the Gang of Four divided patterns into three main categories | Behavioral:

A

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

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

Observer design pattern

A

is 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.

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

MVC Components | Model

A

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

34
Q

MVC Components | View

A

The view is the visual representation (the presentation) of the data. There can be multiple representations of the same data.

35
Q

MVC Components | Controller

A

The controller is like the middleman between the model and view. It takes in user input and manipulates it to fit the format for the model or view.

36
Q

Working Copy

A

is the individual’s personal copy of the files, where they can make changes without affecting others.

37
Q

Some of the benefits of version control are:

A
  • It enables collaboration
  • Accountability and visibility
  • Work in isolation
  • Safety
38
Q

There are three types of version control:

A
  • Local version control system
  • Centralized version control system
  • Distributed version control system
39
Q

There are three stages in Git:

A
  • repository ( the .git directory)
  • working directory
  • staging area
40
Q

there are three matching states for a Git file:

A
  • committed
  • modified
  • staged
41
Q

Git has two types of repositories:

A
  • local

- remote

42
Q

Branching enables users to:

A
  • Work on a feature independently while still benefitting from a distributed version control system
  • Work on multiple features concurrently
  • Experiment with code ideas
  • Keep production, development, and feature code separately
  • Keep the main line of code stable
43
Q

Git and GitHub difference

A

Git is an implementation of distributed version control and provides a command line interface, while GitHub is a service, provided by Microsoft, that implements a repository hosting service with Git.

44
Q

GitHub also provides additional features (over Git) such as:

A
  • code review
  • documentation
  • project management
  • bug tracking
  • feature requests
45
Q

Configure a username and an e-mail

A

$ git config –global user.name “”

$ git config –global user.email “”

46
Q

To make a new or existing project a Git repository, use the following command:

A

$ git init

47
Q

To get a copy of and contribute to existing repositories

A

git clone [target directory]

48
Q

Git supports four major transport protocols for accessing the :

A

Local, Secure Shell (SSH), Git, and HTTP.

49
Q

command to get a list of files that have differences between the working directory and the parent branch.

A

git status

50
Q

command that is essentially a generic file comparison tool

A

git diff

51
Q

command to add file(s) to the staging area

A

git add

52
Q

command to remove files from the Git repository

A

git rm

53
Q

command to update the local repository with the changes that have been added in the staging area.

A

git commit

54
Q

command to update the remote Git repository with the content changes from the local Git repository.

A

git push

55
Q

Git provides a git pull command to get updates from a branch or repository

A

git pull

56
Q

command to list, create, or delete a branch.

A

git branch

57
Q

command to switch the working directory to the new branch.

A

git switch

58
Q

command to create a branch and switch the working directory to that branch

A

git checkout -b

59
Q

command to delete a branch

A

git branch -d

60
Q

command to get a list of all the local branches

A

git branch or git branch –list

61
Q

command to merge a branch

A

git merge branchX

62
Q

for the work that you’ve contributed, you need to associate your name and email address with your work. To do that in Git, you use the command.

A

git config –global user.name “Sample User”
git config –global user.email sample@example.com
git config –global core.pager cat

63
Q

you may want to review the commit history for a repo. To view the most recent commits, you use the command

A

git log

64
Q

Clean code is…

A

the result of developers trying to make their code easy to read and understand for other developers

65
Q

Methods and functions share the same concept; they are…

A

blocks of code that perform tasks when executed

66
Q

Syntax of a function in Python

A
# Define de function
def functionName:
  ...blocks of code...
# Call the function
functionName()
67
Q

The difference between methods and functions is that…

A

functions are standalone code blocks while methods are code blocks associated with an Object, typically for Object-Oriented programming.

68
Q

Modules are…

A

a way to build independent and self-contained chunks of code that can be reused

69
Q

Object-oriented programming (OOP), as originally conceived, is based on some formally-defined properties:

A
  • Encapsulation
  • Data abstraction
  • Polymorphism
  • Inheritance
70
Q

Outside of a virtual environment, your interpreter could be called by many names:

A
python
py -2 (Windows only)
py -3 (Windows only)
python2
python3
python3.6
python3.7
71
Q

Inside a virtual environment, your interpreter always responds to…

A

python

72
Q

Command that gives you the full path to the interpreter in use.

A

which python

73
Q

Python data types

A

int, float, bool, str and bytes

74
Q

Python numeric operators

A
\+ Addition
- Subtraction
* Multiplication	
/ Division	
// Floor Division	
% Modulus (remainder)	
** Power
75
Q

Python string operators

A

+ Concatenation

* Multiplication

76
Q

Python function syntax:

A
def function_name(arg_1, arg_2):
    statements...
    return value
77
Q

three most commonly used data structures

A
  • lists
  • tuples
  • dictionaries
78
Q

python data structure | list:

A

Ordered list of items, mutable (can be changed after created), items can be different data types, and it can contain duplicate items.

79
Q

python data structure | tuple:

A

Just like a list; except: it’s immutable (cannot be changed).

80
Q

python data Structure | dictionary:

A

Ordered key-value pairs, keys don’t have to be same data type, values don’t have to be same data type. Keys are unique; must be immutable.