Chapter 1. Introduction Eric Braude and Michael Bernstein.

Slides:



Advertisements
Similar presentations
Unit 6 Assignment 2 Chris Boardley.
Advertisements

CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
CS3773 Software Engineering Lecture 01 Introduction.
Chapter 2 The Software Process
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)
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
What is Software Engineering? And why is it so hard?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction to Software Engineering Dr. Basem Alkazemi
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
Software Life Cycle Model
Chapter 1 The Systems Development Environment
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Software Project Management
SE-2002 SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software Development Processes.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1. Introduction.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Requirements and Design Khalid Ishaq
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
OHTO -99 OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING Today - motivation: - Software Engineering: Why? - Software Engineering: What?
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
Software Engineering Introduction.
Teaching slides Chapter 3
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Introduction to Software Project Management Lecture1.
Chapter 1: Software and Software Engineering The Nature of Software... Software is intangible  Hard to understand development effort Software.
Advanced Software Engineering Dr. Cheng
Software Engineering - CSC 323
CompSci 280 S Introduction to Software Development
Why Software Fails.
Methodologies and Algorithms
Chapter 1 The Systems Development Environment
OHJELMISTOJEN TOTEUTUS - SOFTWARE ENGINEERING
Software Engineering - CSC 323
Chapter 1 The Systems Development Environment
The Systems Engineering Context
Software Engineering and Best Practices
Software Process Models
Chapter 1 The Systems Development Environment
Life Cycle Models PPT By :Dr. R. Mall.
IT Systems Analysis & Design
Requirements and the Software Lifecycle
Introduction to Software Engineering
Teaching slides Chapter 1.
Overview: Software and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Introduction to Software Engineering
Software Engineering I
CS385T Software Engineering Dr.Doaa Sami
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Chapter 1: Software and Software Engineering
Chapter 1 The Systems Development Environment
What is Software Engineering?
Chapter 1: Software and Software Engineering
Presentation transcript:

Chapter 1. Introduction Eric Braude and Michael Bernstein

The Software Development Lifecycle Planning Maintenance Testing The Software Development Lifecycle Why is software engineering important? Who and what does it consist of? What are its main activities? What are the principles of software engineering? What sorts of case studies will be used to illustrate the subject? Requirements analysis Implementation Design

Goal of Software Engineering Creation of software systems that are Reliable Efficient Maintainable Meet the needs of customers Production of system meets Schedule Budget

What is Software Engineering? Engineering discipline the design, analysis and construction of an artifact for some practical purpose IEEE definition: “the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is the application of engineering to software.”

NATO Study Group NATO Study Group on Computer Science (1968) one of the first uses of the phrase software engineering “Programming management will continue to deserve its current poor reputation for cost and schedule effectiveness until such time as a more complete understanding of the program design process is achieved.”

NATO Study Group (cont.) “Today we tend to go on for years, with tremendous investments to find that the system, which was not well understood to start with, does not work as anticipated. We build systems like the Wright brothers built airplanes — build the whole thing, push it off the cliff, let it crash, and start over again.”

Software Disasters Numerous examples of software disasters Ariane Project The Ariane project was decided on in 1973, in the framework of European space cooperation at the occasion of the birth of the European Space Agency. In 1979, the first Ariane was a technical success. The evolution of the launcher and the creation of the company ‘Arianespace’, in charge of the production, the commercialisation of the launching and the operations of launching have transformed this technical success into an economic success, since this company has kept 60% of the commercial market of launch services. 1990 AT&T Disaster Radiation Overdose

Software Failure What is it? What expectations are not achieved? Failure to meet expectations What expectations are not achieved? Over budget Exceeds schedule and/or misses market window Doesn’t meet stated customer requirements Lower quality than expected Performance doesn’t meet expectations Too difficult to use

Software Failure (cont.) Reasons for failure: Unrealistic or unarticulated project goals Poor project management Inaccurate estimates of needed resources Badly defined system requirements Poor reporting of the project's status Unmanaged risks Poor communication among customers, developers, and users Inability to handle the project's complexity Poor software design methodology Wrong or inefficient set of development tools Inadequate test coverage Inappropriate (or lack of) software process

Software Engineering Activities

People

The Software Product Artifacts Project documentation Documents produced during software definition and development Code Source and object Test documents Plans, cases, and results Customer documents Documents explaining how to use and operate product Productivity measurements Analyze project productivity

Project

Project (cont.) Development paradigm e.g. object-oriented

Process Framework for carrying out the activities of a project in an organized and disciplined manner. Imposes structure Waterfall or Iterative

Waterfall Process Simplest process Sequential Basis for others

Iterative Process Software projects rarely follow strict waterfall Some iteration between specifications, design, implementation and test Requires discipline e.g. update specifications when design changes

Software Engineering Principles Source: 201 Principles of Software Engineering, Alan Davis

(created for this book) Encounter (created for this book) Case Studies Eclipse (open source) OpenOffice (open source)

Encounter Screen Shot Courtyard

The Eclipse Project

OpenOffice

Typical OpenOffice Communication with Developers

OpenOffice Accepted Projects http://projects.openoffice.org/accepted.html

OpenOffice Accepted Projects 2 http://projects.openoffice.org/accepted.html