Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.

Slides:



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

AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
SDLC – Beyond the Waterfall
Software Development Life-Cycle Models
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
Agile
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
An Agile View of Process
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
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.
Modelling the Process and Life Cycle
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
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.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4 th Edition.
Chapter 2 Modelling the Process and Life Cycle. Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 2.2 Contents 2.1 The Meaning of Process.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Agile
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
SOFTWARE PROCESS MODELING Benjamin Dixon U
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
 Son Nguyen, YM & Skype: ng_thanhson.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
CS223: Software Engineering
Software Development - Methodologies
Software Development.
Embedded Systems Software Training Center
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Waterfall and Agile Quality Techniques
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Software life cycle models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Chapter 3 – Agile Software Development
Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Chapter 3: Agile Software Processes
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing Deployment Maintenance Retirement Migration

Waterfall Model

+Simple +Efficient +Easy to Manage -Does not fit real-life (requirements are never correct or exact and planning is never perfect) -Does not provide means for dealing with unplanned changes

Reality…

Prototyping Key Problem: Unclear Specification, Poor Understanding of the process. Solution: Prototyping! User’s get to feel the system and designers get to know what users want or need. Specification kinks are worked out.

Waterfall Model with Prototyping

Validation A process that ensures that: 1)the system has implemented ALL the requirements in the specification; 2)All the implemented features correspond to the requirements. I.e. validation checks FEATURES.

Verification Ensures that each function works correctly. I.e. verification checks QUALITY.

V Model

Demonstrates how testing activities relate to analysis and design. +Allows refining of previous development steps. +Allows fallback / correction.

Prototyping Model Excellent for poorly understood systems or processes.

Operational Specification * Meant for projects with poorly understood requirements. * Requirements are evaluated (enacted) in order to extract implications for the system design.

Transformation Model Currently utopian ultimate goal to eliminate coding by allowing specification to be transformed into final product. But how?

Phased Development Software development process amounts to a sequence of build & release events. + Quick turn-around + Fast time to market -Bugs / wrong features released -Still requires process model for each build & release iteration. Most projects are incremental! * Requires development, testing, QA, and production systems.

Spiral Model

Built around risk-management in order to minimize and control risk. An iterative model: –With each iteration risk analysis weighs alternatives in light of requirements and constraints –Prototype is built to verify feasibility of the chosen approach –Feasible prototypes are implemented The most rigorous process available

Agile Methodology Developed as a counter-rigor approach. Individuals are valued over processes and tools (which means developers get all the goodies they need/want). Informal communication is more important than written documentation. Working code is more important than formal documentation / specification. Collaboration with customer important. Response to change is immediate and requires no formal planning. + Good for homogeneous enthusiast-type groups with low cadre turn-over. - Poor for controlled environments.

Agile Methods Extreme Programming (XP) involves back-to- back edits of the code by paired developers. Maximum creativity, minimum administration. Crystal approach is based on the notion that the ‘higher quality’ people producer higher quality software. Frequent delivery is important. Scrum relies on 30-day “sprint” iterations. Multiple self-contained team incrementally improve the product in parallel. Adaptive Software Development is organized around delivering product features. Re-doing is as important as doing. Change are expected. Hardest problems are tackled first. Features dumped to meet deadlines.

Key Benefits of Agile / XP + Leverages creativity. + Encourages communication & feedback on all stages of development and among all team members (including customers). + Minimizes administrative overhead. + Encourages simplicity, fast releases.

Twelve Facets of XP 1.Planning: each user describes how the system should work and what value each feature provides (user accounts are reconciled by developers in order to determine what features are needed and testable). 2. Small releases: the goal is to deliver fast and provide increments on ongoing basis. 3. Metaphor: common lexicon and vision is adopted. 4. Simplicity is the key. 5. Tests are written first (functional specified by customer; unit tests written by developers). 6. Refactoring of specs, code, design, etc. 7. Pair programming 8. Collective ownership (anybody can change anything) 9. Continuous availability (the system can be built anytime) 10. Sustainable development pace (no heroism!) 11. Customer availability (preferably on site!) 12. Coding standards are enforced.

Disadvantages of XP -Test cases do not necessarily correspond to requirements. -It may be more important to take time and find out what really needs to be done rather than quickly do something that is not really needed. -Refactoring degrades system architecture. -Cannot be practiced in loose or geographically spread-out environment.

Process Modeling UML Class Diagrams Block Diagrams State Diagrams Off Idle Go Turn Key Press Clutch No Gas Depress Clutch Turn Key

Exercise 1)Create block-diagram of N-body O(N 2 ) code. 2)Create state-diagram of the calculation process.