Day 1 Flashcards

1
Q

Define: Software Development Life Cycle

A

systematic approach to understand customer’s needs

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

What are the four phases of the SDLC?

A
  1. Requirements
  2. Design
  3. Testing and Deployment
  4. Support
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Explain important aspects of Requirements Phase

A
  • customer wants/needs
  • Functional requirements
  • Data requirements (data meaning and structure)
  • Limitations of the systems, network, and policies
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explain: Design Phase

A

acceptable solution by analyzing requirements, developing step by step solution to the problem, and writing software.

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

Three Stages of Design Phase

A
  1. Requirements Analysis- reviewed to solve customer’s problem (limitations and expectations)
  2. Program Design - step by step solution (maps solution with programming techniques), requirements analysis. Verify program functionality. (flowcharts and pseudocode)
  3. Coding- test cases executed after every code module to verify code functionality.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Testing and Deployment Phase

A

ensures that the software meets the end users needs.

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

3 types of testing in T&D phase

A
  1. Unit testing- done by programmer
  2. QA Testing - done by someone other than the programmer
  3. Beta Testing- release version is made and delivered to customer. Done with limited group of customers when the system is put into action with real data on a real system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Support Phase

A

provides software maintenance for the deployed product. Keeps program relevant, secure, and up to date.

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

What are the four software maintenance categories?

A
  1. Corrective
  2. Adaptive
  3. Perfective
  4. Preventive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Define: Corrective maintenance

A

Reactive modification of a software produce performed to correct discovered problems

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

Define: Adaptive maintenance

A

modification of a software product to keep a software product usable in a changed or changing environment. (e.g. OS updates)

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

Define: Perfective

A

Modification of a software product to improve/enhance performance or maintainability (e.g. algorithm efficiency)

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

Define: Preventive

A

Modification of a software product to detect and correct latent faults before they become effective faults (e.g. testing done by the developer to prevent bugs)

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

Define: Debugging

A

methodical process of finding and reducing the number of bugs in a computer program.

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

What are the 3 common methods of debugging?

A
  1. Debugger or Debugging Tool- program that allows a programmer to step through program one line at a time. (remember popular debugger IDA)
  2. Print Statements- added to display program state, variable values, or markers to identify where issues reside
  3. Logs- Instead of printing to screen, the program prints the program state to a log file.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

GEN I: Machine Language

A

first generation of programming languages.

17
Q

Gen II: Assembly Language

A

earliest human readable.
composed of commands called mnenomics.
pros- very small and fast. direct access to hardware, and specialized hardware.
cons- requires detailed knowledge, and long and difficult to read.

18
Q

Gen III : Compiled Language

A

allows programmers to spend more time writing code and less time worrying about platform specific eccentricities.

19
Q

Compiler

Compiled Program

A
  1. process of taking a compiler language statements and converting them to machine code.
  2. The result of compiling the source code. AKA executable binary.
20
Q

Pros and Cons of Compiled Language

A

Pros: takes a fraction of the time, can be used on different computer systems, and compilers catch programming errors and warn programmer.
Cons: usually slower than assembly and require more resources.

21
Q

Define: Source Code

A

Plain text, human readable

22
Q

What is the output of the compiler specific to?

A

It is CPU specific

23
Q

Gen III: Interpreted/ Scripted Language

A
  • user invokes the interpreter to translate source code.
  • interpreter converts source code at run-time
  • Python is an example
24
Q

Pros and Cons of Interpreted/ Scripted Language

A

Pros: executes on any platform, useful for small tasks, allows immediate implementation by bypassing compiler step, suitable for constantly changing data such as webpages.
Cons: slower execution, source code required on computer, not suitable for large scale, complex tasks, rarely interact with specialized functions of hardware.

25
Gen III- Just in Time (JIT) Compilation
blurs lines between compiled and interpreted. Source code compiled to intermediate byte instead of machine code. VM translates byte into machine code at runtime. Cross Platform examples: Java (interpreted by JBC), C# (interpreted by the .NET VM)
26
Pros and Cons
-improved performance bc it caches results -code can be recompiled at any time -single program can run on hardware ranging from fridge to mobile phone. Cons: -slower than assembly and compiled -VMs must be updated regularly
27
Define: Porting
process of taking a program from one programming language or system architecture and modifying it to work in a different programming language or system architecture