CSE 490RA Richard Anderson Chris Mason. Course goals For students  Programming experience on Tablet PC  UI and Design experience  Work in team  Develop.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Requirements Specification and Management
Development Process. Four Factors People –10 to 1 variation in programmer productivity with the same experience Process –Methodology Product –Size Technology.
Software Project Management.  Leadership  Communications  Problem Solving  Negotiating  Influencing the Organization  Mentoring  Process.
CSE Senior Design I Classic Mistakes Instructor: Mike O’Dell This presentations was derived from the textbook used for this class, McConnell, Steve, Rapid.
Project What is a project A temporary endeavor undertaken to create a unique product, service or result.
CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve,
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.
CSE 403 Lecture 8 Risk assessment. Lecture goals Understand risk management and assessment techniques Guarding against failure to meet delivery deadline,
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Session 1: Introduction to Project Management
1 Software Project Management Session 1: Introduction, Fundamentals, Classic Mistakes.
Fundamentals of Information Systems, Second Edition
CSC 490: Advanced Software Project
Unit 7 University of Sunderland CSEM04 ROSCO Risk & Opportunity Identification: Brainstorming (and Risk Checklists) CSEM04: Risk and Opportunities of Systems.
Unit 4 University of Sunderland COMM80 Risk Assessment of Systems Change Risk Identification: Concept and Generic Techniques COMM80: Risk Assessment of.
NJIT Inception is not the Requirements Phase Chapter 4 Applying UML and Patterns Craig Larman.
CSE Senior Design I Risk Management Instructor: Mike O’Dell This presentations was derived from the textbook used for this class: McConnell, Steve, Rapid.
Dr. Nguyen Hai Quan.  Overview  Classic Mistakes  Project Manager Requirements  Project Management Phases.
Rapid Development (Part 1) Mihail V. Mihaylov RammSoft.
why information systems?
1 CSE 403 Classic Mistakes Reading: Rapid Development Ch3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from.
Rapid Development.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
By Anthony W. Hill & Course Technology1 Common End User Problems.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
22 Jul 2005CSE403, Summer'05, Lecture 12 Lecture 12: Scheduling, Estimation, and Prioritization (Part II) Valentin Razmov.
NJIT 1 Managing Technical People Ian Sommerville, Software Engineering, Chapter 22 Gerald Weinberg, The Psychology of Computer Programming, and many other.
1 CSE 403 Introduction Reading: Rapid Development Ch3.3 These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides.
10-January-2003cse Context © 2003 University of Washington1 What is a development project? CSE 403, Winter 2003 Software Engineering
CSE 403, Spring 2007, Alverson Software Projects – the challenges we face RD:McConnell.
CSE 403, Software Engineering Lecture 4 Gathering user requirements.
Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft February.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
Lecture 1 Introduction, Fundamentals, Classic Mistakes 1.
IT3101- Rapid Application Development. Course Details Lectures – 30 hours Practical - 60 hours.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
CSE 403, Software Engineering Lecture 3 Requirements.
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
IT3101: Rapid Application Development Lec-1. What is Rapid Application Development? Software development process that allows usable systems to be built.
1 Software Project Management Introduction, Fundamentals, Classic Mistakes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Introduction to Project management and Principles.
1 Software Project Management Lecture # 3. 2 Today Administrative items Fundamentals Project Management Dimensions Classic Mistakes.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
RAPID APPLICATION DEVELOPMENT باسمه تعالی دانشگاه الزهرا دانشکده علوم اجتماعی واقتصادی استاد : جناب آقای دکتر سلطانی تهیه و تنظیم : ارمغان خلیل زادگان.
 System Requirement Specification and System Planning.
1 Project Management Skills Leadership Communications Problem Solving Negotiating Influencing the Organization Mentoring Process and technical expertise.
HNDIT23073 : Rapid Application Development
Methodologies and Algorithms
CSE 403 Software Engineering
Classic Mistakes chapter22
CSE 403, Software Engineering Lecture 2
Chapter 2 SW Process Models
slides created by Marty Stepp
CSE 403, Software Engineering Lecture 2
Instructor: Mike O’Dell
How to fail at delivering software
why information systems?
Instructor: Mike O’Dell
Instructor: Manfred Huber
Presentation transcript:

CSE 490RA Richard Anderson Chris Mason

Course goals For students  Programming experience on Tablet PC  UI and Design experience  Work in team  Develop an application for an external customer

Course goals For Richard Anderson  Build undergraduate expertise in Tablet PC development  Prototype of TPC capstone  Ugrad curriculum shift

Course goals For Chris Mason [I’m making these up]  Explore approaches to diagnostic tools  Build ties with UW CSE  Get to know UW Programs and what students can accomplish  Artifacts to show to Schindler Justify time spent with UW Suggest R&D Directions for Schindler

Team organization Classic software teams  Program manager  Developers (Dev lead + devs)  Test  Documentation/UI Other models  Fad of the day

Waterfall model (McConnell) System specification Requirements Analysis Architectural Design Detailed Design Coding and Debugging Unit testing System testing Maintenance

Requirements "Gather and document the functions that the application should perform for the users in the users' language and from the users' perspective" Requirements should neither constrain nor define methods of implementation

Challenges of requirements gathering (Kulak, Guiney) Finding out what users need Documenting users' needs Avoiding premature design assumptions Resolving conflicting requirements Eliminating redundant requirements Reducing overwhelming volume Traceability

Use case Overview of interactions Text details Example  Authenticate User Actors: User, Unauthorized user Summary: Users request entry to the system, valid credentials allow access

User requirements Requirements from the user's point of view Expressed in the user's language Based on understanding of user's application Does not define implementation How do we get them???

Requirements gathering Understand application from users perspective  An application which doesn't match needs won't be purchased, or won't be used Building for a specific customer Building a widely used application, getting requirements from representative users

Understanding use case Not asking users to define the application Observations, Interviews, Examination of artifacts, Focus Groups Ethnography  Branch of anthropology dealing with the scientific description of individual cultures

Field observations Protocols developed in many academic fields Event based Narrative

What do you do with the data? Define user experience of application Application must support the process Efficient handling of common cases Ability to handle exceptional cases (which aren't all that exceptional!) Develop feature lists

User requirements Business Requirements User Study Use Cases User Requirements Functional Requirements

Software project failures Software projects have a reputation for failure  Probably well deserved  Many examples of massive cost over runs, release delays and cancellations

Project Failure Not delivering working program on targeted date  Overrun on time/budget  Under delivery of functionality or quality

All to common case Project starts out fine, with a few minor changes in requirements, delays of supporting activities and changes in personnel Coding proceeds at a good rate with most modules almost working at the point when the system is to integrated

Then everything goes wrong Integration reveals incompatibility between components Integration reveals severe bugs in components Unexpected hardware or software change And a few random disasters  Source code lost, key people directed to other tasks, sudden changes in requirements or schedule

What happens next Devs code like hell  Fixing and patching bugs  Significant changes in architecture or functionality on-the fly Test and documentation held up  “The build is broken – I can’t do anything” Long hours  Negative team dynamics  Damage control activities

Day of reckoning Substandard product shipped  “It’s just version 1.0 – we can issue an upgrade” Schedule shifts Project cancelled or downgraded

Classic Mistakes McConnell, Rapid Development  People related mistakes  Process related mistakes  Product related mistakes  Technology related mistakes

People issues (high level) Personnel management  Functioning team Relationship with customer Management issues  Management support and competence

People related mistakes Motivation Weak personnel Problem employees Heroics Adding people to a late project Crowded offices Friction between dev and customers Unrealistic expectations Lack of sponsorship Lack of stakeholder buy-in Lack of user input Politics over substance Wishful thinking

Process issues (high level) Accurate planning  Realistic scheduling  Contingency planning Paying attention to all stages of product development

Process related mistakes Optimistic schedules Insufficient risk management Contractor failure Insufficient planning Abandonment of planning under pressure Wasted time in “fuzzy front end” Shortchanged upstream activities Inadequate design Shortchanged QA Insufficient management controls Premature convergence Omitting necessary tasks from estimates Planning to catch up later Code-like-hell programming

Product related mistakes Requirements gold-plating Feature creep Developer gold-plating Push-me, pull-me negotiation  Adding new tasks when schedule slips Research-oriented development

Technology related mistakes Silver-bullet syndrome Overestimating savings from new tools or methods Switching tools in the middle of a project Lack of automated source-code control