SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

Size: px
Start display at page:

Download "SOFTWARE ENGINEERING CSC 423 B - MWF 11-12 EXTREME PROGRAMMING"

Transcription

1 SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING TO: Dr. Khaldoun El Khalidi FROM: Lamia Nassif, Jessy, Nadine Ghanem, & Pedro Maroun Eid Due: 20 March

2 Table of Contents I. ABSTRACT...3 II. TECHNICAL INVESTIGATION...4 A. Principles...4 B. Practices...4 C. The Process...6 III. RUP vs. XP... Error! Bookmark not defined. IV. REFERENCES

3 EXTREME PROGRAMMING I- ABSTRACT Extreme Programming, or XP, is a lightweight discipline of software development based on values of simplicity, communication, feedback, and courage. It was developed by Kent Beck in 1996 who wrote the original book on the subject, Extreme Programming Explained. XP is designed for use with small teams who need to develop software quickly in an environment of rapidly changing requirements. [1] It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation. Extreme Programming challenges many common assumptions about software development. One of the most controversial is its rejection of significant effort in upfront design, in favour of a more evolutionary approach. To its detractors, this is a return to "code and fix" development usually derided as hacking. To its fans, it's often seen as a rejection of design techniques, principles and patterns. [3] 3

4 II- TECHNICAL INVESTIGATION A- Principles: Extreme Programming rests on the values of simplicity, communication, feedback, and aggressiveness, which are considered as The Four Commandments of Extreme Programming (XP). [2] SIMPLICITY means that the software is developed using the simplest possible design and constructs, but it means more: simplicity pervades the entire process. XP eliminates, as much as possible, the unnecessary elements of building software. One of our rules is You aren t going to need it, which reminds us to add software or process only when we really need them, not in anticipation of need. COMMUNICATION is key to rapid development and to customer satisfaction. XP embodies communication with a focus on simplicity: Use person-to-person communication instead of written documents wherever possible. It also stresses continual communication between the customer and development team members by having an on-site customer while development progresses. The on-site customer decides what will be built and in what order. FEEDBACK is important to any development process, but when you are trying to eliminate everything you can, you need feedback to be sure you re on track. Software testing is a major source of quality feedback in XP, but we include resource, scope, and time feedback as well. AGGRESSIVENESS (or courage) in moving forward is possible when you take the simplest possible approach and employ a process high in communication and feedback. In other words, doing the right thing even when it is not the most popular thing to do. It means being honest about what you can and cannot do. B- Practices: Twelve XP practices support the four values. These practices tend to keep the team on track while they build up a grasp of the principles that form the basis for the practices. In XP, every contributor to the project is an integral part of the whole team formed around a business representative the Customer. There are twelve XP practices that the team should depend on when adopting XP. i. The Planning Process, sometimes called the Planning Game: The XP planning process allows the XP "customer" to define the business value of desired features, and uses cost estimates provided by the programmers, to choose what needs to be done and what needs to be deferred. The effect of XP's planning process is that it is easy to steer the project to success. There are two planning steps in XP: The Release planning: a practice where the customer presents the desired features to the programmers in the team who in return estimate their difficulty. Iteration planning: a practice whereby the team is given direction every couple of weeks building a software in 2-weeks iterations and delivering running useful software at the end of each iteration. 4

5 ii. Small Releases: XP teams put a simple system into production early, and update it frequently on a very short cycle. The team releases running, tested software, delivering business value chosen by the Customer, every iteration. The most important aspect is that the software is visible, and given to the customer, at the end of every iteration. This keeps everything open and tangible. iii. Testing, also known as customer tests: XP teams focus on validation of the software at all times. Programmers develop software by writing tests first, then software that fulfils the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided. The best way for success is that once the test runs, the team keeps it running correctly thereafter. iv. Metaphor: XP teams develop a common vision of how the program works, which we call metaphor. In other words they use a common "system of names" and a common system description that guides development and communication. v. Simple Design: A program built with XP should be the simplest program that meets the current requirements. There is not much building "for the future". Instead, the focus is on providing business value. Of course it is necessary to ensure that you have a good design. There are design steps in release planning and iteration planning, plus teams engage in quick design sessions and design revisions through refactoring, through the course of the entire project. In an incremental, iterative process like Extreme Programming, good design is then essential. That's why there is so much focus on design throughout the course of the entire development. vi. Refactoring, or design improvement: Extreme Programming focuses on delivering business value in every iteration. To accomplish this over the course of the whole project, the software must be well designed. This is done by keeping the software clean: without duplication, with high communication, simple, yet complete. Refactoring is, of course, strongly supported by comprehensive testing to be sure that as the design evolves. Thus the customer tests are a critical enabling factor. The XP practices support each other: they are stronger together than separately. vii. Pair Programming: XP programmers write all production code in pairs, two programmers working together at one machine. This practice ensures that all production code is reviewed by at least one other programmer, and results in better design, better testing, and better code. In fact, many experiments have shown that pair programming produces better software at similar or lower cost than programmers working alone. viii. Collective Code Ownership: All the code belongs to all the programmers. This lets the team go at full speed, because when something needs changing, it can be changed without delay, which increases code quality and reduces defects. ix. Continuous Integration: XP teams integrate and build the software system multiple times per day. This keeps all the programmers on the same page, and enables very rapid progress. Perhaps surprisingly, integrating more frequently tends to eliminate integration problems that plague teams who integrate less often. 5

6 x. Sustainable Pace sometimes known as 40-hour week: XP programmers work hard and at a pace that can be sustained indefinitely. This means they do not work overtime, unless it s effective, keeping themselves fresh, healthy, as to reduce as much as possible mistakes. xi. On-site Customer: An XP project is steered by a dedicated individual who is empowered to determine requirements, set priorities, and answer questions as the programmers have them. The effect of being there is that communication improves, with less hard-copy documentation - often one of the most expensive parts of a software project. xii. Coding Standard: For a team to work effectively in pairs, and to share ownership of all the code, all programmers need to write the code in the same way, with rules that make sure the code communicates clearly. C- The Process: As all other software engineering methods, the process in XP is similar to the process used elsewhere. In fact, we can divide the above discussed practices into four clear progressions that are the planning, the design, the coding and the testing. i. Planning: The Onsite Customer participates in the Planning Game. The development team interviews the customer to determine user stories about how the system will work. User stories are combined or split to come up with a story that can be described on a CRC Card, and completed by a pair of programmers during one release cycle (typically about three weeks). The customer prioritizes the cards according to the business value of the user stories, which puts stories into the release schedule based on the development resources available. This lets customers have an accurate commitment schedule. After each release, the customer has a system that works according to the stories completed so far; they don't have to wait for the whole thing to be done to start using the initial functionality. The development group identifies which stories are risky to complete on time (mainly because of a lack of experience with that type of coding) and does worst things first based on a spike solution. 6

7 ii. Designing: XP relies on test driven development for its inner loop. This pumps the outer loop, and makes the political end of XP possible. Promises are automatically kept. Unit tests are written which the successful software will be able to pass. At first, the tests fail because the software hasn't been written yet. A simple design is developed by doing the simplest thing which might pass the tests. Big-design-up-front is avoided because you are not going to need it. However, once the simplest thing is done the programmers refactor (combine similar code) mercilessly, because in the end things should be expressed once and only once. iii. Coding: XP involves pairs of programmers working together on code, so that the entire development team achieves Code Stewardship. Code Stewardship is the opposite of Code Ownership, emphasizing that code is the team's property, and not the sole province of any one person or pair. Programmers should code Unit Tests first. This Pair Programming leads to Collective Code Ownership. Programmers follow the coding conventions (standards) whenever they write new code, and while they refactor mercilessly. The customer should always be available upon the coding phase; this is to ensure that the code is being written as the customer wants. The written code should be integrated often, typically each day. Code should be optimized as it is written; there should be no need for revision afterwards. Coding should be done according to the corresponding user stories written in the order that the customer informs. Each story is written stand alone and at the end of the day integrated into the rest of the project. Programmers or coders should work no more than 40 hours a week, this is to always be sure that these programmers are always giving out their best. Basically, No overtime should be allowed. 7

8 iv. Testing: Extreme Testing includes Unit Tests for all code, creating tests when bug is found, and running Acceptance tests often and publishing the scores. Extreme Testing is the best way to survive extreme change. With extreme testing you can develop software more quickly, with more confidence, and with higher quality. Extreme Testing includes two basic tests: unit tests and functional tests. 1- Unit Tests Unit Tests let developers evolve the system rapidly and with confidence. Developers have to learn how to build the system, and customers have to learn what they really want so that we can build the software and change it quickly. We should be sure that the code is well-factored so that we can easily transform yesterday's code into what we need tomorrow. Unit Tests specify two key actions: a. To be sure that new features work, write Unit Tests for every feature. Write them before you write the code and save all the Unit Tests for the whole system. b. To be sure that nothing is broken, run all the Unit Tests in the entire system before any code is released, and ensure that those tests run at 100% because if anything breaks you will know exactly where the problem is. When every Unit Test in the entire system is running 100% that shows us not just that the new feature works, but that the changes haven't broken anything anywhere. 2- Functional Tests Functional Tests are tests that check each increment to see if the value is there. These tests give customers and developers confidence that the whole product is progressing in the right direction. Customers need confidence to keep putting up the money and time. This confidence comes from seeing the system actually do what is being paid for. Here are the key dimensions of Extreme Functional Tests: c. Customer-owned: customers should understand the tests to get confidence from them. d. Comprehensive: customers should pick values where the test will have meaning if it succeeds and if it fails. e. Repeatable: developers should write new tests when you do a new increment. f. Automatic: developers should have a testing facility to set up and run 8

9 the tests, check the results, and report them. g. Timely: If the tests do not show up until weeks after the development is done, it just slows things down. h. Public: customers need to see progress in the software development, so if there is a decline in test scores the developers should not ignore that. Graph 2.1 can tell almost the complete story of quality. We can see the test status at the end of each development increment. The yellow band says that there are problems in getting validated answers. Then, as validated answers started to come along, we see that the system is making a lot of errors. In increment eight, quality took a big step upward, and has improved. Finally, in increment twelve, all the data values are validated, and there has been a healthy project, and we can have great confidence in the quality of the system. Graph 2.1 9

10 III- A Comparison: RUP VS XP Rational Unified Process (RUP) is a process framework, refined over the years by Rational Software and is being widely used on a variety of software projects, from small to large. Extreme Programming (XP) is a software development approach gaining increasing recognition as an effective method for building smaller systems in an environment of changing requirements. Most processes have some common elements that make a systematic comparison possible. They require sequences or groups of activities, which are performed by roles (usually played by people working as individuals or teams) to generate artifacts or work products, some or all of which are delivered to a customer. Most processes also acknowledge that instances of the process will have a time dimension, with a beginning and an end, and interesting intermediate milestones that represent the completion of significant activities (or clusters of activities) and the production of associated artifacts. [4] The purpose of this comparison is to clarify the relative positions of RUP and XP in the process spectrum to see what each can offer the other and to dispel the notion that XP is a lightweight, and therefore desirable, alternative to the heavyweight RUP. The dimensions of process that make the comparison between RUP and XP are the following: Time and Effort Allocation: It discusses how each process is arranged over time and how the staffing effort allocation compares. Artifacts: It compares the work products; those things produced in the course of an XP and RUP based project. Activities: It discusses the way in which each process says its artifacts should be produced. Disciplines: It compares the way in which XP and RUP delineate the major areas of concern in software engineering. Roles: It explores the differences between roles (that perform activities) in the RUP and roles that are closer to positions within a team in XP. Time and Effort Allocation RUP deals with projects whose lifespan is divided into phases named Inception, Elaboration, Construction, and Transition. Each phase is further split into iterations and each iteration may require several builds. For most projects in RUP, the duration of an iteration will be between two weeks and six months, and the number of iterations in a project s lifetime will be between three and nine. So at these default settings, RUP covers projects ranging in duration from six weeks to 54 months. [4] XP s iterations are about two weeks in duration. XP s releases are two months (or slightly longer); they are defined by the customer and released to the customer. In duration, XP s releases are like RUP s iterations, during Elaboration or Construction at least, for projects with a maximum team size of 10 that are based on an established architectural baseline. [4] 10

11 Artifacts RUP describes over 100 artifacts, which has led to the criticism that it imposes an intolerable bureaucratic overhead for small projects. This view is incorrect on four counts: Projects don t have to produce all artifacts: selecting and tailoring artifacts is a necessary part of the process. RUP provides guidelines on what can be omitted and what can be tailored. An artifact (in RUP, an artifact description) is a specification entity that specifies the information to be produced by an activity and, to do this systematically, it may describe the abstract form of an artifact. The RUP characterization of artifacts as models, model elements, or documents is not intended to imply a particular realization. A UML model could be captured and presented using a purpose-built tool (such as Rational Rose), or, at the other extreme, as diagrams made by using a simple graphics tool, or even as a sketch on a whiteboard. RUP documents are information sets composed of text and diagrams. To be useful, RUP specifies what this information should be, and a convenient and systematic way to do this is to point to a template, which enumerates and describes the items and issues to be considered. It s certainly possible to use these templates in a direct and formal way to realize the artifacts in document form that is, electronic or paper. Not everything presented in a template is necessarily relevant to a particular project and RUP gives a project the freedom to choose any appropriate realization for an artifact. The important thing is the information it contains. XP seems to be immune from the criticism of being artifact-heavy, but this is an oversimplification for two reasons: XP is already tailored to suit a certain kind of development; dealing with a subset of the RUP disciplines at a certain scale and so would be expected to call for fewer artifacts. XP emphasizes the importance of user stories and code, but other things that are work products are mentioned in passing when describing the process, so the artifact count is not as small as it appears at first sight. Here are some examples of artifacts: Stories Constraints Tasks Technical tasks Acceptance tests Software code Releases Metaphors The design CRC, UML sketch Design documents produced at the end of the project Coding standards Unit tests Workspace (development and other facilities) Release plan Iteration plan Reports and notes on any meetings Overall plan budget Reports on progress 11

12 Story estimates Task estimates Defects (and associated data) Additional documentation from conversations Supporting documentation Test data Testing framework tools Code management tools Test results Spikes (solutions) Task work time records Metrics data - Resources - Scope - Quality - Time Other metrics Tracking results There we have around 30 artifacts, some of which are composites too. The list is intended to be indicative, not exhaustive. Once a project has to realize them, more detail of their content and form will be needed. A project can certainly do that on the fly, but that takes time away from the real work; in contrast, RUP provides up-front guidance, thereby saving the project time. [4] The reasons for which XP does not need all the RUP artifacts are the following: 1- XP is about programming to meet a business need. How that business need occurred, and how it s modeled, captured, and reasoned about, is not XP s main concern. 2- XP asserts that requirements and design capture can be done rather simply. 3- RUP allows for a greater formality in project management, where this is necessary, and in some contract arrangements it will be. Many of RUP s project management artifacts are part of composite artifacts, and need only be realized as separate documents when the formality of the project demands it. Activities RUP formally defines the term activity as work performed by a role, using and transforming input artifacts, and producing new and changed output artifacts. RUP then goes on to enumerate these activities and categorize them according to discipline or major area of concern within project. [4] These disciplines are: Business Modeling Requirements Analysis & Design Implementation Test Deployment Configuration & Change Management Project Management Environment Activities are time-related through the artifacts that they produce and consume: an activity can logically begin when its inputs are available. This means that producer- 12

13 consumer activity pairs can overlap in time, if the artifact state permits; they need not be rigidly sequenced. Activities in RUP are intended to make the intellectual process of producing an artifact less opaque, to give some strong guidance on how something should be produced. Activities may also be used to help the project manager with his or her planning. Woven through the RUP as it s described in terms of lifecycle, artifacts, and activities, are the best practices : software engineering principles proven to yield quality software built to predictable schedule and budget. [4] The RUP, through its activities and their associated artifacts, supports and realizes these best practices they are themes running through the RUP. XP presents an engagingly simple view of software development as having four basic activities that are to be enabled and structured according to some supporting practices: Coding Testing Listening Designing Actually, XP s activities are closer in scope to RUP s disciplines than to RUP s activities, and much of what happens on an XP project (in addition to coding, testing, listening, and designing) will come from the elaboration and application of its practices. RUP s apparent prescription comes from its completeness and greater formality in its systematic treatment of activities, and their inputs and outputs. XP does not lack prescription, but perhaps in the attempt to remain lightweight, the formality and detail are simply omitted. The detail that is present in RUP will have to be added when XP is implemented on a project. Lack of specificity is not a strength or a weakness, but we should not confuse the lack of detailed information in XP with simplicity. At some point, the people on the project will need to know what to do and at that time will need the detail. [4] Disciplines and Workflow A discipline in RUP is the collection of activities and associated concepts producing a particular set of artifacts, which represents some important aspect or concern in software development. RUP s disciplines are Business Modeling, Requirements, Analysis & Design, Implementation, Test, Deployment, Configuration & Change Management, Project Management, and Environment. This does not cover every aspect of what an organization or business might do when employing people to develop, deploy, operate, support, sell, market, or otherwise deal with systems that are largely software. RUP currently does not cover Systems Engineering or all of the requirements of some international software process standards such as ISO since they are outside its engineering focus. [4] XP explicitly restricts itself even further. It includes four basic activities coding, testing, listening, and designing performed using a set of practices, which requires performing other activities that map to some of the other disciplines in RUP. The XP s practices are: 13

14 The Planning Game: Quickly determine the scope of the next release by combining business priorities and technical estimates. As reality overtakes the plan, update the plan. Small Releases: Put a simple system into production quickly, and then release new versions on a very short cycle. Metaphor: Guide all development with a simple shared story of how the whole system works. Simple Design: The system should be designed as simply as possible at any given moment. Extra complexity is removed as soon as it is discovered. Testing: Programmers continually write unit tests, which must run flawlessly for development to continue. Customers write tests demonstrating that features are finished. Refactoring: Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility. Pair programming: All production code is written with two programmers at one machine. Collective ownership: Anyone can change any code anywhere in the system at any time. Continuous integration: Integrate and build the system many times a day, every time a task is completed. 40-hour week: Work no more than 40 hours a week as a rule. Never work overtime a second week in a row. On-site customer: Include a real, live user on the team, available full-time to answer questions. Coding standards: Programmers write all code in accordance with rules emphasizing communication through the code. Activities performed as a result of the practice The Planning Game, for example, will mainly map to RUP s Project Management discipline. However, some topics are outside the scope of XP such as Business Modeling. Requirements elicitation is largely outside the scope of XP the customer defines and provides the requirements. Deployment of the released software is outside the scope of XP too. Because of the scale and types of development it addresses, XP can deal very lightly with issues in Environment and Configuration & Change Management disciplines that the RUP covers in detail. In the disciplines in which XP and RUP overlap, some of the practices described in XP could be employed in RUP and others could not. The following table distinguishes between these practices: XP practices that scale Pair Programming Test-first design and refactoring On-site customer Coding standards Continuous integration XP practices that do not scale Collective ownership Refactoring Metaphor Rapid releases Simple design 40-hour week 14

15 Roles In RUP, activities are performed by roles. Responsible roles will usually create the artifact and ensure that any changes made by other roles (if such changes are allowed), do not break the artifact. A role in RUP may be performed by an individual or by a group of people. Equally, an individual or a group may perform several roles. A role does not have to be mapped to a single position or slot in an organization; the mapping of roles to organizational units may also be many-to-many. RUP defines a total of 30 roles. There is not an exact mapping to disciplines since a role such as a software architect is not necessarily confined to one discipline, for example: Business Modeling has three roles Requirements has five roles Analysis & Design has six roles Implementation has three roles Test has two roles Deployment has four roles Configuration & Change Management has two roles Project Management has two roles Environment has three roles Roles in RUP are used to partition activities, and to finely discriminate the skills and competencies needed to perform the role, which helps guide the selection of staff to perform the roles. The level of division also facilitates the identification of new organizational positions when the importance of a role changes. For example, on a small, informal project, the role of Project Manager and Configuration Manager (RUP roles) may well be performed by the same individual. By describing roles in this way, RUP facilitates this mapping. [4] XP defines seven applicable roles with their responsibilities, the skills, and the traits required of the people who will perform them. These roles are: Programmer Customer Tester Tracker Coach Consultant Big Boss The difference in the number of XP and RUP roles is easily explained: XP is not covering all of the RUP disciplines. XP roles are actually closer to positions than RUP roles; for example, XP s programmer actually performs multiple RUP roles those of Implementer, Integrator, and Code Reviewer and these require slightly different competencies. When RUP roles are mapped to a small project, the number of XP-like roles that are mapped reduces considerably from 30. [4] 15

16 REFERENCES [1] Ronald E. Jeffries, What Is extreme Programming, Extreme Programming Magazine, August [2] Ronald E. Jeffries, extreme Testing, Software Testing & Quality Engineering (STQE) Magazine, March /April [3] Martin Fowler, Is Design Dead, Software Development (SD) Magazine, April [4] John Smith, A Comparison of RUP and XP, Rational Software White Paper,

A technical discussion of RUP A Comparison of the IBM Rational Unified Process and extreme Programming

A technical discussion of RUP A Comparison of the IBM Rational Unified Process and extreme Programming A technical discussion of RUP A Comparison of the IBM Rational Unified Process and extreme Programming John Smith Table of Contents Introduction... 1 Time and Effort Allocation... 2 Examples of projects

More information

Quality Assurance Software Development Processes

Quality Assurance Software Development Processes Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC

More information

RUP and XP, Part I: Finding Common Ground

RUP and XP, Part I: Finding Common Ground RUP and XP, Part I: Finding Common Ground by Gary Pollice Evangelist, The Rational Unified Process Rational Software extreme Programming (XP) is hot! Attend any software development conference today and

More information

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS *1 Mrs. Kalaivani S., * 2 Mrs. Kavitha S., *1 M.Phil Research Scholar, Department of Computer Science Auxilium College (Autonomous), Vellore, TamilNadu,

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

Introduction to extreme Programming (XP)

Introduction to extreme Programming (XP) Introduction to extreme Programming (XP) Extreme Programming (XP) Kent Beck C3 Project Chrysler Comprehensive Compensation system. XP Values: Communication Courage Feedback Simplicity Established the Twelve

More information

An Introduction to Extreme Programming

An Introduction to Extreme Programming An Introduction to Extreme Programming Ken Auer kauer@rolemodelsoft.com http://www.rolemodelsoft.com RoleModel Software, Inc. 5004 Rossmore Dr. Fuquay-Varina, NC 27526 919-557-6352 Page 1 The Joy of Software

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Extreme Programming: Strengths and Weaknesses

Extreme Programming: Strengths and Weaknesses The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA a.dalalah@uoh.edu.sa Abstract:

More information

Web Application Development Process

Web Application Development Process Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

Agile methods. Objectives

Agile methods. Objectives Agile methods CMSC435-1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To explain

More information

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories XP & Scrum Beatrice Åkerblom beatrice@dsv.su.se extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or

More information

Contents. 3 Agile Modelling 31 3.1 Introduction 31 3.2 Modelling Misconceptions 31

Contents. 3 Agile Modelling 31 3.1 Introduction 31 3.2 Modelling Misconceptions 31 Contents 1 Introduction 1 1.1 WhyThisBook? 1 1.2 A Bit of History 1 1.3 What Is Agile Software Development? 2 1.4 WhyBe Agile? 3 1.5 What This Book Is About? 3 1.6 Implementation Languages 3 1.7 The Structure

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

Agile and Secure: Can We Be Both?

Agile and Secure: Can We Be Both? Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. keith.landrus@denimgroup.com (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles Master thesis in Applied Information Technology REPORT NO. 2008:014 ISSN: 1651-4769 Department of Applied Information Technology or Department of Computer Science Bottlenecks in Agile Software Development

More information

Agile Modeling: A Brief Overview

Agile Modeling: A Brief Overview Agile Modeling: A Brief Overview Scott W. Ambler President, Ronin International scott.ambler@ronin-intl.com Abstract: Agile Modeling (AM) is a practice-based methodology for effective modeling of software-based

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks XP and Design Paulo Caroli & Sudhindra Rao ThoughtWorks XP and Design Where did the Design phase go? About us About us 14 + 6 About us Certified Architect About us Agile Coach / Developer Agenda Agenda

More information

CSE 435 Software Engineering. Sept 16, 2015

CSE 435 Software Engineering. Sept 16, 2015 CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process

More information

Extreme Programming - A Model For Agile Software Development

Extreme Programming - A Model For Agile Software Development International Journal of Information Technology and Knowledge Management July-December 2010, Volume 3, No. 2, pp. 699-705 EXTREME PROGRAMMING: NEWLY ACCLAIMED AGILE SYSTEM DEVELOPMENT PROCESS Er. Rohini

More information

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project. 6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

Development Methodologies

Development Methodologies Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 18-19 The Unified Process Static dimension Glossary UP (Unified

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1 COMP209 Object Oriented Programming System Design Mark Hall Introduction So far we ve looked at techniques that aid in designing quality classes To implement a software system successfully requires planning,

More information

QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski

QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski International Journal "Information Theories & Applications" Vol.10 113 QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski Abstract: Our previous research about possible quality improvements in Extreme

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 16-17 Introduction to software process Software process models,

More information

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem Agile processes Extreme Programming, an agile software development process Perdita Stevens School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

Introduction to Agile Software Development

Introduction to Agile Software Development Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)

More information

Agile Models. Software Engineering 2004-2005. Marco Scotto (Marco.Scotto@unibz.it) Software Engineering

Agile Models. Software Engineering 2004-2005. Marco Scotto (Marco.Scotto@unibz.it) Software Engineering Agile Models 2004-2005 Marco Scotto (Marco.Scotto@unibz.it) Content Introduction Tame projects & wicked projects Win-Win Spiral software development model XP software development process Enforcing the

More information

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Methodologies: RUP Focus

More information

CMMI - The AGILE Way By Hitesh Sanghavi

CMMI - The AGILE Way By Hitesh Sanghavi CMMI - The AGILE Way By Hitesh Sanghavi 1 The Maturity Levels 5 Focus on process improvement Optimizing 3 4 2 Process measured and controlled Process characterized for the organization and is proactive

More information

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D. An Introduction to extreme Programming Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Extreme Programming (XP) is a (very) lightweight incremental software

More information

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng Software Development Process and Activities CS 490MT/5555, Fall 2015, Yongjie Zheng Software Process } A set of activities that leads to the production of a software product } What product we should work

More information

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Software Quality and Assurance in Waterfall model and XP - A Comparative Study Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf Sana_j_11@hotmail.com Dr. Mohamed Noor Al-Jedaiah m_aljedaiah@ammanu.edu.jo Abstract: -Dealing with

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software

More information

Object Oriented Hybrid Software Engineering Process (SEP) model for Small Scale Software Development Firms

Object Oriented Hybrid Software Engineering Process (SEP) model for Small Scale Software Development Firms Object Oriented Hybrid Software Engineering Process (SEP) model for Small Scale Software Development Firms Shaikh Mostafa Al Masum mostafa@miv.t.u-tokyo.ac.jp Research Student, Ishizuka Lab, University

More information

extreme Programming An Overview

extreme Programming An Overview extreme Programming An Overview Methoden und Werkzeuge der Softwareproduktion WS 1999/2000 Author Thomas Dudziak 1 INTRODUCTION... 4 WHAT IS EXTREME PROGRAMMING?... 4 OUTLINE... 4 BASIC CONCEPTS... 5 THE

More information

Agile with XP and Scrum

Agile with XP and Scrum Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

More information

Rapid Software Development

Rapid Software Development Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort

More information

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT Cruceru Anca Romanian- American University, Faculty of Management- Marketing, 1B Expozitiei Blvd, Bucharest, cruceruanca@yahoo.com, 0723508894

More information

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

CS435: Introduction to Software Engineering!  Software Engineering: A Practitioner s Approach, 7/e  by Roger S. Pressman CS435: Introduction to Software Engineering! " " " " " " " "Dr. M. Zhu! Chapter 3! Agile Development! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

More information

Agile Software Project Management Methodologies

Agile Software Project Management Methodologies Economy Informatics, 1-4/2005 27 Agile Software Project Management Methodologies Prof. Constanţa-Nicoleta BODEA, PhD Economic Informatics Department, Academy of Economic Studies, Bucharest Successfully

More information

Agile processes. Extreme Programming, an agile software development process

Agile processes. Extreme Programming, an agile software development process Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development

More information

EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS?

EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS? EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS? ABSTRACT Ionel IACOB, PhD Faculty of Computer Science for Business Management, Romanian American University, Bucharest, Romania The

More information

Supporting Workflow Overview. CSC532 Fall06

Supporting Workflow Overview. CSC532 Fall06 Supporting Workflow Overview CSC532 Fall06 Objectives: Supporting Workflows Define the supporting workflows Understand how to apply the supporting workflows Understand the activities necessary to configure

More information

The Role of Software Quality in Agile Software Development Methodologies Osama Sohaib and Khalid Khan Abstract he various agile software development methodologies have promoted since their inception and

More information

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc.

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc. TALKING POINTS Quality is an inherent aspect of true agile software development. The majority of agilists take a test-driven approach to development where they write a unit test before they write the domain

More information

3C05: Unified Software Development Process

3C05: Unified Software Development Process 3C05: Unified Software Development Process 1 Unit 5: Unified Software Development Process Objectives: Introduce the main concepts of iterative and incremental development Discuss the main USDP phases 2

More information

Introduction to OpenUP (Open Unified Process)

Introduction to OpenUP (Open Unified Process) Introduction to OpenUP (Open Unified Process) Different projects have different process needs. Typical factors dictate the needs for a more formal or agile process, such as team size and location, architecture

More information

Comparing Agile Software Processes Based on the Software Development Project Requirements

Comparing Agile Software Processes Based on the Software Development Project Requirements CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical

More information

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology? In this Lecture you will Learn: Systems Development Methodologies What a systems development methodology is Why methodologies are used The need for different methodologies The main features of one methodology

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).

More information

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market JKAU: Eng. Sci., Vol. 21 No.1 pp: 19-35 (1431A.H./2010 A.D.) DOI: 10.4197 / Eng. 21-1.2 Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market Faculty of Computer Science and

More information

Extreme Programming and Rational Unified Process Contrasts or Synonyms?

Extreme Programming and Rational Unified Process Contrasts or Synonyms? Extreme Programming and Rational Unified Process Contrasts or Synonyms? Per Runeson and Peter Greberg Lund University, Sweden per.runeson@telecom.lth.se Abstract The agile movement has received much attention

More information

Agile Methodologies and Its Processes

Agile Methodologies and Its Processes International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information

More information

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb.

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb. CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ How Should We Build Software? Let s look at an example Assume we asked our IT folks if they can do the

More information

Applying Agile Methods in Rapidly Changing Environments

Applying Agile Methods in Rapidly Changing Environments Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen

More information

Agile Requirements Methods

Agile Requirements Methods Agile Requirements Methods by Dean Leffingwell Software Entrepreneur and Former Rational Executive To ensure that their software teams build the right software the right way, many companies turn to standard

More information

Making the Most of the Software Development Process

Making the Most of the Software Development Process Making the Most of the Software Development Process Dr Graham Stone, Dunstan Thomas Consulting http://consulting.dthomas.co.uk Organisations are under increased pressure to look at development initiatives

More information

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell ATHABASCA UNIVERSITY Selecting a Software Development Methodology based on Organizational Characteristics BY Adrienne Farrell An essay submitted in partial fulfillment Of the requirements for the degree

More information

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii

More information

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24 Table of Contents CHAPTER 1 Web-Based Systems 1 The Web 1 Web Applications 2 Let s Introduce a Case Study 3 Are WebApps Really Computer Software? 4 Are the Attributes of WebApps Different from the Attributes

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

The Unified Software Development Process

The Unified Software Development Process The Unified Software Development Process Technieche Universal Darmstadt FACHBEREICH IN-FORMAHK BLIOTHEK Ivar Jacobson Grady Booch James Rumbaugh Rational Software Corporation tnventar-nsr.: Sachgebiete:

More information

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006 Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme

More information

Integrating Requirements Engineering into Software Engineering Processes

Integrating Requirements Engineering into Software Engineering Processes SEG3101 (Fall 2010) Integrating Requirements Engineering into Software Engineering Processes Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) and material

More information

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended. Previews of TDWI course books offer an opportunity to see the quality of our material and help you to select the courses that best fit your needs. The previews cannot be printed. TDWI strives to provide

More information

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

More information

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.

More information

An Example Checklist for ScrumMasters

An Example Checklist for ScrumMasters An Example Checklist for ScrumMasters Michael James (mj4scrum@gmail.com) 14 September 2007 (Revised 24 July 2012) A Full Time Facilitator? An adequate ScrumMaster can handle two or three teams at a time.

More information

Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and

Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and private study only. The thesis may not be reproduced elsewhere

More information

Development Methodologies Compared

Development Methodologies Compared N CYCLES software solutions Development Methodologies Compared Why different projects require different development methodologies. December 2002 Dan Marks 65 Germantown Court 1616 West Gate Circle Suite

More information

CSSE 372 Software Project Management: More Agile Project Management

CSSE 372 Software Project Management: More Agile Project Management CSSE 372 Software Project Management: More Agile Project Management Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: Plan Create a plan for

More information

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study S. Vijayakumar vijsy003@students.unisa.edu.au School of Computer and Information Science University of South Australia,

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course

More information

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations www.ijcsi.org 457 Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations Prakash.V SenthilAnand.N Bhavani.R Assistant

More information

15 Principles of Project Management Success

15 Principles of Project Management Success 15 Principles of Project Management Success Project management knowledge, tools and processes are not enough to make your project succeed. You need to get away from your desk and get your hands dirty.

More information

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

SEEM4570 System Design and Implementation Lecture 10 Software Development Process SEEM4570 System Design and Implementation Lecture 10 Software Development Process Software Development A software development process: A structure imposed on the development of a software product Also

More information

Software Engineering and Scientific Computing

Software Engineering and Scientific Computing Software Engineering and Scientific Computing Barbara Paech, Hanna Valtokari Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de paech@informatik.uni-heidelberg.de

More information