12 Aug 2005CSE403, Summer'05, Lecture 15 Updated Schedule of Remaining Class-Related Deliverables Fri, Aug 10pm: hw#4 responses due Sun, Aug

Slides:



Advertisements
Similar presentations
CERT Train-the-Trainer: Maximize Learning
Advertisements

The Process of Interaction Design. Overview What is Interaction Design? —Four basic activities —Three key characteristics Some practical issues —Who are.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Outline (Mis)communicating expectations Schedule of class-related deliverables Specific final release deliverables Your questions Intellectual activity:
10 Aug 2005CSE403, Summer'05, Lecture 15 Lecture 15: Configuration Management, Software Maintenance, and Code Reviews (Part I) Valentin Razmov.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Valentin Razmov, Richard Anderson {valentin,
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
Administrivia Lifecycle Architecture (LCA) group assignment will go out later today. Informal feedback meetings with LCO groups EasyShare: Mon, 2:45pm-3:15pm,
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Outline Your questions Upcoming milestone deliverables Testing in the project lifecycle Analyzing scenarios using inference diagrams Mistakes to avoid.
13 Jul 2006CSE403, Summer'06, Lecture10 Lifecycle Architecture Review: Preliminary Feedback Valentin Razmov.
The principles used by AUTEC in granting ethical approval for research.
1 CSE 403 Collaborative Programming: Pair Programming, Code Reviews, Walkthroughs and Maintenance and Refactoring These lecture slides are copyright (C)
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
19 Aug 2005CSE403, Summer'05, Lecture 17 Lecture 17: Course Retrospective and the Path to Lifelong Learning (Part II) Valentin Razmov.
Effective Teaching of Health Reporting: Lectures and More Barbara Gastel, MD, MPH Texas A&M University Train the Trainer Workshop: Health Reporting for.
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.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Preparing papers for International Journals Sarah Aerni Special Projects Librarian University of Pittsburgh 20 April 2005.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Wellness.
Short Break Champions July Champions Why Selection The Role Programme of activities Lessons learned Going Forward.
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Step 5: Complete Your Project. Setting the scene Suppose you have been running a project to write a small piece of computer software for a business. The.
Ms. Paschitti. What is your definition of success? bcitech.org/lpaschitti 2.
The Traditional System Development Life Cycle There are a number of important steps in the creation of a system, regardless of which approach you use.
Code Reviews. Challenges of Large Code Base How to ensure… – Maintainable code? – DRY code? – Readable code? – Bug-free code? Average defect detection.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
06 Jul 2006CSE403, Summer'06, Lecture08 Lecture 08: Requirements Gathering Techniques (Part II) Valentin Razmov “The goal of requirements engineering is.
05 Jul 2006CSE403, Summer'06, Lecture07 Administrivia Informal feedback meetings with LCO groups FantasySportsLeague: still to come today Individual assignment.
> whoami Yuriy Brun Office: CSE 340
CSE 403 Lecture 27 Course Wrap-up Discussion slides created by Marty Stepp
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
18 Aug 2005CSE403, Summer'05, Lecture 17 Lecture 17: Course Retrospective and the Path to Lifelong Learning (Part I) Valentin Razmov.
QUnit JavaScript Testing in the Enterprise David Lee Oct. 11, 2011.
CSE 403 Lecture 25 Scheduling and Planning a Large Project Reading: The Mythical Man-Month, Ch. 2, by F. Brooks slides created by Marty Stepp
1 CSE 403 Team Dynamics Reading: Rapid Development Ch. 13, Pragmatic Programmer Ch These lecture slides are copyright (C) Marty Stepp, 2007, with.
Project Planet Seafood. Project Overview Client Background 15 years old fresh family owned seafood business called "Planet Seafood". Initial core business.
CSE 403, Spring 2008, Alverson Software Development Lifecycle The Power of Process.
Marking and Feedback CPD Follow up to marking. Expectations and ground rules Respect the views of others Give everyone space to make a contribution All.
05 Jul 2006CSE403, Summer'06, Lecture08 Lecture 08: Techniques for Gathering Requirements Valentin Razmov “The goal of requirements engineering is to develop.
CSE 403, Spring 2008, Alverson CSE 403 Software Engineering Pragmatic Programmer Tip: Care about Your Craft Why spend your life developing software unless.
Understanding our customers Safe Solutions – our answer to 911 The initial inquiry phase – what is our goal? Understanding our customer’s needs and wants.
30 Jun 2006CSE403, Summer'06, Section02 Administrivia Individual assignment #1 will go out later today. Upcoming holiday schedules: Mon / Wed? Informal.
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
Deliverables: Beta Release Installation package Application sources and binaries One-step build for all sources Latest specification & design documents.
8-1 Evaluating and Terminating the Project. Outline: 8-2  Evaluating  Project audits  Termination activities  Project final report.
Glencoe Making Life Choices Section 2 How to Develop a Healthy Relationship Chapter 18 Dating, Commitment, and Marriage 1 > HOME Content.
Internal developer tools and bug tracking Arabic / Hebrew Windows 3.1Win95 Japanese Word, OneNote, Outlook
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.
CSE403 Software Engineering Autumn 2001 Gary Kimura Lecture #2 October 3, 2001.
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:
Outline Your one-minute feedback from last week
Classroom Interaction via Tablet PCs and Student Submissions
Methodologies By Akinola Soyinka.
Lecture 11: Scheduling, Estimation, and Prioritization
Outline Updated schedule of class-related deliverables Your questions
Lecture 02: Software Lifecycle Models
Lecture 06: Team Environment Issues
Lecture 03: Software Lifecycle Models
Updated Schedule of Remaining Class-Related Deliverables
Applied Software Project Management
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Section 01: Life Cycle Objectives Review
Lecture 07: Team Environment Issues (Part I)
Presentation transcript:

12 Aug 2005CSE403, Summer'05, Lecture 15 Updated Schedule of Remaining Class-Related Deliverables Fri, Aug 10pm: hw#4 responses due Sun, Aug 10pm: final project release due Mon, Aug 15, in class: final project demos / presentations Mon, Aug 10pm: peer review #3 due Wed, Aug 10pm: hw#5 responses due; peer review #3 viewing and usefulness feedback due Thu, Aug 10pm: final take-home exam due (online submission) Fri, Aug 19, before class: final take-home exam due (on paper) Fri, Aug 10pm: final questionnaire due

12 Aug 2005CSE403, Summer'05, Lecture 15 Criteria for “Good Enough” (James Bach, It has sufficient benefits. It has no critical problems. The benefits sufficiently outweigh the problems. In the present situation, and all things considered, further improvement would be more harmful than helpful. Is your product “good enough” now?

12 Aug 2005CSE403, Summer'05, Lecture 15 Criteria for “Good Enough” (James Bach, It has sufficient benefits. It has no critical problems. The benefits sufficiently outweigh the problems. In the present situation, and all things considered, further improvement would be more harmful than helpful. Is your product “good enough” now? Key questions to ask when doing an evaluation: Good enough for whom? Good enough for what?

12 Aug 2005CSE403, Summer'05, Lecture 15 Lecture 15: Configuration Management, Software Maintenance, and Code Reviews (Part II) Valentin Razmov

12 Aug 2005CSE403, Summer'05, Lecture 15 Outline Software maintenance Code reviews Bonus: Influence diagrams – a tool for analysis

12 Aug 2005CSE403, Summer'05, Lecture 15 Resources Rapid Development, by Steve McConnell Code Complete, by Steve McConnell The Pragmatic Programmer, by Andrew Hunt and David Thomas Test Driven Development: By Example, by Kent Beck

12 Aug 2005CSE403, Summer'05, Lecture 15 What is Software Maintenance? Producing new (versions of) software under the constraints of existing software Backwards compatibility is often assumed / required Comprises all phases of the lifecycle, starting with requirements gathering Yet another turn of the spiral

12 Aug 2005CSE403, Summer'05, Lecture 15 The “Double-Edged Sword” of Software Maintenance The hope is that you will get to the maintenance stage. If your company has been selling successfully and there is demand for new versions Most developers hope that they won’t have to deal with maintenance. It’s harder to maintain (someone else’s) code than it is to write a new one.

12 Aug 2005CSE403, Summer'05, Lecture 15 In Reality... Maintenance is what you do most of the time. Maintenance is often an afterthought, which turns it into a nightmare. You have to think ahead of time how you (or someone else) are going to maintain the code later. Refactoring is crucial... but it should be done regularly and must start early Maintenance is often given to junior developers. “This way they’ll learn the guts of the system better.” Shhht!!! – senior developers don’t want to work on maintenance themselves. Result: brittle code with little conceptual or design integrity; even more maintenance headaches to come.

12 Aug 2005CSE403, Summer'05, Lecture 15 Influence Diagrams – Motivating Frequent Testing More stress you feel => less testing you do “Testing takes precious time.” Less testing => more bugs left in your code More bugs => more stress How do we break this positive feedback loop?

12 Aug 2005CSE403, Summer'05, Lecture 15 Influence Diagrams – Examples from Other Domains Third world populationAffluence relationship to education Family funds available Student’s focus on education Likelihood for success in studies Bright job prospects Availability of food and health care Survival rate of children Number of children in family

12 Aug 2005CSE403, Summer'05, Lecture 15 Influence Diagrams – Junior Devs Doing Maintenance Junior devs in maintenance => low code quality Low code quality => code is hard to maintain Hard to maintain code => those who have a choice prefer to avoid doing maintenance Fewer senior devs in maintenance => more junior devs in maintenance How do we break this positive feedback loop?

12 Aug 2005CSE403, Summer'05, Lecture 15 Code Reviews – What and Why? What: A practice whereby one needs to get a sign-off before committing changes / new code Why: (List two main reasons that you see.)

12 Aug 2005CSE403, Summer'05, Lecture 15 Code Reviews – A Valuable Practice Ensures that more than one person has seen every piece of code Prospect of someone else reviewing your code raises the quality threshold Even if someone is absent, another person has a clue. Forces code writers to articulate decisions (and participate in the discovery of flaws) Allows junior personnel to get early hands-on experience without jeopardizing code quality They get paired up with experienced developers who can answer subtle questions and provide valuable feedback

12 Aug 2005CSE403, Summer'05, Lecture 15 Mechanics of Code Reviews Done before committing the code to the repository and incorporating it into a new build Review includes suggestions for improvement at a logical and/or structural level, to conform to an agreed set of quality standards. Refactoring step after code review feedback, followed by a second code review Reviewer’s job is to attest that code is maintainable and meets the quality standards Both code writer and reviewer are accountable for allowing the code to be committed.

12 Aug 2005CSE403, Summer'05, Lecture 15 Code Review Tool Support Made easy by advanced tools that: integrate with the configuration management system highlight changes (i.e., diff function) allow traversing back into history E.g.: Eclipse offers such support

12 Aug 2005CSE403, Summer'05, Lecture 15 In Reality... Code reviews are a common practice. Code reviews can be perfunctory if: they are not part of the (company) culture “Let’s just get it over with, because we’ve got important work to do.” they are done without proper tool support “This is going to be a pain; let’s pray it’ll soon be over.”

12 Aug 2005CSE403, Summer'05, Lecture 15 Parting Thought… “Don’t do anything that you don’t want to appear on the front page of the newspaper.” Sound advice not only when it comes to writing code!

12 Aug 2005CSE403, Summer'05, Lecture 15 One-minute Feedback What one or two ideas discussed today captured your attention and thinking the most? List any ideas / concepts that you would like to hear more about. Be specific.