Day 1 Flashcards
Define: Software Development Life Cycle
systematic approach to understand customer’s needs
What are the four phases of the SDLC?
- Requirements
- Design
- Testing and Deployment
- Support
Explain important aspects of Requirements Phase
- customer wants/needs
- Functional requirements
- Data requirements (data meaning and structure)
- Limitations of the systems, network, and policies
Explain: Design Phase
acceptable solution by analyzing requirements, developing step by step solution to the problem, and writing software.
Three Stages of Design Phase
- Requirements Analysis- reviewed to solve customer’s problem (limitations and expectations)
- Program Design - step by step solution (maps solution with programming techniques), requirements analysis. Verify program functionality. (flowcharts and pseudocode)
- Coding- test cases executed after every code module to verify code functionality.
Testing and Deployment Phase
ensures that the software meets the end users needs.
3 types of testing in T&D phase
- Unit testing- done by programmer
- QA Testing - done by someone other than the programmer
- 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
Support Phase
provides software maintenance for the deployed product. Keeps program relevant, secure, and up to date.
What are the four software maintenance categories?
- Corrective
- Adaptive
- Perfective
- Preventive
Define: Corrective maintenance
Reactive modification of a software produce performed to correct discovered problems
Define: Adaptive maintenance
modification of a software product to keep a software product usable in a changed or changing environment. (e.g. OS updates)
Define: Perfective
Modification of a software product to improve/enhance performance or maintainability (e.g. algorithm efficiency)
Define: Preventive
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)
Define: Debugging
methodical process of finding and reducing the number of bugs in a computer program.
What are the 3 common methods of debugging?
- Debugger or Debugging Tool- program that allows a programmer to step through program one line at a time. (remember popular debugger IDA)
- Print Statements- added to display program state, variable values, or markers to identify where issues reside
- Logs- Instead of printing to screen, the program prints the program state to a log file.
GEN I: Machine Language
first generation of programming languages.
Gen II: Assembly Language
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.
Gen III : Compiled Language
allows programmers to spend more time writing code and less time worrying about platform specific eccentricities.
Compiler
Compiled Program
- process of taking a compiler language statements and converting them to machine code.
- The result of compiling the source code. AKA executable binary.
Pros and Cons of Compiled Language
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.
Define: Source Code
Plain text, human readable
What is the output of the compiler specific to?
It is CPU specific
Gen III: Interpreted/ Scripted Language
- user invokes the interpreter to translate source code.
- interpreter converts source code at run-time
- Python is an example
Pros and Cons of Interpreted/ Scripted Language
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.