OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Ch.21 Software Its Nature and Qualities. Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built.
System Integration Verification and Validation
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
Software Configuration Management
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Requirements
1 Software Engineering II Presentation Software Maintenance.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
SOFTWARE QUALITY ASSURANCE SOFTWARE QUALITY ASSURANCE  DEFINITIONS OF SQA  SOFTWARE STANDARDS  Process Quality Assurance  Product Quality Assurance.
Chapter 9 – Software Evolution and Maintenance
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Software Project Management Fifth Edition
Managing Software Quality
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software Qualities. Unique Properties of Software (Teams: What are the properties of software that make it unique from other engineering disciplines?)
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
CSE 303 – Software Design and Architecture
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Software quality factors
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
CSE 303 – Software Design and Architecture
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Chapter 9 Testing the System 9.1 Principles of System Testing Focus A: The objective of unit and integration ensure the code implemented the design.
Advanced Software Engineering Dr. Cheng
TOTAL QUALITY MANAGEMENT
Software Configuration Management
Classifications of Software Requirements
Rekayasa Perangkat Lunak Part-10
Non Functional Requirements (NFRs)
Rekayasa Perangkat Lunak
Chapter 18 Maintaining Information Systems
Usability engineering
Usability engineering
Software Life Cycle Models
Software engineering.
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software metrics.
Rekayasa Perangkat Lunak
Presentation transcript:

OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties

OHTO -99 SOFTWARE ENGINEERING SOFTWARE QUALITY Today we talk about quality - but what is quality? ”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.

OHTO -99 SOFTWARE QUALITY - QUALITY COMPONENTS Objective quality component: properties that can be measured or approximated objectively Subjective quality component: customer satisfaction (”What does the product feel like?”) 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.

OHTO -99 SOFTWARE PROPERTIES - EXTERNAL AND INTERNAL External properties are the ones that are visible to the users. Internal properties are the ones the ones that are visible to the software developers. Users are (understandably) primarily interested in the external properties. The internal properties are used to achieve the external ones.

OHTO -99 SOFTWARE QUALITIES - PRODUCT AND PROCESS Product quality - the quality of the software product (including user and technical documentation). Process quality - the quality of the software engineering process used to produce the product. Users are (understandably) primarily interested in the product qualities. The process qualities are used to achieve the product ones.

OHTO -99 QUALITY COMPONENTS - Correctness A program is functionally correct if it behaves according to the functional specifications. The functional specifications may not always be available. The functional specification may be very informal. 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?

OHTO -99 QUALITY COMPONENTS - Reliability A program is reliable, if the user can rely on the software. For reliability, the statistical approach could be used: What is the probability that the software fails with a given task? The program may be reliable in a user’s point of view even if it is not correct.

OHTO -99 QUALITY COMPONENTS - Robustness A program is robust, if it behaves reasonably (?) well even in unexpected circumstances - i.e. it tolerates unexpected difficulties. Dealing with errors? E.g. program input is often different from what is expected. The program may be reliable in a user’s point of view even if it is not correct. A crucial property in some applications.

OHTO -99 QUALITY COMPONENTS - Performance Performance = efficiency. Efficiency: memory management, disk management, CPU usage,... Asymptotic behaviour: what happens when inputs grow larger? Transaction processing systems: - Throughput = how many transactions can be processed in a given time slice (average or min) - Response time = the time (max or average) needed to process a transaction.

OHTO -99 QUALITY COMPONENTS - User friendliness A software system is user friendly if the users find it easy to use. A subjective quality. Incorrect, inefficient, and unreliable systems are not very user friendly. A non-robust system may be user friendly.

OHTO -99 QUALITY COMPONENTS - Verifiability A software system is verifiable, if its properties can be verified easily. The software properties can be verified using testing or formal analysis.

OHTO -99 QUALITY COMPONENTS - Maintainability A software system is maintainable, if it is easy to maintain. Corrective maintenance - removing errors (repairability) Adaptive maintenance - adapting the software to new or changing environments (evolvability). Perfective maintenance - improving other software qualities (evolvability).

OHTO -99 QUALITY COMPONENTS - Evolvability A software system is evolvable, if it is easy to add new functions or change old ones. Adding new functions or changing the old ones usually ”eats up” some of the evolvability - after the change the software is usually less evolvable.

OHTO -99 QUALITY COMPONENTS - Reusability A software system is reusable, if it can be used to produce another software system. Reusability is rare in practice. In addition to the program code, also other parts of the software product, such as designs and documentation, can be reusable.

OHTO -99 QUALITY COMPONENTS - Portability A software system is portable, if it can be run (or it can be made to run) in different environments. Portability across different hardware architectures. Portability across different operating systems. Portability across different hardware configurations.

OHTO -99 QUALITY COMPONENTS - Understandability How easy is it to understand the system’s structure and how it works? Some tasks are more complex: it is easier to understand an ordinary text editor than an operating system. There is internal and external understandability.

OHTO -99 QUALITY COMPONENTS - Interoperability is the ability to co-operate with other systems. Exchange of data using data files. Exchange of data using some kind of a clipboard. Exchange of data using network. Standard interfaces Open system - open interfaces

OHTO -99 QUALITY COMPONENTS - Productivity The efficiency of the software production process (internal). Huge differences between teams and individuals (starting from the fact that some teams or individuals may not be able to complete some tasks at all). In producing new software one individual can easily be 2-4 times more productive than another. In maintaining old software one individual can in extreme cases be (or even more) times more productive than another.

OHTO -99 QUALITY COMPONENTS - Timeliness The ability to deliver a product in time. Does not happen too often. Result: Alpha versions, Beta versions, ”Early pre- prototype test versions”,... Which is better: to deliver a defective product in time or to deliver a better product late? (Ok, this depends on the situation.)

OHTO -99 QUALITY COMPONENTS - Visibility The software development process is visible, if it is easy to see what has been done and what has happened. If all know what the state of the process is, it is easier to know when to do what. When personnel changes (and in long projects it does), visibility is very valuable.

OHTO -99 QUALITY COMPONENTS Correctness Reliability Robustness Performance User Friendliness Verifiability Maintainability Reusability Portability Understandability Interoperability Productivity Timeliness Visibility