CSCI-340: Software Engineering
Fall 2009
Contact Info
| Instructor: |
Jason Sawin |
| Lectures: |
M,T,Th,F 3:00-3:50 (T 399)
|
| Phone: |
879-3551 |
| Email: |
jsawin@ups.edu |
| Office: |
Thompson 405 |
| Office Hours: |
MTTh: 2:00-2:50, F: 11:05-11:50, when my door is open, and by appt. |
Contents
Class Overview:
This course introduces concepts and methods related to the design, implementation, validation and maintenance
of large software systems. Students will be exposed to programming team organization and management as well as
tools that facilitate the development of software systems. Students will work in groups to design, document and implement
a medium sized software project.
One of the following courses with a C- or better: CSci 281, CSci 361, or CSci 455
Textbook:
There is no assigned text for this course. Articles and other handouts
will be provided in class.
By the end of the semester, students should:
- Understand the role of key elements of software engineering such as requirements analysis,
software design, and software testing
- Understand the principles of modern software processes
- Understand and navigate the complexities of managing and working on a team to complete a medium to large software project
- Be able to apply the principles of object-oriented analysis and design, and the corresponding UML notation
- Be able to apply principles and patterns for software design
- Be familiar with the standard techniques for software testing
- Be able to research and compare tools that facilitate the development of software
Topics (partial list):
- Overview of software engineering
- Software processes: waterfall model,XP, agile, etc.
- Requirements analysis: use cases, functional, non-functional, sequence diagrams
- Domain modeling: conceptual classes, attributes, associations
- UML
- Object-oriented design
- Design patterns
- Software testing
- Development tools
Course Policies:
Students are responsible for knowing all materials presented in class including lectures, handouts, assignments,
group presentations, etc.
Lectures will begin and end on time. Please do your best to get to class before the start of lecture.
The use of cell phones and laptops will not be permitted in class unless specific permission is given.
Students will work in teams and are expected to be respectful of their teammates. This includes showing up to
team meetings, completing assigned work, including the entire team, etc. If a team conflict arises
the team should tactfully address and resolve the issue. If this is not possible they should ask the instructor to help
mediate.
No makeup exams will be given without extremely extenuating circumstances.
Exams will be given in class and are closed book, closed note. However, student will be allowed a "cheat-sheet"--a single standard-sized
piece of paper, with your notes on both sides. Cheat-sheets must be turned in with the exam and will be returned to the
student with their scored exams.
Unless it is part of the group project, or otherwise specified, all assignments are to be done independently. Please review the
Academic Honesty
policy in The Logger
and ask me if you have any questions regarding its application
to this course.
Assignments are due at the beginning of class on the due date.
Late assignments will be penalized by 20% and will only be accepted within 48 hours of the original due date.
Anything you submit should be clearly labeled with you name. If there are multiple pages the pages must be stapled
together. All assignments should be checked for spelling and grammar. If an assignment is difficult to read or understand
additional points may be taken off.
Students with Disabilities
Academic accommodations are available for students with
disabilities who are registered with the Office of Disability
Services. Please schedule an appointment with the instructor
early in the semester to discuss any accommodations for this
course which have been approved by the Disability Services
Coordinator as indicated in your accommodation letter.
Group Project:
A key component of this course is a group project. The project is designed to give students the chance interact with the
material present in class and apply it to a medium sized software project. Developing particular piece of software is not the goal
of this project, but rather it is a vehicle for students to develop and hone their software engineering skills.
The project also introduces the idea of developing software in a team. Most modern software companies employ a team structure to
develop their products. Class teams will consist for 3-5 students. All team members must take part in all project activities and will
be responsible for knowing how all parts of the project. However, responsibilities may be divided so different members take
the lead in different activities. Though the scope of individual effort on a single component of the project may vary, in the end
all group members should have contributed equally to the project.
The projects will consist of 5 deliverables: a proposal, an intermediate report, an intermediate demo, a final report, and a final demo.
The specific requirements of each deliverable will be discussed in class. However, professional presentation is a requirement for
all parts of the project. Students are encourage to create their proposals and reports using Latex and
incorporate slide presentations to accompany their demos.
Grading:
The following grade cutoffs are upper bounds -
they might come down, but will not be set higher: A = 95, A- = 90, B+ = 88, B =83, B- = 80,
C+ = 77, C = 73, C- = 70, D+ = 67, D = 64, D- = 60, F = <60. Your
overall grade is composed as follows:
- 5%: Meeting Notes
- 5%: Project proposal
- 10%: Intermediate project report
- 10%: Intermediate project demo
- 15%: Final project report
- 15%: Final project demo
- 10%: Individual homework
- 30%: In-class Exams