Software Engineering: Why me?

Tom Kelliher, CS 245

Sept. 3, 2010

Administrivia

Announcements

ACM Programming Contest participants.

Assignment

Carefully read 1.7-1.10. Online essay.

From Last Time

Introduction.

Outline

  1. Discussion of Chapter 1.

Coming Up

Project discussion, project teams.

Discussion

  1. Compare the process of building a large structure, such as a skyscraper, to the process of creating a complex piece of software, such as a spreadsheet or DBMS. It is conventionally understood that significant time and effort go into architecture and design for a skyscraper, but for many, it is not clear how important these efforts are to producing equally reliable software. Why do you suppose this point is not understood?

  2. You want someone to write a program to automate your household finances (a checkbook). Write a narrative description of this problem, so that a second party can use this description to write a useful program.

    Exchange your narrative with a classmate's and critique the description for ambiguities and omissions.

  3. Why engineer software?

  4. What are the dangers of not following a software engineering paradigm?

  5. Where can software engineering projects go wrong?

  6. Describe the conceptualization, representation, and implementation phases of a software engineering project.



Thomas P. Kelliher 2010-09-02
Tom Kelliher