CSC 4700 Software Engineering SPRING 2008

Section 1

SCHEDULE

Dr. Thomas Way


Schedule is subject to change during the semester.  Please check the online version on the course website from time to time.
#
Date
Topics, Assignments, Activities
1

M 1/14

No class meeting Monday Jan. 14

Assignment:
Read about Google Gadgets for 1/16
  W 1/16 About the semester
Introduction to Software Engineering
Careers in Software Engineering
Lecture 1 slides
 
  F 1/18 Careers in SE (cont'd)
In-class:
Design and develop (at least start) a Google Gadget

Assignment: Read Brooks "No Silver Bullet." Dr. Brooks includes many "opinions" in his article. Identify one that you believe is insightful and one that you disagree with. Explain the reasons for your choices in 500 words or less. Due by 1/23 in class.
2 M 1/21 No class meeting Monday Jan. 21 (MLK Holiday)
  W 1/23 Discuss Brooks article
Form teams
Discuss team projects

Assignment: As a team, produce a single sheet containing 3 software product ideas with a brief description of each, that you will use to pitch (sell) your ideas in class on 1/25. Hand in the sheet in class on 1/25 or via email, and include names of the team members.
  F 1/25 Finish forming teams
Brainstorming product ideas

Assignment: Read the Agile Software Development handout and prepare a single paragraph arguing in favor or against the use of this approach on a software project. Feel free to use other online references in forming your opinion. Email this document to me by the start of class on Jan. 28, and be prepared to argue your case.

3 M 1/28 Agile Software Development discussion
Software Processes, part 1
Lecture 2 slides

Assignment: As a team, produce a web site for your project containing your team name, names of members, and a description of your proposed project. Email the URL of your web site to me by the start of class on Jan. 30.

  W 1/30 Software Processes, part 2 (Lecture 2 cont'd)
Intro to Project Planning, Management and Prototyping

Assignment: As a team, create a project proposal for your project of 2-3 pages, including a description of the project, one or more diagrams of the user interface, a timeline for development of no more than 3 months and a budget of no more than $100,000. Post this on your project web site by the start of class on Feb. 4.

  F 2/01 Team Meetings
Team project time
4 M 2/04 Review of project proposals
Software Processes, part 3 (Lecture 2 cont'd)

Assignment: Prepare three written questions on a sheet of paper and turn in to me at the beginning of class. The questions should be serious, and can be about software engineering in general, careers, agile software development, etc.

  W 2/06 Invited Speakers: Sebastian Niezgoda & Mike DeBlase, Accenture

Assignment: Prepare a revised project proposal based on feedback from in-class evaluation and notes from Dr. Way, and post on your project web site by the start of class on Feb. 13.

Career Fair: Find a summer job and a future career at the Career Fair in the Villanova Room of the Connolly Center, Feb. 6 from 3-7pm.

  F 2/08 Team Meetings
Team project time
5 M 2/11 Team Meetings
Team project time
  W 2/13 Software Processes, part 3 (Lecture 2 cont'd) - we will finish this lecture material, finally
Lecture 2 slides (same as above)

Assignment: Deadline extended for revised project proposal to Feb. 15. Revised proposal should be posted to your project web site by the start of class on Friday, Feb. 15.

  F 2/15 Review of revised project proposals

Assignment: Prepare three questions for the Monday guest speakers, who work for a small software engineering company.

6 M 2/18 Software Specifications
Pre-preparation for Midterm Exam
Midterm Exam Study Guide
Midterm Exam preparation resources

In class: We will discuss software specifications and then briefly review the study guide and strategize for the midterm exam.

  W 2/20

Managing Details in a Specification
Design Specifications - How much detail is enough?
In-class
: Write an algorithm for how to make a Peanut Butter and Jelly (PB&J) sandwich, email it to me, and we will review them in class.

Assignment: Read the article "Why Open Source misses the point of Free Software" by Richard Stallman, prepare a one page, typed review of the article, and hand it in at the start of class on Monday Feb. 25. In addition to summarizing the article, provide your opinion on Stallman's conclusion, and be sure to justify your opinion. For fun, check out the Wikipedia entry for Richard Stallman, and look at his personal site.

  F 2/22
SNOW DAY - Class cancelled, University closed
7 M 2/25 Open Source vs. Free Software
Reactions to Stallman (assignment due at start of class)
The Open Source Definition
The Free Software Definition

Report from Game Developers Conference 2008 (Stephen Walter attended).
[link1][link2][link3][link4][link5][link6]

  W 2/27 MIDTERM EXAM - Wednesday, Feb. 27
  F 2/29 Specifications: going from proposal to full specification

Functional Specification Tutorial (15 pages)
Example: Project Aardvark Functional Specification (20 pages)
Example: Time Monitoring Tool Software Requirements Specification (18 pages)
Example: MRC-II System Software Requirements Specification (15 pages)
Example: Intel Serial ATA Advanced Host Controller Interface Software Specification (127 pages)
Example: SCATS Sales and Customer Tracking System Software Requirements Specification (18 pages)
Example: KeePass Password Safe Software Requirements Specification (29 pages)

Assignment: Work with your project development team to produce a first draft of a complete software specification. You can follow the formal IEEE template, or customize one of the examples to your specific product's needs. First draft should be completed and posted to your team web site by Wednesday, March 26, 2008. You can email intermediate drafts to me for feedback, which will result in a much stronger specification and probably a much better grade.


3/03
3/05
3/07

SEMESTER BREAK - NO CLASS
8
M 3/10
User Interface Design
User Interface Design Tips, Techniques, and Principles
Web Pages That Suck
Biggest Mistakes in Web Design (1995-2015)

Assignment: Locate a link to a good online article about Agile development and email the link to me by Wed. March 12 along with a one or two sentence description of the article. These will be posted on our course web site.

  W 3/12 Brainstorming, Design and Midterm Exam Return
Midterm exams will be returned

In Class: We will discuss the design problems from the midterm, exchange ideas, and see where the design process leads us.

Assignment: Continue to work with your team on your first draft of the software specification.

  F 3/14 Team Meetings
Team project time
9 M 3/17 Refactoring and IDEs
Refactoring
Code refactoring (Wikipedia)
Dr. Way's Utility.java class source code for refactoring exercise

In Class: Introduction to the topic. Note that class may end a few minutes early on this day. Dr. Way will demonstrate some basic refactoring techniques in class.

Assignment: Continue to work with your team on your first draft of the software specification. Due date has been refactored to Friday, March 28.

  W 3/19 Refactoring and IDEs (cont'd)
Eclipse

In class: We will install and use Eclipse (if possible on the lab machines), or at the very least Dr. Way will conduct a tutorial and demonstrate a number of the cool features that can make your life really easy as a software engineer and programmer.

Assignment: Continue to work with your team on your first draft of the software specification. Due date has been refactored to Friday, March 28. I highly recommend sending a draft to me before or during the Easter weekend for comment so you can adjust if needed prior to the March 28 deadline.

Bonus: Mr. McCoey will don a straitjacket. Will he escape? No.

  F 3/21 EASTER BREAK - NO CLASS
10 M 3/24 EASTER BREAK - NO CLASS
  W 3/26 Team Meetings
Team project time
  F 3/28 Refactoring (cont'd)
Lecture 3 slides
"Smells to Refactoring Cheat Sheet" (Joshua Kerievsky, Industrial Logic, original)

In class: Lecture material about Refactoring.

Due today: The complete draft of your team's software specification must be posted to your project web site by the start of class today, Friday, March 28, 2008. 

11 M 3/31 Review of team project specifications

In class: Review of team project specifications. Dr. Way will review all specifications over the 3/28-3/30 weekend, and we will review the specifications during class today (3/31).

  W 4/02

Review of team project specifications (cont'd)

In class: Continued review of team project specifications.

  F 4/04 Test-Driven Development

Assignment: Your assignment, due by class on Monday, is to review at least one web site on "Test Driven Development" and then comment on (1) your opinion about whether it is a good process to use, (2) when it would be good to use and when it would be bad to use, (3) how it compares with Agile Development, and (4) what is an example of software that supports it. Write up your answers and email it to me by the start of class on Monday. Some suggested links:

12 M 4/07 Test-Driven Development and Test Plans

In class: Explore online resources for test-driven development and test plans. Also, completed evaluations of each team's first draft software specification will be returned.

Assignment: For next class, due Wednesday April 9, 2008 via email, write up and send to me a one page test plan for one of the other team's products.

  W 4/09 Project Management & UML
Lecture 4 slides
UML Tutorial

In class: We will discuss the topics of project management, the use of UML as a design approach, and explore project management (OpenWorkbench) and UML design software (ArgoUML)

Assignment: Final version of the software specification is due Monday, April 28, 2008 anytime before class, posted to your team's project web site. The official assignment requirements will be posted soon.

  F 4/11 Software Engineering at a Small Company

In class: Guest lecturer and Villanova grad, Kevin Garrity, who works for a small software company will join us to discuss his experiences. CSC 4700 students will be expected to ask questions.

13 M 4/14 Team Meetings
Team project time
  W 4/16 Version Control
Lecture 5 slides

In class: Download and install source control software (jCVS). We will then access and modify source code in a massive, multi-user, free-for-all, and then try to figure out what happened. Handy CVS reference card here.

Assignment: Final version of the software specification is due Monday, April 28, 2008 anytime before class, posted to your team's project web site. Assignment handout is here.

  F 4/18 Team Meetings
Team project time
14 M 4/21 Guerrilla Code Development

In class: We will discuss and try out rapid code development techniques that are common in research and industry.

  W 4/23 Eclipse and automated unit testing

In class: Demo of the process of how to use Eclipse and JUnit, two very popular tools in industry and research, to develop automated unit tests of an existing application, a very common task for a software engineer.

Discussion: We will briefly discuss the final software specification and presentation assignment.

  F 4/25 Configuration Management & Installers
Lecture 6 slides

In class: We will explore the topic of configuration management and try out installer software. Oh, and Prof. Way will attempt to escape from a straitjacket.

Assignment: Continue working with your team to complete your final software specification.

On your own: Locate and try out one or more free installers.

15 M 4/28 Project Presentations
Presentation Evaluation Form (complete once for each presentation)

Due today: The final version of your team's software specification and project web site is due by the start of class today, Monday, April 28, 2008.

Presentation schedule:
Team Awesome
Team JMT
Team Enigma

  T 4/29 Deemed a Friday class day
No official class meeting
Project preparation day for second set of presenters
  W 4/30 Project Presentations
Presentation Evaluation Form (complete once for each presentation)
Team Member Evaluation Form (complete once for your team only)
Dr. Way's Software Engineering Tips
Semester Recap - What did we do this semester?

Presentation schedule:
Team Shoryuken
W & H Associates
UNI-IDE

THIS IS THE LAST CLASS MEETING

  F 5/02 READING DAY
16
W 5/07
FINAL EXAM (Villanova schedule)
Wed. May 7, 2008  10:45am - 1:15pm
NOTE: due to project based and writing intensive nature of this course, the final exam requirement is fulfilled by the major final written software specification project and in-class presentation, so there will be NO final exam given on this date.

Last updated: 05/02/2008