Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering.

Slides:



Advertisements
Similar presentations
Robert Lockyer.
Advertisements

CS3773 Software Engineering Lecture 01 Introduction.
Chapter 2 The Software Process
W5HH Principle As applied to Software Projects
The Mythical Man-Month by Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of OS/360 in Central Argument –Large.
No Silver Bullet “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
6/10/20151 Introduction to Software Engineering. 6/10/20152 Programming versus Software Engineering l programming 1. The process of translating a problem.
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
What is Software Engineering? And why is it so hard?
Software Design & Production Methodologies STRUCTURED & OBJECT-ORIENTED METHODS for SYSTEMS ANALYSIS & DESIGN Vassilka Kirova Computer & Information Science.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
CS-413 1/42 Introduction To Software Engineering Project Management (Part 1) Bilgisayar Mühendisliği Bölümü – Bilkent Üniversitesi – Fall 2009 Dr.Çağatay.
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.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
Software Qualities. Unique Properties of Software (Teams: What are the properties of software that make it unique from other engineering disciplines?)
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Lecture 1 Introduction to Software Engineering
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
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.
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
By Justin hendrix. Chapter 1: The Tar Pit Chapter one is about making a good project that won’t get stuck in the “tar pit.” That is it must be flexible.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Introduction to Systems Analysis and Design
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The Long Tail Why the future of business is selling less of more ▫ISBN = ▫Chris Anderson Low Distribution and Inventory costs allow companies.
1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System A Use Case Primer Organizing.
Pertemuan 1 Introduction to Software Engineering Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
1 FPB 11/24/13 Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Information Systems Week 14 Managing Projects.
Advanced Software Engineering Dr. Cheng
Software Engineering - CSC 323
Why is software engineering worth studying?
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Verification and Validation
Introduction to Software Engineering
CS4311 Spring 2011 Process Improvement Dr
Software Engineering - CSC 323
Introduction SOFTWARE ENGINEERING.
The Effects on Development
Informatics 43 – March 31, 2016.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11
Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill ONR_Updated.
What Is Good Software(Program)?
Software Design & Production Methodologies
Presentation transcript:

Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering

Lawrence ChungSoftware Engineering: Introduction2 Objectives What is Software Engineering? Why Software Engineering? How to do Software Engineering?

Lawrence ChungSoftware Engineering: Introduction3 What is Software Engineering? Software Engineering = Software + Engineering What is Software? Software = Soft + ware Any examples? What is Engineering? Engineering = Engine-er-ing Any examples? Is this an Engineering discipline? If yes, why? If not, why not? Is this for an Engineer or a scientist?

Lawrence ChungSoftware Engineering: Introduction4 What is Software Engineering? A historical definition: “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines …” [Fritz Bauer, at the 1 st NATO Conference on Software Engineering, 1969] IEEE definition: “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.” A shorter definition: BCFH

Lawrence ChungSoftware Engineering: Introduction5 Why Software Engineering? Used w. extensive rework, but later abandoned 20% Used as delivered 2% Usable w. rework 3% 9 software projects totaling $96.7 million: Where The Money Went [Report to Congress, Comptroller General, 1979] Delivered, but never successfully used 45% Paid for, but not delivered 30% Why? Software hurts  Requirements  design

Lawrence ChungSoftware Engineering: Introduction6 What Factors Contribute to Project Success? 10. Other 9. Reliable Estimates 8. Formal Methodology 7. Firm Basic Requirements 6. Standard Software Infrastructure 5. Minimized Scope 4. Clear Business Objectives 3. Experienced Project Manager 2. User Involvement 1. Executive Management Support CHAOS The CHAOS Ten Standish Group, ‘01 ( Project Success Factors 28% 49% 23% completed on time and on budget canceled before completion overran original estimates: - Time overrun averaged 63% - Cost overrun averaged 45%

Lawrence ChungSoftware Engineering: Introduction7 What Factors Contribute to Project Failure? Standish Group, ‘01 ( CHAOS The CHAOS Ten “The definition of insanity is doing the same thing over and over again and expecting a different result.” [Albert Einstein]Albert Einstein

Lawrence ChungSoftware Engineering: Introduction8 Why Software Engineering? Work alone 20% What do software engineers do? Non-productive Activities 30% Interaction 50% programming ≠ software engineering  personal activity team activity  small, clear problem large, nebulous problem

Lawrence ChungSoftware Engineering: Introduction9 Why Software Engineering? Are you aware of any other mishaps?

Lawrence ChungSoftware Engineering: Introduction10 Why Software Engineering? Major symptoms of the “software crises”:  Over budget  Schedule slippage  Poor quality Major causes of the “software crises”: The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd]

Lawrence ChungSoftware Engineering: Introduction11 Why SE?

Lawrence ChungSoftware Engineering: Introduction12 Systems Engineering Requirements Analysis Project Planning Architectural Design Detailed Design Implementation Release Maintenance Quality Assurance Software Lifecycle Review How to Do Software Engineering? BCFH - models/languages, processes/methodologies, tools, …

Lawrence ChungSoftware Engineering: Introduction13 To be discussed later on…

Lawrence ChungSoftware Engineering: Introduction14 How to do SE?

Lawrence ChungSoftware Engineering: Introduction15 How to do SE?

Lawrence ChungSoftware Engineering: Introduction16 The Tar Pit The woes of the craft: Bugs!!! Bugs get harder as testing progresses The fundamental problem: fixing a bug has a 20%-50% chance of introducing another The product gets obsolete upon or even before completion Worse: must use others’ programs! 1

Lawrence ChungSoftware Engineering: Introduction17 Genesis 11:1-9 Acts 2:1-4 The Tower Of Babel Let's become famous by building a city with a tower that reaches up to heaven (verse four). Let's go down and confuse their speech right away, and make it so that they will not understan d each other's speech. (verses five through seven).

Lawrence ChungSoftware Engineering: Introduction18 Why Did the Tower of Babel Fail? Bad communication in software projects is the root of all evil.

Lawrence ChungSoftware Engineering: Introduction19 The Mythical Man-Month Optimism: All programmers are optimists, believing in happy endings and fairy god-mothers. Because programming tasks are usually chained end-to-end, the probability that each will go well is very small. Man-month: Cost vary as a product: men · months. Progress does not: communication overhead! Overhead: intercommunication and training. 2

Lawrence ChungSoftware Engineering: Introduction20 Brook’s Law Adding manpower to a late software project makes it later.

Lawrence ChungSoftware Engineering: Introduction21 Hatching a Catastrophe Poor Project planning, estimation, control Coding is “90% finished” for half of the total coding time Debugging is “99% complete” most of the time

Lawrence ChungSoftware Engineering: Introduction22 No Silver Bullet – Essence and Accident in Software Engineering “There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity” (1986). Complexity enormous number of states (orders of magnitude more than in hardware), so conceiving, describing and testing is hard increases non-linearly with its size introduces a lot of difficulties: communication among team members enumerating (much less understanding) of all possible states of the program management problems: conceptual integrity is hard to achieve learning curve: personnel turnover becomes disaster others

Lawrence ChungSoftware Engineering: Introduction23 The M-MM after 20 years Answers questions like: What do you now think was wrong when written? What is now obsolete? What is really new in the software engineering world? 19 What was right and still is: Conceptual integrity is the more important factor in ease of use [There are other factors. Consider Macintosh vs. MS-DOS]. It is the central question addresses by M-MM and is central to product quality.

Lawrence ChungSoftware Engineering: Introduction24 How to do SE?

Lawrence ChungSoftware Engineering: Introduction25 How to do SE?

Lawrence ChungSoftware Engineering: Introduction26 How to do SE?

Lawrence ChungSoftware Engineering: Introduction27 How to do SE?

Lawrence ChungSoftware Engineering: Introduction28 How to do SE?

Lawrence ChungSoftware Engineering: Introduction29 How to do SE?

Lawrence ChungSoftware Engineering: Introduction30 Why speak about management rather than technical issues?

Lawrence ChungSoftware Engineering: Introduction31 How to do SE? News Groups: comp.software-eng comp.software.testing … Professional Organizations: IEEE: TSE, ICSE, ICRE, … ACM: TOSEM …

Lawrence ChungSoftware Engineering: Introduction32 Introduction to SE - Summary Why Software Crisis due to Communication and Complexity Inherent complexity What Engineering (large) software, bcfh How BCFH languages, concepts, models, tools

Lawrence ChungSoftware Engineering: Introduction33

Lawrence ChungSoftware Engineering: Introduction34

Lawrence ChungSoftware Engineering: Introduction35

Lawrence ChungSoftware Engineering: Introduction36

Lawrence ChungSoftware Engineering: Introduction37

Lawrence ChungSoftware Engineering: Introduction38

Lawrence ChungSoftware Engineering: Introduction39

Lawrence ChungSoftware Engineering: Introduction40 Introduction to SE - Points to Ponder 1. Programming = software engineering? 2. What does BCFH really mean? Can you define it completely? 3. What are the similarities, and differences, between Civil Engineering and Software Engineering? 4. What are the differences between a notation and a methodology? 5. Can we use C# for analysis? 6. Can you prove you and I communicate with each other perfectly? 7. Are you a scientist or an engineer?