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