ICS 52: Introduction to Software Engineering

Similar documents
LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Waterfall model is the earliest SDLC approach that was used for software development.

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

Software Process. Overview

SDLC Models- A Survey

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

Explore Comparative Analysis Software Development Life Cycle Models

7. Model based software architecture

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

QAIassist Integrated Methodology Software Testing Lifecycle Implementation Guide

QAIassist Integrated Methodology Project Management Lifecycle Implementation Guide

QAIassist Integrated Methodology Software Development Lifecycle (SDLC) Implementation Guide

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

the software world... software engineering? software engineering: one definition

cis20.2 design and implementation of software applications 2 spring 2010 lecture # I.2

Rational Software White Paper TP 174

Goals of course. Themes: What can you do to evaluate a new technique? How do you measure what you are doing?

Chapter 3 Prescriptive Process Models

Ingegneria del Software Corso di Laurea in Informatica per il Management

Introduction to Systems Analysis and Design

Software Engineering & Architecture

SE420 Software Quality Assurance

Chapter 2 Software Product Lifecycles: What Can Be Optimized and How?

CSE 435 Software Engineering. Sept 14, 2015

QAIassist Software Testing Methodology Implementation Guide

Introduction of RUP - The Rational Unified Process

A Review Paper on Software Testing

Software development processes: from the waterfall to the Unified Process

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Quality Assurance for Systems Engineering (INSE 6280/2-WW)

Agile Projects 7. Agile Project Management 21

Planning and the Software Lifecycle. CSCE Lecture 2-08/26/2015

Chapter 6: Software Evolution and Reengineering

T Software Testing and Quality Assurance Test Planning

The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

Oracle Unified Method (OUM) The OUM Implement Core Workflow The Key to Understanding and Applying OUM. An Oracle White Paper April 2012

9/24/2011 Sof o tw t a w re e P roc o e c s e s s s Mo M d o e d l e s l 1 Wh W a h t t i s i s a Pr P oc o ess s 2 1

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

SWEN 256 Software Process & Project Management

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

CMPT 275 Software Engineering

Software Development Software Development Activities

Introduction to Software Engineering

Presented By: Mark Paulk

7. Project Management

SE420 Software Quality Assurance

CS 320 Introduction to Software Engineering Spring February 01, 2017

Software Processes. CSE-C3610, Software Engineering, 5 cr. Prof. Casper Lassenius

Capability Maturity Model for Software (SW-CMM )

Object-Oriented and Classical Software Engineering

Object-Oriented & Classical Soft Engineering

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Engineering

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

A New Divide & Conquer Software Process Model

SWE 211 Software Processes

Software Development Lifecycle

Requirements Engineering and Software Architecture Project Description

Complex Systems of Systems (CSOS) : Software Benefits,Risks,and Strategies

SDLC AND MODEL SELECTION: A STUDY

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Software Engineering

Lecture- 10. Project Scheduling. Dronacharya College of Engineering

Information Systems Development

Software Quality Assurance

FACTFILE: GCE DIGITAL TECHNOLOGY

Project Management CSC 310 Spring 2018 Howard Rosenthal

Agile Development Method for Mobile applications: A Study

22C:180/55:180 Software Engineering-- Architecture & Design of Software Systems

Acquiring IT Applications and Infrastructure

3. Comparison of Above Described SDLC Models

Document Control Information

Software Development

Document Control Information

CS605 Software Engineering-II

CSCC40 Analysis and Design of Information Systems mid-term exam

Installation and Maintenance of Health IT Systems

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

What We ll Cover. What is the SDLC? Component 8 Installation and Maintenance of Health IT Systems

Information Systems. Rationale Aims & Objectives. Rationale Aims & Objectives. Introduction to Project management. Ruel Ellis

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Pertemuan 2. Software Engineering: The Process

Requirements Engineering and Software Architecture Project Description

A Data Item Description for System Feasibility Evidence

18-642: Software Development Processes

A Comparative Study on Software Development Life Cycle Models

Note 10: Software Process

Communication Model for Cooperative Robotics Simulator. Project Plan. Version 1.0

Development Environment Definition

Critical Software Testing Processes

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Software Engineering Part 2

Software Construction

ISSN Number: Modelling Time-Constrained Software Development. Dr. Antony Powell Department of Management Studies, University of York

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Transcription:

ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Copyright 2004, Richard N. Taylor. Duplication of course material for any commercial purpose without written permission is prohibited.

Add/Drop Policy All Adds done through WebReg (not add cards) Second week of classes Deadline to add Second week of classes Deadline to drop

Course Web Site http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Contents Information on the instructor, TA, and readers Overview and prerequisite knowledge Textbook» Hans van Vliet» Backup: Ghezzi, Jazayeri, and Mandrioli & Sommerville Schedule Assignments and assessment Keeping in touch Computing Academic dishonesty

Be Involved But Don t Be Too Involved You cheat, you fail! Final grade is F, irrespective of partial grades Project, midterm, final To avoid being a cheater Always do your work by yourself Do not borrow work Do not lend work» Do not put your work on the Web Your TA is your friend, but your friend is not your TA Your friend s help may be cheating

Discussion Section Assignments: questions and answers Details of tools and methods No discussion section meetings until September 29th

Positioning in ICS Curriculum ICS 121: Software methods and tools Rigor and formality Additional software design strategies Additional analysis and testing strategies Configuration management ICS 122: Software Specification and Quality Engineering ICS 123: Software Architectures, Distributed Systems, and Interoperability ICS 125 Management issues Working in a team A scaled-up project

A note on class attendance and the book What I say in class takes precedence over what s in the slides and what s in the book What s in the slides takes precedence over what s in the book

Levels of Mastery (See course website for definitive list) Competency Software lifecycle Requirements specification Architectural design Module design (Programming) ing and quality assurance Literacy SE principles Alternative software architectures Requirements engineering issues Familiarity Configuration management Concurrency Software process alternatives "Scratching the surface of software engineering" " Fitting you to become an amateur software engineer"

Introduction Context Matters of scale Distribution of software costs Differences from programming Product and process Elements of Science, Engineering, Management, and Human Factors

Software Engineering A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers. [Ghezzi, Jazayeri, Mandrioli] Multi-person construction of multi-version software. [Parnas]

Software Engineering A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user s needs. Furthermore, the software must be easy to modify when the user s needs change. [Schach] Difficult. [van der Hoek]

Software Engineering It s where you actually get to design big stuff and be creative. [Taylor]

Context Small project You Build what you want One product Few sequential changes Short-lived Cheap Small consequences Huge project Teams Build what they want Family of products Many parallel changes Long-lived Costly Large consequences Programming Engineering

Differences from Programming Software engineering includes, e.g..: organizing teams to cooperatively build systems determining what to build software architecture analysis and testing lifecycle system engineering

Matters of Scale High powered techniques not appropriate for all problems (Using a forklift to carry a paperback novel) The ICS 52 pedagogical problem: the problem must be small enough to complete in 10 weeks you work on the project by yourself you don't have to live with the consequences of your decisions your customers are too reasonable

People The single most important factor in the success/failure of a product Scarce resource Quality Suitability Cost Many different kinds of people Managers Programmers Technical writers Not the focus of ICS 52: see ICS 131

Processes Essential to achieve a quality product Scarce resource Quality Suitability Cost Many different kinds of processes Bug tracking Change approval Quality assurance Focus of ICS 52

Tools Needed to support people and processes Scarce resource Quality Suitability Cost Many different kinds of tools Drawing people support Analysis Project management Source code management process support Not the focus of ICS 52: see ICS 121

Product Result of applying people, processes, and tools Consists of many deliverables Software Documentation User manuals cases documents Intrinsic qualities Safety Reliability User friendliness People + Processes + Tools = Product

People, Processes, Tools, Products Products are always the eventual goal Selling products creates revenue Selling good products creates lots of revenue Selling bad products creates little revenue People, processes, and tools are retained by organization Build a reputation through the quality of products Create organizational culture Important to keep the team intact

Product and Process Which is the more important corporate asset: products or development processes? Products: the only thing that brings in revenue Process: the only thing you retain»the asset that distinguishes you from your competitor en route to a product»the asset that gets you to your next product»the asset that determines key properties of your products

Science, Engineering, Management, Human Factors Science: empirical studies; theories characterizing aggregate system behavior (e.g. reliability) Management: organizing teams, directing activities, correcting problems Human factors: user task understanding and modeling; ergonomics in user interface design Engineering: tradeoffs, canonical solutions to typical problems Tradeoffs and representative qualities» Pick any two: Good, fast, cheap Scalability, functionality, performance

Software Development as a Problem Solving Activity Problem (application) characteristics Ill-formed Not completely specifiable? Subject to constant change Learning from other disciplines Architecture: Requirements, sketch, blueprints, construction» Strengths: Phasing of activities User input and review User looks at sketch, but only minimally involved in construction» Weaknesses: Lots of domain knowledge on the part of the consumer We know what kind of change can be made at each stage Progress easily measurable Legislation: Commission, committee, congress, bureaucracy» Strengths: Intangible product Unforeseen consequences Difficult to measure progress Laws get "patched" Importance of careful reviews highlighted» Weakness of analogy: Difficult to test laws Not a rigorous discipline

Processes Institute processes through which software is engineered Cover all steps from initial idea and requirements to delivery, maintenance, and final retirement Make sure we do the right things/things right Make sure we do not forget to do anything Different processes for different kinds of software Not a silver bullet [Brooks No Silver Bullet ] Software is still intrinsically difficult to deal with Processes help, but cannot guarantee anything Remember: People + Processes + Tools => Product

Software Processes Elements Activities ( s ) Artifacts» Can include process specifications Resources» People (their time and cost)» Tools (their time and cost) Relationships between the elements precedence, requires, produces, refines to... Constraints Time Cost Qualities (repeatable process?)

Software Life Cycle Models Build-and-fix Waterfall Rapid prototyping Incremental Synchronize-and-stabilize Spiral A software life cycle model is a high-level process

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Build-and-Fix Build first version Modify until client is satisfied Operations mode Development Maintenance Retirement

Waterfall Approach Waterfall Model (Winston Royce) Centered on defining documents that describe intermediate products User feedback and changes accommodated as an afterthought Source: Schach, ibid..

Waterfall model Ian Sommerville 2000 Software Engineering, 6th editi

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Waterfall Requirements Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Rapid Prototyping Build and discard simple prototype Changed requirements Specification Implementation Development Maintenance Operations mode Retirement

Incremental Requirements Specification Architectural design Development Maintenance FOR EACH BUILD Perform detailed design, implementation, and integration.. Deliver to client. Operations mode Retirement

Synchronize-and-Stabilize Specifications Implementation, Deliver to client (version 1) Specifications Implementation, Deliver to client (version 2) Specifications Implementation, Deliver to client (version 3)... Specifications Implementation, Deliver to client (version n) Specification team team Implementation/integration team

Synchronize-and-Stabilize Specifications Implementation, Deliver to client (version 1) Specifications Implementation, Deliver to client (version 2) Specifications Implementation, Deliver to client (version 3)... Specifications Implementation, Deliver to client (version n) Specification team team Implementation/integration team

Synchronize-and-Stabilize Specifications Implementation, Deliver to client (version 1) Specifications Implementation, Deliver to client (version 2) Specifications Implementation, Deliver to client (version 3)... Specifications Implementation, Deliver to client (version n) Specification team team Implementation/integration team

Synchronize-and-Stabilize Specifications Implementation, Deliver to client version 1 Specifications Implementation, Deliver to client version 2 Specifications Implementation, Deliver to client version 3... Specifications Implementation, Deliver to client version n Specification team team Implementation/integration team

Synchronize-and-Stabilize Specifications Implementation, Deliver to client version 1 Specifications Implementation, Deliver to client version 2 Specifications Implementation, Deliver to client version 3... Specifications Implementation, Deliver to client version n Specification team team Implementation/integration team

Synchronize-and-Stabilize Specifications Implementation, Deliver to client version 1 Specifications Implementation, Deliver to client version 2 Specifications Implementation, Deliver to client version 3... Specifications Implementation, Deliver to client version n Specification team team Implementation/integration team

Lifecycle Models Waterfall Model (Winston Royce) Spiral Model (Barry Boehm) Centered on defining documents that describe intermediate products User feedback and changes accommodated as an afterthought Iterative development model Centered on risk analysis Directly includes prototyping and user feedback

Spiral Model Start here Spiral Model (Barry Boehm) Iterative development model Centered on risk analysis Directly includes prototyping and user feedback Source: Barry Boehm, A Spiral Model of Software Development and Enhancement, IEEE Computer, May 1988

Boehm s Top Ten Software Risks 1. Personnel shortfalls 2. Unrealistic schedules and budgets 3. Developing the wrong software functions 4. Developing the wrong user interface 5. Gold plating 6. Continuing stream of requirements changes 7. Shortfalls in externally furnished components 8. Shortfalls in externally performed tasks 9. Real-time performance shortfalls 10. Straining computerscience capabilities

SEI's Capability Maturity Model Disciplined Process Standard, consistent process Repeatable (2) Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management Continuously improving process Predictable process Defined (3) Peer reviews Intergroup coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Managed (4) Software quality management Quantitative process management Optimizing (5) Process change management Technology change management Defect prevention Initial(1)

A Comparison of Life Cycle Models Developers have to be competent at riskanalysis Model Build-and-Fix Waterfall Rapid Prototyping Incremental Synchronizeand-stabilize Spiral Strengths Fine for small programs that do not require much maintenance Disciplined approach Document driven Ensures that delivered product meets client s needs Maximizes early return on investment Promotes maintainability Future user s needs are met Ensures components can be successfully integrated Incorporates features of all the above models Weaknesses Totally unsatisfactorily for nontrivial programs Delivered product may not meet client s needs A need to build twice Cannot always be used Requires open architecture May degenerate into build-and-fix Has not been widely used other than in Microsoft Can be used only for large-scale products

Distribution of Software Costs: the Small Matter of Maintenance Slides: Stephen R. Schach, Software Engineering, 2nd Edition Aksen Associations

ICS 52 Software Life Cycle Requirements specification Has been: Interview customer (TA) This time: Based on examination of an existing product Focus on what, not how Architectural and module design Has been: Based on provided official requirements specification This time: Based on examination and extension of an existing product Focus on interfaces Implementation Has been: Based on provided official design This time: Extend existing product Focus on good implementation techniques ing Has been: Based on provided official implementation This time: You guessed it Focus on fault coverage and discovery