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.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Agile Project Management with Scrum
12 Aug 2005CSE403, Summer'05, Lecture 15 Updated Schedule of Remaining Class-Related Deliverables Fri, Aug 10pm: hw#4 responses due Sun, Aug
Student Startup Sequence Verify network connection Rotate to Landscape mode Start Presenter 2.0 Maximize Application Role->Student Connect->Classroom 2.
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.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Administrivia Lifecycle Architecture (LCA) group assignment will go out later today. Informal feedback meetings with LCO groups EasyShare: Mon, 2:45pm-3:15pm,
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
1 Jul 2005CSE403, Summer'05, Section 02 Section 02: Life Cycle Architecture Review Valentin Razmov.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
Outline Your questions Upcoming milestone deliverables Testing in the project lifecycle Analyzing scenarios using inference diagrams Mistakes to avoid.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
An Agile View of Process
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Data Structures and Programming.  John Edgar2.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
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.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Software change  Managing the processes of software system change.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
22 Jul 2005CSE403, Summer'05, Lecture 12 Lecture 12: Scheduling, Estimation, and Prioritization (Part II) Valentin Razmov.
January 12, Introduction to Design Patterns Tim Burke References: –Gamma, Erich, et. al. (AKA, The Gang of Four). Design Patterns: Elements of Reusable.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
ECE450S – Software Engineering II
05/26/2004www.indyjug.net1 Indy Java User’s Group May Knowledge Services, Inc.
Software Engineering (CSI 321) An Agile View of Process 1.
11 Jul 2005CSE403, Summer'05, Lecture 08 Lecture 08: Best Practices for Software Design (Part I) Valentin Razmov.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System A Use Case Primer Organizing.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 16: The Agile Methodology.
07 Jul 2006CSE403, Summer'06, Lecture10 Lecture 10: Core Principles and Best Practices for Software Design (Part I) “Treat design as a wicked, sloppy,
1 Good Object-Oriented Design Dr. Radu Marinescu Lecture 4 Introduction to Design Patterns.
Deliverables: Beta Release Installation package Application sources and binaries One-step build for all sources Latest specification & design documents.
Deliverables: Zero-Feature Release Build process, installation process, code repository, automated testing framework, bug tracking system Maybe no tests.
Poka-yoke in software A software products company sells application software to an international market. The pull-down menus and associated mnemonics provided.
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.
Chapter 5 Agile Development Moonzoo Kim KAIST
Process 4 Hours.
Design Patterns: MORE Examples
Strategy Design Pattern
Software Engineering (CSI 321)
Managing the Project Lifecycle
Classroom Interaction via Tablet PCs and Student Submissions
Project Workflow.
Introduction to Design Patterns
CSE 403 Software Engineering
Software Engineering (CSI 321)
How to Successfully Implement an Agile Project
Beta Release Retrospective
Chapter 9 – Software Evolution and Maintenance
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Lecture 09: Software Architecture (Part I)
Introduction to Agile Blue Ocean Workshops.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

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 same number of) problems Still bounded complexity Different atmosphere from the midterm, tests different skills Access to other (online) resources in responding to questions One more day in the class for covering actual subject content In-class Like a second midterm, but higher stakes (20% of grade) On the last day of class Course would end with an exam, rather than with a pleasant discussion and retrospective Hybrid version? In-class for 2 hours 8:40am-10:40am or 9:40am-11:40am)

Final Release Deliverables Installation packages Including all of the items below Application sources and binaries Separate distributions (installation packages) for customers and developers One-step build – from compiling all sources to creating installation packages User & technical documentation (separate) User doc: What does my mom need to know (and do) in order to run your product? Technical doc: What does a new dev’t team need to know to work on version 2? Release notes Known remaining issues with associated severities & priorities Include a link to your bug tracking system’s tasks/tickets reflecting those issues Location of your current code repository Instructions on running the installer and your app are now moved to the user doc. Latest test plan Reflecting the test cases that were verified as well as those that were left out Automated tests (unit tests and acceptance/full system tests) Information on test coverage would be a very welcome (but optional) addition. Up-to-date schedule Items that have been accomplished (of those that were planned/promised) Features (of those initially planned) that are now pushed to version 2 or abandoned How much would each such feature cost (in terms of development effort)? Questions to consider: Who is your audience – customers or developers? What do they expect from this release? What defines success for them?

7 August, 2006Lincoln Ritter 3 Lecture 16: Design Patterns, Cont Viewing problems and solutions in context

7 August, 2006Lincoln Ritter 4 Design Patterns Defined “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice” – Alexander, et al., A Pattern Language. Oxford University Press, 1977

7 August, 2006Lincoln Ritter 5 Pattern Principles +Encapsulate variance +Abstract the invariant +Favor composition

7 August, 2006Lincoln Ritter 6 Strategy + Intent: Encapsulate each of a family of behaviors such that the use of the behaviors varies independently of the client. + Motivation: Remember the animals…

7 August, 2006Lincoln Ritter 7 Strategy: Structure

7 August, 2006Lincoln Ritter 8 A New Pattern + Intent: Attach additional responsibilities to an object dynamically or in response to changing requirements. + Motivation: What if we need to add additional processing steps to one of our algorithms…

7 August, 2006Lincoln Ritter 9 A New Pattern, Continued Student Submission

7 August, 2006Lincoln Ritter 10 Decorator: Structure

7 August, 2006Lincoln Ritter 11 Command + Intent: Encapsulate a request or action as an object. + Motivation: Sometimes we need to issue commands without knowledge of the specifics of any command – a menu is a good example.

7 August, 2006Lincoln Ritter 12 Command: Structure

7 August, 2006Lincoln Ritter 13 Bridge and Adapter + Intent: Decouple a set of implementations from the set of clients using them. + Motivation: Perhaps we want to enable different toolkits to perform the same operations…

7 August, 2006Lincoln Ritter 14 Bridge and Adapter: Structure

7 August, 2006Lincoln Ritter 15 Resources +Hillside.net ( +Patterns and Frameworks ( +Design Patterns: Elements of Reusable Object- Oriented Software. Gamma et al. Addison- Wesley, Boston, Design Patterns Explained: A New Perspective on Object-Oriented Design, 2 nd Ed. A. Shalloway and J. Trott. Addison-Wesley, Boston, 2004.

07 Aug 2006CSE403 Summer'06 Lecture 19 Lecture 19: Software Quality Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 Outline Today: Quality – a look back at history “Good enough” quality What is (software) quality? Next time: How do we measure quality? How do we improve software quality? Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 References Good Enough Quality: Beyond the Buzzword, by James Bach Professional Software Development, by Steve McConnell Agile Software Development with Scrum, by Ken Schwaber and Mike Beedle Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 Food for Thought: Quality in Different Contexts 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 Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 Back to Basics: The Goal of Building Software To deliver a product that satisfies the customer(s) on time on budget with good quality But wait… Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 The Quality Question How do we ensure good quality for software? Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 “Good Enough” Quality (James Bach, 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. In the present situation and all things considered, further development would be more harmful than helpful. Question: Is your product good enough now ? Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 “Good Enough” Quality (cont.) Important 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 some of the team conversations we did earlier. Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 Take a Step Back: 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 Valentin Razmov

07 Aug 2006CSE403 Summer'06 Lecture 19 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 Valentin Razmov