Software Lifecycle Flashcards
Name the six stages of the software lifecycle
- Requirements
- Design
- Implementation
- Verification
- Deployment
- Maintenance
Define requirements in the software lifecycle
- Describe what the software should and shouldn’t do
- Identify assumptions that can be made
- Define what constitutes an acceptable solution
Define design in the software lifecycle
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
Define the implementation in the software lifecycle
- Coding
- Debugging
Define the verification in the software lifecycle
Testing the code
Name 4 methods of testing
Unit testing (whitebox and blackbox) Integration testing Functional testing Regression testing System testing Alpha testing Beta testing Acceptance testing
Define the deployment in the software lifecycle
Installation
Configuration
Tuning
Environment Management
Define the maintenance in the software lifecycle
Bug fixes
Period updates
What is blackbox testing
Independent of the implementation
Case boundaries
Input boundaries
Output case
What is whitebox testing
Dependant on implementation
-Test every line, function, data structure, algorithm, input and output of the program
What are the five steps of the compilation process
- Pre-process $gcc -E
- Code-generation $gcc -C
- Assemble $gcc -c
- Link $gcc
- Load
What is the pre-process phase of the compilation process
combines all the C files and the header files together
What is the code-generation phase of the compilation process
the compiler compiles the C code
What is the assemble phase of the compilation process
the code is converted into assembly/machine code
What is the link phase of the compilation process
output files are linked together into one executable output file
What is the load phase of the compilation process
link the output file with the required libraries to execute (.dll .so .dylib)
What are the parts of a running program
- Executable code of the program
- Global variables
- Call stack
- Heap
What two parts of the anatomy of a program are created at compile time
- Executable code of the program
- Global variables
What is the executable
The instructions to run
What is the call stack
where we track function call
What is the heap
where dynamic memory allocation happens. space that lives beyond the end of a function
What is a stack frame
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
What data structure is a stack frame
A stack is the last-in first-out (LIFO) data structure. Functions are called in a LIFO fashion.
Name four things contained in the stack frame
- 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