Presented by: Debarun das (DED59)

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Systems Analysis and Design in a Changing World, 6th Edition
Agile development By Sam Chamberlain. First a bit of history..
Software Life Cycles ECE 417/617: Elements of Software Engineering
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Software engineering Process models Pavel Agejkin.
Chapter 1 The Systems Development Environment
Software Development Process
1 CMPT 275 Software Engineering Software life cycle.
Configuration Issues and Efforts for Configuring Agile Approaches-Situational based Method Engineering Rinky Dwivedi, Computer Engineering Department Delhi.
Chapter 4 Agile Development
Current Trends in Systems Develpment
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Suitability and Contribution of Agile Methods in Mobile Software Development 
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
44222: Information Systems Development
Agile Gintarė Bernotaitytė © 2013.
Embedded Systems Software Engineering
Process 4 Hours.
CompSci 280 S Introduction to Software Development
AGILE SCRUM METHODOLOGY
Methodologies and Algorithms
Appendix B Agile Methodologies
Chapter 1: Introduction to Systems Analysis and Design
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Life Cycle “What happens in the ‘life’ of software”
Introduction to Eclipse Process Framework: EPF Composer and OpenUP
Waterfall and Agile Quality Techniques
Introduction to Software Engineering
Copy rights  Exam Eligibility  Exam Pattern  Pre requisites  Content Distribution  Tools and Techniques  Domains and Tasks for.
Agile Software Development
How to Successfully Implement an Agile Project
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Lecture 2 Revision of Models of a Software Process
Agile Process: Overview
Object-Oriented Systems Development Life Cycle (CH-3)
Gathering Systems Requirements
Chapter 1: Introduction to Systems Analysis and Design
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Project Lifecycle and IT Product Life Cycle
Appendix B Agile Methodologies
Gathering Systems Requirements
Chapter 1: Introduction to Systems Analysis and Design
System Development Methods
Presentation transcript:

Presented by: Debarun das (DED59) Designing an Agile Methodology for Mobile Software Development: A Hybrid Method Engineering Approach Presented by: Debarun das (DED59)

Agenda Challenges Of Mobile Software Development Solution Agile Methodology General Categories Of Agile Methodology Popular Types Of Agile Methodology New Product Development Methodology Method Engineering For Mobile Software Development Suitability Of Agile Methodology For Mobile Software Development Characteristics Of An Ideal Mobile Software Development Methodology Proposed Hybrid Methodology Design Discussions and Future Scope

Challenges Of Mobile Software Development Increase in the number of mobile devices with computation capabilities Ever Increasing demand of specialized software for mobile devices Software development of mobile devices is different from traditional software development Some of the challenges are: Wireless Communication Issues (bandwidth variability, heterogeneous networks etc) Mobility Issues (address migration, location dependent information) Portability Issues Limited Capabilities (lower storage capacity, small sized user interface etc) Special privacy and customizability needs

Solution Application of Agile methodology using Method Engineering The approach applied is called Hybrid Methodology Design Iterative-incremental development of methodologies Based on a predefined set of requirements and knowledge from existing methodologies Ideas from ASD (Adaptive Software Development) methodology and New Product Development (NPD)

Agile Methodology Agile methodologies help teams respond to unpredictability through incremental, iterative work cadences and empirical feedback. Alternative to traditional sequential development More value is given to the following things: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

General Categories Of Agile Methodology Incremental: Small software releases, with rapid development cycles Cooperative: Close Customer and Developer interaction Straightforward: Method is easy to learn and sufficiently documented Adaptive: Ability to make and react to last moment changes

Popular Types of Agile Methodology Adaptive Software Development (ASD) Incremental And Iterative Development Constant Prototyping Enough guidance provided to prevent a project from falling into chaos Not enough guidance to suppress creativity Scrum Developed for managing software development in a volatile environment Empirical approach based on flexibility, adaptability, productivity Developers can choose the specific software development technique Frequent management activities to identify deficiencies

New Product Development Methodology (NPD) Complete process of bringing a new product to market Transformation of a market opportunity to a product for sale Main Requirements: Customer Needs And Nature of the market Iterative development of new products to better satisfy customer requirements

METHOD ENGINEERING For Mobile Software Development “ The engineering discipline to design, construct, and adapt methods, techniques and tools for the development of information systems” The main motivation is the belief that NOT one methodology fits all situations.

Approaches To Method Engineering Ad Hoc: Constructing a new methodology from scratch Paradigm Based: Adapting An existing methodology to produce target methodology Extension Based: Enhancing existing methodology with new concepts and properties Assembly Based: Constructing methodology by assembly of method fragments from a repository

Suitability Of Agile Methodology For Mobile Software Development Ideal Agile Characteristic Rationale Mobile Software High environment volatility Due to high change of requirements, less need for upfront design & planning, need for an incremental and iterative development approach. High uncertainty, dynamic environment: Hundreds of new mobile phones produced each year Small development teams Small teams are able to react more rapidly, share information, need less documentation , etc. Majority of mobile software is developed in micro or SME companies, or development teams. Object-oriented development Most tools that support agile development exist for object oriented platforms. E.g., Java and C++ used; some problems in proper tooling e.g. for refactoring and test-first approach Small systems Less upfront design needed Mobile applications vary in size, but are generally less than 10000 lines of code. Short development cycles For the purposes of rapid feedback Development cycles vary. Typical mobile applications and services can be developed within a 1-6 month time-frame.

Characteristics Of An Ideal Mobile Software Development Methodology AGILITY Agile characteristics of highest importance in mobile software development includes: Iterative and Incremental process. Test driven development Enhanced Quality Assurance Continuous Process Wide Reviews Shorter Time-to-Market

Software Product Line Support Market Consciousness Need for shift from Project development to Product Development Use NPD practices for market analysis Balance between market oriented and technical activities Main goal is to analyze market and customer needs to meet time to market requirements. Software Product Line Support A set of software intensive systems having similar features that satisfy similar mission or market needs Makes life cycle of mobile software products even shorter Also Reduces development cost.

Architecture-Based Development Development Of A Common Platform or General Architecture Support For Reusability Need for component reusability to prevent delay of product delivery and to reduce cost Component based and Layer based development approaches needed Inclusion Of Review And Learning Sessions Review sessions needed to analyze and log experiences Early Specification Of Physical Architecture Mobile terminals’ constraints to be addressed from an early stage

Proposed Hybrid Methodology Design It is a Top-down incremental process consisting of the following tasks: Prioritization Of The Requirements Performed at the Start And Repeated At The End Of Each Iteration Requirements ordered according to relevance to current scope and level of abstraction Start Of Process: Highest level of abstraction and Scope covers whole lifecycle As design progresses to lower level of abstraction, priority is given to finer grained aspects

Iterative Design Engine The following tasks are performed in each iteration: Selection Of Design Approach in current iteration. These include: Instantiation: Instantiating an already available process meta-model Artifact Oriented: Devising a set of artifacts and building process around it Composition: Using one of the available libraries of process patterns Integration: Integrating features from existing methodologies Application Of The Selected Design Approach Revision of the methodology built so far to accommodate the changes made in the current iteration Specification of the level of abstraction for the next iteration Revision of the requirements including the prioritization according to scope and level of abstraction

Discussions And Future Scope In iteration 1, design approach is instantiation In iteration 2 and 3, design approach is integration (from NPD and ASD) In final iteration, design approach is composition and integration Proposed Methodology is a high-level abstraction and does not apply to specific lower levels of abstraction for customized mobile software development Future scope include: Applying this methodology to lower levels of abstraction by further iterations Testing this methodology for commercial mobile software development

References https://en.wikipedia.org/wiki/Agile_software_development http://agilemethodology.org/ https://en.wikipedia.org/wiki/New_product_development V.Rahimian and R.Ramsin, "Designing an Agile methodology for mobile software development: A hybrid method engineering approach", Second International Conference on Research Challenges in Information Science, RCIS pp. 337-342. 2008. Pekka Abrahamssona, Juhani Warstab, Mikko T. Siponenb and Jussi Ronkainena, “New Directions on Agile Methods: A Comparative Analysis”, Proceedings of the International Conference on Software Engineering, IEEE May 3-5, 2003, Portland,Oregon, USA.

Agile is more a “direction,” than an “end Agile is more a “direction,” than an “end.” Transforming to Agile culture means the business knows the direction they want to go on. -- Pearl Zhu Thank You!

Questions ??