Lazy Contemplative Always Using Imagination Most Important Trait.

Slides:



Advertisements
Similar presentations
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Slide 2.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
 The Rise of Computer Science ◦ Machine Language (1 st Gen) ◦ Assembly Language (2 nd Gen) ◦ Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.)
2/2/05lecture031 Deadlines! Kick-off task for today! You work at a private weather company. For the last 3 (three) months, you have been working on a task.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Algorithm Programming Coding Advices Bar-Ilan University תשס " ו by Moshe Fresko.
Software Quality Assurance
Project phases and the life cycle
CSC 213 – Large Scale Programming. Today’s Goal  Learn Unified Process to design programs  Understand what are the “types” of Java classes  Methods.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
Google MapReduce Simplified Data Processing on Large Clusters Jeff Dean, Sanjay Ghemawat Google, Inc. Presented by Conroy Whitney 4 th year CS – Web Development.
Chapter 7 Software Engineering Objectives Understand the software life cycle. Describe the development process models.. Understand the concept of modularity.
Extreme Programming Software Development Written by Sanjay Kumar.
CSC 395 – Software Engineering Lecture 34: Post-delivery Maintenance -or- What’s Worse than Being a Code Monkey?
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
1 Shawlands Academy Higher Computing Software Development Unit.
Managing Schedules COSC 405 Spring 2013 Bridget M. Blodgett.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1. 2 IMPORTANCE OF MANAGEMENT Some organizations have begun to ask their contractors to provide only project managers who have been certified as professionals.
Teaching material for a course in Software Project Management & Software Engineering – part II.
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
Installation and Maintenance of Health IT Systems
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
LECTURE 38: REFACTORING CSC 395 – Software Engineering.
Fun, fun, fun. But first … the code review Preparation Process.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSC 395 – Software Engineering Lecture 10: Execution-based Testing –or– We can make it better than it was. Better...faster...agiler.
Concepts of Software Development Chapter 1. Separation of Concerns Break the system down into less complicated parts, and concentrate on each one in turn.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 2: Software Design Cycle.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
The Software Development Process
CS5103 Software Engineering Lecture 02 More on Software Process Models.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Section 06 (a)RDBMS (a) Supplement RDBMS Issues 2 HSQ - DATABASES & SQL And Franchise Colleges By MANSHA NAWAZ.
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.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction Requirements and the Software Lifecycle (3)
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
WEEK 6 Introduction to Project Management. Wk 6 Agenda Verify Hybrid Wk 5 Review Wk 5 ◦ Compressing the Schedule ◦ Risk Identification Techniques ◦ Project.
CSC 395 – Software Engineering Lecture 27: White-Box Testing.
Systems Development Life Cycle
Software Design and Development Development Methodoligies Computing Science.
Lecture 4: Software Lifecycles
Regression Testing with its types
Software Processes (a)
Testing a Solution.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Lecture 09:Software Testing
Software life cycle models
Baisc Of Software Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
The Software Development Process
Presentation transcript:

Lazy

Contemplative

Always Using Imagination

Most Important Trait

Why Do Models Matter?  Client has 2 programmers with different styles BobJoe

More about Bob & Joe… Bob codes like Joe paid attention & like he did in college uses a proper model

Starting the Project  Both look at notes from project executive  Bob then writes test cases & starts coding  Joe determines client’s needs in meetings %Complete BobJoe Work (in $)Rework (in $)Work (in $)Rework (in $) 20%$100,000$0$150,000$0 Total$100,000$0$150,000$0

Project Getting Going  Bob duplicates code, but with minor tweaks  Slows progress & requires expensive reworking  Design minimizing code created by Joe  Client’s requirements examined; bugs found & fixed %Complete BobJoe Work (in $)Rework (in $)Work (in $)Rework (in $) 20%$100,000$0$150,000$0 40%$100,000$20,000$100,000$10,000 Total$200,000$20,000$250,000$10,000

Passing the Halfway Point  Bob works from scratch & does not reuse code  Lacks plan to incorporate existing code  Joe uses design to write comments & outlines  Finds majority of errors during this process  When possible, merges classes & simplifies design %Complete BobJoe Work (in $)Rework (in $)Work (in $)Rework (in $) 20%$100,000$0$150,000$0 40%$100,000$20,000$100,000$10,000 60%$100,000$20,000$100,000$10,000 Total$300,000$40,000$350,000$20,000

Project Nearing Completion  Bob’s code is project-specific & cannot be reused  Getting concerned as project starts falling behind  Joe writes test cases from his system design %Complete BobJoe Work (in $)Rework (in $)Work (in $)Rework (in $) 20%$100,000$0$150,000$0 40%$100,000$20,000$100,000$10,000 60%$100,000$20,000$100,000$10,000 80%$100,000$20,000$100,000$10,000 Total$400,000$60,000$450,000$30,000

Final Rush to the Deadline  Bob cannot describe system to get extra help  Completing system takes lots of all-nighters  Joe’s coding is easy with well-defined tests  Code could be written by (cheap) trained monkeys Bob Joe

Final Rush to the Deadline  Bob cannot describe system to get extra help  Completing system takes lots of all-nighters  Joe’s coding is easy with well-defined tests  Code could be written by (cheap) trained monkeys Bob Joe Joe’s Team

Final Accounting %Complete BobJoe Work (in $)Rework (in $)Work (in $)Rework (in $) 20%$100,000$0$150,000$0 40%$100,000$20,000$100,000$10,000 60%$100,000$20,000$100,000$10,000 80%$100,000$20,000$100,000$10, %$150,000$20,000$50,000$10,000 Total$550,000$80,000$500,000$40,000

What’s The End Result?  Bob barely finishes  Most goals are met  Occasionally crashes  Close to original goal  Joe is tanned & rested  Met stated goals  Reliable & robust  Follows design perfectly

What’s The End Result?  Bob barely finishes  Most goals are met  Occasionally crashes  Close to original goal  Joe is tanned & rested  Meets all needs  Reliable & robust  Exactly follows design Client fires them both Neither met requirements

Models Matter  Client valued original concept above all else  Joe and Bob both forgot about this main point  Joe gets better chair in unemployment line  To survive, life cycle models must succeed  Nobody records failures or the merely adequate  But common saying is “There is no silver bullet”  One shared weakness no matter your choices  Need to keep your focus on requirements  Keep in mind when being lazy

Classroom Development  Always start from scratch  Know all requirements from the start  And requirements will not change  Coding begins immediately at start  Projects are trivial jokes in real-world  If lasts 3 weeks, projects “very large”  Code cannot be reused  Never look at again, anyway

Why These Phases Matter

Waterfall Model  Shows steps project goes through  Can compress, but steps never skipped  Assumes steps not revisited once done  Each step ends with some result  Evidence process followed correctly  Begin by testing results of previous

Moving Target Problem  During development, requirements may change  Changes may be important, but…  …disrupts flow & introduces dependencies  Regression faults occur without good testing  Error (“fault”) usually in unrelated portion of project  Major pain to fix  As changes continue, faults will build up  Redesign & reimplementation ultimately needed  Change is inevitable  Your plans must handle gracefully

Waterfall Model Is Iterative

Heck of a job, Brownie.

Incremental Development  Waterfall improved by working incrementally  Focus on most important piece at the moment  Follow waterfall model to develop that piece  Focus on new most important piece once complete stepwise refinement  Method also called stepwise refinement  Best of both worlds is incremental methods goal  Amount of duplicative work minimized  Improved reaction to change using smaller chunks  But handling changes requires good design & plans

For Next Lecture  Reading for Monday available on Angel  Will be discussing software requirements  What are they?  How do we figure them out?  Can they be discussed in our teams?  Weekly activity problem #2 due at start of class  Discussed at start of lecture, just like today  Available on weekly assignment page