CMPE 133 Fall 2004 COMPUTER ENGINEERING DEPARTMENT CMPE 133 Software Engineering II Fall 2004 Instructor: Dr. M.E. Fayad Office ENG 283I E-mail: m.fayad@sjsu.edu Phone: (408) 924-7364 Web page: http://www.engr.sjsu.edu/~fayad Course Meeting Place/Time: Lecture: ENG 339, Tuesday 13:30 p.m. to 15:20 p.m. Lecture: Lab, Thursday 13:30 p.m. to 5:20 p.m. will be scheduled later. Office Hours: Tuesday and Thursday: 3:30 TO 5:30 p.m. Other times: Send an e-mail to schedule an appointment. Course URL: http://www.engr.sjsu.edu/fayad /current.courses/cmpe133-fall2004 Course Catalog Description Software Architecture, Software Technical Metrics, evaluating products, processes, and resources, improving predictions, products, processes, and resources. Advanced topics such as: Formal Methods, Software Reuse, Reengineering, Client/Server Software Engineering, Computer-Aided Software Engineering, Team-Based Projects. Prerequisite: CmpE 135. Misc/Lab: Lecture 2 hours/lab 3 hours. Required Textbook M.E. Fayad and M. Laitinen "Transition to Object-Oriented Software Development." New York: John Wiley & Sons, August 1998, ISBN# 0-471-24529-1 Required Articles, Columns, Case Studies, and Patterns will be posted on the web later. Check Weekly Schedule Other Resources: Instructor notes will be available on the course web page. Grading Assignments Quizzes Midterm exam Final exam Extra Points Total 40% 10% 20% 30% 5% 105% Final Grades: Letter grades will be assigned at the end of the course. Final grades will be based on a competitive curve. Graduate and undergraduate students are graded separately. Students will be informed of their standing at intervals throughout the course. Final grades are not negotiable. Unless there are mathematical errors, I will be unavailable to discuss final grades. Borderline cases will be considered with extreme care, and fair grades will be rendered. 1 CMPE 133 Fall 2004 Class Attendance: Important: Class attendance is mandatory. If you have more than four unexcused absences, then you will be dropped from the class. You are responsible for the material covered in class and any announcements made in class whether you are there or not. Homework -- homework assignments are intended to reinforce important concepts and are meant to be learning experiences. Collaboration and discussion among students is encouraged. Understanding the homework assignments will be essential for successful completion of the course. Copying someone else's answers will not be in your best interest. Students must turn in their own solution for each homework assignment. A total of 5 individual assignments is required and the lowest one will be dropped. (See Submission Guidelines). Deadlines: Homework, projects, and programming assignments, for that matter, are due before class. That means that I will collect all the hardcopies at the beginning of class. A softcopy must be e-mailed to me before the class as well (see Submission Guidelines). Late assignments incur an automatic penalty of 5%, plus 2% per hour for each hour till 9 PM. You will lose a 20% of points for the first day and after the first day, 10% of points for each day. All late homework MUST be time stamped in order to receive any credit. Exceptions will be granted only if arranged prior to the due date or a documented illness intervenes. Cheating vs. Collaboration Copying someone else’s assignment, or the common solution of written or programming assignments will be considered cheating. Interaction for the purpose of understanding a problem is not considered cheating and will be encouraged. However, the actual solution to the problems must be one’s own. Make-up exams will not be given. Students who know that they will miss an exam must notify the instructor in advance. The only exception will be for substantiated medical emergencies. Topics to be covered The topics are subject to change if the schedule slips or we get ahead. See Weekly Schedule Course Objectives: This course provides guidelines on dealing with several issues, such as culture changes, selecting the best method for the project, the finest development environment, staffing the project, tracking and controlling the OO software development, software measurements, documenting the software development process, and training. The course also includes sections on: planning, cost estimation, object-oriented software metrics, test issues, quality issues, documentation, and cost reduction. This course provides comprehensive management guidelines ranging from project and personnel selection, to cost estimation and project tracking, are thoroughly discussed. Technical issues such as specifying OO requirements and how and what to reuse are analyzed in detail. Real world issues such as reusing heritage software and ferreting out hidden costs are examined. Limitations such as over inheritance and meeting real-time constraints, are treated from a real world perspective. Course Goals • Understand how to plan for successful object-oriented software development. 2 CMPE 133 • • • • • • • • • • • • • • • Fall 2004 Understand how to deal with existing internal and external culture. Learn how to evaluate and select an object-oriented approach for your project Learn how to select the right CASE tool for your project. Understand how to staff and organize your project Learn how to train your team. Learn how to deal with legacy systems Learn how to budget for reuse. Understand how to analyze, model, and prototype. Learn how to track and control your project effectively. Learn how to use size and cost estimation techniques to determine staff and resource requirements for object-oriented software development project Learn how to collect, analyze, and incorporate useful project metrics Learn how to reduce cost and development time without compromising quality or safety of the object-oriented software project Learn how to document object-oriented software development projects Learn how to incorporate software processes into your development and to use it as a major part for improving your object-oriented software development Understand the importance of configuration management in object-oriented software development. Student Learning Objectives By the end of the course, you should: 1. Have an ability to apply knowledge of writing software development and management plans 2. Have an ability to measure, track, and control software development projects 3. Have an ability to identify, assess and manage risks with software development projects 4. Have an ability to use the techniques, principle to manage effectively software development projects. 5. Have an ability to document and apply process improvement, configuration management. 6. Having an ability of collect, analyze and incorporate useful project metrics 7. Have an ability to communicate effectively with fellow team members in their team projects. Policy on Cheating: A student or students involved in a cheating incident involving any non-exam instrument (homework, report, or lab project) will receive an F on that instrument, and will be reported to the judicial affairs office. Whether the report will carry a recommendation for disciplinary action will be left to my judgment. A student or students involved in a cheating incident on any quick test, the midterm exam or the final exam will receive an F in the course, and will be reported to the judicial affairs office with a recommendation for disciplinary action. I will personally notify you of any such findings or actions. All such reports will also be brought to the attention of the computer engineering department office. You have certain rights of appeal, which may serve to exonerate you. (see http://www.sjsu.edu/student_affairs/academicdishonestyrevisedpolicy.pdf) Right to Privacy: You will retain a right to privacy. I will not knowingly reveal your grades, student ID number, phone number, address or other private information to others, except within the limits of university policy. I will ask that you supply your first name, last name and last four digits of your SID on written homework or tests. The grader system requires that you supply the first five digits of your SID as a password. 3 CMPE 133 Fall 2004 Grader permits you to access your own grade records and your standing in the class online, but no other person’s grade records or personal data. Students with Disabilities: Students with disabilities who would need some kind of accommodation should make that known to the instructor: "If you need course adaptations or accommodations because of a disability, or if you have emergency medical information to share with me, or if you need to make special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible, or see me during office hours." Hand In: All homework assignments and projects need to be typed and handed in as hardcopies and electronically. You also need to demonstrate Projects to the instructor. Hand-written assignments and projects are not acceptable. Check submission guidelines. Class Webpage: http://www.engr.sjsu.edu/fayad /current.courses/cmpe133-fall04 contains the syllabus, some of the homework and lecture notes, and occasional notices. Class Schedule – Check Weekly Schedule 4