הנחיית פרויקטים במדעי המחשב אורני מרבאום-סלנט אורית חזן השתלמות מורים 10-12.7.2005.

Slides:



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

SDLC – Beyond the Waterfall
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Workshop: Professional Development of Software Engineers Hazzan Orit Department of Education in Technology and Scinece Technion – Israel Institute of Technology.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
1 Agile Methodologies in DoD Software By Cynthia Johnson.
Agile
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
Extreme Programming Collaboration in Software Development Process.
Agile Software Development Matt Rice November 27, 2006.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
AgileCamp Presents: Agile Software Development. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Software Engineering Modern Approaches
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
CIS 9002 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
XP – Extreme Programming
Agile
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
CS3100 Software Project Management Agile Approaches.
1 eXtreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה ד"ר אורית חזן המחלקה להוראת הטכנולוגיה והמדעים, הטכניון
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
EXtreme Programming and Open Source engineering paradigm A comparison
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile/XP Introduction
Chapter 5 Agile Development Moonzoo Kim KAIST
Extreme Programming.
Agile and XP Development
Agile and XP Development
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Introduction to XP.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

הנחיית פרויקטים במדעי המחשב אורני מרבאום-סלנט אורית חזן השתלמות מורים

תוכנית ההשתלמות 10.7  מבוא  נושאים מרכזיים לדיון  תכנון הוראה שנתי 11.7  הפרדיגמה של הנדסת תוכנה  מתודולוגיות פיתוח תוכנה 12.7 הערכת פרויקטים המשך שיתוף פעולה

Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה

בעיות מאפיינות של פרוייקטי תוכנה  הסיבוכיות האמיתית בפיתוח תוכנה מקורה בהיבט האנושי (ולא הטכנולוגי) לקוחות, לו"ז לחוץ ואי-עמידה בו, באגים, הבנה של תוכניות, תקשורת בין חברי צוות, אי-שיתוף מידע, אינטגרציה,...

פרויקטי תוכנה : נתונים  75% ממוצרי התוכנה הגדולים הנשלחים ללקוחות נחשבים ככישלון: או שאינם בשימוש כלל או שאינם מתאימים לדרישות הלקוחות. Based on: Mullet, D. (July, 1999). The Software Crisis, Benchmarks Online - a monthlyThe Software Crisis publication of Academic Computing Services 2(7).  עלות תיקונם של באגים בתוכנה בארה"ב נאמדת בכל שנה ב ביליון $ The National Institute of Standards and Technology (NIST), New Release of June 28, לשם השוואה: ב- Q2 של 2003 הושקעו בארה"ב בתוכנה 200 ביליון $

What is Extreme Programming Extreme Programming צמחה בתעשייה. Differences from traditional methodologies  Emphasis on people vs. development activities & schedule  XP specifies how to behave; still leaves freedom 12 practices 4 values: feedback, simplicity, communication, courage The meaning of ‘extreme’

What is Extreme Programming Extreme Programming Explained  First edition 2000 by Kent Beck  Second edition 2005 by Kent Beck with Cynthia Andres Reflection, Roles, Respect

Extreme Programming במהלך ההיכרות עם המתודולוגיה אתם מתבקשים לחשוב על התאמתה ליישום במסגרת פיתוח פרויקטי תוכנה בתיכון.

How XP? - Project Timetable : 1 release (2 months), 3 iterations (3 weeks each) Week 4, Release 1, Iteration 2 Week 3, Release 1, Iteration 1 Week 2, Release 1, Iteration 1 Week 1, Release 1, Iteration 1 Week 8, Release 1, Iteration 3 Week 7, Release 1, Iteration 3 Week 6, Release 1, Iteration 2 Week 5, Release 1, Iteration 2 Release 2 starts Week 9, Release 1, Iteration 3 Business Day

How Extreme Programming? Two days in Extreme Programming Development Environment

Business Day Planning game On-site customer Small releases Simple design Metaphor Source:

Business Day – Reflection 5 practices (out of 12)  Planning game  On-site customer  Small releases  Simple design  Metaphor Planning game  All developers participate  All have the same load  All developers get an overview of the entire development process  Simple means  Very detailed  Levels of abstraction

Business Day – Reflection 5 practices (out of 12)  Planning game  On-site customer  Small releases  Simple design  Metaphor On-site customer  Customer’s on-going feedback Small releases  On-going opportunity to update/change requirements

Business Day – Reflection 5 practices (out of 12)  Planning game  On-site customer  Small releases  Simple design  Metaphor Simple design  Develop only what is needed for your development task Metaphor  Bridges customers- developers-business gaps

Development Day Stand-up meeting The development environment Pair programming Test driven development (acceptance, unit-test) Code standards Refactoring Simple design Continuous integration (one integration machine) Collective ownership Sustainable pace (40-hour week) Source:

Development Day - Reflection The development environment  All see all; fosters communication Stand-up meeting  All know what all do Pair programming  Each task is thought on two levels of abstraction Unit test (automatic test first)  First: improves understanding; Automatic: testing is easy  Developers program and test  Testing becomes manageable  Success vs. failure

Development Day - Reflection Continuous integration  Reduces integration risks in later stages Collective ownership  Important in companies with high turnover Coding standards Refactoring and simple design  Code improvement is part of the methodology (though it doesn't produce code), gradual process Sustainable pace (40-hour week)  Intense and productive work, developers are not tired

Development and Business Days – Reflection Human/Social Perspective Code/Technical Perspective Collective ownership Pair programming Sustainable pace On-site customer Planning game Metaphor Refactoring Simple design Coding standards Testing Continuous integration Small releases

The 12 XP practices Note: nothing is new; gathering the practices together is XP uniqueness Source: Beck, K. (2000). eXtreme Programming explained, Addison Wesley.

Extreme Programming in the SE world Agile Software Development Methodology  Other agile methods: SCRUM, Feature Driven Development, DSDM  All acknowledge that the main issue of software development is people: customers, communication Manifesto for Agile Software Development: Extreme Programming: Kent Beck, 1996, Chrysler

The Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Why Extreme Programming? big companies using XP in at least some capacity  Ford Motor, Chrysler, IBM, HPHP  Companies doing XP Companies doing XP smaller software houses:  Mayford Technologies Mayford Technologies  RoleModel Software RoleModel Software tutorials: Industrial Logic, Object Mentor, Tochen (Israel)Industrial LogicObject Mentor

Software Development Methods All traverse the activities of specifying, designing, coding, testing. Some do this several times. These activities have become the paradigm of software development.  When the majority of developers accepted this, it became a paradigm. Paradigm is the way of doing things. Kuhn, T. S. (1962). The Structure of Scientific Revolutions, Chicago: Univ. Chicago Press.

Extreme Programming התאמתה ליישום במסגרת פיתוח פרויקטי תוכנה בתיכון.  מנקודת מבטם של המורים  מנקודת מבטם של התלמידים