Dilbert Scott Adams. CSc 233 Spring 2012

Similar documents
Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Software Development Process Models

The requirements engineering process

User-Centered Development

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

CS 490 Design Exhibition Fall 2010

System Development Life Cycle Methods/Approaches/Models

SOFTWARE LIFE-CYCLE MODELS 2.1

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Lecture 7: Software Processes. Refresher: Software Always Evolves

Objectives. Connecting with Computer Science 2

Incremental development A.Y. 2018/2019

Quality Management Plan (QMP)

Introduction to Software Engineering

Agile Tester Foundation E-learning Course Outline

Systems Analysis & Design

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

Agile Testing Course: 15 16/11

CS 320 Introduction to Software Engineering Spring February 06, 2017

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

*ANSWERS * **********************************

18-642: Software Development Processes

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

Software Process. Software Process

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

SE420 - Software Quality Assurance

Testing in the Agile World

Foundation Level Syllabus Usability Tester Sample Exam Answers

CS487 Midterm Exam Summer 2005

DSDM Agile Professional Candidate Guidelines October I do it right

Testing in Agile Software Development

Quality Management Plan (QMP)

Software Development Methodologies

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

Sample Exam. Certified Tester Foundation Level

Introduction - SENG 330. Object-Oriented Analysis and Design

Software Engineering Lifecycles. Controlling Complexity

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Adopting Agile Practices

AGILE. Getting Started on Your Team. Davisbase. Copyright 2011 Davisbase LLC. Licensed for Classroom Use to ASPE for Webinar Use Only

Foundation Level Syllabus Usability Tester Sample Exam

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Software processes. Objectives. Contents

Software Testing Interview Question and Answer

Testing Agile Projects Stuart Reid

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Exam Questions

DESIGN. (Chapter 04)

Quality Management Plan (QMP)

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

Improved Database Development using SQL Compare

Designed in collaboration with Infosys Limited

Extreme programming XP 6

CIS 3730 FALL 2008 Database Management System Project

Bridge Course On Software Testing

Previous Capstone Project

Requirements and User-Centered Design in an Agile Context

Process Models. Projects Process. Common Process Models. Typical Student Process Model. Waterfall Model

Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Advanced Software Engineering: Software Testing

Process of Interaction Design and Design Languages

Analysis and Design with UML

l e a n Lean Software Development software development Faster Better Cheaper

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Development Processes Agile Adaptive Planning. Stefan Sobek

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

CTAL. ISTQB Advanced Level.

The Agile Unified Process (AUP)

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Going Agile. UK TMF April 2011

((MARKS)) (1/2/3...) ((QUESTIO N)) ((OPTION_ A)) What is Software?

Second. Incremental development model

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Project Plan. SISCalendar. for. Prepared by Zach Masiello. Ethan Mick Michael Caputo Shawn Thompson Organization: SIS.io

Kanban One-Day Workshop

This course includes 14 lessons and 5 Course Activities. Each lesson contains one or more Lesson Activities. The lessons cover the following topics:

Shift Left Testing: are you ready? Live Webinar, Sept 19

BDSA Introduction to OOAD. Jakob E. Bardram

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

mywbut.com Software Life Cycle Model

Best Practices for Collecting User Requirements

Introduction to Software Engineering

I am Stephen LeTourneau from Sandia National Laboratories Sandia s National Security Missions include: Nuclear Weapons Defense Systems & Assessments

Senior Design - Spring 2014 EE/CpE 424. Class 2 3/4/14

The Design Space of Software Development Methodologies

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

A CONFUSED TESTER IN AGILE WORLD

Software Quality Assurance

Gradational conception in Cleanroom Software Development

Disciplined Agile Delivery The Foundation for Scaling Agile

Three Ways to Reduce Product Delivery Risk and to Lower Software Lifecycle Costs

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Software Engineering

Certified Tester Foundation Level(CTFL)

Requirement Engineering within an Agile Environment BY KEJI GIWA. Digital Bananas Technology

Systems Analysis and Design

Transcription:

Dilbert Scott Adams CSc 233 Spring 2012

Dilbert Scott Adams CSc 233 Spring 2012 2

Dilbert Scott Adams CSc 233 Spring 2012 3

prerequisites CSc 233 Spring 2012 I thought we had agreed long ago that the Department Policy was that all instructors would check for the completion of all prerequisites in the prerequisite chain. This may have been requested, but I don't recall it ever becoming policy. I don't check prerequisites. We are a 21st century computer science department at a university with an expensive CMS system. I would think that this is a university-wide problem and requires a university-wide solution that is better than having hundreds of faculty do such busy-work. 4

CSc 233 Spring 2012 How hard would it be for CMS to make a second prerequisite check after grades have been submitted but before the semester begins? A few hours work by a talented programmer should suffice, don't you think? A day in the life 5

Life Cycle: Chapter 3: Using Life Cycles The way you and the team organize the work of product development. When to define requirements, design, develop, and test, as well as concurrently. There is no one right way it depends. On what? 6

What process? Evidence shops that had no well-defined process were unable to deliver on-time with expected features. There is no Best Practice process. Necessary but not necessarily sufficient Every project is different, every team is unique the Project Manager decides what works & what does not. The methodology chosen should include periodic reevaluation and inclusion of practices that fit your project and your team. Ship It! A Practical Guide to Successful Software Projects. Richardson & Gwaltney. Pragmatic Bookshelf, 2005 7

Figure 3.1 Type Serial Iterative Incremental Iterative / Incremental Ad hoc Examples Waterfall, Phase gate Spiral, evolutionary prototyping Design to schedule, staged delivery Agile (such as Scrum, XP) Code & fix Strengths & necessary conditions for success Project Priorities Prognosis for success Manages cost risk. 1. Features set Successful with feedback Known and agreed upon 2. Low defects Well-understood system architecture 3. Time to release Requirements stable over the project Project team stable over the project Manages technical risk 1. Features set Successful assuming the Ever-evolving requirements 2. Low defects finishing parts are 3. Time to release and occur. Manages schedule risk. 1. Time to release Successful Can absorb small requirements 2. Low defects changes but not enough changes that 3. Feature set affect the architecture. Manages both schedule & technical risk 1. Time to release Successful Difficult to do well without a 2. Feature set integrated team. 3. Low defects You guys start coding; 1. Time to release Unsuccessful I ll get the requirements 2. Feature set 3. Low defects 8

Serial Figure 3.2 Requirements Analysis Design Code Integration Iterative Requirements Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Integration Incremental Some Requirements Analysis to choose overall architecture Design, Code, Integrate & Design, Code, Integrate & Final Integration Final Agile Some requirements / Planning Repeat as needed Each timebox results in running tested features. 9

Serial Figure 3.2 CSc 233 Spring 2012 Requirements Analysis Design Code Integration Iterative Requirements Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Integration Incremental Some Requirements Analysis to choose overall architecture Design, Code, Integrate & Design, Code, Integrate & Final Integration Final Agile Some requirements / Planning Repeat as needed Each timebox results in running tested features. 10

Serial Figure 3.2 CSc 233 Spring 2012 Requirements Analysis Design Code Integration Iterative Requirements Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Integration Incremental Some Requirements Analysis to choose overall architecture Design, Code, Integrate & Design, Code, Integrate & Final Integration Final Agile Some requirements / Planning Repeat as needed Each timebox results in running tested features. 11

Serial Figure 3.2 CSc 233 Spring 2012 Requirements Analysis Design Code Integration Iterative Requirements Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Prototype: Analysis, Design, Code Integration Incremental Some Requirements Analysis to choose overall architecture Design, Code, Integrate & Design, Code, Integrate & Final Integration Final Agile Some requirements / Planning Completed features at the end of each iteration Repeat as needed Each timebox results in running tested features. 12

Combination: Iterative & Incremental Initial pass at requirements Prototype what we do know about. Get feedback. Select an architecture Fully implement 3 features, integrating as we go. architecture Demo what we have. Keep implementing, integrating as we go. Final test. Feedback needed: To assess remaining project risks To assess project s state To assess how quickly the team can produce working software The more you know, the better you can predict done. 13

CSc 233 Spring 2012 Incremental development Scheduling and staging strategy in which the various parts of the system are developed at different times or rates, and integrated as they are completed. It does not imply, require nor preclude iterative development or waterfall development - both of those are rework strategies. The alternative to incremental development is to develop the entire system with a "big bang" integration. 14

CSc 233 Spring 2012 Iterative development Rework scheduling strategy in which time is set aside to revise and improve parts of the system. It does not presuppose incremental development, but works very well with it. Typical difference is that the output from an increment is not necessarily subject to further refinement, and its testing or user feedback is not used as input for revising the plans or specifications of the successive increments. The output from an iteration is examined for modification, and especially for revising the targets of the successive iterations. 15

Fig 3.7 One Large Project Life Cycle Developer Life Cycle Prototype architecture and select product architecture Design, code, integrate and test features A, B, C: add to smoke tests were makes sense Design, code, integrate and test features D, E, F, G, H More stages of Design, code, integrate and test, including add more smoke tests Initial Definition of Requirements Select test architecture Develop whole product smoke tests Develop first pass of system tests to verify release criteria Develop system tests to test features A, B, C in more depth More iterations of adding more detailed system tests and adding more tests to verify release criteria Final integration Final test er Life Cycle 16

Feedback Design Debug Code 17

Code & Refactor Loop Start a feature Refactor Code Build at least daily 18

Waterfall CSc 233 Spring 2012 Agile 19

CSc 233 Spring 2012 Waterfall Project Team Agile Project Team 20

CSc 233 Spring 2012 Waterfall Project Scope Change Agile Project No Scope Change 21

Architectural Risk Risk is that the architecture will not work for all features. Why would the Waterfall life cycle be the riskiest for managing architectural risks? The only way to really manage architectural risk is to implement something and test it. 22

Stuck with a serial lifecycle! Plan to iterate on everything (planning, requirements & prototyping) Prototype and show your customer as much as possible as early as possible. Feedback!!! Integrate testing from the beginning work with the testers. Implement by feature, integrating and testing Documentation? Yes, but it s not the deliverable. 23

The author s favorite Life Cycle Agile is her first choice but!! If the customer is not readily available, If the team members are not into collaborating, If the team members are not disciplined, forget it! Regardless, staged delivery is recommended. Finished features get pushed out as soon as possible. 24