Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Copyright © Texas Education Agency, Computer Programming Software Life Cycle.
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
NAUG NAUG Knowledge Evening – th February 2007.
Problem Solving #1 ICS Outline Review of Key Topics Review of Key Topics Example Program Example Program –Problem 7.1 Problem Solving Tips Problem.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
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.
Transitioning to XP or The Fanciful Opinions of Don Wells.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Software Development Process
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.
COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
Big Java Chapter 12. Software Process - Waterfall Analysis Design Implementation Testing Deployment Does not work well when rigidly applied! established.
EXtreme Programming: An Introduction Presentation by: Jon Banta.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts Software methodologies – Extreme Programming Object-Oriented Design – CRC Cards - UML.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
XP – Extreme Programming
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Agile
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Software Development - Methodologies
Software Development.
Computer Programming Software Life Cycle.
Planning User stories are written.
Extreme Programming.
Approaches to Systems Development
What do you need to know about XP?
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Refactoring.
Extreme Programming.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Software Development Life Cycle

The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software development Describes phases of the development process Gives guidelines for how to carry out the phases  Development process Analysis Design Implementation Testing Deployment

Analysis  Decide what the project is suppose to do  Do not think about how the program will accomplish tasks  Output: requirements document Describes what program will do once completed User manual: tells how user will operate program Performance criteria

Design  Plan how to implement the system  Discover structures that underlie problem to be solved  Decide what classes and methods you need  Output: Description of classes and methods Diagrams showing the relationships among the classes

Implementation  Write and compile the code  Code implements classes and methods discovered in the design phase  Output: completed program

Testing  Run tests to verify the program works correctly  Output: a report of the tests and their results

Deployment  Users install program  Users use program for its intended purpose

The Waterfall Model  Sequential process of analysis, design, implementation, testing, and deployment  When rigidly applied, waterfall model did not work

The Waterfall Model

The Spiral Model  Breaks development process down into multiple phases  Early phases focus on the construction of prototypes  Lessons learned from development of one prototype can be applied to the next iteration  Problem: can lead to many iterations, and process can take too long to complete

The Spiral Model

Extreme Programming  Strives for simplicity  Removes formal structure  Focuses on best practices Realistic planning Small releases Metaphor Simplicity Testing Refactoring Continued…

Extreme Programming  Focuses on best practices Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards

Extreme Programming  Realistic planning Customers make business decisions Programmers make technical decisions Update plan when it conflicts with reality  Small releases Release a useful system quickly Release updates on a very short cycle  Metaphor Programmers have a simple shared story that explains the system

Extreme Programming  Simplicity Design as simply as possible instead of preparing for future complexities  Testing Programmers and customers write test cases Test continuously  Refactoring Restructure the system continuously to improve code and eliminate duplication

Extreme Programming  Pair programming Two programmers write code on the same computer  Collective ownership All programmers can change all code as needed  Continuous integration Build the entire system and test it whenever a task is complete

Extreme Programming  40-hour week Don't cover up unrealistic schedules with heroic effort  On-site customer A customer is accessible to the programming team at all times  Coding standards Follow standards that emphasize self- documenting code

Object-Oriented Design 1. Discover classes 2. Determine responsibilities of each class 3. Describe relationships between the classes

Discovering Classes  A class represents some useful concept  Concrete entities: bank accounts, ellipses, and products  Abstract concepts: streams and windows  Find classes by looking for nouns in the task description  Define the behavior for each class  Find methods by looking for verbs in the task description

CRC Card  CRC Card  Describes a class, its responsibilities, and its collaborators  Use an index card for each class  Pick the class that should be responsible for each method (verb)  Write the responsibility onto the class card  Indicate what other classes are needed to fulfill responsibility (collaborators)