software product software engineering quality software
play

SOFTWARE PRODUCT SOFTWARE ENGINEERING QUALITY SOFTWARE QUALITY - PDF document

SOFTWARE PRODUCT SOFTWARE ENGINEERING QUALITY SOFTWARE QUALITY Today: Today we talk about quality Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department - Software quality - but


  1. SOFTWARE PRODUCT SOFTWARE ENGINEERING QUALITY SOFTWARE QUALITY • Today: • Today we talk about quality Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department - Software quality - but what is quality? - Quality Components - ”Good” software properties • ”Suitable” • ”Fulfills requirements” • ”Customer is satisfied” • ”Other attributes than price” • ”Superiority, excellence” • ”Has required and expected features” • It seems difficult to find a ”perfect” single definition. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se SOFTWARE QUALITY - SOFTWARE QUALITIES - QUALITY COMPONENTS PRODUCT AND PROCESS • Objective quality component: properties that can be • Product quality - the quality of the software product (including Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department measured or approximated objectively user and technical documentation). • Process quality - the quality of the software engineering process used to produce the product. • Subjective quality component: customer satisfaction (”What does the product feel like?”) • Users are (understandably) primarily interested in the product qualities. • The process qualities are used to achieve the product ones. • Other: features which can not be (even subjectively) evaluated at the time. This is related with future events which can not be predicted - unexpected circumstances, changes, etc. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se SOFTWARE PROPERTIES - Correctness EXTERNAL AND INTERNAL • External properties are the ones that are visible to the users. • A couple of years back in the Christmas issue of ITviikko- Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department magazine professor Jukka Paakki from Helsinki University • Internal properties are the ones the ones that are visible to wished for at least one error-free program. the software developers. • Users are (understandably) primarily interested in the external properties. • The internal properties are used to achieve the external ones. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se 1

  2. A delayed Christmas gift More error-free programs Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department program Hello; begin program Hello3; writeln(”1+1=2”); begin end. writeln(”1+2=3”); end. #include <stdio.h> main() { printf ("1+1=2\n"); } Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se More error-free programs Correct or incorrect? Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department program Hello4; program Hello; begin begin writeln(”1+3=4”); writeln(”1+1=3”); end. end. • The problem of correctness is in that it does not depend on the program alone but also on the expectations on the program. • So, how can we say if any of the previously seen programs was correct or incorrect? Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se How to identify correct Mathematical proofs programs? • Sometimes this seems easy. • Using logic or mathematics, prove that the program has some Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department properties. • But how to define correctness so that we could use the definition to identify correct programs? • You can use a (hopefully correct) program to assist you in (and do it correctly:) making the proofs. • Problem: These mathematical properties may appear to be even more complex than the programs themselves. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se 2

  3. QUALITY COMPONENTS - QUALITY COMPONENTS - Correctness Reliability Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • A program is functionally correct if it behaves according to the • A program is reliable, if the user can rely on the software. functional specifications. • For reliability, the statistical approach could be used: What is • The functional specifications may not always be available. the probability that the software fails with a given task? • The functional specification may be very informal. • The program may be reliable in a user’s point of view even if it is not correct. • The functional specifications may contain ambiguities. • Sometimes it is evident what is expected - is it fair to compare the software with general expectations or its own help? • Do we assume that the specifications are correct? Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se QUALITY COMPONENTS - QUALITY COMPONENTS - Robustness Performance Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • A program is robust, if it behaves reasonably (?) well even in • Performance = efficiency. unexpected circumstances - i.e. it tolerates unexpected • Efficiency: memory management, disk management, CPU difficulties. usage, ... • Dealing with errors? E.g. program input is often different from • Asymptotic behaviour: what happens when inputs grow what is expected. larger? • The program may be reliable in a user’s point of view even if it • Transaction processing systems: is not correct. - Throughput = how many transactions can be • A crucial property in some applications. processed in a given time slice (average or min) - Response time = the time (max or average) needed to process a transaction. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se QUALITY COMPONENTS - QUALITY COMPONENTS - User friendliness Verifiability Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • A software system is user friendly if the users find it easy to • A software system is verifiable, if its properties can be verified use. easily. • A subjective quality. • The software properties can be verified using testing or formal analysis. • Incorrect, inefficient, and unreliable systems are not very user friendly. • A non-robust system may be user friendly. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se 3

  4. QUALITY COMPONENTS - QUALITY COMPONENTS - Maintainability Evolvability Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • A software system is maintainable, if it is easy to maintain. • A software system is evolvable, if it is easy to add new functions or change old ones. • Corrective maintenance - removing errors (repairability) • Adding new functions or changing the old ones usually ”eats • Adaptive maintenance - adapting the software to new or up” some of the evolvability - after the change the software is changing environments (evolvability). usually less evolvable. • Perfective maintenance - improving other software qualities (evolvability). Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se QUALITY COMPONENTS - QUALITY COMPONENTS - Reusability Portability Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • A software system is reusable, if it can be used to produce • A software system is portable, if it can be run (or it can be another software system. made to run) in different environments. • Reusability is rare in practice. • Portability across different hardware architectures. • In addition to the program code, also other parts of the • Portability across different operating systems. software product, such as designs and documentation, can be • Portability across different hardware configurations. reusable. Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se QUALITY COMPONENTS - QUALITY COMPONENTS - Understandability Interoperability Jyrki Nummenmaa University of Tampere, CS Department Jyrki Nummenmaa University of Tampere, CS Department • How easy is it to understand the system’s structure and how it • is the ability to co-operate with other systems. works? • Exchange of data using data files. • Some tasks are more complex: it is easier to understand an • Exchange of data using some kind of a clipboard. ordinary text editor than an operating system. • Exchange of data using network. • There is internal and external understandability. • Standard interfaces • Open system - open interfaces Software Engineering – http://www.cs.uta.fi/se Software Engineering – http://www.cs.uta.fi/se 4

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend