10101000. 01010100 10201000 010201000 1010100022 010102000 MO SENG 521 0102 Da U Software Reliability UNIVERSITY OF CALGARY Testing 0:101010u0 10:0:000 Overview of Software Reliability 0102010002 10101000L0 Engineering 0201010002 10.101000 010101000 Department of Electrical& Computer Engineering, University of Calgary 10:101000 B.H. Far(far@enel. calgary. ca 030101000 http://www.enel.ucalgary.ca/nfar/Lectures/seng521/01/ 02010002 01010.1sENG521(a|200 far @enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 1 SENG 521 Software Reliability & Testing Overview of Software Reliability Engineering Department of Electrical & Computer Engineering, University of Calgary B.H. Far (far@enel.ucalgary.ca) http://www.enel.ucalgary.ca/~far/Lectures/SENG521/01/
10101000. 01010100 0201010 Contents 103m10 About this course. 0..p What is software reliability? 10:101000 10101 What factors affect software quality? 10100 What is software reliability engineering? L01010> Software reliability engineering process. 010101000 1010:000 0102010002 10101000L0 0201010002 10101000 010101000 10:101000 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 2 Contents About this course. What is software reliability? What factors affect software quality? What is software reliability engineering? Software reliability engineering process
10101000. 01010100 10201000 010201000 1010100022 010102000 01 10 CAGARY Section 1 0:101010u0 10:0:000 Basic Concepts 0102010002 10101000L0 definitions 0201010002 10.101000 010101000 10:101000 030101000 02010002 01010.1sENG521(a|200 far @enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 3 Section 1 Basic Concepts & Definitions
10101000. 01010100 1020 Realities 03010- Software development is a very high risk task 010210100 101010u About 20% of the le software projects are cancele 00:1010 10210100 (missed schedules, etc. 0101020 101010 about 84% of software projects are incomplete 010 10 1.00 when released 010000 d (need patch, etc) 0-0-U-- Almost all of the software projects costs exceed 101010002 0101008 initial estimations 10101000 02000(cost overrun) 10:101000 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 4 Realities … ◼ Software development is a very high risk task. ◼ About 20% of the software projects are canceled. (missed schedules, etc.) ◼ About 84% of software projects are incomplete when released (need patch, etc). ◼ Almost all of the software projects costs exceed initial estimations. (cost overrun)
10101000. 01010100 0201010 Software Engineering /1 ao- Business software has a large number of parts that have many 01010 interactions (i. e, complexity) 10:101000 1- Software engineering paradigms provide models and 10.00 techniques that make it easier to handle complexity 0101020 010- Anumber of contemporary software engineering. paradigms 01010 have been proposed 21010:00 01020100 i Object-orientation 7010100- Component-ware 0203020. Design patterns 10.10100 0:10107a Software architectures 10:000"etc 03010:100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 5 Software Engineering /1 ◼ Business software has a large number of parts that have many interactions (i.e., complexity). ◼ Software engineering paradigms provide models and techniques that make it easier to handle complexity. ◼ A number of contemporary software engineering. paradigms have been proposed: ◼ Object-orientation ◼ Component-ware ◼ Design patterns ◼ Software architectures ◼ etc
10101000. 01010100 Software Engineering /2 101070 Evolution of software Languages that have 01020100 engineering paradigms their conceptual 10:101000:0 basis determined by assembly languages 00:101 machine architecture 10210100 Procedural and structured 0101020 programming Increase of rc time Object Oriented programming 01010:0 Component-ware Complexity 21010:10 0101010 Design patterns 1001000310. Software architectures 0201010002 Languages that have 10.101000 their key abstractions 02001000. Software Agents rooted in the problem 10:101000 domain 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 6 Software Engineering /2 ◼ Evolution of software engineering paradigms: ◼ Assembly languages ◼ Procedural and structured programming ◼ Object Oriented programming ◼ Component-ware ◼ Design patterns ◼ Software architectures … ◼ Software Agents Languages that have their conceptual basis determined by machine architecture Languages that have their key abstractions rooted in the problem domain Increase of Complexity time
10101000. 01010100 1020 What Affects Software? 100■ Timeliness: 0102101000 10101000:- Meeting the project deadline 00:10100 10101000 Reaching the market at the right time 01010200 10010■Cost: 0:101010u0 1010:000■ Meeting the anticipated project costs 0102010 101010- Reliability: 0201020002 0.01010001 Working fine for the designated period on the 010101000 10:101000 designated system 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 7 What Affects Software? ◼ Timeliness: ◼ Meeting the project deadline. ◼ Reaching the market at the right time. ◼ Cost: ◼ Meeting the anticipated project costs. ◼ Reliability: ◼ Working fine for the designated period on the designated system
10101000. 01010100 0201010 Definition: Failure Availability 101- Failure: Any departure of system behavior in 0101010 execution from user needs 10:01000 01010 Failure intensity: the number of failures per natural 100100 or time unit. Failure intensity is way of expressing 01010200 101010 reliab 9A9 Availability: The probability at any given time that 0101010 a system or a capability of a system functions .0-0.00 satisfactorily in a specified environment 0010.1000. If you are given an average down time per failure 020101000- availability implies a certain reliability 10:101000 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 8 Definition: Failure & Availability ◼ Failure: Any departure of system behavior in execution from user needs. ◼ Failure intensity: the number of failures per natural or time unit. Failure intensity is way of expressing reliability. ◼ Availability: The probability at any given time that a system or a capability of a system functions satisfactorily in a specified environment. ◼ If you are given an average down time per failure, availability implies a certain reliability
10101000. 01010100 0201010 Definition: verification validation 100■ Verification: 0102101000 10101000.- For each development phase or for each module 0.0101 000- are the outputs and inputs generated correctly? 010 101000- And do they match correctly 10101.000. 0:101010u0 21010:00 010101 a Validation: 10101000 02000- Does the software meet its requirements? 10.101000 010101000 10:101000 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 9 Definition: Verification & Validation ◼ Verification: ◼ For each development phase or for each module are the outputs and inputs generated correctly? And do they match correctly? ◼ Validation: ◼ Does the software meet its requirements?
10101000. 01010100 1020 Definition: Reliability a Reliability is the probability that a system or a 000- capability of a system functions without failure for a 0.010100""Specified time or"number of natural unitsin a 0001 0000 specified environment(Musa, et al .. a recent survey of software consumers revealed that 0:1010 0.0101000 reliability was the most important quality attribute 010101000 10101000- Of the application software 5Au- This course is concerned with the engineering of 01010100 reliable software products 10:101000 03010100 SZ CALGARY SENG521 (Fall 2002) far@enel. calgary. ca
SENG521 (Fall 2002) far@enel.ucalgary.ca 10 Definition: Reliability ◼ Reliability is the probability that a system or a capability of a system functions without failure for a “specified time” or “number of natural units” in a specified environment. (Musa, et al.) ◼ A recent survey of software consumers revealed that reliability was the most important quality attribute of the application software. ◼ This course is concerned with the engineering of reliable software products