Software / System Process Flashcards
(35 cards)
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.