Sally Fitzgibbons Foundation

Beginning the Academic Essay

MEASURING NON-FUNCTIONAL REQUIREMENT VIA CLOUD-HOSTED APPLICATION IN FAVOUR OF BOOKING SYSTEM
A Thesis Submitted in Partial Fulfillment of the Requirements for the
Degree of
MASTER OF TECHNOLOGY
in
Computer Science and Engineering
by
Anamika Sharma
(1436010502)
Under The Supervision of
Brijesh Pandey
Goel Institute of Technology and Management, Lucknow

to the
Faculty of Computer Science
Dr.A.P.J ABDUL KALAM TECHNICAL UNIVERSITY
(Formerly Uttar Pradesh Technical University)
LUCKNOW
June, 2016
CERTIFICATE
Certified that the project entitled “Measuring non-functional requirement via cloud-hosted application in favour of Booking System” submitted by Anamika Sharma (1436010502) in the partial fulfillment of the requirements for the award of the degree of Master of Technology (Computer Science and Engineering) of Dr.A.P.J.AbdulKalam Technical University, is a record of student’s own work carried under my supervision and guidance. The project report embodies results of Original work and studies carried out by the student and the contents do not form the basis for the award of any other degree to the candidate or to anybody else.

BrijeshPandey
Associate Professor
Project Guide

DEPARTMENT OF COMPUTER SCIENCE AND
ENGINEERING
GITM
DECLARATION
I hereby declare that the project entitled “Measuring non-functional requirement via cloud-hosted application in favour of Booking System” submitted by me in the partial fulfillment of the requirements for the award of the degree of Master of Technology (Computer science and Engineering) of Dr.A.P.J.AbdulKalam Technical University, is record of my own work carried under the supervision and guidance of BrijeshPandey.

To the best of my knowledge this project has not been submitted to Dr.A.P.J.AbdulKalam
Technical University or any other University or Institute for the award of any degree.

Anamika Sharma
(1436010502)

ACKNOWLEDGEMENT
No volume of words is enough to express my gratitude towards my guide, BrijeshPandey, Associate Professor and Head of Department Computer Science and Engineering ; Information Technology, Goel Institute of Technology and Management, Lucknow, who has been very concerned and has aided for all the material essential for the preparation of this thesis report. She has helped me to explore this vast topic in an organized manner and provided me with all the ideas on how to work towards a research-oriented venture.

I would also like to thank the staff members and my colleagues who were always there in the need of the hour and provided with all the help and facilities, which I required, for the completion of my thesis.

Most importantly, I would like to thank my parents and the Almighty for showing me the right direction out of the blue, to help me stay calm in the oddest of the times and keep moving even at times when there was no hope.

Anamika Sharma
(1436010502)

ABSTRACT
Cloud Computing is a model of Internet-based computing, that is particularly grow with Infrastructure as a Services model. This model allows system administrators to obtain resources to deploy their applications and to pay just for the resources that are consumed. As we know requirements directly affects any type of model. Every type of requirements are essential for both user as well as developer or the party that provide any type of facility. There are some type of requirements which directly affect both the parties that are called functional requirements. These are primary focus of software development project. On the other hand there are the requirements which don’t affect both the parties directly these are called Non-Functional requirements. These NFR are the key and prime factor. We use these NFR’s for exploring the value of Cloud-based applications and also for making the comparison between all Cloud-based models. In this we consider a ticket booking system. For each NFR, we model in UML and OCL utilizing stereotypes to apply the additional required semantics. We then generate code from the model to enforce the NFRS. The code is generated for these NFRs for use in a cloud application that uses the threads on the server side for each client. We chose to focus on three NFRs for this study: response time, concurrency, and pick seat time to implement the ticket booking system.
Table of Contents
Certificate i
Declarationii
Abstractiii
Acknowledgementiv
List of Tables
Table5.1PUBLIC CLOUD PROVIDERS COMPARISON CHART
Table5.2BASIC NON-FUNCTIONAL REQUIREMENTS COMPARISON OF LEADING CLOUD PROVIDERS
List of Figures
Figure2.1 System Development Process
Figure2.2 Identifying input and derived requirements of the generic process
Figure2.3 A qualification strategy
Figure4.1 Cloud Computing
Figure4.2 Different equipment uses Cloud Computing
Figure4.3 Types of Cloud-based on location
Figure4.4 Types of Cloud-based on a service
Figure4.5 Connectivity
Figure4.6 Cloud Benefits
Figure5.1 Activity Diagram
Table of Contents…………………………………………………………v
CHAPTER 1 : INTRODUCTION
REQUIREMENTS ENGINEERING TASKS
TYPES OF REQUIREMENTS
CLOUD COMPUTING USED THE REQUIREMENTS
CHAPTER 2: REQUIREMENT ENGINEERING
GOAL ORIENTED REQUIREMENTS
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING
INPUT REQUIREMENTS AND DERIVED REQUIREMENTS
REQUIREMENTS ENGINEERING SUPPORTING TECHNICAL PRODUCT MANAGEMENT
CHAPTER 3: NON FUNCTIONAL REQUIREMENT
FUNCTIONAL VS NON-FUNCTIONAL REQUIREMENTS
SPECIFICATION OF NON-FUNCTIONAL REQUIREMENTS
NON-FUNCTIONAL REQUIREMENT IN HEALTHCARE SYSTEM
CHAPTER 4: CLOUD COMPUTING
BASED ON A CLOUD LOCATION, WE CAN CLASSIFY CLOUDS:
BASED ON A SERVICE, WE CAN CLASSIFY CLOUD AS:
ATTRIBUTES
TYPES OF CLOUD COMPUTING
FIVE ESSENTIAL FEATURES
CHAPTER 5: RELATED WORK
MAIN FOCUSED NON FUNCTIONAL REQUIREMENTS
ALGORITHMS
NON-FUNCTIONAL REQUIREMENTS THAT AFFECT THE USER’S SELECTION TOWARDS THE CLOUD SERVICE PROVIDER:-
PUBLIC CLOUD PROVIDERS COMPARISON CHART
BASIC NON-FUNCTIONAL REQUIREMENTS COMPARISON OF LEADING CLOUD PROVIDERS
CONCLUSION AND FUTURE SCOPE
REFERENCES

CHAPTER 1
INTRODUCTION
One of the prime and most difficult problems faced by the developer to understands the requirements of a problem. At first look software engineering might not seem that hard to a person. One might think that the customer must know what’s required and must be having a fair understanding of the features and functions that are beneficial.

Requirement engineering proves out to be quite handy for the user in terms of understanding the problem they will work to solve. It includes the set of tasks like understanding the business impact of the software, what the customer want and how end user is going to interact with the user. Software engineering and other project stakeholders all participated in requirements engineering.

Designing and building elegant programs that solve the wrong problem is not going to serve anyone’s needs. Hence it is of utmost importance to understand the requirements of the customer before you begin to design and build a computer-based system.

The purpose of the software engineering is to provide a documentation of the problem to all the parties. This can be achieved through a number of work products: use scenarios, functions and features lists, analysis models, or a specification.

Feedback of the requirement engineering products from the customer and the end user is taken to ensure what developer has understood is what they really meant. However even after all the parties agree to the model things are going to change and they continue to change throughout the project.

REQUIREMENTS ENGINEERING TASKS:
Requirements engineering begins with inception-a task that defines the scope and nature of the problem to be solved. It moves to the elicitation, which helps the customers to define what is required and then elaboration, where basic requirements are refined and modified. When the customer defines the problem basic negotiation takes place, questions like what is required, what are the priorities and when it is required are answered. Finally the problem is specified in some manner and the reviewed or validated to ensure that you’re understanding of the problem and the customers’ understanding of the problem coincide.

Inception
In the process of inception software engineering asks a set of questions needed to be answered and intent is to establish an understanding of the same, the nature of the solution that is desired and the effectiveness of preliminary, communication and collaboration between the customer and the developer. As miscommunication is the last thing that the customer or developer want to have between them during the process of software development. In this developer identify a working description and do rough feasibility analysis.

Elicitation
It is very difficult because of these problems
Problem or scope – The boundary of the system is ill-defined or the customers/users specify unnecessary technical detail that may confuse, rather than clarify, overall system objectives.

Problems of understanding – Due to the improper understanding of the customer of computing environment or the technology used by the developers in the process. The customers/users might not be completely sure of what is needed, have a poor understanding of the capabilities and limitations of their computing environment or might omit the information that is obvious. Specify requirements that conflict with the needs of other customers/users, or specific requirements that are ambiguous or untestable.

Problem of volatility- The requirement change over time. The engineers need to approach the mentioned problems in organized manner in order to solve them.

Elaboration
The information obtained from the customer during inception and elicitation is expended and refined during elaboration. Goal is to develop a refined technical model of software.

Elaboration is an analysis modeling action that is composed of a number of modeling and refinement tasks. Elaboration is driven by the creation and refinement of user scenarios that describe how the end user will interact with the system.

Requirements Analysis and Negotiation
Once requirements have been gathered, the work products noted earlier form the basis for requirements analysis. Analysis categorizes requirements and organizes them into related subsets. As the requirements analysis activity commences, the following questions are asked and answered:
• Is each requirement consistent with the overall objective for the system/product?
• Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage?
• Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for each requirement?
• Do any requirements conflict with other requirements?
• Is each requirement achievable in the technical environment that will house the system or product?
• Is each requirement testable, once implemented?
The system engineer must reconcile these conflicts through a process of negotiation. Customers, users and stakeholders are asked to rank requirements and then discuss conflicts in priority.

Requirements Specification
The System Specification is the final work product produced by the system and requirements engineer. It serves as the foundation for hardware engineering, software engineering, database engineering, and human engineering. It describes the function and performance of a computer-based system and the constraints that will govern its development. The specification bounds each allocated system element. The System Specification also describes the information (data and control) that is input to an output from the system.

System Modeling
In System Modeling we make an appropriate model of that product. That product is further divided into more modules. From the model, it would be relatively easy to assess the efficiency of workflow. We make a blueprint of our product. It is important to evaluate the system’s components in relation to one another, to determine how requirements fit into that format.

Requirements Validation
Requirements validation examines the specification to ensure that all system requirements have been stated unambiguously; that inconsistencies, omissions, and errors have been detected and corrected; and that the work products conform to the standards established for the process, the project, and the product.

Requirements Management
Requirements management is a set of activities that help the project team to identify, control, and track requirements and changes to requirements at any time as the project proceeds. For this some traceability tables are generated :
Features traceability table. Shows how requirements relate to important customer observable
System/product features.

Source traceability table. Identifies the source of each requirement.

Dependency traceability table. Indicates how requirements are related to one another.

Subsystem traceability table. Categories requirements by the subsystem(s) that they govern.

Interface traceability table. Shows how requirements relate to both internal and external system interfaces.

TYPES OF REQUIREMENTS:
There are two types of the requirement in requirement engineering. In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. They are contrasted with functional requirements that define specific behavior or functions. The plan for implementing functional requirements is detailed in the system design. The plan for implementing non-functional requirements is detailed in the system architecture because they are usually Architecturally Significant Requirements.
Broadly, functional requirements define what a system is supposed to do and non-functional requirements define how a system is supposed to be. Functional requirements are usually in the form of “system shall do <requirement>”, an individual action of the part of the system, perhaps explicitly in the sense of a mathematical function, a black box description input, output, process, and control functional model or IPO Model. In contrast, non-functional requirements are in the form of “system shall be <requirement>”, an overall property of the system as a whole or of a particular aspect and not a specific function. The system’s overall properties commonly mark the difference between whether the development project has succeeded or failed.

Functional requirements
These are what a system is supposed to accomplish. It may be:
Calculations
Technical details
Data manipulation
Data processing
Other specific functionality
Non-functional requirements
The IEEE-Std 830 – 1993 lists 13 non-functional requirements to be included in a Software Requirements Document:
Performance requirements
Interface requirements
Operational requirements
Resource requirements
Verification requirements
Acceptance requirements
Documentation requirements
Security requirements
Portability requirements
Quality requirements
Reliability requirements
Maintainability requirements
Safety requirements
CLOUD COMPUTING USED THE REQUIREMENTS:
All these requirements encountered with cloud computing in a different manner. The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is something, which is present at the remote location. Cloud can provide services over a network, i.e., on public networks or on private networks, i.e., WAN, LAN or VPN. Applications such as e-mail, web conferencing, customer relationship management (CRM), all run in the cloud.

Cloud Computing refers to manipulating, configuring, and accessing the applications online. It offers online data storage, infrastructure and application. We need not install a piece of software on our local PC and this is how the cloud computing overcomes platform dependency issues. Hence, the Cloud Computing is making our business application mobile and collaborative.

Cloud computing is a type of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources, which can be rapidly provisioned and released with minimal management effort. It provides networks, servers, storage, applications, and services at one place. Gartner defines cloud computing as a one-to-many infrastructure service where the location of the computing element, the processing, the storage, the bandwidth and so on, is hidden from the consumer. Essentially, it’s a pay-as-you-go model that allows you to increase or decrease capacity as your needs change. Cloud computing is very similar to what has been called grid computing — you can utilize the resources of many computers in a network to approach one single problem.
Cloud computing and storage solutions provide users and enterprises with various capabilities to store and process their data in either privately owned or third-party data centres that may be located far from the user–ranging in distance from across a city to across the world. As well, it enables organizations to focus on their core businesses instead of spending time and money on computer infrastructure.

Through cloud computing, users are able to perform tasks like analysis of sales data, storing medical information of patients, and estimating business venture risks. Users do not need to have technological expertise. Users, however, experience device and location independence and they can access different applications through a web browser using different devices.

Clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized SLAs.

CHAPTER 2
REQUIREMENT ENGINEERING
If ever system development projects needed a “fair wind”, they certainly do so today. Fast-changing technology and increased competition are placing ever increasing pressure on the development process. Effective requirements engineering lies at the heart of an organization’s ability to guide the ship and to keep pace with the rising tide of complexity R1. The real goal is “time to market with the right product”. Establishing the requirements enables us to agree on and visualize the “right product”. A vital part of the systems engineering process, requirements engineering first defines the problem scope and then links all subsequent development information to it. Only in this way can we expect to control and direct project activity; managing the development of a solution that is both appropriate and cost-effective.

Requirements engineering is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. Requirements engineering is a process of gathering and defining what the services should be provided by the system.

It focuses on assessing if the system is useful to the business (feasibility study), discovering requirements (elicitation and analysis), converting these requirements into some standard format (specification), and checking that the requirements define the system that the customer wants (validation).

Requirements form the basis for:
• Project planning;
• Risk management;
• Acceptance testing;
• Tradeoff;
• Change control;
GOAL ORIENTED REQUIREMENTS
Requirement engineering should be goal oriented. Goals of capture, at deferent levels of abstraction, the various objectives of the system under consideration should achieve. Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring, specifying, analyzing, negotiating, documenting, and modifying requirements. This area has received increasing attention over the past few years.R2
As Ross and Schoman stated in their seminal paper, “requirements definition must say why a system is needed, based on current or foreseen conditions, which may be internal operations or an external market. It must say what system features will serve and satisfy this context. And it must say how the system is to be constructed” R2.

Requirements engineering research has increasingly recognized the leading role played by goals in the RE process. Such recognition has led to a whole stream of research on goal modeling, goal specification, and goal-based reasoning for multiple purposes, such as requirements elaboration, verification or conflict management, and under multiple forms, from informal to qualitative to formal.

A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING
If the purpose of a system is not known, it is unclear what sort of system will be developed, and it is impossible to determine whether the system, when developed, will satisfy the needs of its users.

Forest Gump summed it up nicely when he said R1 :
“If you don’t know where you are going, you are unlikely to end up there.”
Figure2.1 System Development Process
center635
It is essential to realize that there are requirements at each of the levels:
Seeds statement;
Stakeholder requirements;
System requirements;
System component requirements
Subsystem component requirements.

-234950636905
Figure2.2 Identifying input and derived requirements of the generic process

INPUT REQUIREMENTS AND DERIVED REQUIREMENTS
Figure 2.3 shows an alternative view of Figure above in which the individual processes have been separated. This emphasizes that the requirements derived by one process become the input requirements of another process and leads naturally to the idea that the generic engineer requirements process takes in input requirements and generates derived requirements.

Figure2.3 A qualification strategy
center635
A generic process that can be simultaneously applied at each level in a system development has been presented. The benefit of this generic process is that it identifies common actions that are relevant at every level:
• Agreeing input requirements with the customer;
• Analysis of input requirements to determine the risks and potential pitfalls in satisfying the requirements;
• Creating one or more models to investigate possible strategies for deriving requirements;
• Generating requirements derived from the input requirements via the analyze and model information;
• Agreeing on the derived requirements with the team(s) that will be responsible for implementing them;
• Establishing the satisfaction relationship between input requirements and derived requirements;
• Establishing the qualification relationship between derived requirements and the relevant qualification strategy.

These actions lead to the establishment of information according to the information model presented. The current state of the information can be used to measure progress, to assess the impact of proposed changes and to define metrics on how a project is performing. For example, the state of a requirement can be captured by its three attributes:
• Agreement;
• Satisfaction;
• Qualification.

The ideal state for any requirement in any system development is that it should be:
• agreed between customer and supplier;
• have a qualification strategy agreed for it;
• be satisfied by lower-level requirements (or design).

The extent to which a project’s requirements deviate from this ideal state represents the degree of risk to which the project is exposed from the requirements management point of view and also indicates the extent of the work necessary to get the requirements into the ideal state.R3
REQUIREMENTS ENGINEERING SUPPORTING TECHNICAL PRODUCT MANAGEMENT
While we are talking about Technical Product Management, Requirement Engineering explains about identified needs of Industry. This model explores the development and validation of a process assessment and improvement planning framework, making the identification of process improvement issues possible. The major characteristics of the framework can be described as resource efficiency and relative accuracy by utilizing multiple perspectives and data point triangulation. As a complement to the assessment, the improvement planning enables industry professionals to focus their efforts on one improvement package at a time, supporting step-by-step evolution with less time to return on investment. Another contribution in the thesis is a compilation of lessons learned from the practical hands-on experience of technology and knowledge transfer from academia to industry, with the focus of producing industry relevant usable and useful results.
The main contribution of the thesis is improving the practice of product management by providing and evaluating frameworks for software process improvement and market-driven requirements engineering. The results of the research presented in the thesis are aimed at supporting technical product management taking the unique challenges of market-driven development into account.

CHAPTER 3
NON FUNCTIONAL REQUIREMENT
In Software Engineering, the requirements analysis phase is in charge of determining the functional and non-functional requirements of the system based on the client’s needs. In particular, non-functional requirements describe the characteristics of the system not related to its functionality. These requirements shape the architecture of the system during the design phase.R4
FUNCTIONAL VS NON-FUNCTIONAL REQUIREMENTS
Here are a couple of differences between functional and non-functional requirement in software development process:
1) The Functional requirement is specified by User, while the non-functional requirement is specified by technical peoples e.g. Architect, Technical leaders and software developers.

2) The Functional requirement is also the activity System must perform, on other hands non-functional are depending upon the criticality of application. For example, if your application is not critical and you can live with downtime, you may not need to develop complex failover and disaster recovery code, reducing your application total development time.

3) Functional requirements define a software’s functionality i.e. what can they do, while the non-functional requirements define, other things which are not required by the user but the requirement by the service provider or software itself e.g. logging is a non-functional requirement to support an application, not directly used by the user but essential to troubleshooting an issue in production environment.

4) The Non-functional requirements are sometimes defined in terms of metrics (something that can be measured about the system) to make them more tangible.

5) Non-functional requirements may also describe aspects of the system that don’t relate to its execution, but rather to its evolution over time (e.g. maintainability, extensibility, documentation, etc.).

SPECIFICATION OF NON-FUNCTIONAL REQUIREMENTS
The IEEE-Std 830 – 1993 lists 13 non-functional requirements to be included in a Software Requirements Document:
Performance requirements:-It is a manner in which a module performs. In order to assess the performance of a system, we must clearly understand the response Time, workload, scalability, and platform.

Interface requirements:- A User Interface specification should consider usability, localization, and demo limits. Many systems need to provide data for other business systems or for users.

The stages involved in identifying the interface requirements are:
Identify the sources of required data
Identify the data items and data structures required for the exchange
Consider alternatives or select methods of data exchange
Identify relevant protocols for the data exchange
Document or reference the technical requirements for data exchange including the source; data items; data structures; timing, method; and protocols
Operational requirements:- Operational requirements are basically oriented that how the system will be operated by the users. It also checks the interoperability with other systems and interface. These are also specified that how well and under what conditions the system must perform. Operational requirements are those statements that identify the essential capabilities, associated requirements, performance measures, and the processes or series of actions to be taken in effecting the results that are desired in order to address mission area deficiencies, evolving applications or threats, emerging technologies, or system cost improvements. This requirement directly affects the performance of the system. Operational requirements should answer:-
Who is asking for this requirement?
Who needs the requirements?
Who will be operating the system?
Where will the system be used?
Resource requirements:- Resources are used to achieve project objectives. The primary resource is obviously people with capabilities, skills, and competencies. The other main groupings of resources are capital, facilities, equipment, material, and information. To achieve our project objectives resources must be properly distinguished. Some specifications are mentioned below for resource requirement:
Resource estimation
Resource acquisition
Resource leveling
Human resource planning
Resource allocation
Verification requirements:-Verification is the establishment by empirical means of the validity of a proposition. This is used for checking that a product, service, or system meets requirements and specifications and that it fulfills its intended purpose. There are four fundamental methods of verification are Inspection, Demonstration, Test, and Analysis.

Inspection is the non-destructive examination of a product or system using one or more of the five senses (visual, auditory, olfactory, tactile, taste). It may include simple physical manipulation and measurements.

The Demonstration is the manipulation of the product or system as it is intended to be used to verify that the results are as planned or expected.

The Test is the verification of a product or system using a controlled and predefined series of inputs, data, or stimuli to ensure that the product or system will produce a very specific and predefined output as specified by the requirements.

The Analysis is the verification of a product or system using models, calculations and testing equipment. The Analysis allows someone to make predictive statements about the typical performance of a product or system based on the confirmed test results of a sample set or by combining the outcome of individual tests to conclude something new about the product or system. It is often used to predict the breaking point or failure of a product or system by using non-destructive tests to extrapolate the failure point.

Acceptance requirements:-It is the action of consenting to receive or undertake something offered. This is basically done by User side. When verification process is done then we check the acceptance of a module.

Documentation requirements:-Documentation is the information that describes the product to its users. It consists of the product technical manuals and online information (including online versions of the technical manuals and help facility descriptions). The term is also sometimes used to mean the source information about the product contained in design documents, detailed code comments, white papers, and blackboard session notes. Documentation must lay the foundation for quality, traceability, and history for both the individual document and for the entire project documentation. It is also extremely important that the documentation is well arranged, easy to read, and adequate.

The Technical document includes product definition and specification, design, manufacturing/development, quality assurance, product/system liability, product presentation, description of features, functions, and interfaces, safe and correct use, service.

Functional specifications define the inner workings of the proposed system.

A work plan sets out the phases, activities, and tasks needed to deliver a project.
A traceability matrix is a table that traces a requirement to the tests that are needed to verify that the requirement is fulfilled.

An issue tracker manages and maintains a list of issues.

A change management document is used to capture progress and to record all changes made to a system.

A test document includes test plan and test cases. A test case is a detailed procedure that fully tests a feature or an aspect of a feature.

User Manual is the standard operating procedure for the system
The rollout plan includes detailed instructions on how to implement the system in an organization.

The handover document is a synopsis of the system with a listing of all the deliverables of the system.

Security requirements:- Security requirements protection of our system and its data. Security is the most important aspect regarding the project. In this, we properly focused that only authorized party may access the project.

The SRS should define the authentication requirements in detail. These include the preferred strategy for resolving forgotten passwords, addressing account lockouts, expiring inactive sessions, etc. If certain critical transactions should require re-authentication, this is the right time to specify that.

Portability requirements:-The effort required to move the software to a different target platform. The measurement is most commonly person-months or % of modules that need changing.

Quality requirements:-Quality of services
Reliability requirements:-These are the requirements about how often the software fails. The measurement is often expressed in MTBF (mean time between failures). The definition of a failure must be clear. Also, don’t confuse reliability with availability which is quite a different kind of requirement. Be sure to specify the consequences of software failure, how to protect from failure, a strategy for error detection, and a strategy for correction.

Maintainability requirements: Ability of a computer program to be retained in its original form, and to be restored to that form in case of a failure. Software maintainability requires more developer effort than any other phase of the development lifecycle. Maintainable software is easy to extend and fix which encourages the software’s uptake and use. The Maintainable software allows you too quickly and easily:
Fix a bug, without introducing a new bug as you do so
Add new features, without introducing bugs as you do so
Improve usability
Increase performance
Make a fix that prevents a bug from occurring in future
Make changes to support new environments, operating systems or tools
Bring new developers on board your project
More formally, the IEEE Standard Glossary of Software Engineering Terminology defines maintainability as: “The ease with which a software system or component can be modified to correct faults, improve the performance or other attributes, or adapt to a changed environment.”
Safety requirements: Software maintainability is important because it is approximately 75% of the cost related to a project!
NON-FUNCTIONAL REQUIREMENT IN HEALTHCARE SYSTEM
In this systemGrzegorzLoniewski R5 defines In healthcare many non-functional requirements (NFR) play an essential role in the patient care process, they are not only important but also numerous. Mairizaetal presented a systematic literature review on NFRs and their use. One of the research questions used for the review was: “Which types of NFRs are of concern in various application domains” giving as a result, among other domains, crucial NFRs for medical/healthcare domain. These NFRs are the following: communicativeness, confidentiality, integrity, performance, privacy, reliability, safety, security, traceability, and usability. There are works emphasizing the role of non-functional requirements in the healthcare like Cysneiros in focusing especially on safety, security, privacy, reliability, availability, and usability. Within the RE process, unknown or not completely understood requirements are the main problem. That is why there are many approaches to the elicitation of requirements in the healthcare. For example, Cysneiros in discusses various elicitation techniques in healthcare. He also points that requirements are very often conflicting among them and these conflicts should be carefully searched in the elicitation phase. One specific part of the healthcare domain is home care. Many current researchers in the healthcare held are related to homecare, a large number of people (e.g. elderly or cognitively disabled) prefer to stay at home to receive care. This is socially beneficial, as they can stay in their familiar environments and also economically beneficial. The challenge, in this case, is to provide complete and professional care outside the health centres. McGee-Lennon in suggests features which should be provided by requirements engineering approaches in the home care requirements elicitation and analysis. However, these good practices can be also applied in general to the healthcare domain RE approaches. Regarding these suggestions the elicitation of healthcare requirements should be an interactive process, balancing and validating requirements. This process should also include active participation of interested identified stakeholders to elicit high-quality requirements. Next, prioritization of requirements as well as identification and categorization are considered to be good practices. Requirements traceability should be also provided as well as a resolution of requirements conflicts. The complexity of the domain and its unique character nicely summarizes Jones in his paper: “Computers can land people on Mars, why can’t they get them to work in a hospital?”. That is why McGee-Lennon argues that novel, healthcare dedicated RE approaches are required in order to improve the quality of patient’s care.

CHAPTER 4
CLOUD COMPUTING
Cloud computing is generally described in one of two ways, either based on the location of cloud, or on the service offered by the cloud.

In 2009, the availability of high-capacity networks, low-cost computers and storage devices as well as the widespread adoption of hardware virtualization, service-oriented architecture, and autonomic and utility computing led to a growth in cloud computing.

Mainframe
(1960-1970
Minicamp
(1980-85)
PCs
(1985-90)
IP Network
(1995-2000)
Client-Server
(1990-95)
Mobile Device
(2001-2008)
DEC
Intel
Microsoft
Sons
Cisco
Nokia
IBM
Cloud Computing
Subways within the information age
In 2013, it was reported that cloud computing had become a highly demanded service or utility due to the advantages of high computing power, cheap cost of services, high performance, scalability, accessibility as well as availability. Some cloud vendors are experiencing growth rates of 50% per year, but being still in a stage of infancy, it has pitfalls that need to be addressed to make cloud computing services more reliable and user-friendly.
Figure4.1 Cloud Computing

Established business enterprises, as well as Small and Medium Enterprises (SMEs)2 in India, are now using online portals to sell their products domestically and abroad. These online platforms have allowed Indian SMEs to tap International customers in an extremely convenient, cost-effective, and profitable way. SMEs’ IT requirements are often not as complicated and extensive as those of large enterprises. Thus, they find it easier to outsource these functions to a cloud provider and focus on their core business. The low barrier to entry, minimum risk, lower capital expenditure on hardware and software make cloud computing an extremely viable option for most of the enterprises. Though the cloud computing industry is poised for a leap, recent trends show that the SMEs are still reluctant to adopt the cloud. The barriers to the entry are the security of data, interoperability amongst the cloud service providers in case of shifting the cloud computing services, initial investments required for shifting to cloud services, the quality of service for delivery over the cloud and the legal and regulatory issues associated with the industry.

Considering the large capital investments required for building the cloud infrastructure and the relevance of computing services for the global economy, a handful of companies might be able to achieve a dominant position in the cloud service offerings. This can be harmful to the interest of users when resource usage is dictated by corporations, risking the autonomy of users. Therefore, concerns regarding the emergence of cloud computing monopolies have to be taken into account. The monopolistic market would also restrict small players to enter the market which may prevent innovation and evolution.

Figure4.2 Different equipment uses Cloud Computing
148590148590
BASED ON A CLOUD LOCATION, WE CAN CLASSIFY CLOUDS:
public,
private,
hybrid
community cloud
Cloud computing comes in three forms: public clouds, private clouds, and hybrids clouds.

Public Clouds
A public cloud is usually the internet. Service providers use the internet to make resources, such as applications (also known as Software-as-a-service) and storage, available to the general public, or on a ‘public cloud.  Examples of public clouds include Amazon Elastic Compute Cloud (EC2), IBM’s Blue Cloud, Sun Cloud, Google AppEngine and Windows Azure Services Platform. 
The whole computing infrastructure is located on the layout of a cloud computing company that offers the cloud service. The location remains, thus, separate from the customer and he has no physical control over the infrastructure. As public clouds use shared resources, they do excel mostly in performance but are also most vulnerable to various attacks.

For users, these types of clouds will provide the best economies of scale, are inexpensive to set-up because hardware, application and bandwidth costs are covered by the provider.  It’s a pay-per-usage model and the only costs incurred are based on the capacity that is used.

There are some limitations, however; the public cloud may not be the right fit for every organization. The model can limit configuration, security, and SLA specificity, making it less-than-ideal for services using sensitive data that is subject to compliance regulations. 
Private Clouds
Private clouds are data centre architectures owned by a single company that provides flexibility, scalability, provisioning automation and monitoring.  The goal of a private cloud is not sold “as-a-service” offerings to external customers but instead to gain the benefits of cloud architecture without giving up the control of maintaining your own data centre.

Private clouds can be expensive with typically modest economies of scale. This is usually not an option for the average Small-to-Medium sized business and is most typically put to use by large enterprises. Private clouds are driven by concerns about security and compliance and keeping assets within the firewall.

Using the cloud infrastructure, (network) solely by one customer/organization. It is not shared with others, yet it is remotely located. If the cloud is externally hosted, The companies have an option of choosing an on-premise private cloud as well, which is more expensive, but they do have a physical control over the infrastructure.

The security and control level is highest while using a private network. Yet, the cost reduction can be minimal, if the company needs to invest in an on-premise cloud infrastructure.

Hybrid Clouds
Using both private and public clouds, depending on their purpose.

By using a Hybrid approach, companies can maintain control of an internally managed private cloud while relying on the public cloud as needed.  For instance, during peak periods individual applications or portions of applications can be migrated to the Public Cloud.  This will also be beneficial during predictable outages: hurricane warnings, scheduled maintenance windows, rolling brown/blackouts.

The ability to maintain an off-premise disaster recovery site for most organizations is impossible due to cost. While there are lower cost solutions and alternatives the lower down the spectrum an organization gets, the capability to recover data quickly reduces. Cloud-based Disaster Recovery (DR)/Business Continuity (BC) services allow organizations to contract failover out to a Managed Services Provider that maintains multi-tenant infrastructure for DR/BC and specializes in getting business back online quickly.

Figure4.3 Types of Cloud-based on the location
21209034925
For example, public cloud can be used to interact with customers, while keeping their data secured through a private cloud.

Community cloud implies an infrastructure that is shared between organizations, usually with the shared data and data management concerns. For example, a community cloud can belong to a government of a single country. Community clouds can be located both on and off the premises.

BASED ON A SERVICE, WE CAN CLASSIFY CLOUD AS:
IaaS (Infrastructure-as-a-Service)
PaaS (Platform-as-a-Service)
SaaS (Software-as-a-Service)
or, Storage, Database, Information, Process, Application, Integration, Security, Management, Testing-as-a-service
Infrastructure as a Service(IaaS)
IaaS, gives business access to vital web architecture, such as storage space, servers, and connections, without the business need of purchasing and managing this internet infrastructure themselves. Because of the economies of scale and specialization involved, this can be to the benefit of both the business providing the infrastructure and the one using it. In particular, IaaS allows an internet business a way to develop and grow on demand. Both PaaS and SaaS clouds are grounded in IaaS clouds, as the company providing the software as service is also providing the infrastructure to run the software. Choosing to use an IaaS cloud demands a willingness to put up with complexity, but with that complexity comes flexibility. Amazon EC2 and Rackspace Cloud are examples of IaaS.

As explained before, the most common cloud service is that one offering data storage disks and virtual servers, i.e. infrastructure. Examples of Infrastructure-as-a-Service (IaaS) companies are Amazon, Rackspace, Flexiscale.

Platform as a Service (PaaS)
PaaS clouds are created, many times inside IaaS Clouds by specialists to render the scalability and deployment of any application trivial and to help make your expenses scalable and predictable. Some examples of a PaaS system include Mosso, Google App Engine, and Force.com. The chief benefit of a service like this is that for as little as no money you can initiate your application with no stress more than basic development and maybe a little porting if you are dealing with an existing app. Furthermore, PaaS allows a lot of scalability by design because it is based on cloud computing as defined earlier in the article. If you want a lean operations staff, a PaaS can be very useful if your app will capitulate. The most important negative of using a PaaS Cloud provider is that these services may implement some restrictions or trade-offs that will not work with your product under any circumstances.

If the cloud offers a development platform, and this includes the operating system, programming language execution environment, database, and web server, the model is known as Platform-as-a-Service (PaaS), examples of which are Google App Engine, Microsoft Azure, Salesforce. An Operating system can be frequently upgraded and developed with PaaS, services can be obtained from diverse sources, and programming can be worked in teams (geographically distributed).

Software as a Service (SaaS)
SaaS is relatively mature, and the phrase’s use predates that of cloud computing. Cloud applications allow the cloud to be leveraged for software architecture, reducing the burdens of maintenance, support, and operations by having the application run on computers belonging to the vendor. Gmail and Salesforce are among examples of SaaS run as clouds, but not all SaaS has to be based in cloud computing.

Figure4.4 Types of Cloud-based on a service
79692526670
Software-as-a-Service (SaaS), finally, means that users can access various software applications on a pay-per-use basis. As opposed to buying licensed programs, often very expensive. Examples of such services include widely used Gmail, or Google Docs.

ATTRIBUTES
Cloud Computing has four attributes mentioned below:-
(a) Data-Intensive: The focus is on data rather than computation. Therefore, input/output (I/O) is more important resource metric than CPU utilization. Such data-intensive cloud computing systems store enormous amounts of data at data centres and use computer nodes for computation services.

(b) Resource Pooling: Resource pooling or multi-tenancy characteristic of a software program enables an instance of the program to serve different consumers (tenants) whereby each is isolated from the other. IT resources can be dynamically assigned or reassigned; according to consumer demands. A cloud provider pools its IT resources using multi-tenancy models that frequently rely on the use of virtualization technologies.

(c) Scalability & Rapid Elasticity: Cloud computing platforms are usually highly scalable and elastic due to their inherent resource sharing behavior. Scalability is the automated ability of a cloud to scale IT resources, as required in response to runtime conditions or as pre-determined by the cloud consumer or cloud provider. Elasticity is often considered as scalability supported with an optimized utilization of resources as well as cost optimization.

(d) On-demand access: A cloud consumer can unilaterally access cloud-based IT resources giving him the freedom to self-provision these resources. Once configured, usage of the self-provisioned resources can be automated, requiring no further human involvement by either the cloud consumer or cloud provider. This results in an on-demand usage environment. In other words, it deploys pay-as-you-go approach with no upfront commitments
Cloud Storage Allows Easy File Access from Multiple Devices
The advancements in electronic devices are increasing every day, with the trend moving towards devices that are simpler and smaller in size, but with greater computing power and speed. Modern users have a range of devices from which to choose, including desktop personal computers (PC), laptops, Smartphone, and tablets. Today, most people own some combination of these devices. In fact, many users have all four types of devices at their disposal, in order to facilitate increased mobility for a range of locations and greater utility for a variety of purposes.

Although modern users may own a range of electronic computing devices that enable internet access, most people do not carry all of their devices with them at once. So, there remains a real problem to consider: what if a user needs access to a file that is on their desktop computer, for example, but they only have their mobile tablet at the time? Or, what if a user wants to share a favorite photo with a friend, but the photo is not saved on the device that they have with them?
Luckily, there is an easy solution available to computer users today who seek to access files from multiple devices: the virtual drive of online cloud storage services.

Cloud storage services, such as Google Drive, Dropbox, SugarSync, and Box, provide users with online space where files can be easily stored, retrieved, edited, and managed on demand, from any device with internet access. Users can upload selected files from their computer to the cloud storage account, and from there they can access the stored files from any of their Internet-ready electronic devices.

Having multiple computing devices is typical among today’s modern users, which can present challenges when it comes to retrieving files that may not be physically located on an available device. But virtual, online cloud storage allows easy and efficient access to files from any device and from anywhere that has internet availability. Join the cloud revolution!
TYPES OF CLOUD COMPUTING
Major corporations including Amazon, Google, IBM, Sun, Cisco, Dell, HP, Intel, Novell, and Oracle have invested in cloud computing and offer individuals and businesses range from cloud-based solutions.

Web-based cloud services
These services let you exploit certain web service functionality, rather than using fully developed applications. For example, it might include an API for Google Maps, or for a service such as one involving payroll or credit card processing.

Social Networking
Perhaps the most famous use of cloud computing, which does not strike people as “cloud computing” at first glance is social networking Web sites, including Facebook, LinkedIn, MySpace, Twitter, and many, many others. The main idea of social networking is to find people you already know or people you would like to know and share your information with them. Of course, when you share your information with these people, you’re also sharing it with the people who run the service.

While the primary purpose of social networking previously was connecting people, businesses can use social networking too. By creating a Facebook fan page, a business can connect with its customers, and at the same time, those customers will be promoting your business. Also, viral marketing tactics can be used in combination with social networks. There are public relations experts who specialize in social media marketing.

Utility cloud services
These are virtual storage and server options that organizations can access on demand, even allowing the creation of a virtual data centre.

Managed services
In this scheme, a cloud provider focuses on utilization of an application rather than end-users. So, for example, this might include anti-spam services, or even application monitoring services.

Service commerce
These types of cloud solutions are a mix of SaaS and managed services. They provide a hub of services which the end-user interacts with. Common implementations include expense tracking, travel orders, or even virtual assistant services.

E-Mail
Some of the biggest cloud computing services are Web-based e-mail. As of January 2009, over 500 million people used Microsoft’s Web-based e-mail, Hotmail or Windows Live Mail. Using a cloud computing e-mail solution allows the mechanics of hosting an e-mail server and maintaining it to be taken out of your hands. It also means that your e-mail is accessible from anywhere.

Document/Spreadsheet/Other Hosting Services
As made famous by Google Docs, a number of services like Microsoft Office exist on the Internet that allows you to keep and edit your documents online. Just because of this, we are able to access, share,
By doing so, the documents will be accessible anywhere, and you can share the documents and collaborate on them. Multiple people can work in the same document simultaneously.

A new online project management tool, Onit, is for “anyone and everyone who manage projects – big, small, business, legal”.

Yahoo!’s Flickr and Google’s Picasa offer to host photographs that you want to share with friends, family, or the world. People can comment on the photographs, much like they can on Facebook, but these specialized photos hosting services offer some perks for the photography enthusiast.

Perhaps nothing has revolutionized entertainment more than YouTube, a video sharing site. It’s not the only one, though. Other video sharing sites include Vimeo and MetaCafe. Users are permitted to upload their own video content, and the services take care of putting it into a form that can be easily viewed by users without downloading much, if any, special software. Stars are made on YouTube. (An excellent compilation of these stars were put together by the band Weezer in their video for “Pork and Beans,” seen below in a YouTube clip.)
Backup Services
Even if you do use services to keep all your documents and photos, chances are you still having data on your personal computer? One of the biggest problems with personal computing has been the tendency to lose that data if your computer is stolen, destroyed, or the storage device damaged. This is where backup comes in. Sometimes, even backing up to media you have isn’t good enough — you need to store the data off-site for more complete protection. Services like JungleDisk, Carbonite, and Mozy allow you to automatically back up all your data to servers spread around the country or world for a surprisingly low price. Of course, your data is then susceptible to security breaches.

Similarly, services like Syncplicity and Dropbox (both offer free versions) make it easy to keep local copies of files on multiple computers synchronized while keeping a copy in the “cloud.” Some of these services will even keep previous versions of files or deleted files in case you happen to delete or mess up an important file.

Banking and Financial Services
Consumers store personal financial information to cloud computing service providers. In addition, consumers store tax records using free or low-cost online backup services.

HealthCare
In an effort to improve the nation’s health IT infrastructure, the Department of Health and Human Services’ (HHS) Office of the National Coordinator for Health Information Technology (ONC) recently selected a cloud computing platform to manage the selection and implementation of Electronic Health Record (EHR) systems across the country.

Non-healthcare organizations as Google and Microsoft provide a means by which consumers can create an online personal health record (“PHR”). Google Health and Microsoft HealthVault allow the public to create, store and access online personal health records on the search engine’s website.

Government
Apps.gov
In October 2009, the U.S. government launched “Apps.gov”, a website providing cloud-based computing services for federal agencies. The decision was largely motivated by the desire to reap the cost savings.

Local Government: The Los Angeles City Council
In October 2009, the city council agreed to shift the city’s email system was shifted to Google’s Gmail cloud computing platform. The Los Angeles Council and Google agreed that the data stored for the city belongs to the city, and Google will notify the city of all requests for data and security breaches so the city can take actions it deems appropriate….and more
These are just some examples of cloud computing services. There are hundreds or thousands more. If you have a favorite cloud computing service that we missed, let us know.

Figure4.5 Connectivity
FIVE ESSENTIAL FEATURES
The National Institute of Standards and Technology’s definition of cloud computing identifies “five essential characteristics”:
On-demand self-service:- A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.

Broad network access:- Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).

Resource pooling:- The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data-centre). Examples of resources include storage, processing, memory, and network bandwidth.

Rapid elasticity:-Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
Measured service:-Cloud systems automatically control and optimize resource use by leveraging a metering capability1 at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Cloud Computing offers great benefits for organization and individuals by reducing cost and increasing flexibility. A good and robust Cloud Computing model should consist of all these five essential characteristics. There are also privacy and security concerns. If you are building Cloud service or considering public Cloud, you should think also about how your organization and your customer’s data can be protected. Carefully review the terms of service or contracts, and challenge the Cloud provider to meet your needs.

Cloud computing accounted for about 33% of the total IT expenditure in 2015 across the world. Analysts project that from 2013 to 2018, the cloud computing market will grow at a 9.7 percent annual rate. Also, by 2019, cloud IT infrastructure spending is expected to be $52 billion, or 45% of total IT infrastructure spending. While new innovative and successful vendors are emerging; traditional big vendors are also investing massively in developing and acquiring on-demand solutions C1. In the SaaS segment, the strongest markets in terms of size and growth are Content, Communication and Collaboration (CCC), Customer Relationship Management (CRM), Integration-as-a-Service, Enterprise Resource Planning (ERP), and Supply Chain Management (SCM). The use of SaaS, PaaS, and IaaS has been evolving and becoming popular during the past years. Cloud server technologies to grow to include fatter servers that allow larger instances or more virtual machines (VMs) per server; in-memory database instances with as much as 2 TB DRAM and remote direct access memory (RDMA) over Ethernet5.

Few market predictions for cloud computing in India in upcoming years are as follows:-
The accelerated penetration of smart city technologies will drive up demand for Internet of Things (IoT) devices to 1.6 billion units next year, up 39 percent from this year, according to research firm Gartner. It also predicts that smart homes will take 21 percent of total demand for IoT devices in 2016 and will record rapid growth in the next five years. This will proportionally boost up the cloud services.

The public cloud service market in India will grow from $ 838 Million in 2015 to $ 1.9 billion by 2018.

For rester expects the software-as-a-service (SaaS) market, in particular, to roughly double in value, between 2014 and 2020, when it will be worth $1.2 billion. By 2018, Indian spending will reach $735 million for SaaS (from $249 million in 2014), $295 million for IaaS (from $77 million), and demonstrate strong gains in sub-sectors like PaaS and Business-Process-as-a-Service as well, according to Gartner.

Social, mobility, analytics, and cloud (SMAC) are collectively expected to offer a US$ 1 trillion opportunity in 2016. Cloud represents the largest opportunity under SMAC, increasing at a
CAGR of approximately 30 percent to around US$ 650-700 billion by 2020.10
Cloud is also used as cost-beneficial perspective. From a financial perspective, capital expenditure (Capex) and information technology (IT) cost optimization are the perceived advantages.

-158750-932180Figure4.6 Cloud Benefits
Cloud Computing allows core IT infrastructure to be brought into large data centers that take advantage of significant economies of scale in three areas:
Supply-side savings- Large-scale data centers (DCs) with lower costs per server.

Demand-side aggregation- Aggregating demand for computing smoothens the overall variability allowing server utilization rates to increase.

Multi-tenancy efficiency- When changing to a multitenant application model, increasing the number of tenants (i.e. customers or users) lowers the application management and server cost per tenant.

CHAPTER 5
PROPOSED WORK
Functional requirements are elaborated and mapped in many ways. Software development totally based on functional requirements, but NFRs are included in those ones that supply the norms while implementing the code. At the designing process, many authors have concerned about the NFRs and the problems of their inclusion. Pavlovski and Zou R6 define NFRs as specific behaviors and operational constraints, such as performance expectations and policy constraints. Though there are many discussions about the NFRs, they are not taken as seriously as they should be. Glinz R7 suggest the notion of splitting both functional and NFRs into a set of categories and make groups of them so that they are inherently considered while developing the applications. Alexander R8 suggests looking at the language used to describe the requirements. Words ending in ‘-ility’ are often the NFRs. Examples of these words are reliability and verifiability. All of their work focuses on identification of the NFRs. Our work builds on theirs by applying domain-specific models using extensibility mechanisms built into standard modeling notations.

Ranabahu and Sheth R9 explore four different modeling semantics required when representing cloud application requirements. These include data, functional, non-functional and system. Their work focuses on functional and system requirements. There is a small overlap with our work, but only with non-functional requirements from the system perspective. They build on work done by Stuart in his workshops where he defined semantic modeling languages to model cloud computing requirements in the three phases of the cloud application lifecycle. The three phases are development, deployment, and management. Our work adds to the missing semantic category of NFRs.

MAIN FOCUSED NON FUNCTIONAL REQUIREMENTS
We chose to focus on three NFRs for this study: response time, concurrency, and pick seat time to implement the ticket booking system. For each NFR, we model in UML and OCL utilizing stereotypes to apply the additionally required semantics. We then generate code from the model to enforce the NFRS. The code is generated for these NFRs for use in a cloud application that uses the threads on the server side for each client.

Request response time
Request response time is one of the lead performance measures in a ticket booking system. It is an NFR that is represented as a ‘Response time’ stereotype in the UML activity diagram. This stereotype is related to every interaction between the client and the server. In general terms, response time can be defined as the elapsed time between the requests has placed and the first response made. A control flow in an activity diagram can be assigned the stereotype. In the algorithm that is used to enforce this stereotype, the time is noted right before the request is sent to the server and the difference is measured once the response is received. The difference between the send and receive time gives the response time for the request. For the different latency requirements representation, the specific stereotypes are used. Examples are “low latency” and “high latency”. Runtime configuration can define the allowable time for each stereotype. Response time for each request from the users is measured, and the average response is calculated for the overall system. This is particularly useful to measure the overall system performance and compare it over time. If the average response time increases, we can further get the average response of each module/type of requests and find the bottlenecks. Algorithm 1 shows the algorithm implemented to guarantee this NFR. In the algorithm, the client notifies the server when the timeout occurs to enable the server to rollback any partial work completed.

Concurrency
Concurrency is a robustness measure of applications, and especially for any online ticket booking system. This is represented as ‘Concurrent Users’ stereotype in the UML activity diagram (Figure). We represent the threshold concurrency as the ‘Concurrent Users’ stereotype in the UML activity diagram (Figure). We implemented this by spawning a thread pool with the size based on stereotype. The server then handles the request by creating a queue. Requests are pulled from the queue and assigned a thread from the pool to process the request. In the implementation of this stereotype, we measure the latency of the request by noting the time right before the request is sent to the server also when the response is received. This difference between the two values gives the latency for that request. This latency for each request is measured and the queue time is appended to the log. The log of measurements is particularly useful to measure the overall system performance and compare it over time. If the average latency time increases, we can further get the average latency of each module/type of requests and find the bottlenecks. When handling the concurrency stereotype, the bottleneck is often caused by a pool of threads that is smaller than the demand on the server. Algorithm 2 shows the algorithm implemented to guarantee this NFR.

Pick seat time
Handling the situation where a user does not respond to a form in an appropriate amount of time is another important NFR for many systems. In the online ticket booking system, while the user is picking a seat, resources are locked from other users. The time locks are held needs to be minimized. We represent the form response time requirement as ‘Limited user time’ stereotype in the UML activity diagram (Figure). The stereotype is specific to the booking seat activity in the ticketing application domain. The user should be given a limited time to respond when selecting the seats. We implemented this by binding an event to the request submission of the client. When the user tries to book its ticket, the client application polls continuously to check if the request is sent during the specified time. When there is a delay of more than the time specified by the stereotype, then the user gets a message indicating that.

Figure5.1 Activity Diagram
ALGORITHMS:
Algorithm 1. Request Response Timeout
INPUT: HTML5 of request to Server, compeletion_timeOUTPUT: HTML5 of response with server
Send request to server Set timer to hit every second Set holdTimeLimit = 0 Do
Check if the response is received
While holdTimeLimit;compeletion_time or response received
If the response not received
Set response as”Expired Time” error
Set response to timeout error
Examine server of compeletion_time
End if
Return response
Algorithm 2. Concurrency
INPUT: HTML5 of request, compeletion_timeOUTPUT: HTML5 of data entered or HTML5 with error
Check if anythreads in pool
If no threads in pool Set timer to hit every second Set holdTimeLimit = 0 Do
Check if thread available in the pool
While holdTimeLimit;compeletion_timeor thread received
If not thread received
Set response to timeout error
ELSE
Execute request in thread
End if
Return response
Algorithm 3. User Response Timeout
INPUT: HTML5 of form to display,compeletion_timeOUTPUT: HTML5 of data entered or HTMl5 with error
Display form to user Set timer to hit every second Set compeletion_time= 0 Do
Check if response is received
While holdTimeLimit;compeletion_timeor response received
If response not received
Notify user of time expiration
Set response to timeout error
End if
Return response
NON-FUNCTIONAL REQUIREMENTS THAT AFFECT THE USER’S SELECTION TOWARDS THE CLOUD SERVICE PROVIDER:-
Security Feature:-Amazon Web Service Uses several Operational Security features likeVulnerability management, Malware prevention, Monitoring, Incident management, Server and Software Stack Security, Trusted Server Boot, Secured Service APIs and Authenticated Access, Data Encryption, Network Firewall Rule Maintenance.
Bottom line: the race for leadership among the leading public cloud companies in the race to dominate enterprise IT itself. There is no doubt it will be fought with the deepest investment possible in the years ahead.

Here are the cloud leaders we will profile:
Amazon Web Services
Microsoft Azure
IBM Cloud
Google Cloud Platform

R10
PUBLIC CLOUD PROVIDERS COMPARISON CHART
Please be aware when looking at this comparison of the leading public cloud providers: few of the services truly line up in an “apples-to-apples” similar style. There are several cloud providers which provide their services to us but we choose our provider on the basis of some important features. The chart below should help us to get started.

Table5.1
Requirements Google cloud Amazon Web Service IBM Microsoft Azure
Compute Bare Metal Servers Virtual Servers Power8 EC2 Compute Engine App Engine Virtual Machines
Storage Object Storage
Block Storage
File Storage
Mass Storage
Servers S3
EBS
EFS
Glacier Cloud Storage
Persistent Disk Blob Storage
Queue Storage
File Storage
Disk Storage
Database and Data warehouse Data Services
Big Data Hosting
MongoDB Hosting Aurora
RDS
DynamoDB
Redshift Cloud SQL
Cloud Bigtable
Cloud Spanner
Cloud Datastore Data Lake storage
SQL Database
Document DB
Table Storage
SQL Data
Warehouse
Container Containers Container Registry
Container Service Container Engine
Container Registry
Container Builder Container Registry
Container Service
Serverless/Faas OpenWhisk Lambda Cloud Function Functions
Analysis Analytics Service
Cloudera Hosting Athena
EMR
Kinesis BigQuery
Cloud Dataflow
Cloud Dataproc
Cloud Datalaba HDInsight
Stream Analysis
Artificial Intelligence Watson Lex
Polly
Recognition
Machine Learning Cloud machine
Learning Engine
Cloud Natural
Language API
Cloud Speech API
Cloud TransactionAPI
Cloud Vision API Machine Learning
Cognitive Services
Bot Services
Data Lake
Analytics
Internet Of Things Internet of Things IOT Platform Greengrass IOT Hub
Event Hub
Backup and Disaster Recovery Backup Backup Site Recovery
In- Memory Technology Elastic Cache Redis Cache
BASIC NON-FUNCTIONAL REQUIREMENTS COMPARISON OF LEADING CLOUD PROVIDERS
In the market, it is possible to find a great number of options to choose services in public cloud providers. As an example, More than 65 public clouds are registered by the monitoring service. Additionally, each public cloud provider offers diverse kind of services that cannot be directly compared with the services offered for other providers.

Just because our work is focused on Non-Functional Requirements we choose some leading cloud providers here, which are in the market and provides us their utilities:
Table5.2
Non Functional Requirement Google Cloud Platform Amazon Web Service IBM Microsoft Azure
Security features App Engine only Amazon Inspector, Secured Socket Layer(SSL) Certificates Secured Socket Layer(SSL) Certificates Azure Security Centre, Secured Socket Layer(SSL) Certificates
Web Firewall AWS Web Application Firewall Hardware Firewall Azure Application Gateway
i) Preventive measures Moderate Moderate Basic Basic
ii) Reactive measures Moderate Moderate Basic Basic
Reliability Good Good Good Average
Scalability Good Good Good Good
Support Good and chargeable Good
Compliance AWS Artifact Azure Security & Compliance
Availability (%) 99.95 99.95 99.95 99.95
Server Performance(Over a period) Excellent Good Good Excellent and consistent
Tools/ framework Python 2.7, Java 7, PHP, Node.js, and Ruby Amazon machine image (AMI), Java,  PHP,  Python, Ruby Ruby, PHP, JAVA, Python, Node.js, ASP.Net, PHP, ASP.NET, Node.js, Python
Database RDS MySQL(Cloud Sql), Big Query MySQL, MsSQL, Oracle Microsoft SQL Database
Data Warehousing Big Query Amazon Redshift dashDB for Analytics Azure SQL Data warehouse
Pricing $0.15 per cluster per hour, Nearline storage $0.01/GB/Month, $0.05/GB/Month Instances range from $0.113/hour to $6.82/hour, with volume discounts available for reserved instances. Storage prices range from $0.095/GB/month to $0.125/GB/month. Storage $0.0295 – $0.0354/GB/Month
Instances range from $0.02 to $1.60 per hour. Storage prices range from $0.07/GB/month to $0.12/GB/month, depending on level of redundancy.

Sample Average Pricing(4GB RAM,CPU 2 Core,100GB HD, Bandwidth 100GB, Linux) 69$ per month 62$ per month 115$ per month 99$ per month
Trial Offering 30-day trial New users can get 750 hours, 30GB storage and 15GB bandwidth for free with AWS’s Free Usage Tier. 30-day trial,
2 GB of runtime and container memory for free Free 30-day trial with a limit of up to $200 is available for new users.

Limitations A global fiber network, Analytics that crunch petabytes in minutes. AWS is a complex mixture of services. As your workflows become more complex and you use more services it can be difficult to project expenses. However, Amazon offers a monthly calculator to help estimate your costs. IBM improves a collaboration of essential data. Minimal, easy-to-use portal interface may not be so appealing to command line gurus.

Data Centres Location America, Asia, Europe US East, US West, South America, Europe/Middle East/Africa ; Asia Pacific USA, Netherland, INDIA, China, Germany, Australia, Canada US East, US Central , US West, Europe, East Asia, Southeast Asia
CDN Locations (Edge) North America, South America, Europe, Asia North America, South America,Europe/Middle East/Africa ; Asia Pacific Europe, Middle East and Africa, Japan, North America, Asia-Pacific US East, US North, US Central, US South central , US West, Europe, Asia Pacific / Rest of World
Acceptance By User(Rating) 4.5 , 177 reviews 4.4, 187 reviews 4.4, 49 reviews 4.4, 183 reviews
CHAPTER 6
CONCLUSION AND FUTURE SCOPE
In this work, we show that we can map NFR’s to many cloud-based applications using UML stereotypes. As we know that UML is the modeling diagram in which we show the process in the incremental and interactive way. We expand the NFR’s to design the model for Cloud-based application rather than the functional requirement. For each NFR, we model in UML and OCL utilizing stereotypes to apply the additionally required semantics. We focus on basic three NFR’s by which we gather the information about our end user’s transaction and response. Future work will enhance my work to include these NFR’s for modeling and convert the codes of NFR’s into cloud application tools and also enhances the type of NFR’s for other upcoming methodologies. By this, we can develop the quality of these methodologies. Our work enhances the performance and characteristics of applications. This will also reduce the error rate.
REFERENCE
R1 Elizabeth Hull, Ken Jackson and Jeremy Dick June 2004 Requirements Engineering Second Edition
R2 Goal-Oriented Requirements Engineering: A Guided Tour, Axel van Lamsweerde, De’partementd’lngbnierieInformatiqueUniversite’ catholique de Louvai, B-1348 Louvain-la-Neuve (Belgium)
R3 © 2006 Tony Gorschek, Department of Systems and Software Engineering
School of Engineering, Publisher: Blekinge Institute of Technology, Printed by Kaserntryckeriet, Karlskrona, Sweden 2006, ISBN 91-7295-081-1
R4 Mapping Non-Functional Requirements to Cloud, Applications David Villegas and S. MasoudSadjadi, School of Computing and Information Sciences, Florida International University, Miami, Florida; {dvill013, sadjadi}@cs.fiu.edu
R5 GrzegorzLoniewski, “OpenUP/MDRE: A Model-Driven Requirements Engineering Approach for Health-Care Systems”, Master in Software Engineering, Formal Methods and
Information Systems, Valencia 2010
R6 C. J. Pavlovski and J. Zou, “Non-functional requirements in business process modeling,” Proceedings of the Fifth on Asia-Pacific Conference on Conceptual Modelling, vol. 79, 2008.

R7 M. Glinz, “Rethinking the Notion of Non-Functional Requirements,” Third World Congress for Software Quality, Munich, Germany, 2005.

R8 Alexander, I, “Misuse Cases Help to Elicit Non-Functional Requirements,” Computing ; Control Engineering Journal, 14, 40-45, 2003.

R9 R. Ajith and A. Sheth, “Semantic Modeling for Cloud Computing, Part I,” Computing, vol. May/June, pp. 81-83, 2010.

R10 https://www.rightscale.com/lp/state-of-the-cloud

Post Author: admin