CS 5150 1 CS 5150 Software Engineering Lecture 2 Software Processes 1.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Agile development By Sam Chamberlain. First a bit of history..
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 27 People 2.
CS 501: Software Engineering
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 26 Delivering the System.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
The Agile vs. Waterfall Methodologies Systems Development:  the activity of creating new or modifying / enhancing existing business systems.  Objectives.
CHAPTER 19 Building Software.
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Project Management Development & developers
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
Chapter 4 Agile Development
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Four Major Software Development Methodologies  Object-oriented analysis and design developed in 1980s and 1990s  Structured analysis and design developed.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
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.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission.
CS 501: Software Engineering Fall 199 Lecture 1 a) Administration b) Introduction to Software Engineering.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Project Management Software development models & methodologies
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Agile Methodology and Scrum
CompSci 280 S Introduction to Software Development
CS 389 – Software Engineering
Agile Software Development
CS 5150 Software Engineering
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Agile software development
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

CS CS 5150 Software Engineering Lecture 2 Software Processes 1

CS Underclassmen: be paired with an upperclassman mentor! Upperclassmen: mentor an underclassman and/or have a PhD/MEng mentor! To find a mentor or to be a mentor: Fill out a questionnaire to specify your preferences-- send an to for the ACSU Bowling /Mentor-Mentee Matching Event: 9/8 at Helen Newman! (*please also fill out the questionnaire) Time: 9/8, 7-9 PM Location: Helen Newman Bowling Alley (in the basement of HNL) FREE pizza and soda will be served! ACSU is initiating a peer mentoring program

CS Independent Research in Computer Science & Information Science The Web Lab applies supercomputing methods to analyze very large collections of text. See It uses MapReduce programming and the Hadoop distributed file system on a large Linux cluster. Projects for fall 2010: Studying how the.gov domain changes over time. Building indexes to very large collections of digitized books. If you are interested, come to a meeting on Tuesday at 4:00 p.m. in the Information Science building, 301 College Avenue. The Web Lab

CS Administration Project teams Any announcement to class? People who would like to form teams? Project Suggestions on the web site Entrepreneurship experiment

CS Administration Project teams When you have formed your team and reached agreement with your client, please send a message to: and with the names of the team, the client's name, and the topic of the project.

CS Software is Risky Most software development projects have major problems Problems Does not work as expected Over budget Late delivery Much of software is wasted (perhaps 50% is never used ) Never used Does the wrong thing Users dislike to use it There are no customers etc.

CS Software is Risky What is the penalty to the client if software is: late? over budget? does not work or full of bugs? Examples of risk: car anti-lock brakes (no bugs allowed) web browser in cell phone (no delays in release allowed) Failures of software development projects can bankrupt companies

CS Software is Risky Most software projects fail because the software developers build the wrong software! Understand what the client, the customer, and the users expect of the software As a developer, provide technical insights and suggestions, but remember: Client satisfaction and customer acceptance are the primary measures of success in a software project.

CS Minimizing Risk: Incremental Development with Frequent Releases Recent approaches to software development minimize risk by emphasizing frequent delivery of working software (weeks rather than months). Client, customers, and users can evaluate the developers' work. Opportunities to adapt to changing circumstances. This is one of the basic principles of Agile Software Development.

CS The Three-way Trade-off Competing goals Every software project has a trade-off between: Functionality Resources (cost) Timeliness What is important to the person who is paying? Example: Start-up companies: Are there real customers who will pay for the product?

CS Minimizing Risk: Relationship with the Client Feasibility studies (whether to begin a project). Separation of requirements (what the client wants) from design (how the developers meet the requirements). Milestones (how the developers report or demonstrate progress to the clients) and releases. Acceptance (how the client tests that the software meets the requirements) and user testing. Handover (ensuring that the client receives a package that can be operated and maintained over a long time period).

CS Minimizing Risk: Visibility The people who take the responsibility must know what is happening Managers Must rely on others for reports of progress or difficulties Software Developers Have difficulty evaluating progress Optimistic Consider reporting a waste time etc. Working software provides excellent visibility.

CS Teams Most software development is by teams Effectiveness of team determines success Most large software projects are built on older ones It is rare to start a new suite of programs from scratch Building on the work of others is a fundamental skill of software development

CS Observations about Big Projects A CS 5150 project is about 0.3 person/years. A big project may be 100 to 10,000+ person years. Every important program is written by many people, who are constantly changing. Before a big project is completed the requirements have changed many times. No large system is ever complete. A CS 5150 project is about the size of a single increment in a production Agile process.

CS Software Process Fundamental Assumption: Good processes lead to good software Good processes reduce risk Good processes enhance visibility

CS Heavyweight and Lightweight Software Development In a heavyweight process, the development team works through the entire development cycle slowly and systematically, with the aim of delivering a complete software product with minimal changes and revision. Example: the Modified Waterfall Model In a lightweight process, the development team releases working software in small increments, and develops the plans incrementally, based on experience. Example: Agile Software Development

CS Heavyweight and Lightweight Methodologies HeavyweightLightweight Processes and toolsIndividuals & interactions DocumentationWorking software Contract negotiationCustomer collaboration Following a planResponding to change Based on the Manifesto for Agile Software Development:

CS Variety of Software Processes Software products are very varied... Therefore, there is no standard process for all software engineering projects BUT successful software development projects all need to address similar issues. This creates a number of process steps that should be part of all software projects

CS Basic Process Steps in all Software Development Feasibility and planning Requirements System and program design Implementation Acceptance and release Operation and maintenance In a lightweight process, these steps are repeated with each increment