CS 3320
SPRING 2001
Course Title: Introduction to Software Engineering
Prerequisite: CS2310
Instructor: Dr. Ali Berrached
Office: S708 Tel: (713) 221-8639
E-mail: berracheda@dt.uh.edu URL http://cms.dt.uh.edu/faculty/berracheda
Office Hours: TR: 1:00-2:30 PM and by appointment
Textbook: Stephen R. Schach, Classical and Object-Oriented SOFTWARE ENGINEERING With UML and C++ (or Java), Mc Graw Hill, 99.
Other references: James Rumbaugh, Michael Blaha, William Prsmerlani, Frederick Eddy & William Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1991.
Goals: To provide the students with a theoretical, and a practical, understanding of the development of large software systems. The theoretical component is supported with readings, lecture, and discussion. The practical components are the preparation of software system using software engineering principles.
Topics:
1. Software Life-Cycle |
2. Requirements Phase |
3. Specification Phase |
5. Introduction to Object |
6. Testing and Quality Assurance |
7. Introduction to Objects |
8. Object-Oriented Analysis |
9. Design Phase |
10. Implementation and Integration |
Method of Evaluation:
| 2 Tests | 30% each |
| Homework | 5% |
| Research Presentation | 10% |
| Group Project | 25% |
Presentations:
Each student is required to present an approximately 10 minutes presentation to the class on current issues facing software industry and professionals.
Project Development
Stages: 1. Requirements document
2. Specification document
3. Design document
4. System coded and delivered
5. Testing
Group Project:
The project will be done in groups of two to three students selecting their own partners. Groups are free to choose the organizational structure of the group. Either a democratic or a more structured organization may be selected. In a democratic structure decisions are made by group consensus. In the structured teams a leader responsible for final technical decisions and/or a manager responsible for dividing the work among group members and controlling the progress of members of the group will be selected. Regardless of the general organization of the group it is expected that all members of each group participate in all activities in the respective project such as preparation of documents, coding and testing.
Each group member is required to maintain a log of the time they spent on the project. The log must show the date, the amount of time that was spent and the type of activity for every day that the student works on the project. Log file for each member of a team must be signed by all other members of the team and handed in periodically whenever a document is turned in. It is the responsibility of group members to let me know about lack of cooperation of any group members as soon as it is noticed. All members of a team may not necessarily receive the same score for the project. The following method will be used to compute an individual's performance in a project.
1. At the end of the semester all the group members will evaluate their team members and their own participation in their respective projects. The evaluation will be done on a scale of 10. The scores a student receives will be averaged and then divided by 10. This will be called the contribution factor of that student.
2. The total points a project receives will be scaled over 25. This is called the team project score.
Individual's project score = contribution factor.* team project score.
Project Milestones
Milestone |
Due date |
Points |
| Project Proposal & planning | February 7 | 5 |
| Requirement Specification (Presentation*) | February 28 | 5 |
| Design document (Presentation*) | March 21 | 7 |
| Implementation & Testing | April 25 | 8 |
| Complete Documentation + Executable File + Final Project Evaluation (Presentation*) | May 2 | Total = 25 |
* Group presentation: ~ 5mins presentation, one per group.
Project Documents:
Documents for each milestone must be handed in on the completion date. All documents must be typed and bonded. Organize your documents such that they are easy to use and modify. I will review documents as I receive them and return a grading sheet with my suggestions and comments. The grade assigned on the grading sheet can be improved if the corrections are made for the final document. As we work on a new milestone, new understandings or decisions may require changes to documents of earlier phases. All changes to documents must be documented and placed in a separate section at the end of the final document. Your final documentation must be organized professionally. It must have a title page, a table of contents, headings on each section and pages must be numbered. All documents must be turned in by the due date, at the beginning of class. Assignments turned in late, will be subjected to a 10% penalty for each additional day (including week-ends).
Grading Scale: 90-100 A
80-89 B
70-79 C
60-69 D
below 60 F
Cut-offs may shift down somewhat, if appropriate
Policies:
Important Dates:
March 28 Research paper presentations
March 29 Last day to withdraw from a course
May 2 Group Project Documentation Due
Suggested Projects:
1. An automated bank teller. This would keep track of accounts, and let users perform various transactions: shuffle money between accounts, make deposits and withdrawals, pay bills (manually or automatically), include a display similar to the ones at the real money machines, etc. The system should be resistant to abuse and should be reliable (able to keep every one's money straight in spite of system crashes). This is a simple project unless it includes features like multiple tellers and simultaneous deposits and withdrawals, bank manager program, and good backup systems.
2. A calendar maintainer. This would schedule your time, send reminders when necessary , perhaps coordinate with other people's calendars for scheduling meetings, and so on. Printing parts of the calendar on demand is a must ("What's up for today?" or "Let's see next week at a glance." or "What in the world was I doing last Tuesday?" or "On what day of the week for the next four weeks is there an hour free starting at 10:00?").
3. A terminal reservation system for a terminal room. This would be an automated sign-up sheet for a collection of terminals (and possibly other resources). People should be able to express preferences for various times. The system should include facilities for administrators to collect and print statistics on usage as well as a scheduling algorithm to ensure fair distribution of resources among users. It should be easy to change the scheduling algorithm. (Ignore the fact that you need to use a terminal to sign up for a terminal! For example, assume that one is reserved for this purpose.)
4. Automated library circulation system: This would handle book circulation in a library: checking and retuning books, searching book collection bases on author, title, subject keyword, etc. (see further discription on problem 7.7 of textbook).
5. A computer tic-tac-toe player: with an appropriate GUI. User may select the level of skill and who goes first.
6. Automated course registration system: allows students to register for courses (directly or otherwise). System must support functional needed in a real course registration system; e.g. ensure no fees are owed from previous semesters, checking student transcript for prerequisites, ensure that requested section not full, etc.
7. Automated doctor's patient and billing system: Primarily scheduling patient appointments, maintaining patient health records, and recording financial information (insurance, bills owed, etc.). A good place to start is to check the patient information and history form that your doctor (e.g. dentist, GP, etc.) require new patients to fill out. Then you may consider looking at the different serves provided with their associated fees. Note that at each visit the doctor must also fill out some information on the patient record. When a patient receive a service , payment may be billed to patient's insurance if s/he has one. Otherwise, the patient may pay immediately, or may opt for a monthly summary bill. Therefore, the system should also maintain the financial record of each patient, send monthly bills (assume thru e-mail), etc.
8. Automated sales tracking system: For a small retail store. Keep track of sales, inventory and cash flow. The system should also maintain information about each item retailed and different vendors that supply each (an item may be supplied by more than one vendor). The system should also it should be able to handle orders for items that are not currently available in the store, and provide receipt for customers when an order/purchase is made.