CS 5150 Software Engineering Lecture 2 Software Processes 1.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Web Development Engineering Processes Introduction to Web Development Outsourcing Processes.
CS487 Software Engineering Omar Aldawud
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Project Management: A Critical Skill for Organizations Presented by Hetty Baiz Project Office Princeton University.
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
CS 5150 Software Engineering
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
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.
CS CS 5150 Software Engineering Lecture 27 People 2.
CS 501: Software Engineering
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
The Agile vs. Waterfall Methodologies Systems Development:  the activity of creating new or modifying / enhancing existing business systems.  Objectives.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Software Project Management
Software Development Landscape
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Programming Principles.
Current Trends in Systems Develpment
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Industrial Software Project Management Some views on project managing industrial and business software projects.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering Management Lecture 1 The Software Process.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
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.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering process models
Prof. Aiken CS 169 Lecture 21 Software Process CS169 Lecture 2.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS 5150 Software Engineering Lecture 4 Feasibility Studies.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
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.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
University of Southern California Center for Systems and Software Engineering RDCR ARB CS 577b Software Engineering II Supannika Koolmanojwong.
Project Management Software development models & methodologies
Software Engineering cosc 4359 Spring 2017.
Software Engineering Management
Exam 0 review CS 360 Lecture 8.
CS 5150 Software Engineering
How to Successfully Implement an Agile Project
CS 577b Software Engineering II -- Introduction
SDLC (Software Development Life Cycle)
Presentation transcript:

CS 5150 Software Engineering Lecture 2 Software Processes 1

CS Project Teams It’s okay if you don’t have a team yet Piazza activated Send to Ben & Yue when you have (most of) a team Team name Names of team members Client info Project topic

CS Projects Project suggestions continuing to come in If you have your own project idea send to Ben & Yue

CS What is a Software Process? More or less formal rules for organizing work on software Trivial example: Meeting with client Meeting with team Code code code Test finished program to client

CS Software Processes Matter Cost Risks People

CS Software is Different Best practices are still changing (relatively) rapidly Non-specialists (e.g. most clients) have relatively poor insight into how software works

CS Risks Most software projects have major problems Does not work as expected (functionality) Over budget (cost) Late delivery (time) Lots of code is wasted (perhaps 50% never used) Does the wrong thing Poor interface No one cares

CS The Three-way Trade-off The terrible triangle Functionality (scope of project) Cost (developer time & other resources) Time (delivery date) Force clients to make choices (without being a jerk)

CS Client’s Risks Understand risks from the client’s perspective Late (cancelation of some related project?) Over budget (middle manager gets fired?) Insufficient functionality (competitor dominates market?) Full of bugs (plane crashes?)

CS First Major Hurdle: Communication Most failed software projects fail because the leaders didn’t plan the right software Listen to the client! The client is not always right The client must be satisfied at the end of the day Tight communication feedback loops Expertise and a nose for exceptions

CS Minimizing Risks Feasibility study Stakeholder requirements and priorities versus design decisions Milestones and releases Acceptance and testing Handover

CS A Popular Strategy: Short Cycles Minimize risk with short development cycles New pieces of working software every week or two (not months) Many opportunities to change course This is one of the fundamental pieces of the Agile development method

CS Visibility and Accountability Managers and clients want to know the status of in-progress software Must rely on reporting by developers Developers Often have trouble reporting progress Are usually optimistic Dislike reporting Frequent releases and accepted processes

CS Teams Most software is built by teams Overall team efficiency is the critical metric Effectively all software is built on other software Indirect collaboration with other programmers Practical limit on team size is fairly small Collaboration between teams requires more planning

CS Observations about Big Projects Big software represents thousands to millions of person-years of effort Every project that is sufficiently successful will have significant developer turnover... and changes in requirements and priorities No large project is every complete Our projects About 0.3 person-years (a single sprint)

CS Fundamental Assumptions Good processes reduce risk Good processes enhance visibility Good processes increase probability of project success Systematic testing is the key to all processes

CS Different Strokes for Different Folks Safety critical systems => more reliability testing Shrink-wrap software => more usability testing Systems/frameworks => more robustness testing Contract software => more emphasis on core requirements No standard process BUT there are common principles

CS Basic Components of All Processes Feasibility and planning Requirements and priorities System and program design Construction Acceptance and release Operation and maintenance

CS Testing is Part of Every Phase Stakeholder review of plans Usability prototyping Design review Automated testing Code review Manual testing Acceptance testing

CS Heavy vs Light: the Main Process Axis Heavy: Methodically (and slowly) work through the complete development cycle Might have 100s of pages of design documents before the first line of code is written Example: Modified Waterfall Model Light: Incrementally work through (parts of) the development cycle quickly Many web applications are run this way Example: Agile Software Development

CS Heavy or Light? Team size Risk tolerance Application space maturity