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
Q

Gen III- Just in Time (JIT) Compilation

A

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
Q

Pros and Cons

A

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

Define: Porting

A

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