Contents of this Page
Computers and Accounts
Announcements and Discussion Forum
Submission of Assignments
SolarSystem Data: Catalog number: 308. Course ID: 203294. Class Number: 48559 for CSE308, 48236 for ISE308. Section: 01 (for CSE308 and ISE308).
Instructor: Scott Stoller
Class: Tuesday and Thursday, 9:50am-11:10am. Harriman Hall 137.
This course covers fundamental topics in software engineering, with an emphasis on requirements and design using the Unified Modeling Language (UML). The main topics are:
Please note that CSE219 is a pre-requisite for this class.
The required textbook is:
Bernd Bruegge and Allen H. Dutoit.
Object-Oriented Software Engineering:
Using UML, Patterns and Java, 2nd edition. Prentice Hall,
2004. ISBN 0-13-047110-0. Lecture slides that accompany the book
are available from the preceding link.
It should be available at the campus bookstore, from the publisher,
and from on-line vendors. If you find a vendor with a lower price, let
me know, and I will mention it here.
You might find it worthwhile to also get a book that provides a more structured and more detailed description of UML. Several such books exist. A relatively good and inexpensive one is: Schaum's Outline of UML by Simon Bennett, John Skelton, and Ken Lunn. McGraw-Hill, 2001. A copy is on 24-hour reserve in the Computer Science Library.
Although you won't need it for this course, if you are interested in a good book on project management, I recommend: James P. Lewis. Project Planning, Scheduling, & Control, revised edition. McGraw-Hill, 1995.
You will have access to the computers in the Transaction Lab (Rooms 2126 and 2114).
Information about Account Names and Passwords.
I will generally post Anouncements in the Discussion Forum on Blackboard (see link at the top of this page). More "urgent" announcements will be broadcast using Blackboard's mailing list feature. Therefore, it is important that you set your Blackboard account to have your current email address.
The two best ways to get answers to your questions are to post your questions to the discussion forum on Blackboard or come to office hours of the instructor or a TA. If we receive by email a question that apparently should have been asked in one of these two ways, we will simply return your message with the comment "Please post this question to the discussion forum or ask in person (preferably during office hours)". Note that cse308@cs is only for submitting assignments; questions that cannot be posted on Blackboard should be emailed directly to the instructor or TA.
The advantages of the discussion forum compared to email are: (1) you are more likely to get a prompt response, since the the instructor, the T.A.s, and your classmates all read the discussion forum; and (2) your classmates benefit from seeing all of the questions and answers. If you see a question and know the answer, post it! This shows us that you know what's going on, and it helps your classmates.
The advantages of face-to-face communication (during office hours) compared to email are: (1) almost everyone can talk much faster than they can type; (2) your hands and mine are much more likely than our jaws to get repetitive stress injuries; and (2) fully clarifying an issue often requires a few rounds of question-and-answer, which can be completed in 5 minutes of conversation but may drag on for days when done by email.
To access the discussion forum, (1) click on the link to Blackboard near the top of this page, (2) login, (3) click on cse308, (4) click on Communication (on the left side of the page), (5) click on Discussion Board, and (6) click on General Discussion.
During exams, you may use the course textbooks (Bruegge & Dutoit, and Schaum's Outline of UML), your own notes, original printouts or copies of your team's homeworks, handouts that were distributed in class or posted on the course web page (including Allen Holub's UML Quick Reference, under Useful Links), and a dictionary. You may not use someone else's notes or other teams' homeworks or mechanical reproductions of all or part thereof. You may not use other textbooks or mechanical reproductions of all or part thereof. You may not use computers (laptop, PDA, etc.). You may bring printouts of the lecture slides that accompany the textbook, but this is discouraged as a waste of paper; the exam will not ask about material that is covered on those slides and not in the textbook.
The instructor may look at materials that students are using during the exam to ensure that these guidelines are being followed. Violations will result in a score of zero on the exam and will be reported to CEAS's Committee on Academic Standing and Appeals (CASA).
Missing an exam is a serious problem. If you miss an exam, you need to have a very strong reason substantiated with convincing evidence (for example, an invoice from the doctor or hospital), otherwise you will get a zero on the exam.
The Pass/No Credit (P/NC) option is not available for this course.
If you have questions about the grading of an assignment, first see the T.A. who graded it, preferably during their office hours. This helps ensure consistency of grading. The name of that TA should be written on the graded assignment. If you still have questions after talking to the TA, then come talk to the instructor.
Each assignment is graded relative to some maximum number of points (e.g., 20 or 100). The maximum number of points is unrelated to the weight of the assignment in the course grade. Each score is normalized into a number between zero and one (e.g., 19/20 -> 0.95) and then multiplied by the weight of the assignment to obtain a weighted score. Course grades are based primarily on the sum of the weighted scores.
Each assignment submitted by a team (as opposed to an individual) will receive a score reflecting the quality of the work. At the end of the project, each team member's score for that assignment will be computed, by multiplying that score by an individual contribution factor (ICF) that reflects the team member's overall contribution to the team effort for the entire project. Ideally, every team member will contribute equally to the overall effort. In that case, every team member's ICF is 1, and every team member receives the same scores for all team assignments. If some team member's overall contribution was, for example, only 90% of what was expected, then that team member's score for each team assignment will be computed by multiplying the original score for the assignment by that member's ICF of 0.9. A team member who contributes more than his or her fair share will have an ICF larger than 1. We will evaluate each team member's contribution using all available information, including progress reports, the team assessment in hw10 (complete project), and discussions during project meetings and demos. Everyone is encouraged to keep track of their contributions carefully throughout the semester.
Each team member is responsible for ensuring that he or she contributes. If you believe that your teammates are preventing you from contributing, discuss the situation with the instructor immediately; if you wait until near the end of the project, it will be too late to remedy the situation, and your ICF will be low.
For homeworks graded with letter grades, the letter grades are translated into numeric scores as follows: A+ 103; A 100; A- 97; B+ 94; B 90; B- 87; C+ 84; C 80; C- 77; D+ 74; D 70.
For homeworks graded S+/S/S-/U, the letter grades are translated into numeric scores as follows: S+ 4; S 3; S- 2; U 1.
For homeworks graded S/U, the letter grades are translated into numeric scores as follows: S 1; U 0.
|hw4 (sys design)||5|
|hw5 (obj design)||9|
|hw7 (test plan)||9|
If your submission includes any material (text, diagrams, code, etc.) created by other people (i.e., people not listed as authors of the submission), your submission must clearly indicate the source of such material. Failure to indicate the sources will be treated as plagiarism.
Discussing assignments with other people is fine. However, each person (or team, as appropriate) must write its own submission independently. This applies to all submitted materials: text, diagrams, code, etc. Showing your own (or your team's, as appropriate) work to other students (or members of other teams, as appropriate), giving it to them, or making it accessible to them (e.g., by making the files world-readable, whether intentionally or through carelessness) will be treated as academic dishonesty.
All assignments should be submitted as printouts in class on the due date, unless the assignment specifies otherwise. Assignments submitted after the end of class on the due date are late and receive a -3% penalty. Assignments submitted the next day receive a -6% penalty, and so on.
Every team assignment should indicate the name of the team and the names of all team members.
JBuilder 9 is available in the Transaction Lab. You can also install
it on your own computer. Ten copies of the JBuilder distribution are
available on 24-hour reserve in the CS Library. You also need to copy
the JBuilder 9 Developer Edition license file,
H:\jbuilder9\license, from the TransLab fileserver. This
directory is also accessible via sftp.
Microsoft Project is available in the Transaction Lab. It is a project management tool.
Here are some tools suitable for producing UML diagrams. If you find other good tools, let me know. When evaluating a tool, try exporting and printing some diagrams: some tools look nice on the screen, but produce ugly images (for presentations) and printouts.
Rational Rose: a UML modeling tool for drawing diagrams and much more. For example, Rose can generate Java code for interfaces and classes from UML class diagrams. It can also do "reverse engineering", i.e., create class diagrams from code, although you probably won't have a need to use this feature. Rose is the market leader among UML modeling tools. Rose is available in the Transaction Lab.
Microsoft Visio: a diagramming tool, with a library of UML shapes. Visio mainly draws diagrams. I don't think it can generate Java code. I heard that it can do reverse engineering. Visio is available in the Transaction Lab.
If you prefer a program that you can run on your own PC, and you don't want to pay for Rose or Visio, here are two options.
ArgoUML: an open-source UML modeling tool, similar in concept to Rose. It's easy to install. It's written in Java, so it requires that you first install a Java Run-time Environment, e.g., the one from Sun, which is available for free at http://java.sun.com/j2se/1.4/
Dia: an open-source diagramming tool, similar in concept to Visio. It has a library of UML shapes.
Allen Holub's UML Quick Reference
OMG UML Resource Page
Java 1.4 Documentation with a link to the Javadoc Documentation
ACM Code of Ethics
ACM Software Engineering Code of Ethics
Ethics in Information Technology (This link isn't so useful, but Prof. Stent has a copy of the book that you can look at)
Ethics Cases, maintained by Prof. Barger at U. of Notre Dame.
Ethics Web Site maintained by Professor Stent
Social Responsibility and the CS Student: How Can I Get Involved?, in ACM Crossroads magazine.
Privacy and Civil Liberties, by Computer Professionals for Social Responsibility.
A Sample Ethics Paper from CSE308 in Spring 2003.
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities (moved to ECC Bldg during renovation of Humanities), 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.