3. Software Development and Design

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What Git command adds a file to the Staging Area?

# git add <option> Options include: -single file: <file path> -multiple files: <file path 1> <file path 2> -all change files: <.>

What Git commands are used to merge a branch into a branch that is not the client's current working branch/repository?

# git checkout <target branch name> -then- # git merge <source branch name>

What Git command is used to get a copy (clone) of, and contribute to, existing repositories?

# git clone <repository> [target directory]

These are the 12 principles of the Agile Manifesto:

-Customer focus -Embrace change and adapt -Frequent delivery of working software -Collaboration -Motivated teams -Face-to-face conversations -Working software -Work at a sustainable pace -Agile environment -Simplicity -Self-organizing teams -Continuous Improvement

What Git command is used to configure a Git user's global settings?

After installing to the client machine, run: # git config --global user.name "<user's name." #git config --global user.email "<user's email>"

What is a handy feature of PyTest?

Its ability to automatically execute any scripts that start with test_ or end with _test.py.

What are the 4 major transport protocols Git supports for accessing a repository?

These are: -Local -SSH -Git -HTTP.

What are YAML basic objects?

These basic and complex data types are equated to keys; normally unquoted unless they contain colons or special characters. A colon separates the key and value.

What is a Python return statement?

This is a special statement used inside a method/function to send the function's result back to the caller.

How is a Module deployed?

To deploy this set of functions that's saved as a Python script, it must exist in the same directory as the application that utilizes it; by importing it, instantiating the class, and using dot notation to call its functions.

What two documents are created at the end of the Design phase of SDLC?

Two documents are created as output at the conclusion of this phase: HLD (high level design): a 10k foot view of the proposed software, generally describing the architecture, components and their relationships. LLD (low level design): based on the HDL, gives greater details about the architecture of individual components, protocols, required classes and aspects.

What Git command updates a local repository with the changes in the Staging Area by combining all the changes in the Staging Area into a single commit and updates the repo?

# git commit -m <"message"> Option: a message/notes about the update.

What Git command provides a file comparison tool?

# git diff <option> Options include: -file path -commit id

What Git command is used to make a new or existing project a Git repository?

# git init <project directory> Use an absolute or relative path.

What Git command is used to merge more than one branch into the client's current branch/repository (an octopus merge)?

# git merge <branch name 1> ...<branch name n>

What Git command is used to merge a branch into the client's current working branch/repository?

# git merge <source branch name>

What Git command updates a local repository to a remote repository with the changes in the Staging Area?

# git push origin <particular branch name> #git push origin master

What Git command removes files from a repository by adding the removal of files to the Staging Area, but doesn't update the repository?

# git rm <file path 1> <file path 2>

What Git command provides: -list of files that have differences between the working directory and parent branch -current branch of the working directory -number of commits the working directory is behind -the latest version of the parent branch and updating instructions

# git status

What waste does the Lean method try to eliminate?

-Partially done work -Extra processes and features -Task switching -Waiting -Motion -Defects

What are four types of Agile methods? Of these, which is most popular?

-Scrum (most popular) -Lean -Extreme Programming (XP) -Feature-Driven Development (FDD)

What is the GIT 3's system of organization?

3 Stages -repository file storage and change history -working directory (copy from repo) -staging area (index file in .git directory) stores changes that user wants made in the repo 3 States -committed file version that's been saved to the repo -modified a changed file not yet added to staging area or committed to the repo -staged a changed file ready to be committed to the repo

What is Integration Testing?

After unit testing, this is performed to ensure that all of the individual units fit together properly to make a complete application.

What Git command can list, create, or delete a branch?

Create or Switch to a Branch: # git branch <parent branch> <branch name> #git checkout -b <parent branch> <branch name> Delete: # git branch -d <branch name> List: # git branch -or- # git branch --list

What is a Backlog?

Created by the product owner, this is made up of all the features for the software in a prioritized list; a result of the Requirements & Analysis phase, it can be modified/reprioritized at any time.

What are the 3 main categories that the Gang of Four divided their Design Patterns into?

Creational: to guide, simplify, abstract software object creation at scale. Structural: ways of using objects and classes for different kinds of software projects. Behavioral: how objects can communicate and work together to meet familiar challenges in software engineering.

What is the Maintenance phase of SDLC?

During this phase the team provides customer support, bug fixes, software improvements. At the end of this phase work begins on the next version of the software; beginning the SDLC again.

What Git command updates a local copy of the repository?

From the parent branch: # git pull # git pull origin From a specific branch: # git pull origin <branch>

Are Git and GitHub the same thing?

Git -an implementation of a Distributed Version Control System (DVCS) that also provides a CLI. GitHub -a Microsoft service of repository hosting.

How are Maps (equivalent to Python dictionaries) expressed in YAML?

In YAML these are expressed over multiple lines, beginning with a label key and a colon, followed by members indented on subsequent lines.

How are Lists/Arrays expressed in YAML?

In YAML these are expressed over multiple lines, beginning with a label key and a colon, followed by optionally-indented members that are preceded by a single dash and space.

What is folding syntax in YAML?

Indicated with greater-than (>), this is the term for representing long strings in YAML where linebreaks are replaced by spaces when the file is parsed/consumed. Long strings cannot contain special characters.

How do you include unparsed comments in JSON?

JSON doesn't support any standard method for including these in the code.

What are JSONs basic data types?

Like YAML, this data format's basic data types include: -numbers: written as positive and negative integers, as floats with decimal, or in scientific notation. -strings -Booleans: 'true' and 'false'. -nulls: value left blank.

What are the 3 types of a Version Control System? Describe them.

Local -Tracks within the local system -reversion only, minimal benefits Centralized -uses a client-server model -repository kept on a server -client gets a copy of the file from the repo -only 1 person can work on the file at a time Distributed -a peer-to-peer model -stored in a repository hosting service -full repo is cloned to client's system before they can work on a file -many people can work on the "same" file at the same time

What are the 2 types of Git repositories?

Local -stored on client's filesystem -where git commands are executed Remote -stored on a server or hosting service -used when collaboration between a multi-user teams and client machines

Describe the two most commonly used design patterns: Observer, and Model-View-Controller (MVC).

Observer: A subscription notification design that lets objects receive events when there are changes to an object they are observing. Benefit: real-time data as changes occur, better performance than polling. Model-View-Controller (MVC): Considered architectural; it's goal is to simplify development of apps that need a GUI by abstracting code and responsibility into 3 components that can be developed in parallel: -Model -View -Controller Each communicating with each other in only one direction. Commonly used in UI and web application.

What is the Implementation phase of SDLC?

Often called the coding or development phase, this phase takes the HDL and LLD documents as input to develop the code. All components, modules, and the test plan are built during this phase, making it the longest phase of the SDLC.

What are YAMLs basic data types?

Similar to JSON, this data format's basic data types include: -numbers: written as positive and negative integers, as floats with decimal, or in scientific notation. -strings: unquoted -Booleans: 'true' and 'false'. -nulls: value left blank. Quotes only required when strings contain characters that have meaning within the code. Special characters are escaped with backslash expressions: \n (new line).

What is an XML Namespace?

Some XML messages and documents must reference this to specify particular tagnames and how they're used in various contexts. They're identified by Uniform Resource Names (URNs).

What are the 3 most popular standard formats for exchanging information with remote APIs?

The 3 most popular data exchange formats for accomplishing this are: XML, JSON, YAML.

What is the most powerful thing about methods and functions?

The ability for them to be written once and executed as many times as needed.

What is the Requirements and Analysis phase of the SDLC?

The goal of this phase is to answer several tiers of questions; exploring stakeholders' current situation, needs and constraints, present infrastructure, etc. The problem is better-defined, focus is placed on desired features and user experience (UX). The team begins assessing architectural options for building the software.

What is the output of the Implementation phase of SDLC?

The output of this phase is functional software code that implements all of the customer's requirements.

What is the term for representing YAML Maps and Lists on a single line, similar to JavaScript or Python?

The term for representing these YAML objects on a single line is flow syntax.

What are JSON individual Objects comprised of?

These JSON entities are comprised of key/value pairs, individuals of these are surrounded by braces: {"keyname": "value"} A number or Boolean is not quoted as string values are.

What are JSON Maps and Lists comprised of?

These JSON entities are comprised of multiple key/value pairs separated by commas; creating structures like complex JavaScript objects or Python dictionaries. They can be deeply nested with complex structure.

What is a Module and what are its benefits?

These allow you to build independent and self-contained chunks of code that can be reused. They can be used to divide a large project into smaller parts; allowing parallel and conflict-free development.

What are Python classes?

These are a means of encapsulating data and functionality; each declaration defines a new object type. It may be created many times, each with its own object-specific data attribute values. New ones can be based on existing ones so they inherit the properties, data members, and methods (functionality).

How are comments inserted into a YAML file?

These are added anywhere in a YAML file (except in a long string literal), preceded by the hash and a single space. # example

What are Sprints?

These are quick iterations to frequently deliver working software; a specific time-box with a duration between 2-4 weeks. This doesn't always lead to a release, but it requires the software to remain deliverable.

What are User Stories?

These are the tasks that are broken-down from a feature as it gets close to the top of the priority list; small enough to be complete in a single sprint. A simple statement of what a user/role needs and why: As a <user | role>, I would like to <action>, so that <value | benefit>

What are the Manifesto values of Agile?

These are: -individuals and interactions over processes and tools -working software over comprehensive documentation -customer collaboration over contract negotiation -responding to change over following a plan

What are the benefits of Version Control?

These include: -Collaboration -Accountability and Visibility -Isolated Development -File Safety

In 1994, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides published the book: Design Patterns: Elements of Reusable Object-Oriented Software. What nickname are they collectively known as?

They are known as the Gang of Four (GaF); pioneers in object-oriented coding and Agile software development.

What is the Lean Agile method?

This Agile method emphasizes elimination of wasted effort in planning and execution, and reduction of programmer cognitive load.

What is the Scrum Agile method?

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

What is the Extreme Programming (XP) Agile method?

This Agile method is a software development framework to produce higher quality software, and higher quality of life for the development team. It is the most specific of the agile frameworks regarding appropriate engineering practices for software development

What is the Feature-Driven Development (FDD) Agile method?

This Agile method states that software development should be broken out, planned, designed, and built feature-by-feature and specifies a detailed set of roles for core developers and support people.

What is the waterfall method of software development?

This SDLC method's goal is to complete each phase, down to the last detail, before going to the next phase; never returning to the prior phase. It's still widely used, but being replaced by methods known as "Agile development".

What is the basic 5-step process of Test-Driven Development?

This basic 5-step process is: 1. create a new test 2. test the test code; expected failures are okay 3. write application code to pass the new test 4. test the application code 5. improve application code, rerun the tests

What is YAMLs file structure?

This data format opens with three dashes on a line, ends with three periods on a line. Multiple "documents" within a single physical file are separated with their own dashes and periods. --- ...

Instead of brackets or containing tag-pairs, how does YAML indicate hierarchy?

This data type indicates hierarchy using indentations. Items indented below a label are members of that labeled element. Best-practice is to use 2 spaces per indent level. Consistency and the use of spaces (not tabs) is absolutely crucial.

What is the difference between methods and functions?

This first are code blocks that are associated with an object in object-oriented programming. The second are standalone code blocks.

What is GitHub?

This is a Microsoft repository hosting service, featuring: -code review -document management -bug tracking -feature requests

What is a Scrum Team?

This is a cross-functional, collaborative, self-managed, and self-empowered team; no larger than 10 individuals- big enough to complete a User Story within a single Sprint.

What is JavaScript Object Notation (JSON)?

This is a data format derived from the way complex object literals are written in JavaScript and Python.

What is XML?

This is a derivative of Structured Generalized Markup Language (SGML). It's a generic methodology for wrapping textual data in symmetrical tags to indicate semantics.

What defines an Over-the-Shoulder Code Review?

This is a one-on-one type of code review where the developer that wrote the code goes through the changes line by line with the reviewer providing feedback.

What is YAML?

This is a superset of JSON designed for even easier human readability, it's becoming more common as a format for configuration files and writing declarative automation templates for tools like Ansible.

What is an argument?

This is a value passed by the calling method/function at the time of calling a method/function.

What is a parameter?

This is in the called method/function; a variable defined by a function that receives a value when a method/function is called.

What is the MVC Model component?

This is the app's data structure and is responsible for managing the data, logic, and rules of the app. Gets input from the Controller.

What is the XML Prologue?

This is the first line in an XML file in a special format, bracketed by <? and ?>. It contains the tag name xml, it's version, and a character encoding. Normally version 1.0 and UTF-8 or UTF-16. Including this makes your XML documents reliably interpretable by parsers, editors, other software.

What is the SDLC (software development life cycle)?

This is the process of developing software in 6 phases; from idea to delivery. Each phase takes input from the results of the previous phase. There is no standard, exact phases can vary. They can be repeated, order reversed, or performed in parallel.

What is Unit Testing?

This is the term for detailed function-testing of small pieces of code; lines, blocks, functions, classes, other components in isolation. This process is usually automated by developers using testing frameworks.

What is the MVC View component?

This is the visual representation of the data; multiple representations of the same data can exist. Gets input from the Model.

What is a .diff (unified diff) file?

This is used to show developers how two different versions of a file have changed, using special symbols: + added line - removed line /dev/null file added or removed "blank" context lines around changed lines @@ next block of info is starting index displays commits compared

What is a Fast-Forward merge?

This is when the Git algorithm is able to apply changes/commits from the source branch to the target branch without conflicts.

What is a repository?

This is where the master set of files and history of changes are stored, where users get their own working-copy of a file; making changes without affecting others.

What is the MVC Controller component?

This manipulates user-input to fit the format for the Model or View.

What is Parsing?

This means analyzing a message, breaking it into its component parts, and understanding their purposes in context; before an application can interpret and act upon the data.

What is a Merge Conflict?

This occurs when Git doesn't know how to automatically merge the changes together from the branches. Modifying the same file on different branches to be merged increases the chance of this.

What is the Design phase of SDLC?

This phase takes the SRS (software requirement specification)document as its input for the work to be done by the software architects and developers.

What is the Testing phase of SDLC?

This phase takes the software code as input; installing it into the testing environment then following the testing plan.

What is the Deployment phase of SDLC?

This phase takes the software from Testing phase and installs it into the production environment to evaluate it's ability to be released.

What is the principle of Test-Driven Development (TDD)?

This principle implies that you should write testing code before writing application code. Having expressed requirements in your testing code, you can write application code until it passes the testing-code test.

What is clean code?

This principle is met through: -neat formatting -consistency in tabs/spaces -intuitive naming conventions -organized sensibly -internally documented/commented -every line serves a purpose or is removed -written so that common code is reusable -code is easily unit-tested

What is a Version Control System (AKA version control, revision control, source control)?

This provides a way to manage changes to a set of files; keeping a history of those changes.

What is JSON Whitespace Insignificance?

This term means files can be indented using tabs or spaces as preferred, in any combination or not at all. This also makes JSON robust for use in CLI where certain characters can be lost in cut/paste operations.

What is the Agile software development methodology?

This type of SDLC is flexible and customer-focused. It became official in 2001 when seventeen developers joined forces and figured out a solution to their frustrations.

What defines a Change-Based Code Review (AKA tool-assisted code review)?

This type of code review is focused on reviewing changes that were a result of a bug, user story, feature, commit, etc.

What defines a Formal Code Review?

This type of code review is where developers have a series of meetings to review the entire codebase; line by line, in detail.

What defines an Email Pass-Around Code Review?

This type of code review occurs after automatic emails are sent by the source code management systems; when a check-in is made.

What does Branching enable?

Users can: -work on a feature independently and concurrently -experiment with code ideas -keep production, development, and feature code separated -keep the main line of code stable Used, instead of direct code updates of the Master Branch, to prevent accidental updates that break the main line code.

How do you place comments in XML files?

You add these anywhere in the XML document using this special tagging: <!-- XML comment -->

One method of using special characters in XML data fields is to encode them with common HTML entity encodings. What is another option?

You can accomplish this by surrounding entire raw character strings in XML files with CDATA blocks.

What are user-defined XML tags?

You can use these in the development of your own application to clearly express the meaning of data elements, their relationships, and hierarchy. When consuming XML from an API, their names and meanings are generally documented by the API provider.

What is created at the end of the Requirements and Analysis phase of SDLC?

a SRS (software requirement specification), stating the software requirements and scope, is created as output and is used to confirm the details with stakeholders.

What are 2 examples and descriptions of Python testing frameworks?

unittest Included in Python by default to create test collections as methods extending a default TestCase class. PyTest Added to Python from pip repositories (pip3 install pytest). Can run unittest without modification, simplifies testing by building tests as simple functions, instead of class methods. Used by specialized test suite PyATS from Cisco.


Ensembles d'études connexes

Psy 134 Lecture 6 - Tolerance, Sensitization, and Withdrawal

View Set

Chapter 8 - Principles of Exercise Training

View Set

Ch. 24 Liability, Defenses, & Discharge

View Set

Unit two study guide; study guide

View Set

Comprehensive Review for the NCLEX-PN® Exam, 8e

View Set

2.5 Monetary Polices: Interest rates

View Set

Chapter 4: Stress Response Multiple choice

View Set