Software Development
Tools
Tools Cont/Toolchain
Cont.
Wild Card
100

The SDLC stands for

Software Development Lifecycle

100

What is an IDE and 3 examples

Integrated Development Environment- where source code is written by developers

  • Microsoft Visual Studios // commercial (.NET)
  • Eclipse // free (Java)
  • IntelliJ IDEA // commercial (Java)
100

What is a toolchain and why do people care

the different tools (ex IDEs, SCMs, build automation, CI, etc) used to create the CI/CD pipeline

-You would want to select tools to help streamline the development process and integrate well

100

What is a compiler and name 2 examples

Is a tool that automates the process of converting source code into binaries.

  • GCC GNU C compiler
  • JavaC java compiler
100

Define Source Code and Binary Code

-Source code: is raw human readable code/ the code that developers will write in

  • Uncompiled code

-Binary code: is machine readable code aka 1s and 0s

  • Compiled code
200

Define SDLC

Term for the collective steps involved in developing software

200

What is a SCM and 2 examples

Source Control Manager- store human written source code

  • Git (open source on prem)
  • Github (open scource on cloud)
200

What is the DevOps role

is to automate the development process. It brings together development and operations teams (as well as security for devsecops) to create a more connected, faster and more automated workflow

  • Design and improve automation
200

What is a Package Manager and name 3 examples

Automates the process of installing, upgrading, configuring and removing computer programs. Keeps track of what software is already installed and allows you to easily upgrade, install or remove software

  • RPM red hat package manager
  • NPM node package manager (used for javascript)
  • PIP python package manager
200

What are the differences between Source and Binary Code

Source code- runs slower, no compile time involved, easier to make small changes and retest

Binary code- runs fast, takes time to compile code, takes longer to make small changes and retest

300

What is the Waterfall Method

Is the traditional development method in which each phase runs sequentially one after another. Each phase is dependent on the previous phase and is best used in cases when the requirements of the project are set in stone – good for complex designs but doesn’t involve flexibility

300

What is CI and 3 examples

Continuous Integration- automated process of taking in new source code, building (compiling) the application and automating testing, done on a repeated basis whether hourly, daily, or on a regular schedule.

  • Jenkins (open source)
  • Team City (commercial) by Jetbrains
  • Bamboo (commercial) by Atlassian
  • Circle CI (hosted) integrated with GitHub
300

What is a CI/CD Pipeline

-CI/CD Pipeline: a series of steps in the software development process that automates the building, testing and delivery of software

  • The pipeline builds code, runs tests (CI), and safely deploys a new version of application (CD)
300

What is a Container Orchestration Platform and name 2 examples

Tools necessary to automate the scheduling, deployment, and management of the containers

  • Runs all containers and managers container lifecycle


  • Kubernetes - open source platform that automates Linux container operation
  • Docker- includes an open source community project; tools from the open source project; Docker, the company that is the primary supporter of that project; and the tools that Docker formally supports. The Hub can scan Docker containers, providing visibility into open source in the entire container stack. The Hub can also be deployed as Docker containers.
300

Explain the difference between doing and breaking a build

-A Build: is the process of converting source code into a working application program

-Breaking a Build: stopping or prohibiting a build/ inhibiting deployment of build when a number of error conditions appear during the build

400

What is the Agile Method

Is a newer method of development in which there are sprints and smaller more frequent builds. This allows for more flexibility and for changes to be made through out

400

What is BAT and 2 examples

Build Automation Tool- takes a recipe and executes commands to turn source code into machine code and package it up

  • Maven (Java) uses XML scripts, produces JAR files
  • Gradle (Java) does not use XML scripts
400

What is CD and what are 2 examples

Continuous deployment/delivery – automated process of taking a finished build and deploying it into production as a standalone application or as part of a container

  • Puppet
  • Chef
400

What is a Container and what are the advantages

Is a packaged unit of software – it contains everything needed to run (code and virtual OS) includes runtime environment (libraries and OS), easy to move contained applications between environments

  • Containers are a lightweight, efficient, and standard way for applications to move between environments and run independently
  • Run Anywhere – Build containers once to run anywhere.

    • Benefit: simplifies development and deployment
  • Less overhead – For web-based apps, containers have a smaller footprint and faster startup than VMs or physical servers.

    • Benefit: improved response time
  • More consistent operations – DevOps teams know applications in containers will run the same, regardless of where it’s deployed.

    • Benefit: robustness
  • Greater efficiency– Start, create, replicate, destroy, and scale applications in seconds.

    • Benefit: accelerates deployment cycles
400

What is the difference between Compiled and Scripting languages and give 3 examples of each

-Compiled Language:  language that must be converted from source to binary before runtime. These are stored as both source code and binary code. Ex: C, C++, Java

-Scripting Language: language for which programs are typically not compiled beforehand, but are executed "on the fly" by a runtime application. These are stored as source code. Ex: Perl/Python/PHP

500

SDLC Steps

  • Plan/ Define- Product team defines requirements/ goals for the project and features and functions that have to be included
  • Design/ Architect- Architect team builds a framework for the application based off of the plans established in step 1, blueprint
  • Develop/ Code- Developers will write code to build on top of the framework based on the requirements discussed in previous steps
  • QA/ Test- QA and security team ensures that the software functions as it should and checks for vulnerabilities
  • Release/ Deploy- Push the software to production so users/customers can start using the product and is monitored after it is deployed
500

What is a Binary Repo and 2 examples

Binary Repository- where build output, including compiled (machine code) and assets (images, audio files, text files) are stored. Also acts as a proxy (local storage) for binary open source components pulled from sites such as NuGet or Maven Central.

  • JFrog Artifactory
  • Sonatype Nexus
500

What is the order of the SDLC toolchain

IDE, SCM, CI 

500

What is JAR, WAR, EAR, Ruby Gem, Tarball

Types of packaged, compressed archive files containing binaries based on the ZIP file format (reduces size and improves download time), files collected as one

  • JAR java archive file
  • WAR web archive file
  • EAR enterprise archive file
  • Ruby Gem ruby archive file
  • Tarball tape archive file
500

What is an Installer Binary

Automate the setup processes by prepping the computing environment and placing/installing the binaries in their appropriate locations.

M
e
n
u