ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability,...

14
ISO 9126: Software Quality • Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability • External Quality – Functionality – Usability – Reliability – Portability Efficiency

Transcript of ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability,...

Page 1: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

ISO 9126: Software Quality

• Internal Quality: Maintainability

– Analyzability, Testability, Stability, Changeability

• External Quality

– Functionality

– Usability

– Reliability

– Portability

– Efficiency

Page 2: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –
Page 3: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Moore's Law

Noted that the number of transistors per unit area had doubled every year from 1958 to 1965

Expected the trend to last “for at least ten years”

Gordon MooreCo-founder of Intel

Often misquoted as Often misquoted as “the speed will double “the speed will double every 18 months”every 18 months”

Page 4: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –
Page 5: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Intel Processor Speeds over Time

1970 1980 1990 2000 2010

10 GHz

1 GHz

100 MHz

10 MHz

1 MHz 40048008

8080

8086

8028680386

80486

PentiumPentium II

Pentium IIIPentium 4

Page 6: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

What’s the State-of-the-Art?

• Fastest commercially available CPU: ~4GHz

• Fastest experimental CPU: 500Ghz

– Need to cool it down to 4°K, though

• Fastest theoretical transistor: 1THz

Page 7: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

The End of Moore’s Law?

• Production limitations

• Physical limitations

• Bottleneck issues

• Market issues

Page 8: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

1940sElectromagnetic

Relays

pre-1940sMechanical 1950s

VacuumTubes

1960sTransistors

since 1970sIntegrated

CircuitsQuantum

Computers?

The Future

Page 9: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

The Current Solution:The Current Solution:

ParallelismParallelism

Page 10: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Process-Level Parallelism

Early computers (1950s and 1960s) could only run one program at a time

When it finished, it would run the next one

Multi-programming operating systems (1970s) made it appear as if multiple programs were running simultaneously

Page 11: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Instruction-Level Parallelism

Rather than wait for an instruction to finish, start the next one as soon as possible

Very common in RISC architectures

Pipelining: Fetch/decode one instruction while executing another

Page 12: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Thread-Level Parallelism

Modern programming languages support threads, which allow a program to do more than one thing at a time

Examples Reading data from one source while writing to another Performing two parts of a calculation simultaneously Handling interaction with multiple users at the same

time

Page 13: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –

Today

Concurrency (threads) in C Does concurrency really make your code faster? Race conditions and synchronization

Short break; head to Moore 207 Lab assignment

Page 14: ISO 9126: Software Quality Internal Quality: Maintainability – Analyzability, Testability, Stability, Changeability External Quality – Functionality –