implementation phase programming-in-the-many programming-in-the-many most real-life products are too...

9
Implementation Phase Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too Most real-life products are too large to be implemented by one large to be implemented by one programmer programmer Implemented by a team Implemented by a team Working at the same time on Working at the same time on different components of the different components of the product product Testing/Module reuse/CASE tool Testing/Module reuse/CASE tool

Upload: cornelius-murphy

Post on 18-Jan-2018

218 views

Category:

Documents


0 download

DESCRIPTION

Implementation Phase Good Programming Practice Good Programming Practice Use of consistent and meaningful identifier names Use of consistent and meaningful identifier names Self-documenting code/documentation Self-documenting code/documentation Use of Parameters Use of Parameters Code layout for increased readability Code layout for increased readability Coding style for incremental programming (Module reuse) Coding style for incremental programming (Module reuse)

TRANSCRIPT

Page 1: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation PhaseImplementation Phase Programming-in-the-manyProgramming-in-the-many

Most real-life products are too large Most real-life products are too large to be implemented by one to be implemented by one programmerprogrammer

Implemented by a teamImplemented by a team Working at the same time on different Working at the same time on different

components of the productcomponents of the product Testing/Module reuse/CASE toolTesting/Module reuse/CASE tool

Page 2: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation PhaseImplementation Phase

Fourth Generation Languages (4GL)Fourth Generation Languages (4GL) 1GL: a binary machine code1GL: a binary machine code 2GL: assemblers (1940-50s)2GL: assemblers (1940-50s) 3GL: high level languages (FORTRAN, 3GL: high level languages (FORTRAN,

ALGOL 60, COBOL, etc)ALGOL 60, COBOL, etc) 4GL: DB2, Oracle, PowerBuilder, SQL 4GL: DB2, Oracle, PowerBuilder, SQL

(1970s)(1970s) shorter (30-50 MCI), shorter (30-50 MCI), easier to maintain/use, easier to maintain/use, CASE Tool: more productive, cost effectiveCASE Tool: more productive, cost effective

Page 3: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation PhaseImplementation Phase Good Programming PracticeGood Programming Practice

Use of consistent and meaningful Use of consistent and meaningful identifier namesidentifier names

Self-documenting code/documentationSelf-documenting code/documentation Use of ParametersUse of Parameters Code layout for increased readabilityCode layout for increased readability Coding style for incremental Coding style for incremental

programming (Module reuse)programming (Module reuse)

Page 4: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation PhaseImplementation Phase (Types of Errors) (Types of Errors)

Syntax ErrorsSyntax Errors Logic/Algorithm ErrorsLogic/Algorithm Errors

Branching too soon/ too lateBranching too soon/ too late Testing the wrong conditionTesting the wrong condition Initialization errorsInitialization errors Data type mismatchData type mismatch Incorrect formula or computationIncorrect formula or computation

Documentation Errors - mismatch between Documentation Errors - mismatch between documentation and code; leads to difficulties documentation and code; leads to difficulties especially during maintenanceespecially during maintenance

Page 5: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation Phase Implementation Phase (Types of Errors)(Types of Errors)

Capacity Errors - system performance Capacity Errors - system performance degradation at capacitydegradation at capacity

Hardware ErrorsHardware Errors Throughput/performance ErrorsThroughput/performance Errors Computation/precision Errors Computation/precision Errors Stress/overload Errors Stress/overload Errors Recovery Errors - error handling faultsRecovery Errors - error handling faults Standards/Procedures - created/introduced as Standards/Procedures - created/introduced as

the system is tested & modifiedthe system is tested & modified

Page 6: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation Phase Implementation Phase (Testing Principles)(Testing Principles)

Process of finding errorsProcess of finding errors Impossible to completely test Impossible to completely test

softwaresoftware Creativity and hard work requiredCreativity and hard work required Error preventionError prevention Independent testersIndependent testers

Page 7: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Implementation Phase Implementation Phase (Testing Steps) (Testing Steps)

Select what is to be measured by the test and Select what is to be measured by the test and decide how the code will be testeddecide how the code will be tested

Develop the test cases for the code and Develop the test cases for the code and determine the correct results for the test casesdetermine the correct results for the test cases

Execute the test cases and compare the actual Execute the test cases and compare the actual results with the expected resultsresults with the expected results

Regression Testing -If errors are discovered, Regression Testing -If errors are discovered, earlier test cases should be re-executed.earlier test cases should be re-executed.

Page 8: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Black-box TestingBlack-box Testing focused on inputs and outputs of a module: focused on inputs and outputs of a module:

equivalence partitioning, equivalence class equivalence partitioning, equivalence class contains similar test cases (reduce redundancy)contains similar test cases (reduce redundancy)

equivalence Testing & Boundary Value Analysisequivalence Testing & Boundary Value Analysis If valid input is a range of values, there are a If valid input is a range of values, there are a

minimum of three equivalence classes: one below the minimum of three equivalence classes: one below the range, one within the range, and one above the rangerange, one within the range, and one above the range

If valid input is a value from a discrete set of values, If valid input is a value from a discrete set of values, there are two equivalence classes: valid, discrete there are two equivalence classes: valid, discrete values and any other input values.values and any other input values.

Page 9: Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life

Black-box TestingBlack-box Testing Functional TestingFunctional Testing

demonstrate that all functions work according to demonstrate that all functions work according to requirements and specification documentrequirements and specification document

determining all the functions of the moduledetermining all the functions of the module test data are devised to test each function separatelytest data are devised to test each function separately If the module consists of a hierarchy of lower-level If the module consists of a hierarchy of lower-level

functions, functional testing proceeds recursively.functions, functional testing proceeds recursively. OSBERT OGLES BY CASE STUDY (13.16)OSBERT OGLES BY CASE STUDY (13.16)