csc 395 – software engineering lecture 2: programming as art & intro to software engineering

15
CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Upload: anis-simon

Post on 05-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

CSC 395 –Software Engineering

Lecture 2:

Programming As Art & Intro to Software Engineering

Page 2: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Today’s Lecture

Discuss Computer Programming As Art Introduce Software Engineering

What “Software Engineering” means What a Software Engineer does Topics included in Software Engineering

Page 3: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Donald E. Knuth

Received every possible award in computer science

Wrote volume of books called Art of Computer Programming First created TeX typesetting language and

METAFONT font design system Major figure in algorithmic analysis,

programming languages, and computer programming Major contributor to theoretical computer science

Page 4: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Half the battle is showing up

Is Computer Science an art or science? Why or why not?

Page 5: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering

Book’s definition of Software Engineering

[D]iscipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client’s needs. Furthermore, the software must be easy to modify when the user’s needs change.

Does this sound like art or science?

Page 6: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering

Programs often late, over budget, and buggy Led to 1967 NATO study group & 1968 conference Referred to as “software crisis” Note: Microsoft not created until 1975

Make producing software like making hardware, building bridges, or other instances of applied science Give rigor of other disciplines of engineering

Page 7: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

40 Years of Software Engineers

From 9236 projects completed in 2004

Page 8: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineer

What does a Software Engineer do?

How does this differ from a Programmer?

Page 9: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Economics: Should we switch to faster coding method? What is included in “coding”? How were these experiments carried out? Consider costs of training Difficulty to make this switch Effect on overall productivity, finding & fixing bugs

Page 10: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Client Relationships:How to determine what they want? Settling on requirements is incredibly hard But sooner a problem is found, easier it is to fix

Page 11: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Psychology:What is the most productive way to get a group of ____ individuals to work on a project as a team?

Page 12: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Abnormal Psychology:What is the most productive way of getting individuals to work on a project as a team, given that they chose a field where they spend all day in front of a computer?

Page 13: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Warranties:We cannot prove a program will terminate. How do we find all the bugs?

A bug occurs at the client site. How do we know what caused the bug?

Can we prevent it from occurring again?

Page 14: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

Software Engineering Topics

Maintenance:Is it acceptable to put out a program knowing you will need users to add patches?

Legal, Ethical, and Social Issues:We cannot be legally prevented from reselling a book, but can be prevented from giving away software that we no longer use. Why? Is this a good thing?

Page 15: CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

For Next Lecture

Monday’s lecture will Look at how software is really developed Discuss what is done in each stages of the

software lifecycle Give you a better idea of why Microsoft and EA

keep putting out lousy software