Transcript
Page 1: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

CISC 322 Software Architecture

Lecture 05:

Non Functional Requirements

(NFR) – Quality Attributes (2)

Emad Shihab Adapted from Ahmed E. Hassan and Ian Gorton

Page 2: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Last Class - Recap

■ Use quality attributes to make NFRs

clearer and more precise

■ Performance

– Throughput

– Response Time

– Deadlines

■ Scalability

– Request Load

– Connections

– Data size

– Deployment

Page 3: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Today

■Modifiability

■ Security

■ Availability

■ Integration

Page 4: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

What is Modifiability?

■Modifiability measures how easy it MAY

be to change an application

4

Page 5: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Why Consider Modifiability?

■ Software systems are (almost) guaranteed

to change

– New (non-) functional requirements

■Modifiable systems are easier to

change/evolve

– Estimate cost/effort

5

Page 6: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

How to Measure Modifiability?

■ Evaluate based on context

– Research projects vs. Industrial tools

– Avoid over-engineering!

■ Architect asserts likely change scenarios

6

Page 7: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Modifiability Scenarios

■ How hard is it to…..

– Incorporate new features for self-service check-out kiosks.

– Replace COTS component since vendor goes out of business

– Port application from Linux to the Microsoft Windows platform.

7

Page 8: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Modifiability Analysis

■ Difficult to quantify impact!

■ The best possible is…

– Convincing impact analysis

– Solution can accommodate modification

without much change

8

Page 9: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Modifiability General Rules

■ Some general rules ….

– Minimizing dependencies increases

modifiability

– Avoid ripple effects!

9

Page 10: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Modifiability for ICDE

■ The range of events trapped and stored by

the ICDE client to be expanded

– e.g. Different types of search inputs

■ Third party tools to communicate new

message types

10

Page 11: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

ICDE Schematic

ICDE

Repository

ICDE

Recording Software

Local information

repositories

Internet

Analyst

3rd Party

Tools

Page 12: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Security

■ Specialized quality attribute:

– Lots of technology available

– Depends on the application and the context

12

Page 13: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Security is…

■ Authentication – Verify the identity of users

■ Authorization – Access rights

■ Encryption – Messages sent to/from application are encrypted

■ Integrity – Contents are not altered in transit

■Many others…

13

Page 14: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Security Approaches

■ Internet application security (SSL,PKI)

■ Authentication and Authorization in Java

(JAAS)

14

Page 15: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

ICDE Security Requirements

■ Authentication of ICDE users and third

party ICDE tools to ICDE server

■ Encryption of data to ICDE server from 3rd

party tools/users executing remotely over

an insecure network

15

Page 16: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Availability

■ The proportion of the required time it is

useable

– Example availability requirements

• 100% available during business hours

• No more than 2 hours scheduled downtime per

week

• 24x7x52 (100% availability)

■ Related to an application’s reliability

– Unreliable applications suffer poor availability 16

Page 17: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Measuring Availability

■ Period of loss of availability determined by:

– Time to detect failure +

– Time to correct failure +

– Time to restart application

17

Page 18: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Availability General Rules

■ Eliminate single points of failure

■ Replication and failover

■ Automatic detection and restart

■ Recoverability (e.g. Microsoft Word) – reestablish performance levels and recover affected

data after an application or system failure

18

Page 19: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Availability for ICDE

■ Achieve 100% availability during business

hours

– Plenty of scope for downtime for system

upgrade, backup and maintenance

■ Include mechanisms for component

replication and failover

19

Page 20: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Integration

■ Ease with which an application can be

incorporated into a broader application

context

■ Typically achieved by:

– Programmatic APIs

– Data integration

20

Page 21: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Integration Strategies

■ Data – expose application data for access by other components

■ API – offers services to read/write application data through an abstracted interface

21

Application

Data

Third Party

Application

API

Interoperability through an API facade

Interoperability achieved by direct data

access

Page 22: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

ICDE Integration Needs

■ Revolve around the need to support third

party analysis tools

■Well-defined and understood mechanism

for third party tools to access data in the

ICDE data store

22

Page 23: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Misc. Quality Attributes

■ Portability

– Move to new HW/SW platform

■ Testability

– How easy/difficult to test?

– Consider program complexity

■ Supportability

– How easy to support once deployed?

– Consider modularity

23

Page 24: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Design Trade-offs

■ QAs are rarely orthogonal

– highly secure system, difficult to

integrate in open environment

– highly availability, may lead to lower

performance

– high performance, may require being

tied to a given platform

24

Page 25: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

NFR – Final Remarks

Page 26: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Importance of NFR

■ Functional reqs must be met (ie. mandatory)

■ NFRs could be: – Mandatory: eg. response time a valve to close

• The system is unusable

– Not mandatory: eg. response time for a UI • The system is usable but provides a non-optimal experience

■ NFRs are very important: 20% of the requirements, hardest to elicit and specify

■ NFR: importance increases as market matures

Page 27: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Expressing NFRs

■ Functional are usually expressed in Use-Case form

■ NFR cannot be expressed in Use-Case form ■ usually do not exhibit externally visible functional

behaviour

■ Not enough to list NFRs, – should be clear, concise, and measurable

■ Defining good NFRs requires not only the involvement of the customer but the developers too – Ease of maintenance (lower cost) vs. ease of adaptability

Page 28: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

The effects of NFRs on

high level design and code

■ Their implementation does not map usually to a particular subsystem

■ Very hard to modify a NFR once you pass the architecture phase: – Consider making an already implemented system

more secure, more reliable, etc.

Page 29: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Next Class

■ Tuesday, Sep. 20

■ Architectural Styles

Page 30: CISC 322 - users.encs.concordia.causers.encs.concordia.ca/...05_Requirements_sep19.pdfFunctional reqs must be met (ie. mandatory) NFRs could be: –Mandatory: eg. response time a valve

Selected Further Reading

■ L. Chung, B. Nixon, E. Yu, J. Mylopoulos, (Editors). Non-Functional Requirements in Software Engineering Series: The Kluwer International Series in Software Engineering. Vol. 5, Kluwer Academic Publishers. 1999.

■ J. Ramachandran. Designing Security Architecture Solutions. Wiley & Sons, 2002.

■ I.Gorton, L. Zhu. Tool Support for Just-in-Time Architecture Reconstruction and Evaluation: An Experience Report. International Conference on Software Engineering (ICSE) 2005, St Loius, USA, ACM Press

30


Top Related