Engineering  Turning ideas into reality  Creating something useful from other things using science and math.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Prescriptive Process models
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
CS487 Software Engineering Omar Aldawud
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
INFO415 Approaches to System Development: Part 1
Agile Programming 9 OCTOBER History 1960’s  60’s  “Cowboys” wrote software anyway that they could  Difference between best programmers and worst.
Software Life Cycles ECE 417/617: Elements of Software Engineering
 The Rise of Computer Science ◦ Machine Language (1 st Gen) ◦ Assembly Language (2 nd Gen) ◦ Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.)
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
20 September Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on.
30 August Common Mistakes  Over committing (“big eyes”)  Unrealistic schedules Training Access to people or materials Hours in the day  Level.
22 September Fundamental Steps STEPS  Requirements  Design  Implementation  Integration  Test  Deployment  Maintenance MODELS Waterfall.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
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.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Iterative development and The Unified process
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Diane Pozefsky. 1960’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
Diane Pozefsky. Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
Prescriptive Process Models
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,
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
CS3100 Software Project Management Agile Approaches.
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
24 January Software Engineering Processes Risk Management.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
17 January Requirements. The Plan Quick Pass on Software Engineering “Just enough” context Start with what you need for your first deliverables Back up.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project.
Software Engineering Overview 23 January. Software Engineering Overview What is engineering? Why is software engineering different than other engineering.
Extreme Programming. Programming History 1960’s  60’s  “Cowboys” wrote software anyway that they could  Difference between best programmers and worst.
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.
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.
Teaching slides Chapter 2
Software Development Overview
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Lecture 3 Prescriptive Process Models
Software Engineering Processes
COMP 523 Diane pozefsky 24 August 2016.
Software Processes (a)
Software Process Models
Chapter 2 SW Process Models
Introduction to Software Engineering
Lecture 2 Revision of Models of a Software Process
Software Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Appendix B Agile Methodologies
SDLC (Software Development Life Cycle)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Development Overview
Presentation transcript:

Engineering  Turning ideas into reality  Creating something useful from other things using science and math

Software Engineering vs. Other Engineering Disciplines  Maturity Roman aqueducts 2000 years ago Software engineering 50 years ago  Startup costs Barriers to entry  Rate of change

Software Engineering Objective The right software delivered defect free, on time and on cost, every time. Carnegie Mellon Software Engineering Institute

Common Mistakes  Over committing (“big eyes”)  Unrealistic schedules Training Access to people or materials Hours in the day  Level of detail Vague descriptions Over specification  Not knowing your user  Assuming that you’ll get it right the first time

Different Types of Projects  Consider 4 different types of systems COMP 523 projects Productivity suites Commercial web sites Airplane systems Pacemakers  How do they differ in criticality?  What does that mean for the development process?

All software projects are different but … Requirements will change. Surprises will happen. Schedules will slip. Life will happen.

Transparency  Track what you do AND document it  …not as an afterthought  Living, heavily-used documentation

1960’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources) Start of the “software crisis”  1968 Edsger Dijkstra, “GOTO Statement Considered Harmful” (CACM)GOTO Statement Considered Harmful Recognition that rules can improve the average programmer

Structuring Software Development  Few rules helped immensely  Good rules and practices developed over the 70’s and 80’s  If a few rules are good, more are better…  Late 80’s, major focus on process as a key to quality ISO 9000 (first published 1987) ISO 9000 Malcolm Baldrige National Quality Award (just celebrated 25 th anniversary) Malcolm Baldrige National Quality Award

Why not apply to software development?  Companies started codifying their practices  Large documents and people to manage them Rise of the project manager  “Honored in the breach”  More large projects and more late or failed projects 1995 Standish Group Study Jerry Saltzer SOSP 1999

1995 Standish Group Study  50% software projects challenged 2x budget 2x completion time 2/3 planned function  30% impaired Scrapped  20% success

Jerry Saltzer Presentation  Who is Jerry Saltzer? Early time sharing (CTSS) Multics Operating System (“inspired” Unix) Project Athena ○ Thin client computing ○ Kerberos ○ LDAP ○ Instant messaging

Software Engineering Processes  Differ by how often you do the steps Points on the spectrum Differences in overhead  Three fundamental models Waterfall Spiral Iterative  Widely used models Integrated Product Development Unified Software Development Process Extreme Programming

All models address the 4 P’s of Software Engineering  People: those doing it  Product: what is produced  Process: manner in which it is done  Project: the doing of it

Fundamental Steps  Requirements  Design  Implementation  Test  Deployment  Maintenance

Processes  Differ by how often you do the steps Focus and emphasis  Points on the spectrum  Differences in overhead  Three fundamental processes Waterfall Spiral Iterative

Waterfall  Do it once  Traditional model  Used for large next version releases,  especially when  well understood product  tightly coupled changes

Waterfall  1970s  Built on 1950’s stage- wise process  Recognized the need for feedback Limited Heavy process

Waterfall  Pros Simple documentation management Clean design phase  Cons Least flexibility No early feedback

Iterative (a.k.a. Agile)  Many iterations  Each iteration is on a fixed cycle Typically biweekly  Used for projects with  lots of small independent, but well understood, changes  small development team  strong client involvement

Iterative  Reaction to waterfall  Derived from “evolutionary” process Requirements and specs evolve over time  Two well-known models Extreme programming SCRUM

Iterative (a.k.a. Agile)  Pros Fast feedback on problems Very adaptable to any changes Lots of versions to work with Heavy user involvement  Cons Document maintenance Code maintenance Requires good automation

Spiral  Few iterations  Each iteration adds new requirements  Used often for projects with less well defined requirements

Spiral  Risk based  Barry Boehm 1988  “A Spiral Model of Software Development and Enhancement”

Spiral  Pros Adaptation to changes based on risks Good customer interaction Early version Limited iterations provide phase structure  Cons Document maintenance

Unified (Software Development) Process spiral variant  Iterations within phases  4 phases and core workflows for each  Identifies that iterations differ Requirements Analysis Design Implementation Test ElaborationInceptionConstructionTransition Also known as Rational Unified Process (Rational products)Rational Unified Process

Historical Recap  Waterfall: 1970, built on 1950’s stage- wise processes Recognized need for feedback  Iterative (agile): late 70s,modeled on evolutionary model Didn’t work well for large products  Spiral: 1988, risk-based