building scalability into software applications
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