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
Q

What happens to the stack frame at the end of a function

A

The stack frame for the function is removed from the call stack, so all the information disappears

26
Q

Is the heap outside the call stack

A

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
Q

What are the three modes of interacting with files

A
  • Read
  • Write
  • Append
28
Q

What is the read file template

A
  • Open file
  • If file opened do
    • get line while not EOF
    • execute code
  • close file
29
Q

What is the write file template

A
  • Open file
  • If file opened: while there is data to write
    • generate line to write
    • write to the file
  • close file
30
Q

There are 9 steps to problem decomposition, name as many as possible

A
  • 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
Q

What is software architecture and what are some types of architectures?

A

Ways to organize entire designs of programs:

  • Structure architectures
  • Shared memory architectures
  • Messaging architecture
  • Adaptable architecture
  • Distributed system architecture
32
Q

What is a component-based structure architecture

A

Tightly-coupled and cohesive modules interact vie interfaces

33
Q

What is a monolithic application structure architecture

A

Single layer application that is coupled together

34
Q

What is a layered structure architecture

A

Division of functionality into individual layers. Each layer

only interacts with the layer directly above or below it.

35
Q

What is a pipes and filters structure architecture

A

A sequence of special-purpose programs that pass data from

one to the other sequentially to achieve a result

36
Q

What is a database centric shared memory architecture

A

Coordination is achieved through a database for shared data,typically asynchronously

37
Q

What is a blackbaord shared memory architecture

A

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
Q

What is a rule-based shared memory architecture

A

Rules stored with the data in a common area to be applied or queried

39
Q

What is a event-drive messaging architecture

A

An underlying system has a list of functions to invoke each time that a particular event happens

Model-View-Controller

40
Q

What is a client-server distributed architecture

A

A client machine that connects with a server

41
Q

What is a peer-to-peer distributed architecture

A

Client to client communication e.g. Torrents

42
Q

What is a REST distributed architecture

A

representational state transfer

43
Q

What does ‘flushing’ the buffer mean

A

Explicitly pushing the data to the file

44
Q

What is version control?

A
  • Tracks changes of source code
  • Helps integrate your changes fro someone else
  • Lets you manage parallel streams of development on the code
45
Q

What is the difference between centralized and distributed version control

A
  • 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
Q

What are the two types of mode of operations for version control systems

A

Lock-modify-unlock (no conflict in merging files…it’s locked)
Copy-modify-merge (merging conflicts must be dealt with)

47
Q

What belongs in a version control system

A
  • Source code
  • Documentation
  • Supporting images
48
Q

What doesn’t belong in a version control system

A
  • Object files
  • PDF files
  • Executable files

You can you ignore on these files