Software Lifecycle Flashcards

1
Q

Name the six stages of the software lifecycle

A
  • Requirements
  • Design
  • Implementation
  • Verification
  • Deployment
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Define requirements in the software lifecycle

A
  • Describe what the software should and shouldn’t do
  • Identify assumptions that can be made
  • Define what constitutes an acceptable solution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Define design in the software lifecycle

A

Architectural
-A plan on how pieces of multi-piece solution fir together and interact

Functional
-A decomposition of a big program into smaller function pieces that can be handled independently

Detail
-A design of what the program must do to complete each functional piece

Problem solving
Data organization
Algorithms and complexity
Invariants
Design patterns
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Define the implementation in the software lifecycle

A
  • Coding

- Debugging

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

Define the verification in the software lifecycle

A

Testing the code

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

Name 4 methods of testing

A
Unit testing (whitebox and blackbox)
Integration testing
Functional testing
Regression testing
System testing
Alpha testing
Beta testing
Acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Define the deployment in the software lifecycle

A

Installation
Configuration
Tuning
Environment Management

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

Define the maintenance in the software lifecycle

A

Bug fixes

Period updates

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

What is blackbox testing

A

Independent of the implementation

Case boundaries
Input boundaries
Output case

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

What is whitebox testing

A

Dependant on implementation

-Test every line, function, data structure, algorithm, input and output of the program

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

What are the five steps of the compilation process

A
  • Pre-process $gcc -E
  • Code-generation $gcc -C
  • Assemble $gcc -c
  • Link $gcc
  • Load
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the pre-process phase of the compilation process

A

combines all the C files and the header files together

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

What is the code-generation phase of the compilation process

A

the compiler compiles the C code

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

What is the assemble phase of the compilation process

A

the code is converted into assembly/machine code

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

What is the link phase of the compilation process

A

output files are linked together into one executable output file

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

What is the load phase of the compilation process

A

link the output file with the required libraries to execute (.dll .so .dylib)

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

What are the parts of a running program

A
  • Executable code of the program
  • Global variables
  • Call stack
  • Heap
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What two parts of the anatomy of a program are created at compile time

A
  • Executable code of the program

- Global variables

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

What is the executable

A

The instructions to run

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

What is the call stack

A

where we track function call

21
Q

What is the heap

A

where dynamic memory allocation happens. space that lives beyond the end of a function

22
Q

What is a stack frame

A

All the data relating to the execution of a function is grouped in the stack frame.

The data is a picture of the state of the function
The stack frame holds all the parts of the picture together

23
Q

What data structure is a stack frame

A

A stack is the last-in first-out (LIFO) data structure. Functions are called in a LIFO fashion.

24
Q

Name four things contained in the stack frame

A
  • The instructions to the executable in the calling function when the function ends
  • Hardware information (register values) that the current function will change and need to be restored for the calling function
  • The parameters for the function
  • Space for local variables and for the function
25
What happens to the stack frame at the end of a function
The stack frame for the function is removed from the call stack, so all the information disappears
26
Is the heap outside the call stack
Yes. The memory is assigned by the operating system. Memory must be returned to the operation system (it is done on major OS distribution but still should be managed by the programmer)
27
What are the three modes of interacting with files
- Read - Write - Append
28
What is the read file template
- Open file - If file opened do - get line while not EOF - execute code - close file
29
What is the write file template
- Open file - If file opened: while there is data to write - generate line to write - write to the file - close file
30
There are 9 steps to problem decomposition, name as many as possible
- What comes in to the program? - What transformations do I need to make to the data? - What part of the data is processed right away? - What part of the data do I need to keep longer? - What goes out of the program? - What assumptions can I make? - What constraints exist? - Are there strange cases to handle? - What is important for the solution to do?
31
What is software architecture and what are some types of architectures?
Ways to organize entire designs of programs: - Structure architectures - Shared memory architectures - Messaging architecture - Adaptable architecture - Distributed system architecture
32
What is a component-based structure architecture
Tightly-coupled and cohesive modules interact vie interfaces
33
What is a monolithic application structure architecture
Single layer application that is coupled together
34
What is a layered structure architecture
Division of functionality into individual layers. Each layer | only interacts with the layer directly above or below it.
35
What is a pipes and filters structure architecture
A sequence of special-purpose programs that pass data from | one to the other sequentially to achieve a result
36
What is a database centric shared memory architecture
Coordination is achieved through a database for shared data,typically asynchronously
37
What is a blackbaord shared memory architecture
Concurrent tasks or “agents” synchronously update a common memory data storage (the blackboard) and react to changes on the blackboard made by other agents
38
What is a rule-based shared memory architecture
Rules stored with the data in a common area to be applied or queried
39
What is a event-drive messaging architecture
An underlying system has a list of functions to invoke each time that a particular event happens Model-View-Controller
40
What is a client-server distributed architecture
A client machine that connects with a server
41
What is a peer-to-peer distributed architecture
Client to client communication e.g. Torrents
42
What is a REST distributed architecture
representational state transfer
43
What does 'flushing' the buffer mean
Explicitly pushing the data to the file
44
What is version control?
- Tracks changes of source code - Helps integrate your changes fro someone else - Lets you manage parallel streams of development on the code
45
What is the difference between centralized and distributed version control
- Centralized control runs all of the major commands and log information through the master repository (svn and cvs) - Distributed places a more extensive copy of the history in the local working copy (git) Centralized is easier to manage and build while distributed is more convenient for users.
46
What are the two types of mode of operations for version control systems
Lock-modify-unlock (no conflict in merging files...it's locked) Copy-modify-merge (merging conflicts must be dealt with)
47
What belongs in a version control system
- Source code - Documentation - Supporting images
48
What doesn't belong in a version control system
- Object files - PDF files - Executable files You can you ignore on these files