27 February A Broader Perspective. Triangle Technology Executive Panel Friday, 2 March 3:30 p.m. Sitterson 014 For more info, see

Slides:



Advertisements
Similar presentations
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Advertisements

The Therac-25: A Software Fatal Failure
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Software Life Cycles ECE 417/617: Elements of Software Engineering
SYSC System Analysis and Design
8 December Logistics  Sitterson 014 at 8 am Tuesday, Dec 14  Inviting all clients  Schedule will depend on client constraints ( once booked)
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)
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
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.
Message Design and Content Creation 23 January 2007 Kathy E. Gill.
COMP 006: Computers Make It Possible 25 August 2004.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Unit Five – Transforming Organizations
COMP 006: Computers Make It Possible 30 August 2005.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Software Reliability 25 September About the Evening Lectures  Viewing is required All lectures will be recorded and shown during a regular class.
CHAPTER 19 Building Software.
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)
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Twelfth Lecture Hour 10:30 – 11:20 am, Saturday, September 15 Software Management Disciplines Project Organization and Responsibilities (from Part III,
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
26 February Humpty Dumpty Presentations Software Architecture (cont)
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
© 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Chapter 7 Applying UML and Patterns Craig Larman
Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Introduction to Systems Analysis and Design
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Lecture 4. Software Engineering Body of Knowledge SWEBOK  Articulating a body of knowledge is an essential step toward developing a profession because.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
The principles of an object oriented software development process Week 04 1.
20 March XML Extreme Programming. Customization Separation of customization from code Create family of applications instead of a single one Design from.
Interacting with consumer Software Engineering. So far… What is Software Engineering? Different software process models waterfall, incremental, spiral.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
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.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Extreme Programming. Programming History 1960’s  60’s  “Cowboys” wrote software anyway that they could  Difference between best programmers and worst.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Design and Development Development Methodoligies Computing Science.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
Software Engineering Processes
COMP 523 Diane pozefsky 24 August 2016.
Information Technology Project Management – Fifth Edition
The value of a project-oriented approach to IT and how we do it in IBM
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Presentation transcript:

27 February A Broader Perspective

Triangle Technology Executive Panel Friday, 2 March 3:30 p.m. Sitterson 014 For more info, see Capital Analytics Find out about local businesses Ask questions about the industry Learn what companies are looking for in employees Network

Midterm Presentations: Purpose You don’t understand something until you’ve taught it Clarification of your thought process and understanding Sharpen your understanding of the project Facilitate sharing Learn from each other Practice presenting

Midterm Presentations: Logistics March 6 and 8 Requests accepted Assignments will be made at team meetings 15 minute presentations (excluding set up) Copies of charts to be posted on website Full attendance is expected

Presentations: The Basics Speak loudly and clearly Stand up No chewing gum when speaking Speak, don’t read: you ARE the experts Practice, practice, practice Set up and test demos and laptops early

Presentations Hints Cover all topics, but they don’t need equal time! Focus on what’s special about your project Don’t try to cover too much Keep it light Give the audience something to look at

Presentations Grading Content and style count Single grade for group Everyone does NOT need to present

Presentation Content Motivation Introduction to the area and project Key domain problems to be addressed “Use Cases” Who are the users What do they need to do Design System design and further detail as needed Key technical problems to be addressed Technologies being used (and why) Demo: what you present to your customer this week Any interesting “why”s

Motivation Tell the class about the problem Information about the group Similar websites How things are done today What are the problems being faced Why is the project being done

Design The first picture that you would draw for a new team member Sharing with other teams Technologies Major problems (solved or open)

Examples of Architecture Pictures Game Engine Soun d File I/O Controller I/O Visual Interfac e Omega CONTROL MODEL Login VerifyUser Monster Breed VIEW Monster Combat Login

Two links sent to me … Humor: If Programmers Had to Build Planes Which would be funny except… F-22 Raptors

The Goal of Software Engineering The right software, delivered defect free, on time and on cost, every time.

Software Craftmanship Software craftsmanship (McBreen 2001)McBreen 2001 Craft of writing software Craft of using software Distinguish from software engineering Scope Rigor Relevant distinction?

Why Industry Practices? Software engineering is the application of theory and practice of computer science project management engineering domains Where better to look at application?

Software Engineering History First key conference in 1968 Became important because of perceived software crisis in productivity Cost and budget overruns (OS/360) Morphed to issues of quality Financial implications (BoNY) Safety (Therac)

BoNY (1985) BoNY (Bank of New York): Nation’s largest clearer of government securities Software to track Federal securities transactions wrote new information on top of old. Feds debited the bank for each transaction but bank did not know who owed it how much. 90 minutes => $32 Billion overdraft !

Cost of Bug Bank had to borrow $24 bill from federal reserves. Interest paid ~$5 mill for 1 day. (Annual earnings of bank ~120 mill) BoNY share prices dropped by 25c Federal funds rate dropped from 8.4% to 5.5% System down for 28 hours. Fear of financial crisis caused increase in price of platinum!

Cause of bug Message buffer counter at BoNY system was 16-bit long. Counters at Fed (and other banks) 32 bit. More than 32,000 transactions that morning! =>Counter overflow Securities database corrupted.

The Drama continues… Trying to correct it – they copied corrupted data over the backup. Lost a few hours because of this. Does code for error recovery get tested at all?

Therac-25 ( ) Medical linear accelerator Used to zap tumors with high energy beams. Electron beams for shallow tissue or x-ray photons for deeper tissue. Eleven Therac-25s were installed: Six in Canada Five in the United States

Therac-25 Changes from Therac-20 Uses new “double pass” technique to accelerate electrons…more deadly Machine itself takes up less space Software now coupled to the rest of the system and responsible for safety checks. Hardware safety interlocks removed. “Easier to use”

Therac-25 Turntable Counterweight Field Light Mirror Beam Flattener (X-ray Mode) Scan Magnet (Electron Mode) Turntable

What Happened? Six patients were delivered severe overdoses of radiation between 1985 and Four of these patients died. Why? The turntable was in the wrong position. Patients were receiving x-rays without beam-scattering.

What would cause that to happen? Race conditions. Several different race condition bugs. Overflow error. The turntable position was not checked every 256th time the “Class3” variable is incremented. No hardware safety interlocks. Wrong information on the console. Non-descriptive error messages. “Malfunction 54” “H-tilt” User-override-able error modes.

Source of the Bug Incompetent engineering. Design Troubleshooting Virtually no testing of the software. The safety analysis excluded the software! No usability testing.

Back to History

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

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 Malcolm Baldridge National Quality Award Why not apply to software development?

ISO 9000 What is ISO? International body 150 national standards organization US: ANSI Primarily technical standards Recent years has broadened its scope Generic management system standards First published in 1987 Revision in 2000 Compendium of best practices Not the process but the management of the process

Which brings us back to What is part of software engineering?

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

Product Sales brochure Use cases and requirements Design document: from architecture to detailed design Fully documented code Test plan and tools Manuals Users Administrators

Process Software Engineering Steps Software Engineering Processes Reviews and Inspections

Software Engineering Elaborated Steps Concept Requirements Architecture Design Implementation Unit test Integration System test Maintenance

Software Engineering Processes Differ by how often you do the steps Points on the spectrum Differences in overhead Three fundamental models Waterfall Spiral Iterative Two widely used models Rational Unified Process (a.k.a. Unified Software Development Process) Extreme Programming

Integrated Product Development: The IBM Approach Originated at GE Key principles Cross-functional teams at all phases Phased approval Example checkpoints Concept Plan Ship Sunset

Rational Unified Process Iterations within phases 4 phases Inception (interaction with stakeholders) Elaboration (architecture and functions) Construction (initial operational) Transition (completed product) Core workflows for each iteration Requirements Analysis (part of Requirements) Design Implementation (includes Integration) Test

Unified Process Matrix ElaborationInceptionConstructionTransition Requirements Analysis Design Implemen- tation Test

Extreme Programming Complete development process First code drop is 2-3 weeks after start Customer a part of the development team Iterative development to the max Derive requirements with customer through hands-on experimentation Agile methodology

Why XP? 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 50% software projects challenged 2x budget 2x completion time 2/3 planned function 30% impaired Scrapped 20% success pdf

Agile Methodologies Keep only those rules and processes that help Antidote to bureaucracy License to hack Key characteristics Adaptive People-oriented

Extreme Programming: History Kent Beck considered the inventor Ideas developed in the early 90’s First project at Daimler Chrysler in 1996

XP Bills of Rights Developer has a right to Clear requirements and priorities Determine how long a requirement will take to implement Revise estimates Always produce quality code Customer has a right to An overall plan See progress in a running system Change requirements and priorities Be informed of changes to schedule and have input as to how to adapt Cancel in the middle and still have something to show for the investment