building scalability into software applications

Post on 18-Nov-2014

1.224 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Scalability is an integral part of software, specially when the software is distributed. This presentation highlights how scalability can be ensured into the system in a systematic manner based on two advanced research papers.

TRANSCRIPT

04/08/20231

Scalability of Distributed SoftwareAsif ImranMSSE0119

04/08/20232

Scalability Scaling Distributed Applications: Why, Who,

Where and How? GORE Real life Example Learnings Systems similar to GORE

Contents

04/08/20233

“The ability of a system to maintain the satisfaction of its quality goals to levels that are acceptable to its stakeholders when characteristics of the execution environment (“the world”) and design (“the machine”) vary over expected ranges [1].”

Scalability

04/08/20234

Uncovers assumptions about the Application Domain

Provides Rationale for Requirements

Provides Traceability

Assignment of responsibilities

WHY do we need to ensure Scalability

04/08/20235

WHO? Requirements Engineer In combination with the System Analysts

From where…

Stakeholders [Interviews]

Previous similar projects [Analyzing software documents]

Preliminary analysis of the current system

WHO identifies Scalability requirements and from WHERE?

04/08/20236

It is generally argued that scalability models are built during the early phases of the RE process.

Reason: the sooner this scalability goal is identified and validated, the best.

When is scalability identified ?

04/08/20237

A Case Study in Eliciting Scalability Requirements

Authors: Leticia Duboc, Emmanuel Letier, David S. Rosenblum, Tony Wicks

16th IEEE International Requirements Engineering Conference, 2008

Paper

04/08/20238

No established work specifically on scalability requirements [1].

Developers generally do not give systematic attention to scalability during requirements engineering.

Many companies concentrate on functional requirements, never considering load, growth characteristics, or technical and physical boundaries of the systems [1].

People tend not to take responsibility for scalability, leading to non-functional and workload tests being largely overlooked [1].

Research Problems

04/08/20239

Application of Goal-Oriented Requirements Engineering (GORE) for eliciting the scalability requirements of a large, real-world financial fraud detection system.

//IEF

What did the author propose?

04/08/202310

GORE: A requirement elicitation technique of software requirements in the context of high-level goals [2].

Goals are a description of stakeholder needs, specified as properties the system must satisfy.

Key points

Types of Goals

04/08/202311

GORE [cont]

Quality Attributes

Functional ConcernsServices to be provided

Quality of ServiceScalability, Security,

Accuracy, Performance

04/08/202312

Pre-condition

Originally stated scalability requirements were “more a statement of idealized goals rather than rational requirements with clearly understood objectives”

Methodology

04/08/202313

Target

Defined clear statement of these assumptions without those it would not be possible to perform a reliable analysis of the system’s scalability.

Pictorial representation of scalability requirements

Figures were needed in order to test the new system adequately and identify

expected growth in data volumes expected behavior of the system if the data volume and machine capacity

scale beyond the stated limits

Methodology [contd]

04/08/202314

Systematic manner

Variables Scalability ranges Bounds on scalability ranges Characteristic functions

Define

04/08/202315

Customers: Banks

Scalability requirement: Act against fraudulent transaction within specific time frame and without any additional complexity.

Methodology [contd]

04/08/202316

Methodology [contd]

04/08/202317

Systematic exploration for scalability goals determination

Why?.. This will mitigate risks of compromising final deliverables which result from the lack of scalability

What needs to be done?

04/08/202318

Should be considered during the Requirement Elicitation Phase [earliest phase]

Should be defined in a systematic and consistent manner using GORE or similar frameworks

Pictorially representable to clarify scalability requirements

Learning's to ensure scalability in software application

04/08/202319

KAOS: And/Or links relating scalability goals to operations [2].

Contribution Link: Positive/negative contributions to scalability requirements [2].

Answering Scalability Questions for characterization and analysis of scalability [3].

Other approaches to ensuring system scalability

04/08/202320

[1] A Case Study in Eliciting Scalability Requirements, L. Duboc, E. Letier, D. S. Rosenblum, T. Wicks, 16th IEEE International Requirements Engineering Conference, September 2008. pages: 131-137

[2] Goal-Oriented Requirements Engineering: A Guided Tour, A. V. Lamsweerde, Proceedings RE’01, 5th IEEE International Symposium on Requirements Engineering, Toronto, August 2001. pages: 249-263

[3] A framework for characterization and analysis of software system scalability, L. Duboc, D. Rosenblum, and T. Wicks, Proceedings ESEC-FSE’07, New York, NY, USA, 2007. ACM. pages 375–384.

References

04/08/202321

Thank you

top related