240 likes | 474 Views
Agile Software Development. ک اری از:مهدی هوشان استاد راهنما:استاد آدابی. Contents. Methodologies. Agile Manifesto. Characteristics. Agile methods. Advantage & disadvantage. Resources. Methodologies. HeavyWieght. Software development methodologies. lightWeight. Page 1/18.
E N D
Agile Software Development کاری از:مهدی هوشان استاد راهنما:استاد آدابی
Contents Methodologies Agile Manifesto Characteristics Agile methods Advantage & disadvantage Resources
Methodologies HeavyWieght Software development methodologies lightWeight Page 1/18
HeavyWeight Methodology • They are based on a sequential series of stepssuch as • requirements definition • solution building • testing • deployment • require defining and documenting a stable set of requirements at the beginning of a project. • There are many different heavyweight methodologies like: • Waterfall , Spiral Model , Unified Process Page 2/18
LightWeight Methodology • Recognizes that plans are short-lived • Develops software iteratively with a heavy emphasis on construction activities • Delivers multiple ‘software increments’ • Adapts as changes occur • Agile development is one of the lightWeight methodology Page 3/18
Comparison of Agile and Heavyweight Page 4/18
Agile Manifesto • In February 2001, 17 software developers met at a ski resort in Snowbird, Utah, to discuss lightweight development methods. They published the "Manifesto for Agile Software Development“ • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan Page 5/18
Twelve principles underlie the Agile Manifesto, including: • Customer satisfaction by rapid delivery of useful software • Welcome changing requirements, even late in development. • Working software is delivered frequently (weeks rather than months) • Working software is the principal measure of progress • Sustainable development, able to maintain a constant pace • Close, daily cooperation between businesspeople and developers • Face-to-face conversation is the best form of communication (co-location) • Projects are built around motivated individuals, who should be trusted • Continuous attention to technical excellence and good design • Simplicity • Self-organizing teams • Regular adaptation to changing circumstances Page 6/18
Characteristics • based on iterative and incremental development • Agile methods break tasks into small increments with minimal planning, and do • not directly involve long-term planning • Iterations are short time frames (timeboxes) that typically last from one to four • weeks • Each iteration involves a team working through a full software development cycle • including planning, requirements analysis, design, coding, unit testing, and • acceptance testing • Multiple iterations may be required to release a product or new features • Team composition is usually cross-functional and self-organizing • Team size is typically small (5-9 people) • At the end of each iteration, stakeholders and the customer representative review • progress and re-evaluate priorities with a view to company goals Page 7/18
Agile methods • Well-known agile software development methods include: • Agile Unified Process (AUP) • Dynamic Systems Development Method (DSDM) • Essential Unified Process (EssUP) • Extreme Programming (XP) • Feature DrivenDevelopment (FDD) • Open Unified Process (OpenUP) • Scrum • Velocity tracking Page 8/18
Extreme Programming (XP) • The idea is for Kent Beck(2000) • XP team members spend few minutes on programming, few minutes on • project management, few minutes on design, few minutes on feedback, and • few minutes on team building many times each day • The term ‘extreme’ comes from taking these principles and practices to extreme • levels • It’s base on 5 values: • Communication • Simplicity • Feedback • Courage • Respect Page 9/18
Extreme Programming (XP) • Roles: • Programmer • Customer • Tester • Tracker • Coach • Consultant • Manager Page 10/18
Extreme Programming (XP) Life cycle of XP: Exploration Planning Iterations To Release Productionization Maintenance Death Page 11/18
Extreme Programming (XP) • XP terms and practices: • Planning game • Small releases • Metaphor • Simple design • Refactoring • Pair programming • Collective Ownership • Continuous integration • 40 hour week • On-site customer • Coding standards • Testing
Extreme Programming (XP) XP terms and practices: Testing: Unit tests Acceptance tests Page 14/18
Advantages • stakeholders and the customer representative are in communication with team all the time • All the team is responsible for the quality of the product • Team working and face to face connection raise the quality • Simple plan for the software development Page 15/18
Disadvantages • Minimum documentation • Based on people(skilled) • It doesn’t have Standard plans for quality evaluation • Lack of learning guidance for using this method Page 16/18
Resources • http://www.wikipedia.org • http://www.extremeprogramming.org • http://www.agilemanifesto.org • A Comparison between Agile and Traditional Software Development Methodologies(M.A.Awad) • معماری نرم افزار چابک(امیر عزیم شریفلو) Page 17/18
Thank You Page 18/18