Software / System Process Flashcards
Process Specifications Logic can be expressed in 4 ways:
Structured English
Pseudocode
Decision Trees
Decision Tables
Describe Decision Tables:
Conditions and Actions on left hand side separated by thick line. Upper half has rules which are combinations of conditions. Must be action for each rule. If n binary conditions then n^2 rules.
What does software design stage focus on?
On how to build the system.
Software pyramid with design:
Design, code, test, maintenance.
Software Design three important concepts:
abstraction, refinement, modularity.
Software Design has 4 outputs:
architectural design, data design, component design, interface design.
Software design must focus on more than just functional requirements, list 3:
Non-functional requirements: maintainability, security (encapsulation), availability (fault tolerance).
Two metrics to evaluate Design Quality.
Coupling and Cohesion.
Coupling?
The degree of the closeness of
the relationship between classes. Good coupling is when methods do not refer to each other. Bad = method refers to inside of another method.
Cohesion?
The degree to which attributes and methods of a class support a single object. Bad = class represents many objects, not just one.
Two types of coupling?
Interaction (message passing) and Inheritance.
Three types of cohesion:
Method cohesion. Class cohesion. Generalisation/specialisation cohesion (ie hierarchy extends cohesion)
3 design strategies:
Custom development (in house), Purchase packaged software, outsource.
Design Quality - maximise and minimise what?
Maximise cohesion, minimise coupling.
Levels of coupling:
No coupling, Data (used entirely), Stamp (used partly), Control (variable passed controls method), Global(refers to global data), Pathological (method1 refers to inside method2).
4 levels of method cohesion:
Functional (1 job to do), Sequential (output of function1 used ofr function2), Communicational (2 functions use same attributes), Coincidental (multiple unrelated functions).
System testing can be classified by purpose: 4
correctness testing
performance testing
reliability testing
security testing
System testing can be classified by life-cycle phase: 7
requirements phase testing design phase testing program phase testing evaluating test results installation phase testing acceptance testing maintenance testing
What is a test case (3):
represents typical, critical or abnormal use of system.
Three levels of system testing:
Unit testing (modules), integration testing (modules together), system testing (everything).
Three static techniques for testing:
Inspection (examine code), Walkthrough (group review), Desk Checking (execute manually).
Two types of acceptance testing:
Alpha (on site, simulated data). Beta (customers computer, real data).
Test Driven Development?
First write tests, then write code. JUnit.
Testing should begin…
in the small and progress to in the large.
Dynamic testing techniques (2):
White box and Black box.
white box test cases can ensure: 3
all paths exercised once, all logical decisions exercised, execute all loops.
black box finds errors like…. : 4
incorrect or missing functions, interface errors, behaviour errors, initialization and termination errors.
black box goal:
all inputs tested, outputs match expected outputs.
white box goal:
all statements and conditions executed at least once.
Software testing is part of broader topic called.. : 2
Verification and Validation.
Verification:
Are we building the product right (verify source code)
Validation:
Are we building the right product. (validate system against requirements).
Unit test requires …. as component is not standalone.
Driver (main program) and stubs (modules called by module being tested).
Two approaches to unit testing:
Top-down and Bottom up (clusters).
4 different types of whole system testing:
Recovery testing:
Security testing:
Stress testing:
Performance Testing: