SlideShare uma empresa Scribd logo
1 de 54
Agile methodology in
cloud computing
Saleem M. shoublaq & ahmed M. abed
Main points
• Software Engineering in Cloud
• Agile Introduction
• Agile Methodologies
• Agile cloud development
• Requirement in agile
• Proposed methodology
• Proposed methodology phases
Software Engineering in Cloud
• Cloud computing benefits such as agility, elasticity, availability, and cost efficiency require
software engineered for cloud platforms.
• Many open issues surround the use of software services from the cloud:
• Software requirements engineering for cloud services
• Software architecting and design for cloud services
• testing cloud services
• ensuring quality attributes
• Development methods and tools
• Service platforms and composition approaches
• Project management approaches
• Cloud deployment options and justifications
Software Engineering in Cloud
• Requirements:
• Gathering requirements for cloud services is a rich research area that hasn’t yet received
much attention.
• Besides the traditional requirements engineering challenges, this task has unique
challenges in cloud projects.
• How does an organization engineer its service requirements in terms of security,
privacy, and performance dimensions?
Software Engineering in Cloud
• Software architecting:
• One of the key values of the cloud infrastructure is its ability to serve many millions of
customers around the world at any point in time.
• Typical cloud platforms exhibit several unique features, including large-scale replication
strategies, highly parallel queries, geographically distributed components, and disaster
recovery.
• Cloud platforms also provide services for mobile device integration and hybrid cloud
coupling.
Software Engineering in Cloud
• Testing:
• Cloud computing platforms are largely opaque entities, meaning that there’s little
visibility into how runtime components work.
• Virtualization/virtual machine layers, middleware, multitenancy, and high-availability
support further complicate this picture.
Software Engineering in Cloud
• Quality:
• In using cloud services, consumers cede control—they have less visibility into what
happens at runtime and less ability to fix things themselves should anything go wrong.
• Performance measurements, security conformance evaluations, and assessment
reliability determinations are much more difficult in the cloud.
Software Engineering in Cloud
• Development Methods
• In reality, developers must understand both worlds (IaaS and PaaS) in order to figure
out the best layered design.
• different platforms provide their own development environment and tools for
engineering services in their specific cloud.
Software Engineering in Cloud
• Composition Approaches
• Not all traditional SOA techniques are applicable to the cloud environment.
• A major difference is that a SOA design for the cloud generally can’t start entirely from
scratch.
• Typically, cloud platforms need to establish ecosystems of collaborating services, some
existent and some new.
Software Engineering in Cloud
• Project Management
• How is SLA managed?
• How much visibility is there into the running of a business service inside a cloud?
• The use of cloud computing could have a major impact on an enterprise’s business
architecture, especially when delivering SaaS; it will also alter the roles and
responsibilities of various IT professionals.
Software Engineering in Cloud
• Cloud Deployment Strategy
• Deploying and migrating software applications to the cloud involves many
combinations of options that vary widely in their characteristics and performances.
• First, it’s often impossible to acquire all the infrastructure resources required to evaluate
the performance and cost implications.
• Second, cloud computing applications are specific to certain computing environments
and subject to different deployment models, such as IaaS, PaaS, and SaaS.
Agile Introduction
• Agile software development is a philosophy.
• Agile methodology based on iteration.
• Small teams work together with stakeholders to define quick prototypes.
• Teams define requirements for the iteration.
• Team develops the code, and defines and runs integrated test scripts.
• The users verify the results.
Agile Introduction
• Verification occurs much earlier in the development process than it would
with waterfall.
• The agile process follows the software development life cycle.
• includes requirements gathering, analysis, design, coding, testing and delivers
partially implemented software and waits for the customer feedback.
Agile Methodologies
• XP (Extreme Programming):
• It concentrates on the development rather than managerial aspects of software projects.
• XP was designed so that organizations would be free to adopt all or part of the
methodology.
Extreme Programming
• XP development:
• XP projects start with a release planning phase, followed by several iterations, each of
which concludes with user acceptance testing.
• When the product has enough features to satisfy users, the team terminates iteration
and releases the software.
Extreme Programming
• XP Rules and Concepts:
• Integrate often.
• Project velocity.
• Pair programming.
• User story.
Agile Methodologies
• Scrum:
• Scrum for software development came out of the rapid prototyping community.
• Scrum methodology includes both managerial and development processes.
• The Scrum development process concentrates on managing sprints.
• During development, the team determines the changes necessary to implement a backlog
item.
• The team then writes the code, tests it, and documents the changes.
• Finally, the team consolidates data from the review to update the changes as necessary.
Scrum
• Scrum concepts:
• Burndown chart.
• Product backlog.
• ScrumMaster.
• Sprint backlog.
Agile Methodologies
• Feature Driven Development :
• The key advantage of this method is to design the domain of the software to be
produced before development.
• The method starts with collecting the requirements from the users and building up the
overall model of the project.
• Next step is to make a list of features which are the client-valued functions.
• Next step is to make a plan for developing the features.
• Last step is modeling iteration in which first UML modeling is done for each feature
Agile VS Other Methodology
Agile VS Other Methodology
Agile Cloud Computing
• The topics at the intersection of agile development and cloud computing are
unique for a few reasons:
• Cloud is an Agile Accelerator
• Enables Business Agility
• Reducing IT Costs
• Improving Customer Experiences
• Growing the Economy
Agile Cloud Computing
• Characteristics of agile:
• Iterative.
• Modularity.
• Time Boxing.
• Parsimony.
• Incremental.
• Adaptive.
• Convergent.
• Collaborative.
• People Oriented.
Agile Cloud Computing
Advantages:
• Adaptive to the changing
environment.
• Ensures customer satisfaction
• Least documentation
• Reduces risks of development
Disadvantages:
• Customer interaction is the key factor of
developing successful software.
• Lack of documentation
• Time consuming and wastage of resources
• More helpful for management than
developer
Requirement in agile
• The conventional approach to the RE process focuses on gathering all the
requirements.
• Requirements gathering and specification efforts consume long time and
leave no room to accommodate changing requirements later in the
development cycle.
Requirement in agile
• Some of the issues faced by organizations involved in up front requirements
gathering and specification efforts are:
• Requirements change over a period of time due to changes in customer and user needs.
• Rapidly changing business environments can cause requirements to become obsolete before
project completion.
• Clear specification of activities in the agile requirements engineering process is missing
• This approach toward requirements usually results in several architecture-related issues
Requirement in agile
• The requirements issues when using agile approaches:
• Missing Requirements Engineering Activities
• Missing Requirements Interface
• Non-Functional Requirements Elicitation
Requirement in agile
• The most commonly observed architecture-related difficulties when using
agile approaches:
• Incomplete Requirements Elicitation
• Incorrect Prioritization of User Stories
• Lack of Focus on Non Functional Requirements
Proposed Methodology
• The methodology was motivated by the lack of structure to the agile
requirements engineering process with minimal impact on agility.
• It describes in detail the phases in the agile requirements engineering process
and suggests techniques that can be used to perform these phases.
• The methodology describes not only the requirements engineering process
activities but the complete development process as well
Proposed Methodology Phases
• The methodology consists of eight phases. The first six phases (Inception,
Feature List Identification, Feature Grouping, Group Prioritization, NFRs
Identification, and Architecture Envisioning) cover the requirements and
architecture envisioning part while the two remaining phases (Task
Identification and Task Development) cover the requirements development
part.
Proposed Methodology Phases
Proposed Methodology Phases
• First Phase: Inspection:
• The inception phase is the first phase of the proposed methodology and is designed to help
the stakeholders establish relationship.
• It is essentially a meeting or a series of meetings where all the stakeholders participate.
• During this phase, the customer is informed about the proposed methodology main
phases, activities, and techniques.
• Goals for the project are formed and a vision statement is created that defines the entire
project
• The project team is assembled and the team members are empowered by having roles and
responsibilities assigned to them.
Inspection Activities
• Assign Roles and Define Responsibilities
• System Users Identification
• Proposed Methodology Explanation
• Establish Product Concept Statement
Inspection Output
• It would answer the following questions:
• Who are the product users?
• What will the product do?
• What problem(s) will the product solve?
• The high-level mission statement serves as the input to the features list
identification phase. The stakeholders determine the expected functionality
of the system from this statement.
Proposed Methodology Phases
• Second Phase: Feature List Identification:
• The feature list identification is the second phase of the proposed methodology where
the system features are identified.
• A feature can be defined as the smallest set of functionality that provides business value
to the customer.
• The stakeholders identify the expected functionality from the high level product
mission statement.
• Features should be identified upfront in order to be informed about the scope of the
project and plan for the release cycles.
Feature List Identification Activities
• Preparation
• Elicitation
• Validation and Estimation
• Prioritization
Feature List Identification Output
• The output of the feature list identification is a prioritized feature list which
contains the prioritized features ordered by their priorities.
• The output of this phase will be the input to the feature grouping phase.
Proposed Methodology Phases
• Third Phase: Feature Grouping:
• The identified features in the feature list identification phase are collected into groups.
The groups are set of related features that serve a business area.
• The groups are validated and the time of their completion is initially estimated.
• Only one group or a subset of the identified groups is chosen for development during a
release.
Feature Grouping
• Feature Grouping Activities
• Preparation
• Grouping
• Validation and Estimation
• Feature Grouping Output:
• The output of this phase is feature groups that serve as the input to the group
prioritization phase.
Proposed Methodology Phases
• Fourth Phase: Group prioritization:
• The team determines the dependencies if any among the groups identified in the
feature grouping phase and prioritize the groups accordingly.
• The team also considers the customer and user preferences
• The team and customers may have different sequences in which they would like to
implement the groups.
• If there is a conflict, the customer is given preference.
Group prioritization
• Group prioritization Activities:
• Preparation
• Prioritization
• Group prioritization Output
• The output of this phase is prioritized stack list
Proposed Methodology Phases
• Fifth Phase: Non-functional Requirement Identification:
• The phase aims to identify the system non functional requirements (NFRs).
• The high level product mission statement created during the inception phase serves as
the input to the non functional requirements identification phase.
• The stakeholders with the team identify the NFRs from the high level product mission
statement.
• The identified NFRs are validated and prioritized based on their value to the customer
and stored in a prioritized NFRs list stack
Non-functional Requirement Identification
• Non-functional Requirement Identification Activities:
• Elicitation
• Validation
• Prioritization
• Non-functional Requirement Identification Output:
• The output of the non functional requirements identification is a prioritized NFRs list
which contains the prioritized NFRs ordered by their priorities.
• The output of this phase will be the input to the architecture envisioning phase.
Proposed Methodology Phases
• Sixth Phase: Architecture Envisioning:
• The list of features identified in the feature list identification phase, the user stories
identified in the task development phase, and the list of non-functional requirements
identified in the non-functional requirements identification phase serve as the input to
the architecture envisioning.
• The goal of the architecture envisioning phase is to try to identify an architecture that
has a good chance of working.
• The envisioned architecture presents the system technical infrastructure and the major
business entities and their relationships to explore potential architecture-level
requirements.
Architecture Envisioning
• The technology stack diagram or deployment diagram are useful when doing
initial architectural modeling because they depict the major software and
hardware components and how they interact at a high level.
Proposed Methodology Phases
• Seventh Phase: Task Identification:
• The prioritized groups identified in the group prioritization phase serve as the input to
the task identification phase.
• Each feature in the selected group is decomposed into stories.
• Stories are descriptions of user- or customer valued functionality.
• Stories are defined at a lower level of abstraction when compared to the features.
• Each story then is decomposed into tasks by the development team.
Task Identification
• Task Identification Activities:
• Preparation
• Stories Identification
• Stories Prioritization
• Tasks Identification
• Validation and Estimation
Proposed Methodology Phases
• Eighth Phase: Task Development:
• The tasks created during the tasks identification phase are developed in this phase.
• TDD is an agile practice and is a widely used approach to writing code.
• The proposed methodology reflects the agile philosophy and hence, we suggest using
TDD and Customer Acceptance Testing as activities during this phase.
• The customers and developers then test the available system against the acceptance
criteria created previously.
Task Development
• TDD is a combination of Test First development and refactoring.
• Test First Development is a development technique where developers create
a unit test first for a story or task before writing code.
• Refactoring is an agile practice which deals with changing the design or
structure of the code without changing its result.
• Refactoring involves rewriting the code to improve its structure, while
explicitly preserving its behavior.
Task Development
• Using TDD, developers, create tests first, then write code and then refactor
the code in order to improve its structure.
• After refactoring, errors if any in the code are corrected. The developers do
not write code before a test fails.
• Task Development Activities:
• Test Driven Development (TDD)
• Customer Acceptance Tests
Real Example
• Salesforce use agile methodology in cloud computing.
• Reference:
• Agile Development Meets Cloud Computing for Extraordinary Results at
Salesforce.com
• In the paper Salesforce discus why use agile in cloud with details.
• We talk about this in last lecture.
Conclusion
• In this report we have discussed the software development life cycle models with
cloud.
• Characteristics of agile process, and spiral model, methodologies of agile process,
advantages and disadvantages.
• Agile methods in cloud, does requirements engineering in iterations: the
requirements are defined in detail only when they are implemented.
• Agile methods, however, have a lack of focus on certain parts of what is considered
as important in requirements engineering.
• Proposed Methodology to solve this problem.
References
• Grundy J., Kaefer G., Keong J., Liu A. (2012), Software Engineering for the Cloud. The IEEE
Computer Society
• Sharma S., Sarkar D., Gupta D. (2012), Agile Processes and Methodologies: A Conceptual Study.
International Journal on Computer Science and Engineering , Vol. 4 No. 05
• Helmy W., Kamel A. and Hegazy O. (2012), Requirements Engineering Methodology in Agile
Environment. International Journal of Computer Science Issues, Vol. 9, Issue 5, No 3.
• Sales Force Company . (2012), Agile Development Meets Cloud Computing for Extraordinary
Results at Salesforce.com.
• Serena.com (2007), An Introduction to Agile Software Development
• Alistair Cockburn. (2001), Agile Software Development, (3rd ed.)

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Agile QA Process
Agile QA ProcessAgile QA Process
Agile QA Process
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
 
Software quality
Software qualitySoftware quality
Software quality
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4  SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4
 
Iterative model
Iterative modelIterative model
Iterative model
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Planning in Software Projects
Planning in Software ProjectsPlanning in Software Projects
Planning in Software Projects
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Service Level Terminology : SLA ,SLO & SLI
Service Level Terminology : SLA ,SLO & SLIService Level Terminology : SLA ,SLO & SLI
Service Level Terminology : SLA ,SLO & SLI
 
Quality Attributes Workshop
Quality Attributes WorkshopQuality Attributes Workshop
Quality Attributes Workshop
 
What is the psychology of testing
What is the psychology of testingWhat is the psychology of testing
What is the psychology of testing
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
DevOps seminar ppt
DevOps seminar ppt DevOps seminar ppt
DevOps seminar ppt
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 

Destaque

Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development LifecycleSuhas Kelkar
 
Cloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and BenefitsCloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and BenefitsGuillaume Berche
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologyPayod Soni
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile MethodologyHaresh Karkar
 
Implementing agile iterative project delivery approach and achieving business...
Implementing agile iterative project delivery approach and achieving business...Implementing agile iterative project delivery approach and achieving business...
Implementing agile iterative project delivery approach and achieving business...Alan McSweeney
 
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...George Baryannis
 
The great collision of open source, cloud technologies, with agile, creative ...
The great collision of open source, cloud technologies, with agile, creative ...The great collision of open source, cloud technologies, with agile, creative ...
The great collision of open source, cloud technologies, with agile, creative ...Reading Room
 
Cloud for agile_sw_projects-final
Cloud for agile_sw_projects-finalCloud for agile_sw_projects-final
Cloud for agile_sw_projects-finalAlain Delafosse
 
Agile Development in the Cloud - AWS India Summit 2012
Agile Development in the Cloud - AWS India Summit 2012Agile Development in the Cloud - AWS India Summit 2012
Agile Development in the Cloud - AWS India Summit 2012Amazon Web Services
 
Building the Agile Enterprise - Cloud Computing
Building the Agile Enterprise - Cloud ComputingBuilding the Agile Enterprise - Cloud Computing
Building the Agile Enterprise - Cloud ComputingSrinivas Koushik
 
Son Dakika Namazim
Son Dakika NamazimSon Dakika Namazim
Son Dakika Namazimttnet
 
Vbs mobile app features
Vbs mobile app featuresVbs mobile app features
Vbs mobile app featuresDFjelsted
 
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Laszlo Szalvay
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboBosnia Agile
 
Agile requirements engineering
Agile requirements engineeringAgile requirements engineering
Agile requirements engineeringTestCampRO
 
Guiding Principles & Methodology for Cloud Computing Adoption
Guiding Principles & Methodology for Cloud Computing AdoptionGuiding Principles & Methodology for Cloud Computing Adoption
Guiding Principles & Methodology for Cloud Computing AdoptionKumar Arikrishnan
 
Trust in the Digital Single Market - Cloud Expo 2017
Trust in the Digital Single Market - Cloud Expo 2017Trust in the Digital Single Market - Cloud Expo 2017
Trust in the Digital Single Market - Cloud Expo 2017CloudWATCH Consortium
 
GDPR clinic - CloudWATCH at Cloud Security Expo 2017
GDPR clinic - CloudWATCH at Cloud Security Expo 2017GDPR clinic - CloudWATCH at Cloud Security Expo 2017
GDPR clinic - CloudWATCH at Cloud Security Expo 2017CloudWATCH Consortium
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environmentsunil1993
 

Destaque (20)

Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
Cloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and BenefitsCloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and Benefits
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile Methodology
 
Cloud, agile
Cloud, agileCloud, agile
Cloud, agile
 
Implementing agile iterative project delivery approach and achieving business...
Implementing agile iterative project delivery approach and achieving business...Implementing agile iterative project delivery approach and achieving business...
Implementing agile iterative project delivery approach and achieving business...
 
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...
Lifecycle Management of Service-based Applications on Multi-Clouds: A Resear...
 
The great collision of open source, cloud technologies, with agile, creative ...
The great collision of open source, cloud technologies, with agile, creative ...The great collision of open source, cloud technologies, with agile, creative ...
The great collision of open source, cloud technologies, with agile, creative ...
 
Cloud for agile_sw_projects-final
Cloud for agile_sw_projects-finalCloud for agile_sw_projects-final
Cloud for agile_sw_projects-final
 
Agile Development in the Cloud - AWS India Summit 2012
Agile Development in the Cloud - AWS India Summit 2012Agile Development in the Cloud - AWS India Summit 2012
Agile Development in the Cloud - AWS India Summit 2012
 
Building the Agile Enterprise - Cloud Computing
Building the Agile Enterprise - Cloud ComputingBuilding the Agile Enterprise - Cloud Computing
Building the Agile Enterprise - Cloud Computing
 
Son Dakika Namazim
Son Dakika NamazimSon Dakika Namazim
Son Dakika Namazim
 
Vbs mobile app features
Vbs mobile app featuresVbs mobile app features
Vbs mobile app features
 
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
 
Agile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim CorboAgile Requirements Engineering by Abdulkerim Corbo
Agile Requirements Engineering by Abdulkerim Corbo
 
Agile requirements engineering
Agile requirements engineeringAgile requirements engineering
Agile requirements engineering
 
Guiding Principles & Methodology for Cloud Computing Adoption
Guiding Principles & Methodology for Cloud Computing AdoptionGuiding Principles & Methodology for Cloud Computing Adoption
Guiding Principles & Methodology for Cloud Computing Adoption
 
Trust in the Digital Single Market - Cloud Expo 2017
Trust in the Digital Single Market - Cloud Expo 2017Trust in the Digital Single Market - Cloud Expo 2017
Trust in the Digital Single Market - Cloud Expo 2017
 
GDPR clinic - CloudWATCH at Cloud Security Expo 2017
GDPR clinic - CloudWATCH at Cloud Security Expo 2017GDPR clinic - CloudWATCH at Cloud Security Expo 2017
GDPR clinic - CloudWATCH at Cloud Security Expo 2017
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environment
 

Semelhante a Agile methodology in cloud computing

ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimationssuserb7c8b8
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
 
Selection of methodology - System Analysis and Design
Selection of methodology - System Analysis and Design  Selection of methodology - System Analysis and Design
Selection of methodology - System Analysis and Design Sutharshan Sharma
 
Soft engg introduction and process models
Soft engg introduction and process modelsSoft engg introduction and process models
Soft engg introduction and process modelssnehalkulkarni74
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.pptNyamburaKinyua
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3Azhar Shaik
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxAbcXyz302255
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleRIKSOF
 

Semelhante a Agile methodology in cloud computing (20)

ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
Selection of methodology - System Analysis and Design
Selection of methodology - System Analysis and Design  Selection of methodology - System Analysis and Design
Selection of methodology - System Analysis and Design
 
Soft engg introduction and process models
Soft engg introduction and process modelsSoft engg introduction and process models
Soft engg introduction and process models
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
S.E Lec #1.pptx
S.E Lec #1.pptxS.E Lec #1.pptx
S.E Lec #1.pptx
 
Ppt nardeep
Ppt nardeepPpt nardeep
Ppt nardeep
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptx
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
 

Último

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Último (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Agile methodology in cloud computing

  • 1. Agile methodology in cloud computing Saleem M. shoublaq & ahmed M. abed
  • 2. Main points • Software Engineering in Cloud • Agile Introduction • Agile Methodologies • Agile cloud development • Requirement in agile • Proposed methodology • Proposed methodology phases
  • 3. Software Engineering in Cloud • Cloud computing benefits such as agility, elasticity, availability, and cost efficiency require software engineered for cloud platforms. • Many open issues surround the use of software services from the cloud: • Software requirements engineering for cloud services • Software architecting and design for cloud services • testing cloud services • ensuring quality attributes • Development methods and tools • Service platforms and composition approaches • Project management approaches • Cloud deployment options and justifications
  • 4. Software Engineering in Cloud • Requirements: • Gathering requirements for cloud services is a rich research area that hasn’t yet received much attention. • Besides the traditional requirements engineering challenges, this task has unique challenges in cloud projects. • How does an organization engineer its service requirements in terms of security, privacy, and performance dimensions?
  • 5. Software Engineering in Cloud • Software architecting: • One of the key values of the cloud infrastructure is its ability to serve many millions of customers around the world at any point in time. • Typical cloud platforms exhibit several unique features, including large-scale replication strategies, highly parallel queries, geographically distributed components, and disaster recovery. • Cloud platforms also provide services for mobile device integration and hybrid cloud coupling.
  • 6. Software Engineering in Cloud • Testing: • Cloud computing platforms are largely opaque entities, meaning that there’s little visibility into how runtime components work. • Virtualization/virtual machine layers, middleware, multitenancy, and high-availability support further complicate this picture.
  • 7. Software Engineering in Cloud • Quality: • In using cloud services, consumers cede control—they have less visibility into what happens at runtime and less ability to fix things themselves should anything go wrong. • Performance measurements, security conformance evaluations, and assessment reliability determinations are much more difficult in the cloud.
  • 8. Software Engineering in Cloud • Development Methods • In reality, developers must understand both worlds (IaaS and PaaS) in order to figure out the best layered design. • different platforms provide their own development environment and tools for engineering services in their specific cloud.
  • 9. Software Engineering in Cloud • Composition Approaches • Not all traditional SOA techniques are applicable to the cloud environment. • A major difference is that a SOA design for the cloud generally can’t start entirely from scratch. • Typically, cloud platforms need to establish ecosystems of collaborating services, some existent and some new.
  • 10. Software Engineering in Cloud • Project Management • How is SLA managed? • How much visibility is there into the running of a business service inside a cloud? • The use of cloud computing could have a major impact on an enterprise’s business architecture, especially when delivering SaaS; it will also alter the roles and responsibilities of various IT professionals.
  • 11. Software Engineering in Cloud • Cloud Deployment Strategy • Deploying and migrating software applications to the cloud involves many combinations of options that vary widely in their characteristics and performances. • First, it’s often impossible to acquire all the infrastructure resources required to evaluate the performance and cost implications. • Second, cloud computing applications are specific to certain computing environments and subject to different deployment models, such as IaaS, PaaS, and SaaS.
  • 12. Agile Introduction • Agile software development is a philosophy. • Agile methodology based on iteration. • Small teams work together with stakeholders to define quick prototypes. • Teams define requirements for the iteration. • Team develops the code, and defines and runs integrated test scripts. • The users verify the results.
  • 13. Agile Introduction • Verification occurs much earlier in the development process than it would with waterfall. • The agile process follows the software development life cycle. • includes requirements gathering, analysis, design, coding, testing and delivers partially implemented software and waits for the customer feedback.
  • 14.
  • 15. Agile Methodologies • XP (Extreme Programming): • It concentrates on the development rather than managerial aspects of software projects. • XP was designed so that organizations would be free to adopt all or part of the methodology.
  • 16. Extreme Programming • XP development: • XP projects start with a release planning phase, followed by several iterations, each of which concludes with user acceptance testing. • When the product has enough features to satisfy users, the team terminates iteration and releases the software.
  • 17. Extreme Programming • XP Rules and Concepts: • Integrate often. • Project velocity. • Pair programming. • User story.
  • 18. Agile Methodologies • Scrum: • Scrum for software development came out of the rapid prototyping community. • Scrum methodology includes both managerial and development processes. • The Scrum development process concentrates on managing sprints. • During development, the team determines the changes necessary to implement a backlog item. • The team then writes the code, tests it, and documents the changes. • Finally, the team consolidates data from the review to update the changes as necessary.
  • 19. Scrum • Scrum concepts: • Burndown chart. • Product backlog. • ScrumMaster. • Sprint backlog.
  • 20. Agile Methodologies • Feature Driven Development : • The key advantage of this method is to design the domain of the software to be produced before development. • The method starts with collecting the requirements from the users and building up the overall model of the project. • Next step is to make a list of features which are the client-valued functions. • Next step is to make a plan for developing the features. • Last step is modeling iteration in which first UML modeling is done for each feature
  • 21. Agile VS Other Methodology
  • 22. Agile VS Other Methodology
  • 23. Agile Cloud Computing • The topics at the intersection of agile development and cloud computing are unique for a few reasons: • Cloud is an Agile Accelerator • Enables Business Agility • Reducing IT Costs • Improving Customer Experiences • Growing the Economy
  • 24. Agile Cloud Computing • Characteristics of agile: • Iterative. • Modularity. • Time Boxing. • Parsimony. • Incremental. • Adaptive. • Convergent. • Collaborative. • People Oriented.
  • 25. Agile Cloud Computing Advantages: • Adaptive to the changing environment. • Ensures customer satisfaction • Least documentation • Reduces risks of development Disadvantages: • Customer interaction is the key factor of developing successful software. • Lack of documentation • Time consuming and wastage of resources • More helpful for management than developer
  • 26. Requirement in agile • The conventional approach to the RE process focuses on gathering all the requirements. • Requirements gathering and specification efforts consume long time and leave no room to accommodate changing requirements later in the development cycle.
  • 27. Requirement in agile • Some of the issues faced by organizations involved in up front requirements gathering and specification efforts are: • Requirements change over a period of time due to changes in customer and user needs. • Rapidly changing business environments can cause requirements to become obsolete before project completion. • Clear specification of activities in the agile requirements engineering process is missing • This approach toward requirements usually results in several architecture-related issues
  • 28. Requirement in agile • The requirements issues when using agile approaches: • Missing Requirements Engineering Activities • Missing Requirements Interface • Non-Functional Requirements Elicitation
  • 29. Requirement in agile • The most commonly observed architecture-related difficulties when using agile approaches: • Incomplete Requirements Elicitation • Incorrect Prioritization of User Stories • Lack of Focus on Non Functional Requirements
  • 30. Proposed Methodology • The methodology was motivated by the lack of structure to the agile requirements engineering process with minimal impact on agility. • It describes in detail the phases in the agile requirements engineering process and suggests techniques that can be used to perform these phases. • The methodology describes not only the requirements engineering process activities but the complete development process as well
  • 31. Proposed Methodology Phases • The methodology consists of eight phases. The first six phases (Inception, Feature List Identification, Feature Grouping, Group Prioritization, NFRs Identification, and Architecture Envisioning) cover the requirements and architecture envisioning part while the two remaining phases (Task Identification and Task Development) cover the requirements development part.
  • 33. Proposed Methodology Phases • First Phase: Inspection: • The inception phase is the first phase of the proposed methodology and is designed to help the stakeholders establish relationship. • It is essentially a meeting or a series of meetings where all the stakeholders participate. • During this phase, the customer is informed about the proposed methodology main phases, activities, and techniques. • Goals for the project are formed and a vision statement is created that defines the entire project • The project team is assembled and the team members are empowered by having roles and responsibilities assigned to them.
  • 34. Inspection Activities • Assign Roles and Define Responsibilities • System Users Identification • Proposed Methodology Explanation • Establish Product Concept Statement
  • 35. Inspection Output • It would answer the following questions: • Who are the product users? • What will the product do? • What problem(s) will the product solve? • The high-level mission statement serves as the input to the features list identification phase. The stakeholders determine the expected functionality of the system from this statement.
  • 36. Proposed Methodology Phases • Second Phase: Feature List Identification: • The feature list identification is the second phase of the proposed methodology where the system features are identified. • A feature can be defined as the smallest set of functionality that provides business value to the customer. • The stakeholders identify the expected functionality from the high level product mission statement. • Features should be identified upfront in order to be informed about the scope of the project and plan for the release cycles.
  • 37. Feature List Identification Activities • Preparation • Elicitation • Validation and Estimation • Prioritization
  • 38. Feature List Identification Output • The output of the feature list identification is a prioritized feature list which contains the prioritized features ordered by their priorities. • The output of this phase will be the input to the feature grouping phase.
  • 39. Proposed Methodology Phases • Third Phase: Feature Grouping: • The identified features in the feature list identification phase are collected into groups. The groups are set of related features that serve a business area. • The groups are validated and the time of their completion is initially estimated. • Only one group or a subset of the identified groups is chosen for development during a release.
  • 40. Feature Grouping • Feature Grouping Activities • Preparation • Grouping • Validation and Estimation • Feature Grouping Output: • The output of this phase is feature groups that serve as the input to the group prioritization phase.
  • 41. Proposed Methodology Phases • Fourth Phase: Group prioritization: • The team determines the dependencies if any among the groups identified in the feature grouping phase and prioritize the groups accordingly. • The team also considers the customer and user preferences • The team and customers may have different sequences in which they would like to implement the groups. • If there is a conflict, the customer is given preference.
  • 42. Group prioritization • Group prioritization Activities: • Preparation • Prioritization • Group prioritization Output • The output of this phase is prioritized stack list
  • 43. Proposed Methodology Phases • Fifth Phase: Non-functional Requirement Identification: • The phase aims to identify the system non functional requirements (NFRs). • The high level product mission statement created during the inception phase serves as the input to the non functional requirements identification phase. • The stakeholders with the team identify the NFRs from the high level product mission statement. • The identified NFRs are validated and prioritized based on their value to the customer and stored in a prioritized NFRs list stack
  • 44. Non-functional Requirement Identification • Non-functional Requirement Identification Activities: • Elicitation • Validation • Prioritization • Non-functional Requirement Identification Output: • The output of the non functional requirements identification is a prioritized NFRs list which contains the prioritized NFRs ordered by their priorities. • The output of this phase will be the input to the architecture envisioning phase.
  • 45. Proposed Methodology Phases • Sixth Phase: Architecture Envisioning: • The list of features identified in the feature list identification phase, the user stories identified in the task development phase, and the list of non-functional requirements identified in the non-functional requirements identification phase serve as the input to the architecture envisioning. • The goal of the architecture envisioning phase is to try to identify an architecture that has a good chance of working. • The envisioned architecture presents the system technical infrastructure and the major business entities and their relationships to explore potential architecture-level requirements.
  • 46. Architecture Envisioning • The technology stack diagram or deployment diagram are useful when doing initial architectural modeling because they depict the major software and hardware components and how they interact at a high level.
  • 47. Proposed Methodology Phases • Seventh Phase: Task Identification: • The prioritized groups identified in the group prioritization phase serve as the input to the task identification phase. • Each feature in the selected group is decomposed into stories. • Stories are descriptions of user- or customer valued functionality. • Stories are defined at a lower level of abstraction when compared to the features. • Each story then is decomposed into tasks by the development team.
  • 48. Task Identification • Task Identification Activities: • Preparation • Stories Identification • Stories Prioritization • Tasks Identification • Validation and Estimation
  • 49. Proposed Methodology Phases • Eighth Phase: Task Development: • The tasks created during the tasks identification phase are developed in this phase. • TDD is an agile practice and is a widely used approach to writing code. • The proposed methodology reflects the agile philosophy and hence, we suggest using TDD and Customer Acceptance Testing as activities during this phase. • The customers and developers then test the available system against the acceptance criteria created previously.
  • 50. Task Development • TDD is a combination of Test First development and refactoring. • Test First Development is a development technique where developers create a unit test first for a story or task before writing code. • Refactoring is an agile practice which deals with changing the design or structure of the code without changing its result. • Refactoring involves rewriting the code to improve its structure, while explicitly preserving its behavior.
  • 51. Task Development • Using TDD, developers, create tests first, then write code and then refactor the code in order to improve its structure. • After refactoring, errors if any in the code are corrected. The developers do not write code before a test fails. • Task Development Activities: • Test Driven Development (TDD) • Customer Acceptance Tests
  • 52. Real Example • Salesforce use agile methodology in cloud computing. • Reference: • Agile Development Meets Cloud Computing for Extraordinary Results at Salesforce.com • In the paper Salesforce discus why use agile in cloud with details. • We talk about this in last lecture.
  • 53. Conclusion • In this report we have discussed the software development life cycle models with cloud. • Characteristics of agile process, and spiral model, methodologies of agile process, advantages and disadvantages. • Agile methods in cloud, does requirements engineering in iterations: the requirements are defined in detail only when they are implemented. • Agile methods, however, have a lack of focus on certain parts of what is considered as important in requirements engineering. • Proposed Methodology to solve this problem.
  • 54. References • Grundy J., Kaefer G., Keong J., Liu A. (2012), Software Engineering for the Cloud. The IEEE Computer Society • Sharma S., Sarkar D., Gupta D. (2012), Agile Processes and Methodologies: A Conceptual Study. International Journal on Computer Science and Engineering , Vol. 4 No. 05 • Helmy W., Kamel A. and Hegazy O. (2012), Requirements Engineering Methodology in Agile Environment. International Journal of Computer Science Issues, Vol. 9, Issue 5, No 3. • Sales Force Company . (2012), Agile Development Meets Cloud Computing for Extraordinary Results at Salesforce.com. • Serena.com (2007), An Introduction to Agile Software Development • Alistair Cockburn. (2001), Agile Software Development, (3rd ed.)