SOFTENG250FC: Introduction to Software Engineering



Similar documents
Chapter 13: Program Development and Programming Languages

Introduction to Software Engineering

Process Models and Metrics

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Outline. Definitions. Course schedule

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Software Life Cycle. Management of what to do in what order

What is a life cycle model?

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Chapter 13: Program Development and Programming Languages

(Refer Slide Time: 01:52)

Software Engineering: Analysis and Design - CSE3308

Functional Decomposition Top-Down Development

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Introduction to Software Paradigms & Procedural Programming Paradigm

Lecture 1: Introduction

Cost Estimation Strategies COST ESTIMATION GUIDELINES

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Engineering

Foundations of software engineering

A MODEL OF HUMAN COGNITIVE BEHAVIOR IN WRITING CODE FOR COMPUTER PROGRAMS

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

A Social Network perspective of Conway s Law

Unit 1 Learning Objectives

Knowledge, Certification, Networking

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

specifications 15. Approaches to constructing The outline of this part:

To introduce software process models To describe three generic process models and when they may be used

Software Development: The Waterfall Model

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Software Development and Object-Oriented Programming Paradigms

Engineering Process Software Qualities Software Architectural Design

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

A Capability Maturity Model (CMM)

Information Systems Development Process (Software Development Life Cycle)

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Advanced Software Engineering FYI!

What do you think? Definitions of Quality

Information Systems Analysis and Design CSC340. I. Introduction

How To Understand Programming Languages And Programming Languages

Elite: A New Component-Based Software Development Model

JOURNAL OF OBJECT TECHNOLOGY

ATSBA: Advanced Technologies Supporting Business Areas. Programming with Java. 1 Overview and Introduction

Software Process for QA

Hybrid Modeling of Test-and-Fix Processes in Incremental Development

Programming Languages

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

INTRODUCTION TO SOFTWARE ENGINEERING

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Title: Topic 3 Software process models (Topic03 Slide 1).

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Software Development. Topic 1 The Software Development Process

Software Cost Estimation

INFORMATION TECHNOLOGY PROGRAMMER/ANALYST

How To Develop A Multi Agent System (Mma)

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Umbrella: A New Component-Based Software Development Model

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software Life Cycle Processes

Software cost estimation

Outline. multiple choice quiz bottom-up design. the modules main program: quiz.py namespaces in Python

IV. Software Lifecycles

Chapter 12 Programming Concepts and Languages

Introduction to Embedded Systems. Software Update Problem

Chapter 8 Approaches to System Development

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

International Journal of Advance Research in Computer Science and Management Studies

McGraw-Hill The McGraw-Hill Companies, Inc.,

Software cost estimation

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

An Approach for assessing the Quality of Software for small and medium sized firms

Authoring Within a Content Management System. The Content Management Story

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

How To Design An Information System

Python Programming: An Introduction to Computer Science

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

CSE 307: Principles of Programming Languages

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Software Engineering. What is a system?

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Software Development Life Cycle (SDLC)

How To Teach Object Oriented Programming At An Introductory Level Course

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Higher National Unit specification. General information. Software Development: Analysis and Design (SCQF level 7) Unit code: HA4C 34.

Transcription:

SOFTENG250FC: Introduction to Software Engineering Lecture 10 50 years of Software Engineering Part III streams & tides 10/03/2001 1

Table 1: Fifty Years of Progress in Software Engineering (Approximate) Naive Tide Function Tide Structured Programming Tide Module Tide Object Tide Patterned Programming Tide 1945 1955 1956 1966 1967 1977 1978 1988 1989 1999? 2000? 2010? Hardware Economics Research Mainframes Commercial Mainframes Commercial Mini-Computers Personal Computers Internet Organization Statements Functions Modules Objects Optimizers Statement Loop, Basic Block Function Inter-Function Programming Environments Editors and Compilers General- Purpose Tools Domain-Specific Tools Concepts Algorithms Abstract Data Types Patterns Program Ideals Useful Documented Correct Usable Models Waterfall Model Spiral Model Chaos Model Life Cycles Waterfall Life Cycle Sashimi Life Cycle Chaos Life Cycle Process Structures Unified Process Macro- and Micro-Process Complexity Gap Strategies Stepwise Refinement Strategy Module Decomposition Object-Oriented Design Strategy Chaos Strategy User Participation None Once Periodic Ongoing Reproduced by permission of L B S Raccoon, Fifty Years in Software Engineering, ACM SIGSOFT Software Engineering Notes Volume 22 No 1 January 1997 Page 88-104. 10/03/2001 2

Process Structures (a stream) Unified Process 1967-1977 implies the ability to schedule the writing of individual lines of code Macro and Micro Processes 1989-1999? project management and coding need different skills Complexity Gap 2000?-2010? L B S Raccoon matching goals and solutions is very difficult developers spend a lot of time in the gap 10/03/2001 3

Reproduced by permission of L B S Raccoon, Fifty Years in Software Engineering, ACM SIGSOFT Software Engineering Notes Volume 22 No 1 January 1997 Page 88-104. 10/03/2001 4

Strategies (a stream) Beginners randomly choose any legal move Stepwise Refinement Strategy 1967-1977 Ignores concept of state Assumed independence of sub-problems Doesn t allow for corrections: forces major rewrites 10/03/2001 5

Reproduced by permission of L B S Raccoon, Fifty Years in Software Engineering, ACM SIGSOFT Software Engineering Notes Volume 22 No 1 January 1997 Page 88-104. 10/03/2001 6

Strategies (a stream) Object-Oriented Design Strategy 1989-1999? Objects are a bottom-up concept But can design the classes first Chaos Strategy 2000?-2010? resolve the most important issue first combines top-down, bottom-up, and middle-out goals 10/03/2001 7

User Participation (a stream) No Interaction 1945-1969 One Interaction 1970-1984 requirements phase Periodic Interaction (1985-1996) accepted that applications are hard to define Ongoing Interaction (1997-?) software is developed on behalf of users 10/03/2001 8

Reproduced by permission of L B S Raccoon, Fifty Years in Software Engineering, ACM SIGSOFT Software Engineering Notes Volume 22 No 1 January 1997 Page 88-104. 10/03/2001 9

Table 2: Linking Models with Three Other Streams Models Reuse Estimation Maintenance Waterfall Each project was independent. We didn t think about reuse, except in the context of portability. We estimated projects independently, one at a time, using ad hoc methods. Maintenance is a total loss. So emphasize proper specification, design, and implementation to avoid maintenance. Spiral Reuse became popular with the Spiral model. Of the 178 references in Confessions of a Used Program Salesman by Tracz, only 38 came before 1985, and only 13 before 1980. During the late 1980s and early 1990s, reuse was a very Spiral concept. We reused a unit of code on one level. We treated it like a product and reused the whole chunk or didn t reuse anything. Boehm estimates the effect of each project based on past projects. The Spiral model led to the Capability Maturity Model using a sequence of projects as the basis for the next bid. Maintenance feeds into the next project. As long as code is reused, maintenance can be paid for by the next project, so maintenance is good. We emphasized maintaining code, but not any other artifacts. Chaos In the late 1990s, we will reuse code on many levels. Different people will reuse parts from all scales of a project, including all sizes of code, designs, and specifications. Learning curves emphasize the economics of ongoing processes. (Mandelbrot shows that log-log space is chaotic.) The Chaos life cycle shows that maintenance equals development throughout the process. We maintain code in all phases (including specifications, design, testing) on all levels. Reproduced by permission of L B S Raccoon, Fifty Years in Software Engineering, ACM SIGSOFT Software Engineering Notes Volume 22 No 1 January 1997 Page 88-104. 10/03/2001 10

Naïve Tide 1945-1955 No tools, methodologies, or experience Anything goes. Whatever works. Programs happen. Functions Tide 1956-1966 Understood that software development differs from hardware 10/03/2001 11

Structured Programming Tide 1967-1977 GOTO wars analysis of algorithm performance Algol is a better tool than assembly language but is Algol better than Fortran? 1st Software Engineering conference in 1968 10/03/2001 12

Modules Tide 1978-1988...a step on the way from functions to objects modules are groups of functions and programs are groups of modules Objects Tide 1989-1999? C++, Eiffel, now Java Objects help organise large programs well 10/03/2001 13

Patterned Programming Tide 2000?-2010? Car designers don t go back to the laws of physics each time Frameworks and patterns Set me up an Internet business, paying by credit card, and I sell my 2 page report on what is likely to be in the SOFTENG250FC midsemester test. 10/03/2001 14