Midterm Flashcards

1
Q

Software Engineering

A

Study of using tools to make coding more efficient

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

Characteristics of Software Engineering

A
  • development of large programs
  • evolution of a code base: involves documentation
  • personnel management
  • balance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Process Model of Software Development

A
  1. Problem
    through Requirements Engineering leads to
  2. Requirements Specification through Design leads to
  3. Specification through Implementation leads to
  4. Program through Testing leads to
  5. Working Program which has Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Problem

A

obstacle that gets in the way of an achievement

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

requirements engineering

A

process of getting a complete description of the problem.

at the end of the engineering, a specification document is produced

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

specification document

A
  • function of the software
  • possible future extensions
  • documentation
  • response time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Problem Defining Process

A

1) Elicitation: figure out what the user wants
2) Speicifcation: use cases and scenarios to determine what is the best route for getting the want
3) Validation: review and go back and see if the solution came up with is a valid solution that meets clients needs

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

Requirements Speicfication

A

decomposing problem into components or interfaces

- produces requirements specification document

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

Requirement

A

what the customer needs in a software

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

Types of Requirements

A
  • Functional Requirement

- Nonfunctional Requirement

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

Functional Requirement

A

specify what the software does

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

Nonfunctional Requirement

A

specify the qualities of the software

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

Requirements Specification Document

A
  • problem definition
  • functional requirements
  • nonfunctional requirements
  • resources
  • data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Nonfunctional requirements

A
  • robustness: do when error occurs
  • security: who has access
  • safety: can it kill
  • performance: constraints on performance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Design

A

needs to solve the problem outlined in the requirements specification document
- create models to stimulate problem through architectural design

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

architecture

A
  • how components of a decomposed problem relate to each other
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Purpose of architecture

A
  • communicate design
  • capture early design decisions
  • establish reusable abstract representation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Types of Architecture

A
  • Centralized (standard)

- Distributed

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

Centralized Architecture

A

pipes and filters - takes a data stream of input and manipulates it

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

Distributed Architecture

A
  • uses shared repository with a central data store
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

3 Layered Architecture

A
  • Presentation
  • Application Logic Layer
  • Domain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

3 Layer Architecture: Presentation Layer

A
  • receives user input and displays output
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

3 Layer Architecture: Application Logic Layer

A
  • calls to domain and decides what to show user
  • Business Logic: process UI commands
  • Data Access: allows us to interface with the domain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

3 Layer Architecture: Domain

A

remote database

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

documents from Design Phase

A
  • design specification document
  • user manual for the system
  • system test plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Software Implementation

A

use design to construct a solution to the problem

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

deliverables from software implementation phase

A
  • program
  • refined user manual
  • refined test plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

4 types of software testing

A
  • unit testing
  • systemwide testing
  • integration testing
  • acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Unit Testing

A

sending dummy values into functions

30
Q

systemwide testing

A

reading what the program poops out at the end

31
Q

integration testing

A

makes sure that all the components communicate with other another properly

32
Q

acceptance testing

A

giving the program to the user and having them test it

33
Q

General Kinds of Testing

A
  • black box

- white box

34
Q

Black Box Testing

A

cannot see the source code, testing by putting in inputs and observing the outputs

35
Q

White Box Testing

A

occurs when you are able to see the source codes

36
Q

Deliverables from Testing

A
  • working program

- polished user manual

37
Q

4 Types of Maintenance

A
  • Corrective
  • Adaptive
  • Evaluative/Performance
  • Preventative
38
Q

Waterfall Process Model

A
  • requirements -> specification -> design -> implementation -> testing -> maintenance
  • does not take into account validation or verification
  • rigid sequences that are rare in real life
39
Q

Modified Waterfall Process Model

A
  • same as the original, but includes validation and verification at every step
  • if either come back negative, they go back to the previous step and revise
40
Q

Agile Development

A
  • emphasizes the ability to change course and have user involvement at every step
  • encourages poor documentation
41
Q

4 tenants of agile development

A
  • individuals and interactions > tools and processes
  • working software > documentation
  • costume collaboration > contract negotiation
  • responding to change > following a plan
42
Q

Types of Agile Development

A
  • prototyping
  • rapid agile development
  • dynamic systems development method
  • extreme programming
43
Q

Prototype process

A
  • designing
  • building a prototype
  • user testing
  • feedback
  • refining
  • user testing
44
Q

Types of Prototyping

A
  • evolutionary
  • throw away
  • incremental
45
Q

Evolutionary Prototyping

A
  • occurs when the prototype may evolve into the final product
  • user gives programmer list of requirements and the programmer creates the prototype
  • prototypes are tested, user comes back with more requirements
46
Q

Throw-away Prototyping

A
  • create prototype that will be discarded before designing final prototype
47
Q

Incremental Prototyping

A
  • allows features to be added and taken out slowly
48
Q

Rapid Application Development (RAD) Stages

A
  • requirements planning
  • user design phase
  • construction
  • cut over
49
Q

RAD Requirements Planning

A
  • stage ends when everyone is happy with the requirements
50
Q

RAD User Design Phase

A
  • clients sitting with analysts and analysts send the info to the coders
51
Q

RAD Construction

A

programming of the program

52
Q

RAD Cut-Over

A
  • finished project and users are trained on it
53
Q

RAD time box

A
  • x weeks to get something done
54
Q

Dynamic Systems Development Methods (DSDM) phases

A
  • feasibility study
  • business study
  • functional model iteration
  • design and build iteration
  • implementation
55
Q

DSDM Feasibility Study

A
  • asking, with clients, “is a solution possible”, “can we come up with the solution”, “is DSDM model appropriate”
56
Q

DSDM Business Study

A
  • solution employee friendly
57
Q

DSDM Functional Model Iteration

A
  • design prototype
58
Q

DSDM Design and Build Iteration

A
  • official system based off functional and nonfunctional requirements
59
Q

DSDM Implementation

A
  • deploy to userr
60
Q

Extreme Programming (XP)

A
  • goal is to have smaller increments of time in between prototypes with prototypes being delivered to client as soon as possible
61
Q

XP Core Principles

A
  • rapid feedback
  • simplicity
  • incremental change
  • embracing change
  • quality work
62
Q

Scrum Sprints

A

individual time boxed goals

63
Q

Scrum Pomodoro Method

A
  • don’t work on anything for too long
64
Q

Scrum concepts

A
  • product backlog
  • sprint backlog
  • increment/sprint goal
65
Q

Scrum Product Backlog

A
  • master list of work that needs to be done
66
Q

Scrum Sprint Backlog

A
  • list of items selected for implementation
67
Q

Scrum Increment/Sprint Goal

A
  • goal to complete in timeframe given
68
Q

Scrum Steps

A
  • product back log organized by product owner
  • sprint planning meeting where team decides on sprint goal
  • daily scrum - daily meeting to check on progress
  • sprint review - after sprint happens and involves show and tell
  • sprint retrospective - involves discussions of doing better
69
Q

Classifications of Software Engineering Qualities

A
  • External vs Internal

- Product vs Process

70
Q

External vs Internal

A
  • where product is visible
  • external is visible to the user and is verified during run time
  • internal is invisible to the user and concerns only the developer
71
Q

Product vs Process

A
  • performance of a product vs productivity of a process