This is a
required course in the generic BA in Computer Systems
but is designed to be useful for anyone interested in producing
good object-oriented software. The
catalog entry
reads
Requirements analysis, including organizational objectives, functional
characteristics, technology, use cases and conceptual models. The use of
aspects, patterns, objects, and structure in architectural design
specifications. Includes analysis and design of a software system for an
organization, and fieldwork.
The old CSCI372 prerequisite is waived. CS372 teaches how computers
can used in an organization but did not discuss how computers are
programmed. CSCI375 shows
how to develop good maintainable programs to fit the requirements
discovered using techniques discussed in CS372.
This is the fifth time the course has been taught.
Instructor Information and Methods
See my generic syllabus
[ syllabus.html ]
; this defines who I am, how I teach, and
how I grade.
Readings
The web site is a important artifact that you should scan
at least 3 times a week. It contains notes on each assigned
reading and will have your answered question added to it as the
quarter progresses. We will be using Craig Larman's
[ http://www.craiglarman.com/ ]
excellent book:
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and
Design and the Unified Process, 3/E
- Craig Larman
- ISBN: 0-13-148906-2
- Publisher: Prentice Hall PTR
- Copyright: 2003
There are significant improvements between the 2nd and 3rd editions
so you should not buy older editions.
We will not have time to cover chapters 21, 22, 28, 29, 30, and 33
through to 40.
There is a lot of wisdom in these chapters but there won't be any assessment
made of the content. So you can do the minimum on these topics:
- -- Tools and Management
- -- Persistence -> data base classes
- -- UML Components
- -- UML Activity Diagrams (CS372)
- -- UML State Machines -> Comp Sci Theory
- -- Documenting architectural decisions
- -- User Interfaces -- frameworks, design, etc.
- -- Physical Architecture -- Artifacts and deployment (CS372)
- -- Deployment Diagrams (CS372)
- -- Some advanced Patterns (TBA)
There will be no tests of your knowledge of the history -- but
knowing the history will help you recall the best practices.
I will be stressing
- *** Use cases and scenarios
- ** UML Relations between use cases.
- *** Non-functional requirements
- *** Class diagrams: domain and design models
- **** Interaction diagrams
- *** GRASP
- *** GoF
- *** Logical Architecture -- especially layers and Model-View-Controller -- (MVC)
(In this class I use the number of asterisks to indicate how important a topic
is in the assessment. )
Course Goal and Student Objectives
The mission of the course is to give you skills and attitudes you can
use to produce modern object oriented software using a light and agile
process that gives programs to your stakeholders and clients that they
value highly: now and in the future.
A detailed list of objectives for the CSCI372/375 sequence can be found
at
[ objectives.html ]
on the course web site.
Work
(N): Reading. ( 2 points >< 19)
- Start with the web site. It lists the assigned reading and
tells you how important the different topics are.
- Read the assigned pieces and take notes.
- Send me a question about the assigned reading for the class
before 8am on the day of the class
using the form linked as [Question] at the top
of the page (2 points).
(P): Turn up on time and be ready to work and participate in
the classroom activities. In the first class I will give a lecture.
Normally I minimize the lecture in favor of activities.
You will be working on projects,
exercises, etc. (2 points).
(W): In 9 classes a previously assigned and started piece of
[ projects.html ]
work will be presented
and collected. This will a series of iterations
in a software project.
Each piece of work is worth 10 points maximum. Bring
whatever you have got at the time to class.
Late work scores nothing. Bad or incomplete work can score
something.
Make a presentation (4 points) in class.
I may even ask you to demonstrate how a set of objects carry out
some task. Then submit
documentation(6 points) to me before 10am the next day.
This gives you a chance to fix problems found in the presentation.
These artifacts can be hard copy or on the Web.
You can do the deliverables by hand
or using CASE tools as you wish.... but it should be readable
and spelled correctly. You can even submit photos of diagrams sketched on a
board.
(Q): In 9 classes there will be a Quiz worth 15 points (maximum) on the
topics covered in the course up to that time -- but mainly on the most
recent topics.
Notes on each class will be posted on web site after the end of the class.
This will include any quizzes, assignments etc. and answers to your questions.
Grading
I will be following my generic grading scheme
[ ../syllabus.html#Grading ]
with these rules:
- No more than 300 points can be earned for course work
(prior to the final) even counting bonus points.
- Only work submitted before the final counts -- no making up points after the final.
Calendar/Schedule
An up to date schedule is maintained at
[ schedule.html ]
on the web site. This tells you what assignments
are due when. This includes all the assigned reading/study
listed by the date due.
Support
Online start at
[ http://cse.csusb.edu/dick/cs375/ ]
the course web site. It has
up-to-date and reference information. Try the [Search______ ]
on the pages.
The pages also have a [Contact] button at the top to send me Email.
My phone number and office is at
[ http://cse.csusb.edu/dick/ ]
and in my generic syllabus. Come and see me!