Inf 111 / CSE 121: Software Tools and Methods

Summer Quarter 2009
Lecture Discussion Lab
ELH 110
TTh, 9:00 - 11:50 am
Inf4tx code: 37040
CSE/Bren code: 16130 
ELH 110
T 1:00 - 1:50 pm
ICS 192
Th 1:00 - 1:50 pm


Greg Bolcer


Image of Susan's email
To ensure a response to your email, please include "Inf111" in the subject line and send your email from a UCI account.


MSN gbolcer

Office hours:

T,Th after class

Teaching Assistant:

Hye Jung Choi (hchoi7 [at] uci [dot] edu)
Office Hour:

Web site:
EEE MessageBoard:

Messageboard TBD
You can post questions and comments about this class to the EEE MessageBoard.

Description - Textbooks - Topic List - Grading - Policies


Catalog 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 111:
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. There will be an emphasis on iterative and incremental software process models such as Agile and Rational Unified Process. Students will gain experience with techniques and practices including code reading, refactoring, version control, UML modeling, design patterns, and testing.


Required Textbooks:
1. van Vliet, Hans. Software Engineering: Principles and Practice. 2nd edition. Addison-Wesley, 2000.
2. Larman, Craig. Applying UML and Patterns, Third Edition. Prentice Hall PTR, 2005.
3. Brooks, Frederick P. The Mythical Man-Month. Anniversary edition. Addison-Wesley, 1995.

Topic List

B = Brooks, L = Larman, V = van Vliet. Schedule is subject to change.

  Topic Readings Evaluations
June 23 Course Overview
- Introduction - Software Technology - Orders of Ignorance - Nature of Software Development - "No Silver Bullet"
B16 (or "No Silver Bullet" or this more readable version that is available from campus IP addresses)
V15 (Chapter 19 in Second edition)
June 25 Software Process
- Process models - Plan-based models - Iterative models
Programming Practices
- Coding conventions - Code Reading - Reverse Engineering
V3, 14.3
Programming Best Practices
HW1 due
HW2 Lab
June 30 Programming Practices (continued)
Configuration Management
-Tools: Subversion
V4, 14, 15.3.2 HW2 due
July 2 Configuration Management (continued)
Unified Modeling Language (UML)
- Modeling - Perspectives in Modeling - Domain Models - Class Diagrams
- Tools: Rational Software Developers Workbench
L1, 9, 13, 14, 16
HW3 due
HW3 Lab
July 7 Design Patterns
- Singleton - Observer - Fa├žade - Factory - Strategy - Composite
UML (continued)

July 9 Midterm Study Guide
L3 HW4 due
HW4 Lab
July 14 Iterative Software Development
- Agile - Unified Process (UP)
Iterative Software Development (continued)
L2, 6
July 16 Testing
- Types of testing - Acceptance testing - Unit testing
Tools: JUnit
L10, 15, 28, 29 HW6 Lab
HW6 due
Julyl 21 Use Cases
User Scenarios
July 23 Final Study Guide
Final during class
  HW8 due
HW7 Lab
HW7 due
(last day July 25th)

Slides. (subject to change)
Class 1
Class 2 Self-Check Out example
Class 3
Class 4
Class 5
Class 6
Class 7
Class 8
Class 9
Class 10

Grading and Evaluations

Assignments 60% (5 Labs, 6 Take homes, 1 Extra Credit)
Midterm Test 15%
Final Examination 25%

There will be seven graded assignments, worth a total of 60% of your grade. You will receive credit for the best six out of seven, so you may miss one lab without penalty. Each assignment will have an in-class portion and a take-home portion. The in-class portion will be graded during the laboratory session on Thursdays. To receive credit, you must attend the section in which you are enrolled. The take-home portion is due electronically the following class.
Homework 1, due June 25th
Homework 2, June 30th
Homework 3, July 2nd
Homework 4, July 7th
Homework 5, Study for midterm July 9th
Homework 6, July 14th
Homework 7, July 21st Class_DVDStore.emx
Homework 8, Extra credit July 23rd

Policies Concerning Assignments. Assignments must be turned in electronically using Checkmate. Assignments are due at the at the time and date on stated on the assignment handout. No late assignments are accepted. Assignments will require use of software tools, some of which are available only in the ICS labs.

Midterm Test.
There will be one term test worth 15% of your final grade. The test will be held on Monday, February 9 during the regular lecture period.  

Final Examination.
The final examination worth 24% of your final grade and is scheduled for Monday, March 16, 10:30 am-12:30pm.

Policies Concerning Exams. The final exam will be cumulative. Exams will include all kinds of questions, including multiple choice, essay, and drawing diagrams. Bring your UCI student ID card (for Access students: other government-issued photo ID) to the exam. Do not bring electronic devices, such as laptops or cell phones. Make-up exams will be offered only for documented medical reasons.

General Policies

Adding and Dropping. Last day to add, drop, or change sections: July 16th. New students will not be accepted after this date.

Cheating. The UCI academic honesty policy applies. Consequences of cheating in this class: A letter in your UCI file, and the course grade is lowered, possibly to 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.

(C) 2003-2009.