Study your flashcards anywhere!

Download the official Cram app for free >

  • Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off

How to study your flashcards.

Right/Left arrow keys: Navigate between flashcards.right arrow keyleft arrow key

Up/Down arrow keys: Flip the card between the front and back.down keyup key

H key: Show hint (3rd side).h key

A key: Read text to speech.a key


Play button


Play button




Click to flip

15 Cards in this Set

  • Front
  • Back

Inspection Roles

Moderator (not PM, rotates)

Author (not code author)




mnemonic: MARRI

Use Cases vs Design Use Cases

Design Use Cases focused on workflow /

"information essential for implementation"

Aspect Oriented Software Development

Code that spans/touches all aspects of the project

ex: error handling

Test Driven Development:


Define functionality with a failing test

Write code to pass test


Test Driven Development:

Why do you write code?

To pass tests

Test Driven Development:

Name 2 pros

o More tests are written

o Programmers tended to be more productive

o Less need for debuggers

o Drives design via tests focusing on customer interaction with system

User interface is considered before system implementation

o Limits defects in code shortening implementation time

o Resultant code is modularized, flexible and extensible

o Automated tests cover every code path

Test Driven Development:

Name 2 cons

o Difficult to use when functional tests determine success/failure of system User interfaces

Database backends

Network configurations

o Not all managers are believers

o Tests must be maintained as part of project overhead

o Refactoring or design changes may result in many changes to tests

Deleting such tests leaves system open to gaps in test coverage

o Developer and test author are same leading to same blind spots

o High numbers of passing tests may lead to false sense of security

What are functional requirements?

a function that a user wants.

"The system shall..."

not implementation detail

Shall vs Will

Shall = requirements

Will = purpose

Shall is usually used to state a device or system's requirements. For example: "The selected generator shallprovide a minimum of 80 Kilowatts."

Will is generally used to state a device or system's purpose. For example, "The new generator will be usedto power the operations tent."

Separation of concerns:


Modular programming,


Separation of concerns:


Split code into reusable encapsulated sections

MVC definition

Model: data, business rules

View: presentation of data

Controller: The interaction between the two.

Pair Programming:




Roles switch frequently

Pair Programming:

2 pros


o Produce shorter programs with better designs and fewer bugs

o Reduction in defect rates

o More design alternatives are consideredo Catch design defects early

o Arrive at more maintainable designso Complete work faster

o Difficult problems are easier when working together

o Best suited for tasks with more challenge and sophistication

o Knowledge passes between pair as they work Skills gained

New hires brought up to speed more quickly Promiscuous pairing results in team knowledge speed

o Improved discipline

Less skipped tests or cut corners

Less time in email

Less interruptions by others

o Increased morals and greater confidence in code correctness

Pair Programming:

2 cons


o Total programmer time increases

o For simple tasks, net drop in productivity