Top Banner
CS 262 Software Engineering Keith Vander Linden Calvin College
13

CS 262 Software Engineering Keith Vander Linden Calvin College.

Dec 16, 2015

Download

Documents

Corinne Mayhall
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 262 Software Engineering Keith Vander Linden Calvin College.

CS 262Software Engineering

Keith Vander LindenCalvin College

Page 2: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

4

Introduction

● Software Engineering● Course Outline (

http://cs.calvin.edu/curriculum/cs/262/kvlinden/)

● Christian Perspective

Page 3: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

5

Software Engineering

● Software Engineering is the application of engineering principles to the development of software systems.

● Its goal is to produce systems that are:

Page 4: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

6

Art, Science or Engineering

Is software development an artistic, scientific, or engineering discipline?

“Computer Programming is an Art … Programmers who subconsciously view themselves as artists will enjoy what they do and will do it better.”- Donald Knuth, Turing Award

Speech, 1974

“Computer Science is no more about computers than astronomy is about telescopes. … Science is not about tools, it is about how we use them and what we find out when we do.”

- E.W. Dijkstra, Computing Research News, 1993

“Software in all of its forms and across all of its application domains should be engineered.”

- Roger Pressman, Software Engineering: A Practitioner's Approach, 2010

image from: http://www.amazon.com/

Page 5: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

7

Art, Science or Engineering

Is software development an artistic, scientific, or engineering discipline?

“During software design, I’m an architect. While I’m designing the user interface, I’m an artist. During construction, I’m a craftsman. And during unit testing, I’m one mean SOB!” - S. McConnell, IEEE Software, 1998

image from: http://www.stevemcconnell.com/

Page 6: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

8

Software Development● “…developing quality software is hard. In

between the nice ideas, the requirements or the “vision,” and a working software product, there is much more than programming.”

- P. Kruchten, Forward to Applying UML and Patterns, 2005, p. xix

● The required skills include:

Page 7: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

9

The Development Process

Software Development includes the following phases:– Analysis

– Design

– Implementation

– Testing

– Maintenance

Page 8: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

10

Software Systems

● Software systems are becoming pervasive.

● Pervasiveness brings risk.

Page 9: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

11

Case Study: Therac-25

● Medical linear accelerator (1985-87)

● The Problem: Two patients died of radiation overdoses.

● The Reason:

image from kanboy.net

Page 10: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

16

Case Study: Virtual Case File

● The Problem: FBI’s $100 million project was abandoned in 2005.

● The Reason:

image from www.ffbi.gov

Page 11: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

17

Case Study: Playstation Network

● The Problem: Sony’s Playstation network was hacked in 2011 compromising personal data.

● The Reason:

image from sony.com

Page 12: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

18

Case Study: WSJ Mobile App

● The Problem: The Wall Street Journal’s iPhone application fails in 2011.

● The Reason:

image from www.flightglobal.com, Sept, 2007

Page 13: CS 262 Software Engineering Keith Vander Linden Calvin College.

© Keith Vander Linden, 2012

19

images from: http://www.amazon.com/

Fredrick P. Brooks (1931- )

The Mythical Man-Month

Joys of programming

We enjoy designing things because we are created in

the image of God.

The computer is a powerful and rewarding tool to use.

Woes of programmingThe “mindless” details can be excessively tedious.

Products become obsolete too quickly.

As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake. - F. P. Brooks, Jr. The Mythical Man-Month, 1975

What’s theBig Idea