ICS 121 / Informatics 111:
Software Tools and Methods

Fall Quarter 2005

LectureDiscussion 1Discussion 2 Lab 1Lab 2Lab 3Lab 4
CS 174
TT, 3:30 - 4:50
ICS code: 36320
Inf code: 37010
PSCB 140
W 4:00 - 4:50
36321
37011
PSCB 140
W 5:00 - 5:50
36322
37012
CS 183
Th 9:00 - 9:50
36323
37103
CS 183
Th 10:00 - 10:50
36324
37104
CS 183
Th 1:00 - 1:50
36325
37105
CS 183
Th 2:00 - 2:50
36326
37106
 

Instructor:

Dan Frost

  • Electronic Mail: frost@ics.uci.edu
  • Office: CS 406A
  • Office Phone: (949) 824-1588 (WHY UCI? 1 LUV!)
  • Office Hour: Tuesday 10:30-12:00 or by appointment

Teaching Assistants:

Scott Hendrickson (shendric [at] uci [dot] edu)

Office hour: see Scott's home page

Bryan Semaan (bsemaan [at] uci [dot] edu)
Office hour: Wednesdays 12:00-1:00 in CS 364


Latest scores and grades: as of 12/12

Solution key for midterm

Solution key for final

Assignment 1 detail (looks best with IE).
Here's the rubric for assignment 1.

Assignment 2 detail (looks best with IE).
Here's the rubric for assignment 2.

Assignment 3 detail (looks best with IE).
Here's the rubric for assignment 3.


Description

Catalogue description:
Concepts and techniques of constructing software in a systematic fashion, including detailed design techniques, specifications, programming methods, quality-inducing procedures, development tools, team techniques, testing, estimation, and performance improvement. Laboratory work involves exercises to illustrate important concepts, methods, and tools. Prerequisites: ICS 52 with a grade of C or better; Mathematics 6A or ICS 6A; Mathematics 6B; Mathematics 6C or 3A; satisfactory completion of the lower-division writing requirement.

Description of this installment of 121:
This course will cover a variety of software tools and methods that are widely used in industry with the aim of increasing students' skills and flexibility as software engineers. Two technologies in particular will be discussed in the course and used in the assignments: UML and the Eclipse framework. UML (Unified Modeling Language) is a notation for specification and design of object-oriented programs. Eclipse is a extensible framework for software tools. Available plug-ins include a Java IDE, CVS (configuration management), Ant (build), and the Eclipse Modelling Framework (code generation from UML diagrams). Additional methods such as code inspections, pair programming, and software process will also be discussed.


Textbooks

Required Textbooks:
1. van Vliet, Hans. Software Engineering: Principles and Practice. 2nd edition. Addison-Wesley, 2000.
      or
   Pressman, Roger, Software Engineering, 6th edition. McGraw Hill, 2004.
      choose the text you used in ICS 52
2. Scott, Kendall. UML Explained. Addison-Wesley, 2001.
3. Brooks, Frederick P. The Mythical Man-Month. Anniversary edition. Addison-Wesley, 1995.

Required textbooks FAQ.
  1. I used Sommerville's Software Engineering, 6th ed. or 7th ed., in a previous course. Can I use that instead of van Vliet or Pressman?
    Answer: It's recommended that you have one of the two required Software Engineering texts. However, it is very likely that the Sommerville text covers similar material. If you use a Sommerville text, it is your responsibility to find out which chapters correspond to the assigned chapters, so that you are prepared for the midterm and final exams.

Recommended Textbook:
4. Gallardo, David, Ed Burnette and Robert McGovern, Eclipse in Action: A Guide for Java Developers. Manning Publications Co., 2003.


Schedule

Schedule is subject to change.

B = Brooks, G = Gallardo, P = Pressman, S = Scott, V = van Vliet.

Weeks Topic Readings
1-2 Introduction: Software Process and Technology
- Software technology (tools, methods, notations)
- Software organizations, process and estimation
- Sofware process and improvement: Capability Maturity Model, Extreme Programming, Personal Software Process
B2, B8, B14, B16;
V5, V6.6, V7 or
P21, P2.3, P23;
Fishman, Humphrey (alternate copy of Humphrey), Miller and Collins
3-4 Programming Tools
- Software tools and development environments
- Development support tools
- Managing code and dependencies
- Tools: Eclipse JDT, Eclipse Team Tools, CVS
V4 or P27;
V8.4 or P24.5;
V19;
G1, G2, G5, G6;
5-6 Software Quality Assurance
- Code reading
- Testing tools
- Inspections
- Tools: Junit
V6;
V13 or P13, P14
B7, B13;
G3, G4;
7-10 Specification and Design
- Rational Unified Process (RUP)
- Unified Modeling Language (UML)
- Tools: Rational Rose and EMF
B4;
S1, S2, S3, S4, S5, S6, S9;
V11 or P9;


Assignments and Grading

Grading.
Assignments 40%
Laboratories 14%
Midterm Examination 16%
Final Examination 30%

Assignments.
There will be three assignments. The first is worth 10% of the final grade and the second two are each worth 15% of the final grade.
Assignment 1, due Monday, October 17 at 11:59 pm
Assignment 2, due Monday, November 7 at 11:59 pm    Assignment2.zip
Assignment 3, due Tuesday, November 29 at 11:59 pm    UseCaseTemplate.doc

I showed two Use Case Diagrams in lecture on Tuesday, 11/22, one that was fairly good, and one that was more of a flowchart. Also, make sure that your Use Case Diagram doesn't end up being a Finite State Machine.

Assignments will be turned in using Checkmate.

Late assignments will be charged 1% per hour, rounded back to the previous "integer" hour. For example, an assignment 1 turned in on Oct. 18 at 2:50 a.m. will lose 2%.

Laboratories.
There will be eight graded laboratories, each worth 2% of the final grade. You will receive credit for the best seven out of eight, so you may miss one lab without penalty. To receive credit for completing your laboratory, you must attend the section in which you are enrolled.
 
Laboratory 0, Oct. 6
Laboratory 1, Oct. 13    lab1files.zip containing DateDiff.java and DateTester.class
Laboratory 2, Oct. 20
Laboratory 3, Oct. 27    lab3.zip
Laboratory 4, Nov. 3    lab4.zip
Laboratory 5, Nov. 10
Laboratory 6, Nov. 17
Laboratory 7, Dec. 1 **Lab Cancelled**

Examinations.
The midterm exam is scheduled for Thursday, Oct. 27, during the regular lecture period. The final exam is scheduled for Tuesday, Dec. 6, 4:00-6:00 pm. Bring your UCI student ID card (for Access students: other government-issued photo ID) to both exams. Both exams are closed book. Do not bring electronic devices, such as laptops or cell phones.


Tools

All tools are installed in the computer labs in the CS building. Ask the lab attendant for a login if you don't have one yet; mention that you are enrolled in this class.


Lecture Slides

  1. Week 1    2 per page    6 per page
  2. Week 2    2 per page    6 per page
  3. Week 3    2 per page    6 per page
  4. Week 4    2 per page    6 per page
  5. Week 5    2 per page    6 per page
  6. Week 6    2 per page    6 per page
  7. Week 7    2 per page    6 per page
  8. Week 8    2 per page    6 per page
  9. Week 9    2 per page    6 per page


General Policies

Adding and Dropping. Last day to add, drop, or change sections: Oct. 7. New students will not be accepted after Lab 0.

Cheating. The UCI academic honesty policy applies. Consequences of cheating in this class: A letter in your UCI file and your course grade will be F. Material that is copied from books or Web pages needs to be quoted and the source must be given.

Disabilities. If you need an accommodation because of a disability, please contact the instructor and the Disability Services Center as soon as possible.


Study Guide For the Final Exam

Questions about following material may appear on the Final: The above list leaves out some assigned readings which will not be on the final: The final will not cover material that has only appeared in the labs.

Study Guide For the Midterm Exam

Questions about following material may appear on the midterm: The above list leaves out some assigned readings which will not be on the midterm: The midterm will not cover material that has only appeared in the labs.



(C) University of California 2003, 2004, 2005.