revision Flashcards
Defects per 1000 Lines
1-25 defects.
Software Crisis (Late 1960s):
Software cost > Hardware cost.
Modern Software Quality Crisis:
Verification & Validation cost > Program cost.
Systematic software development.
Software Engineering
Adding Comments in Code does what
Increase program understandability.
Side-Effect Free Method
Doesn’t change global state.
Side-Effects:
Affects global state of program.
Referentially Transparent Method
Return value independent of program context.
Software Lifecycle Costs:
Requirement: 10%
Design: 20%
Coding: 20%
Testing: 50%
It is Professional Practice to use ….. in software development.
Use of computer tools in software development.
Maintenance Types:
Perfective: New (non-)functional requirements.
Corrective: Bug fixing.
Adaptive: Keeping up with environment changes
Software Product Components:
Requirements & Design Docs
Program/Code
User Manual
Conformance between …. and …. via testing
Specification and Program
Formatting
Enhances code readability.
Test Case Selection:
Specification = Black box testing
Program code = White box testing
…. Testing is impossible to Achieve
Complete Testing
Performing(physical) experiments based on test cases
Test Execution
Test Documentation:
Logging evidence, results, and evaluations
Test Suite:
Collection of test cases
Partition Definition
Set of nonempty sets covering X.
Partition Conditions:
Elements cover X, pairwise disjoint.
Graphs
Directed Graph: (V, E)
Directed Graph: (V)
Set of nodes (vertices)
Directed Graph: (E)
Set of edges (n, m)
Number of nodes with end nodes
Indegree
Outdegree
Number of nodes with start nodes
Control Flow:
Order of executed lines
Indegree = 0
Source node
Outdegree = 0
Sink node
Javadoc/Commenting:
- File-name.
- Version/Build number.
- Creation date.
- Last modification date.
- Aurthor’s name.
- Copyright notice.
- Purpose of the program.
- Version history
HTML Definition:
HyperText Markup Language
HTML Purpose:
Markup language for web pages
Data Storage Types Queue
FIFO principle (First in, First out)
Stack
LIFO principle (Last in, First out)
System Under Test (SUT):
Definition
Java method or class being tested
System Under Test (SUT):
Purpose
Subject of testing in software development
JUnit Definition
Testing framework for Java
JUnit Purpose
Automates test execution and evaluation
Notations Informal
Natural language descriptions
Notations Semi-Formal
Structured but not rigorously defined
Notations Formal
Precise, mathematically defined languages
Notations Examples
Propositional logic, Process algebra, CASL
HTML Usage
Defines the structure and layout of a webpage
Software Lifecycle address what questions
- What shall we do next?
- How long shall we continue to do it?
Name one Classical Software Development method
Waterfall, Spiral, V-mode
Name an Agile Software Development
Extreme Programming
Name a method of software development
Classical / Agile
What is a Story in XP (Extreme Programming)
a unit of customer visible functionality
a map from variable names to values.
state
if it holds all states that are possible at a position, it is valid
In dafny what is assertion