Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.

Slides:



Advertisements
Similar presentations
1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
“Not Fully Specified (Project) Objectives” CS524 – Software Engineering I Azusa Pacific University Professor Dr. Sheldon X. Liang Fall I 2007 Ernie Rosales.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
What is Software Engineering? And why is it so hard?
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
CSE 230: Introduction to Software Engineering Topics covered: Introduction.
CSC230 Software Design (Engineering)
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.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
Chapter 01 Nell Dale & John Lewis.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
CSCI 6231: Software Engineering Instructor: Morris Lancaster.
Computers & Employment By Andrew Attard and Stephen Calleja.
Section 02Systems Documentation1 02 Systems Documentation And Franchise Colleges By MANSHA NAWAZ.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
MCS 270 Spring 2014 Object-Oriented Software Development.
Objectives of the Lecture
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Structure of Study Programmes
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Knowledge representation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
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 Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Software Requirements Presented By Dr. Shazzad Hosain.
Software Requirements Engineering CSE 305 Lecture-2.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
1 WORKSHOP ON COMPUTER SCIENCE EDUCATION Innovation of Computer Science Curriculum in Higher Education TEMPUS project CD-JEP 16160/2001.
Lecture about Software Engineering Mohammad A Kuhail M.Sc.(York,UK) November 2007 University of Palestine Applied and Urban Engineering College Orientation.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Introduction to Systems Analysis and Design
Software Engineering & Project Management Lecture # 01 Computer Science & Engineering Lucky Sharma Subject Code: CS 603.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
CS Curriculum Changes Fall, BS Computer Science 2015 COMPUTER SCIENCE COURSES—64 Hours COMPUTER SCIENCE CORE (48 Hours) CS 258Intro to Object-Oriented.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
College of Computer Science, SCU Computer English Lecture 1 Computer Science Yang Ning 1/46.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Dillon: CSE470: INTRO1 Introduction to Software Engineering Computer Science and Engineering 470.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Ondřej Přibyl L3: System Development Life Cycle page 1 Lecture 3: System Development Life Cycle Doc.Ing. Ondřej Přibyl, Ph.D. Department of applied mathematics.
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
Software Engineering Facilitator Faisal Shafique Butt.
Software Engineering - CSC 323
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Outline Types of Databases and Database Applications Basic Definitions
Presentation on Software Requirements Submitted by
Software Engineering - CSC 323
CS 21a: Intro to Computing I
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
MBI 630: Systems Analysis and Design
Overview: Software and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Presentation transcript:

Ch.1 1 Software Engineering A Preview Chapter 1

Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering SE consists of many activities in addition to programming SE and other disciplines

Ch.1 3 My Background BSc in computer science from Ontario MSc and PhD in computer science at UofR Research specializing in machine learning and game theory Avid programmer. First language was Basic in 1989, last was C# 8 months ago.

Ch.1 4 Industry Experience –Government of Ontario (Web developer) –IBM Canada (lead developer of e-commerce site) –Dundee Securities (network security analyst) –Sask. Watershed Authority (team lead) –UofR (programmer analyst I, II) –Numerous lab teaching and lecturing appointments

Ch.1 5 Definitions The application of engineering to software Field of computer science dealing with software systems –large and complex –built by teams –exist in many versions –last many years –undergo changes

Ch.1 6 Definitions Application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software (IEEE 1990) Multi-person construction of multi-version software (Parnas 1978)

Ch.1 7 Role of SE in system design SE part of larger projects Embedded –Software requirements to be balanced against others e.g., telephone switching systems –certain requirements can only be met by hw, sw, and special devices

Ch.1 8 History The field of software engineering was born in 1968 in response to chronic failures of large software projects to meet schedule and budget constraints –Recognition of "the software crisis" Term became popular after NATO Conference in Garmisch Partenkirchen (Germany), 1968

Ch.1 9 Role of software engineer Programming skill not enough Software engineering involves "programming-in- the –large" –understand requirements and write specifications derive models and reason about them –master software –operate at various abstraction levels –member of a team communication skills management skills

Ch.1 10 The software lifecycle (a preview) waterfall model

Ch.1 11 Relationships between SE and other CS disciplines Programming languages Operating systems Data bases Artificial intelligence Theory Management science Systems engineering Others

Ch.1 12 Programming Languages are the central tools used in software development. Modularity: –Separation of implementation and specification Java and packages Exception handling: –Engineer support for error checking

Ch.1 13 Operating Systems The first large software systems built. Concepts developed in OS are applicable to many large-scale software systems: –Virtual machines, abstraction, separation of policy from mechanism: Separate the “what” from the “how”

Ch.1 14 Databases Concept of data independence: –Another ex. of separation of specification and implementation. Many innovations in database technology were required with the design of large-scale software systems: –Storing large structured or unstructured objects. –Transaction lengths.

Ch.1 15 Artificial Intelligence Many are large-scale software systems. Necessity of “exploratory development” since many of them were vague on how they worked. SE techniques used in expert systems, a modularized system with clear separation between facts known and rules used to process facts. –Programming assistants.

Ch.1 16 Theoretical Models Many models have been developed that have become useful tools in SE: –Finite State Machines Basis of software specifications and a model for software design and structure. –Petri Nets Originally used to model hardware, but have been adopted to model software.

Ch.1 17 Topics covered in this course Part I: SE Overview –SE Introduction –Software Qualities and Principles –Software Design and Architecture Part II: Specification & Testing –Operational and Descriptive specifications Part III: Software Production Process –Activities and models

Ch.1 18 Group project Comprehensive project that covers major deliverables and duties of a real developer team. Groups of 4 should be decided by the end of the week. All members of team receive same project mark Tip: Pick a well-rounded group of writers, testers, and developers.

Ch.1 19 Group project Each group will meet with me at least once midway through to discuss project. I will provide a list of available projects, but I’m also open to ones not on a list if I think they are viable. REMEMBER: You have 6.5 weeks to finish it, starting now!

Ch.1 20 CHAOS Report by Standish Group for 1995 Standish Group studied 3682 projects in 365 companies in 1995 Huge investment in software development –US $250 billion spent each year on IT development of c projects in the US (1995 estimates) Huge losses –US $81 billion spent on cancelled projects and additional $59 billion on time overruns by US companies and government (1995estimates)

Ch.1 21 Project success rate –Success 16.2% –Challenged (either late or over budget) 52.7% –Impaired (cancelled) 31.1% Average cost overrun of original estimate was 189% Average time overrun of original estimate was 222% On average only 61% of originally specified features and functions were available on these projects

Ch.1 22 Challenges of Software Development Productivity –Growing demand for new systems and variants Complexity –Requirements concerning functionality, efficiency, and especially connectivity are constantly growing. Quality –User expectations of quality are high, and may be life critical Maintenance & Legacy Systems –20 years or more

Ch.1 23 Programming vs. Software Engineering 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

Ch.1 24 Average cost of software Object-Oriented and Classical Software Engineer 5th Edition, Schach (2002)