Link to approximate location of current lecture
Object
Oriented Software Engineering
COMPUTER ENGINEERING CPR E 486
FALL 2004, Tu & Th
12:40-2:00, in Lagomarcino Hall E164 (not E0164)
Catalog
listing; Course
schedule listing
Approvals (as of 8/23/00):
(1) COMPE elective for the
CPRE bachelor's degree.
(2) Graduate credit for
non-computer engineering students.
Course description: Software engineering emphasizing object oriented analysis and design. An iterative life cycle, the Unified Process, is followed in the textbook and in the course. A term project is developed throughout the semester and follows the topics covered in class and in the textbook.
Textbooks and references:
1.
Required: Applying UML and Patterns, second
edition. By Craig Larman, copyright 2002, Prentice-Hall.
(Note to instructor.)
2. Full UML description is available at
http://www.omg.org/technology/documents/formal/uml.htm.
3.
Required: A book that can answer your
questions on the
Java programming language. Here are some links to Java info:
Many useful books are described, and many available on-line, at http://java.sun.com/docs/books/. See for example The Java Tutorial, Third Edition: A Short Course on the Basics (The Java Series) by Mary Campione, Kathy Walrath, Alison Huml, Addison-Wesley Pub Co; ISBN: 0201703939.
Coordinator and instructor: Daniel Berleant
Course Objectives:
Topics Covered (and approximate lecture time):
Part 1 of course: Introduction to Java
8/24/04, Tu, session 1:
Java introduction;
Java and C – some similarities;
Output to the screen;
I/O with files and URLs;
Advanced reading
HOMEWORK #1:
"Hello World" due next time
HOMEWORK #2: the
problem of accountability in team projects
8/26/04, Th, session 2:
Strings;
alternate strings notes;
Example strings program;
Inheritance
.
To prepare, read the inheritance lecture notes; to review, do this exercise
on inheritance
8/31/04, Tu,
session 3:
Arrays ;
Study notes on arrays
Interfaces;
Example
HOMEWORK
#3:
Objects, classes and inheritance, and interfaces and partial solution
(offline)
9/2/04, Th, session 4:
Demonstration on
throwing exceptions;
some
exception handling review notes;
Event handling and GUI introduction (non-applet version)
9/7/04, Tu, session 5: GUI
constructs and example program (AWT-based);
GUI constructs and example program (swing-based);
lecture notes on
GUI constructs
HOMEWORK #4:
GUI component demo
Part 2 of course: The Unified Process
9/9/04, Th, session 6: An overview of OO analysis and
design
9/14/04, Tu, session 7: Java test
9/16/04, Th, session 8: Team building exercise
9/21/04, Tu, session 9: An overview of the Unified
Process
HOMEWORK #5: Due
NEXT TIME
9/23/04, Th, session 10: Case study, inception, and requirements
HOMEWORK #6:
DUE NEXT TIME and some instructor notes
9/28/04, Tu, session 11: Use Case Modeling
1
HOMEWORK #7: Due Tuesday Oct 5, 2004. Give hard copy (1 per team) of a fully dressed
use case model for the "use case diagram" section of the UML editor system.
(Use this
homework from 2003 to get some outline
ideas, also use the textbook and its example e.g. on pp. 50-54.)
9/30/04, Th, session 12: Use Case Modeling 2
10/5/04, Tu, session 13: Use Case Modeling 3
HOMEWORK #8: See session 13 (Use Case Modeling 3), last
slide
10/7/04, Th, session 14: Other
Requirements
10/12/04, Tu,
session 15: Inception, elaboration, and
the transition
HOMEWORK #9: using what you know from other classes about planning,
make a plan for your own use (not to hand in) and then implement a user
interface for the Use Case Diagram Assistant System. Screen shot(s) and
printed source code due next
Tuesday 10/19/04. Your interface should contain event handler stubs.
10/14/04, Th, session 16: Domain models - introduction;
(archive of an old HOMEWORK)
10/19/04, Tu, session 17: More on domain models
10/21/04, Th,
session 18: Contracts; Design intro
HOMEWORK
#10: due by class time on Thursday
10/28/04.
10/26/04, Tu,
session 19: GRASP
10/28/04, Th, session 20: Design Patterns;
the cohesion and coupling patterns
HOMEWORK
#11: due by class time on Thursday
11/4/04
11/2/04, Tu,
session 21: Use-Case Realizations
11/4/04, Th,
session 22: Realizing init and UI;
visibility
HOMEWORK
#12: small assignment due next time
11/9/04, Tu,
session 23: Design Class Diagrams;
old HOMEWORK
11/11/04, Th, session 24: More GRASP Patterns
HOMEWORK
#13: 2nd implementation
11/16/04, Tu,
session 25: Some GoF design patterns; Strategy pattern
in more detail
11/18/04, Th, session 26: GoF Composite Pattern
THANKSGIVING BREAK
11/30/04, session 27: Logical architecture; GoF Facade Pattern
HOMEWORK
#14: (Small, but due
in two days; this will give a week left to study patterns
12/2/04, session 28: Architectural analysis
12/7/04, session 29: Review of some key
points
- Future sessions and assignments, below, will all be modernized and improved by class time-
12/9/04, session 30: Design patterns test; study sessions 19, 20, 24, 25, & 26
supplementary
lecture material: More on domain
sub/superclasses and the domain model; More on associations;
statecharts; More architecture; review;
Observer Pattern;
domain sub/superclasses
Old HOMEWORK a; HOMEWORK
b; HOMEWORK c; HOMEWORK
d
Homeworks:
· Homework
assignments will be given early in the semester and, as needed, later to enhance learning.
The emphasis will be on incremental development of a project.
Project:
·
A project will be done throughout the semester in teams of
3-4.
·
Each team will work on its own version of a course registration system.
Exams and quizzes:
· Exams and quizzes will be occasional but studying for tests will not be a major focus of the course.
Assignments, Exams, Grading…:
·
Latest available grades; here are last
year's details (to be updated for this year by lecture time) for
HW n; for HW n+1;
for HW n+2; for
HW n+4; for HW n+6;
for HW n+7; and for
HW n+8
·
Minimum grade on any quiz or assignment will be 50%
·
Grades on team assignments may be adjusted to reflect individual
contributions
·
Semester project. This will be the focus of work throughout the
semester. As parts are done, grades will be assigned to those parts.
·
The individual team
assignments will be graded in accordance with the following process
a. Grades will be assigned based on the overall quality of the product. To do this, all assignments in a given category and a team size of 3 will be ordered from highest to lowest. The highest project will be assigned a grade based on instructor or TA judgement, and the lowest will be assigned a grade similarly. Projects that are between the highest and lowest will get grades based on interpolating between the grades of the highest and lowest.
b. For teams of size 4, the same process will occur, except that the standards will be higher to reflect the larger team.
c. Grades will be adjusted for each member of a team based on an average of effort and contribution as assessed by others on the team. Assessments above the average for a team will lead to an individual grade higher than the project grade, and assessments below the average for at team will lead to an individual grade lower than the project grade.
· Letter
grades in the course will be assigned as follows:
A
(95-100%), plus enough additional students to make up at least 25% of the
class
A-
or higher (90-95%)
B+ or
higher (86.67-90%)
B
or higher (83.33-86.67%)
B- or
higher (80-83.33%)
C+ or
higher (76.67-80%)
C or
higher (73.33-76.67%)
C- or
higher (70-73.33%)
D+ or
higher (66.67-70%
D or
higher (63.33-66.67%)
D-
or higher (60-63.33%)
F or
higher (50-60%)
If
your grade is ambiguous (e.g. exactly 90%) you will get the higher one.
·
Lateness policy: 10% reduction in the grade on any assignment handed in
up to 1 week late. 30% reduction in grade on any assignment handed in more
than 1 week late.
Special Accomodations
Any student who may need an accommodation based on the impact of a disability should contact me privately. It would be good to also contact the Disability Resources Office at 515-294-6624 in room 1076, Student Services Building or email the office at awoniyib@iastate.edu <mailto:awoniyib@iastate.edu> to help coordinate reasonable accommodations for this and other courses.