25
WATERLOO CHERITON SCHOOL OF COMPUTER SCIENCE Software Quality Attributes Software Quality Attributes CS 446/646 ECE452 Jun 1 st , 2011 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion

Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Software Quality AttributesSoftware Quality Attributes

CS 446/646 ECE452Jun 1st, 2011

IMPORTANT NOTICE TO STUDENTS

These slides are NOT to be used as a replacement for student notes.These slides are sometimes vague and incomplete on purpose to spark a class discussion

Page 2: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 2WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

how the customer explained it

how the project leader understood it

how the analyst designed it

how the programmer wrote it

how the business consultant described it

documentation installation customer was billed for

post installation support

what the customer really needed

Page 3: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 3WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Class ActivityIdentify the functional & non-functional requirements for your project

Page 4: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 4WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

RequirementsClassification● functional & non-functional

System Utility● “system utility is determined by both its functionality and

its non-functional characteristics”[1]

Quality● function of both technical & real-world challenges

[1] Chung, Lawrence and do Prado Leite, Julio. On Non-Functional Requirements in Software Engineering. Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science, 2009, Volume 5600/2009, 363-379

Page 5: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 5WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Functional RequirementsDescription● functionality a system must provide

First goal is to solve the functional requirements● meet & exceed the functional requirements

– “meet” is a must– “exceed” is better

Page 6: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 6WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Functional RequirementsMatch functional requirements to technology

OSS vs Commercial● what type of support is available● what type of customization is possible

Page 7: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 7WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Non­Functional RequirementsDescriptions● requirements that focus on non-behavioural aspects

Comments● many definitions exists● our description

– required system attributes not captured in the functional requirement

– non-functional requirements do not provide or modify core system goals

Page 8: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 8WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

PerformancePerformance means different things● hand held application performance● web application performance

– banking, eBay, Google● game performance● real-time applications

– robotics

How do we measure it then?

Page 9: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 9WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

PerformanceThroughput● def:

– calculations per second– transactions per second– messages per second

● do you see a trend here?● campus Internet lunch time gremlins?

Page 10: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 10WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

PerformanceThroughput● peak throughput● average throughput● should a system be designed for peak or average

throughput?

Page 11: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 11WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

PerformanceLatency● “latency is in the eye of the observer”● inherently present in everything

– can not be eliminated– reduction & mitigation

● measuring latency is hard

Response time● combination of computational and communicational

latencies

Page 12: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 12WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

QualityStability & Bugs

● is there ever a bug free software system?● what defines a stable system?● revision control systems

– how can they help?

Page 13: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 13WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Fault­toleranceIn the case of failure....

Redundancy● at what level

– application vs component – batman has many suites

but one bat-mobile?

Page 14: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 14WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Fault­toleranceGraceful exit● what defines a graceful exit?

● recoverable vs. nonrecoverable scenarios

● load balancing and fail-over strategy

Page 15: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 15WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Page 16: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 16WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Page 17: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 17WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Page 18: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 18WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Page 19: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 19WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Page 20: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 20WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

AvailabilityHas a direct impact on functional requirements ?● easy to measure

– uptime, downtime, guessing– what else?

● easy to specify● disaster recovery strategy

Page 21: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 21WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Data Specific QualitiesSize

Interoperability

Changes to schema

Replication

Consistency

Page 22: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 22WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Evolution● code size● coupling / dependencies

Portability

Reusability

Non­Runtime Qualities

Page 23: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 23WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Non­Runtime QualitiesInteroperability● at what level?

– system / components– data– which one is better?

● interoperability via standardization– communication protocols– schema

● XML

Page 24: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 24WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Non­Runtime QualitiesEase of use● user interface is the face of the software● logic is the back end

Page 25: Software Quality Attributes · Software Quality Attributes CS 446/646 ECE452 Jun 1st, 2011 ... Conceptual Modeling: Foundations and Applications Lecture Notes in Computer Science,

CS446/646 ECE452 25WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

Operational QualitiesCost● what are some of the things that cost money?

Supportability● user support● technical support

Configuration & distribution

Release management● backwards compatibility