02 Feb 2006CSE481B, Winter'06, Lecture 10 Announcements Tuesday, Feb 07 – no class Use it to work on your milestone release Thursday, Feb 09 – project.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Agile Project Management with Scrum
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
12 Aug 2005CSE403, Summer'05, Lecture 15 Updated Schedule of Remaining Class-Related Deliverables Fri, Aug 10pm: hw#4 responses due Sun, Aug
Rational Unified Process
Outline (Mis)communicating expectations Schedule of class-related deliverables Specific final release deliverables Your questions Intellectual activity:
29 Jul 2005CSE403, Summer'05 Student Startup Sequence Verify network connection Rotate to Landscape mode Start Presenter 2.0 Maximize Application Role->Student.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Outline Your questions Upcoming milestone deliverables Testing in the project lifecycle Analyzing scenarios using inference diagrams Mistakes to avoid.
1 KAN’S INTRO AND OVERVIEW MODELS Ch1 & 2 in his book Steve Chenoweth, CSSE.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Software Development *Life-Cycle Phases* Compiled by: Dharya Dharya Daisy Daisy
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
1 Microsoft’s Process Redmond in the 90’s Article by Roger Sherman, Director of Testing, Worldwide Products Group, Microsoft.
22 Jul 2005CSE403, Summer'05, Lecture 12 Lecture 12: Scheduling, Estimation, and Prioritization (Part II) Valentin Razmov.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 8 – Software Testing Part 2 1Chapter 8 Software testing.
Valentin Razmov, CSE403, Sp'05 CSE403 Section 1: The Fate of Software Projects Learning = Practice + Feedback Desirable Qualities in Teammates Team-Building.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
STEP 4 Manage Delivery. Role of Project Manager At this stage, you as a project manager should clearly understand why you are doing this project. Also.
> whoami Yuriy Brun Office: CSE 340
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Initiation Project Management Minder Chen, Ph.D. CSU Channel Islands
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
18 Aug 2005CSE403, Summer'05, Lecture 17 Lecture 17: Course Retrospective and the Path to Lifelong Learning (Part I) Valentin Razmov.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Deliverables: Beta Release Installation package Application sources and binaries One-step build for all sources Latest specification & design documents.
09 Aug 2006CSE403 Summer'06 Lecture 19b Lecture 19: Software Quality (Part II) Valentin Razmov Conway’s Law: “The structure of a computer program reflects.
MAY 19 th 2016 Jovan Poljački
07 Aug 2006CSE403, Summer'06 Final Exam: Take-home versus In-class Valentin Razmov Take-home No rush to complete in 1 hour at 9:40am More realistic (but.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
27 Jul 2006CSE403, Summer'06, Lecture 15 Midterm Exam Statistics Other statistics: Average: 40.6 Median: 42.3 Std Dev: 6.2 Max: 46.5 Min: 28 Easiest Problems:
Applied Software Project Management SOFTWARE TESTING Applied Software Project Management 1.
Embedded Systems Software Engineering
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
Software Engineering (CSI 321)
Managing the Project Lifecycle
Classroom Interaction via Tablet PCs and Student Submissions
Agile Scrum Management
Computer tools for Scheduling
Lecture 11: Scheduling, Estimation, and Prioritization
The Rational Unified Process® RUP® - For Dummies
Outline Updated schedule of class-related deliverables Your questions
Applied Software Implementation & Testing
Johanna Rothman Create Technical Excellence Chapter 9
How to Successfully Implement an Agile Project
Johanna Rothman Know What “Done” Means Chapter 11
Section 01: Life Cycle Objectives Review
Lecture 02: Software Lifecycle Models
Testing and Test-Driven Development CSC 4700 Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Lecture 03: Software Lifecycle Models
Finding and Managing Bugs CSE 403 Lecture 23
Software engineering -1
Software Verification, Validation, and Acceptance Testing
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Projects, Assignments, and other Assessments
Managing Change and Quality
Section 01: Life Cycle Objectives Review
Information system analysis and design
Presentation transcript:

02 Feb 2006CSE481B, Winter'06, Lecture 10 Announcements Tuesday, Feb 07 – no class Use it to work on your milestone release Thursday, Feb 09 – project presentations in class Time: 10 mins + 2 mins for questions per team Different ordering of teams

02 Feb 2006CSE481B, Winter'06, Lecture 10 Expectations and Questions for Your Team’s Presentation Demo Show what the team has accomplished so far, even if it is rudimentary at that stage. Progress since the previous milestone Have you been able to tackle (or at least get an accurate assessment of) the biggest risks identified previously? Has the planned agenda turned out as expected or were there surprises (and if so, which ones and what is being done about them)? Biggest risks going forward What is your specific plan for the next milestone? What should we reasonably expect to see by then?

02 Feb 2006CSE481B, Winter'06, Lecture 10 Lecture 10: Software Quality Valentin Razmov

02 Feb 2006CSE481B, Winter'06, Lecture 10 Outline Quality – a look back at history What is quality? How do we measure quality? How do we improve software quality?

02 Feb 2006CSE481B, Winter'06, Lecture 10 References “Professional Software Development”, by Steve McConnell “The Joel Test: 12 Steps to Better Code”, by Joel Spolsky “Good Enough Quality: Beyond the Buzzword”, by James Bach “Agile Software Development with Scrum”, by Ken Schwaber and Mike Beedle

02 Feb 2006CSE481B, Winter'06, Lecture 10 Project-Related Reflections: Configuration Management Is this surprising? Such hurdles are always present at the start. Ironing them out is a major reason for doing a zero-feature release very early. Could it have been different? Yes, but not much. VSTS is a new development environment, still in beta quality. Expecting it to be already on par with well tuned development environments is, perhaps, a stretch. Why spend so much time on fixing this? Regular builds are the heart-beat of a project – without them, the project is dead (or on life support, at best). This stuff is hard, resolving it takes patience and iterations. But it’s done only once – then, development can flow better.

02 Feb 2006CSE481B, Winter'06, Lecture 10 Software ‘Gold Rushes’ and Their Influence on Quality The software ‘Gold Rush’ fever periods Goal: being first-to-market in an unclaimed segment Typical environment: two guys in a garage High-risk projects, potentially high pay-off Code-and-fix development, very informal processes Customers are tech savvy, willing to forgive bugs The in-between (post-‘Gold Rush’) periods Goal: sustained, productive competition with others Typical environment: larger teams, formal processes Lower-risk, likely lower but more predictable pay-off Careful, quality-driven development with an emphasis on quality (reliability, interoperability, usability, etc.) Different customer base: demands reliability

02 Feb 2006CSE481B, Winter'06, Lecture 10 The Goal of Building Software To deliver a product that satisfies the customer(s) on time on budget with good quality “We do three types of jobs here... Good, Fast and Cheap. You may choose any two!” Which two would you pick for a project like yours? a) Good and Fast, but not Cheap b) Good and Cheap, but not Fast c) Fast and Cheap, but not Good Student Submission

02 Feb 2006CSE481B, Winter'06, Lecture 10 The Quality Question How do we ensure good quality for software?

02 Feb 2006CSE481B, Winter'06, Lecture 10 What is Quality? Quality is in the eyes of the beholder (customer). First, define what quality means (for the customer!). You and the customer must agree on the expected level of quality. What constitutes good quality in one situation may not be considered good quality in another. E.g.: in a toy project vs. in a safety-critical system A contract must have at least the following components: Who promises to do What for Whom by When with what Quality Criteria/Standards, and with what Notification Mechanism upon completion

02 Feb 2006CSE481B, Winter'06, Lecture 10 Components of Quality Quality comprises (but is not limited to): Requirements quality Design quality Code quality Test quality Documentation quality Given limited resources, which of these do you consider more important to pay attention to? Why? Student Submission

02 Feb 2006CSE481B, Winter'06, Lecture 10 How Do We Measure Software Quality? Software is never perfect. We cannot be sure it is free of defects. What can be done to assess the quality then? Many engineering disciplines use standards for quality. In software, there are few standards, and all (viable) ones assess the quality of processes, not products. Most non-trivial properties of software (code) cannot be inferred or verified, because of the Halting Problem. We are forced to link process quality to product quality. Conway’s Law: “The structure of a computer program reflects the structure of the organization that built it.” E.g.: CMM (Capability Maturity Model) assesses the quality of teams/organizations through their processes.

02 Feb 2006CSE481B, Winter'06, Lecture 10 “Good Enough” Quality At some point, one needs to stop and decide it is all good enough to ship. Under what conditions? Criteria for “good enough” quality: 1. There are clear benefits (of the software). 2. There are no critical problems. 3. Overall, the benefits outweigh the problems. 4. All things considered, further development would be more harmful than helpful.

02 Feb 2006CSE481B, Winter'06, Lecture 10 “Good Enough” Quality (cont.) Other questions to consider: Good enough for whom? You? Your team? The customer? Good enough for what? A demo? A beta release? Selling it? Capturing market share? Have you agreed on: Team standards for acceptable quality? What would constitute success for your team in the end? These are team conversations we’ve done in cse403.

02 Feb 2006CSE481B, Winter'06, Lecture 10 Mechanisms for Raising the Quality of Software Assume you are brought in on an ongoing software project plagued by poor quality. What one or two approaches (mechanisms) would you propose to help raise the quality of the software in production? Make assumptions as needed, to concretize the question. Student Submission

02 Feb 2006CSE481B, Winter'06, Lecture 10 Mechanisms for Raising the Quality of Software: My Ideas Which of the following mechanisms do you use (or plan to use) on your project? Circle all that apply. a)Involvement / frequent iterations with customers and other stakeholders b)Pair programming c)Code reviews (not limited to just “code” – requirements/design review, etc.) d)External auditing e)Using automated tools (e.g., static analysis, code coverage, IDEs, etc.) to help discover non-trivial properties that affect quality f)Refactoring g)Code integration (if not already in place) h)Testing: integration testing, regression testing, acceptance testing; automated testing; test-driven development (with unit testing) i)Component reuse j)Team building activities k)Establish (or ensure the presence of) clear responsibilities within the team l)Realistic up-to-date scheduling Student Submission

02 Feb 2006CSE481B, Winter'06, Lecture 10 A Problem Instance What problem(s) does the graph illustrate? Annotate to explain. Time Work Remaining Student Submission

02 Feb 2006CSE481B, Winter'06, Lecture 10 Recipes for Creating Disasters (a.k.a. Poor Quality Products) Ignore what the customers say they want – the developers surely must know better. Put in all the features that could possibly ever be useful. Do not worry about quality aspects until the deadline approaches. Don’t waste time on design or documentation – after all, code is the most important thing and time is already short to do all there is to be done. …

02 Feb 2006CSE481B, Winter'06, Lecture 10 One-Minute Feedback What one or two ideas discussed today captured your attention and thinking the most? What questions still remain open for you? Be specific. Student Submission