CS121: Software Development. Today Importance of software development Software methodologies Overview of course First assignment Administrative issues.

Slides:



Advertisements
Similar presentations
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
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 Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
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 501: Software Engineering Fall 2000 Lecture 4 Management I: Project Management.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
IS 421 Information Systems Management James Nowotarski 16 September 2002.
CS 501: Software Engineering
Chapter 3: The Project Management Process Groups
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
CS3500 Software Engineering Agile Software Development (1) Agile software development, proposed in 2001 by the non-profit Agile Alliance, has four basic.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
丘偉廷. It can successfully occur within university administration, as I have personally experienced. The online educational team implemented and.
CHAPTER 19 Building Software.
1 CMPT 275 Software Engineering Software life cycle.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
Agile Programming Principles.
Agile Software Development Brian Link
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.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
CS121: Software Development Fall 2011 mae. Facetious View of SD.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Introduction to Systems Analysis and Design
CS 501: Software Engineering Fall 1999 Lecture 6 Management I: Project Management.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Requirements CS121 Spring Administrivia new student: Guillermo artist: Jackie Wijaya.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Stand Up Comedy Project/Product Management
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
11 ADM2372 Management Information Systems (MIS) Chapter 10 – Part I Systems Development Chapter 10 – Part I Systems Development.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
Why is software engineering worth studying?
Software Engineering Process
CS 5150 Software Engineering
Chapter 2 SW Process Models
Chapter 2: Software Process Models
Introduction to Software Engineering
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Lecture 2 Revision of Models of a Software Process
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 2: Software Process Models
Rapid software development
Presentation transcript:

CS121: Software Development

Today Importance of software development Software methodologies Overview of course First assignment Administrative issues

“Software Development” …later in the millennium… Customer Developer Here it is … We need softwar e to …. Customer Developer

Key Processes Requirements Design Implementation Testing

“Software Development” …later in the millennium… Customer Developer Here it is … We need softwar e to …. Customer Developer Customer Developer It broke!

Key Processes Requirement Design Implementation Testing Maintenance

Key Processes Requirement Design Implementation (focus of CS70) Testing Maintenance

Why study software development? Society has become increasingly dependent on software systems. –How many software systems do you interact with every day?

Why study software development? Society has become increasingly dependent on software systems. Failures in software systems can be costly and dangerous.

10 mi. Expedia Maps: I need to go to the airport (1999)

Output reported in The Risks Digest Oct. 1, 1999 Excerpts from Expedia Maps directions: From: Laurel, Maryland To: Baltimore-Washington International Airport, Maryland Driving Distance: miles Time: 9 day(s) 3 hour(s) 22 minute(s) Time (hour:minute) Instruction 0:00 Depart Laurel, Maryland 1:01 Entering Delaware 1:17Entering New Jersey 3:24 Entering New York 3:51 Entering Connecticut 5:51 Entering Massachusetts 7:29 Entering New Hampshire 7:44 Entering Maine 12:20 Entering New Brunswick 20:20 Take the North Sydney-Argentia Ferry 34:32 Entering Newfoundland 36:35 Turn left onto Local road(s) ( mi) 219:22 Arrive Baltimore-Washington International Airport, Maryland

Why study software development? Society has become increasingly dependent on software systems. Failures in software systems can be costly and dangerous

Therac-25 Linear accelerators create high- energy beams that can destroy tumors with minimal impact on the surrounding healthy tissue Therac 25 was the first linear accelerator with dosage controlled solely by software (as opposed to hardware)

1983: Pre-release Safety Analysis Programming errors have been reduced by extensive testing on a hardware simulator and under field conditions on teletherapy units. Any residual software errors are not included in the analysis. Program software does not degrade due to wear, fatigue, or reproduction process. Computer execution errors are caused by faulty hardware components and by "soft" (random) errors induced by alpha particles and electromagnetic noise.

and then … 1983: First Therac 25 installed : Six massive-overdose accidents due to “software error” are reported. Overdoses caused severe burns and death. 1987: Recalled for extensive design changes, including hardware to safeguard against software errors in dosage.

Why study software development? Society has become increasingly dependent on software systems. Failures in software systems can be costly and dangerous Software design/development is HARD!

FAA 1981: FAA announced plans to modernize air- traffic control. 1985: IBM awarded contract. System estimate to have 1.5 million lines of code, cost $2.5 billion, and be deployed by : Revised cost $4.3 billion, deployment slipped to : FAA decided that the project would never be completed, and cancelled it. Net loss $1.5 billion

Stats on software projects 31.1% are canceled before they are finished 52.7% overrun their cost estimates by at least 189% 33.3% overrun their time estimates by 100%-200% 94% of all projects do a “restart” J. Johnson, “Creating Chaos,” American Programmer, July 1995

Is there hope? Software engineering: tools, techniques, and principles to promote software quality software engineering is an evolving field

Historical Perspective 1950s this is how to do it Code and fix

Historical Perspective 1950s

Historical Perspective 1970s that was soooooo wrong, but now we know, this is how to do it waterfall 1950s

Essential Processes of Software Development Requirements Design Implementation Testing

Software Life Cycle Model How to organize the key processes of software development

Waterfall Model Requirements Design Implementation Test with feedback

Historical Perspective 1970s 1950s

What is wrong with waterfall? Initial requirements are speculative

Requirements “The hardest single part of building a software system is deciding precisely what to build. ” Frederick P. Brooks Jr. in “No Silver Bullet”:

Requirements “No other part of of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.” Frederick P. Brooks Jr. in “No Silver Bullet”:

1992 Iowa State study of safety-critical errors in software systems for Voyager and Galileo: The majority of safety-critical software errors were not caused in the design or implementation process. They were due to errors in the requirements specification. The systems as specified were flawed.

Requirements Customer’s don’t usually know what they want/need Even if they do know what they want/need, they are likely to change their minds

Growth in requirements Source: Applied Software Measurement, Capers Jones, Based on 6,700 systems. % increase in requirements during project life

What is wrong waterfall? Initial requirements are speculative Initial designs are speculative

Design Design Methods: Seeds of Human Futures (Jones, 1970) “The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct.”

What is wrong waterfall? Initial requirements are speculative Initial designs are speculative Speculative decisions compound

Complexity vs. Productivity Source: Measures For Excellence, Putnam, Based on 1,600 systems. SLOC/Person Month

What is wrong waterfall? Initial requirements are speculative Initial designs are speculative Speculative decisions compound As a result we build the wrong thing that doesn’t work any

Historical Perspective Don’t bite off more than you can chew. 1990s 1970s 1950s

Iterative Models In each iteration: Identify the objectives of the iteration Design a solution to achieve the objectives Implement the solution Test the implementation Each iteration is a mini-waterfall process.

Boehm Spiral Model Iterations:.5 – 2 years Risk analysis Prototype-based Boehm (1988) was first to clearly articulate the advantages of iterative development.

Agile principles Working software, delivered regularly, is the primary measure of progress High standards of excellence; test regularly and re-factor/redesign when necessary Customer involvement is critical Simplicity; just-in-time design/development Adaptability; embrace change Small, cross-functional, self-organizing teams of professionals

Scrum Model A small group is responsible for picking up the ball and moving it toward the goal.

RUP Life Cycle Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Processes Iterations within phases Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction Iterations …

Extreme Programming

Do agile methods work? Standish CHAOS survey 16% 29% 53% 18% 31%

Software projects come in all shapes and size some are easy, many hard

Harder Large Open-ended, poorly understood Cutting edge technology Inexperienced personnel Stringent requirements Easier Small Well defined Ready-to-use tools, packages Experienced personnel Flexible requirements

Objectives of CS121 Understand the problems Understand the various solutions to the problems Practice applying the solutions to a particular problem

Project You will work in teams to design and develop an educational computer game for social science teachers at Hillside Middle School, Kalamazoo, MI

Why games? Games involve a range of problems that rarely show up in a single software project –User interface design –Computer graphics and sound –Simulation and modeling –Real-time –AI, networking, etc. You already have domain expertise Games are great projects for your portfolio Scope of the game project can be “easy” to adjust

Why educational games? Customer involvement Understanding an “other” user Useful product

Overview of Project Phase 1: Develop game concept Phase 2: Design game/software Phase 3: Evaluate, refine, add content But not waterfall. Each phase will have involve several iterations/deliverables.

Phase 1 Competitive analysis High concept Management plan for phase 1 Customer elicitation Technology assessment Game Design Document (preliminary) Prototype Proposal

Assignments due next time Competitive analysis High Concept Initial management Plan (incl. trac set up) Details on the phase 1 project page Readings (Keller)

Reading for next time McConnel: requirements, software quality Wiegers: Requirement Traps Ambler: Big Requirements Up Front Trac Guide: wiki, ticket Keller: Goal breakdown

Daily quizzes Based on reading –McConnell –other articles linked to web page

Grading Project65% Midterm exam10% Final exam10% Daily quizzes 10% Class participation 5%

Today Complete intro questionnaires Make sure you have subscribed to the class mail list See me if you need accounts for: –Charlie –Knuth

Tomorrow I’ll (and post) team assignments

Assignments Typically due on Monday Exceptions: –next week

Next week Wed – you will meet with the customer 1 team will do an “elicitation” in class (the guinea pigs are guaranteed the full 10 point credit for the actual elicitation – volunteers?) the rest will do it after class Wed. or Thurs. morning – post all available times on your wiki

Sample questions from today What are the key processes to software development? What is a software life cycle model? What is the waterfall model? What are its problems? How do iterative and agile models differ from the waterfall model? How do iterative and agile models differ from each other? What is the Boehm Spiral model and why is it important? Name two different agile process methods