CS 321 Software Requirements and Design Modeling
Section 004
Spring, 2015

Class Day/Time:  TR 1:30-2:45 p.m.      Class Location: Robinson B120
Instructor: Prof. John Otten
Email Address:  jotten2@gmu.edu    Office Phone: 703-993-1669
Office Location: ENGR, Room 5335; Office Hours: T 9:30-11:30, W 3:00-4:00
Graduate Teaching Assistant: Hozaifah Zafar
Email Address: hzafar@gmu.edu

Class Description:  An introduction to concepts, methods, and tools for the creation of large-scale software systems. Methods, tools, notations, and validation techniques to analyze, specify, prototype, and maintain software requirements. Introduction to object-oriented requirements modeling, including use of case modeling, static modeling, and dynamic modeling using the Unified Modeling Language (UML) notation. Concepts and methods for the design of large-scale software systems. Fundamental design concepts and design notations are introduced. A study of object-oriented analysis and design modeling using the UML notation. Students participate in a group project on software requirements, specification, and object-oriented software design.

Prerequisite: C or better in CS 211.

Course Outcomes:
  1. An understanding of all phases of the software engineering lifecycle (requirements, design, implementation, testing, deployment, maintenance).
  2. An understanding of several software lifecycle models including both prescriptive and agile models and knowledge of tradeoffs among these models.
  3. An ability to create and use UML models to develop and document software analysis and design artifacts.
  4. An understanding of fundamental project management and leadership issues for software teams.
  5. An ability to apply software engineering methods to address the requirements and design phases of a large software project.

Writing Intensive Course: CS 321 includes Writing Intensive (WI) activities that, together with those of CS 306, meet the GMU WI Requirements in the BS CS Program (http://wac.gmu.edu). This means you will write 1750 graded words (or about 7 standard pages). You will get feedback on this writing, and be able to resubmit revisions based on the feedback. For this course, part of the writing will include an individual essay on your experiences working with your team.
Class Participation: Students are expected to attend and actively engage in lectures. Some lectures will involve completing reading assignments at home and being prepared to discuss them (or take a quiz) in class. Lectures are also used to solve in-class examples and work on the semester project.

Groupwork will make up a large part of the students' grades. Students are expected to participate equally and fully in group assignments. Each deliverable will require students to complete the deliverable all, or in part, individually at first. The instructors will examine these individual assignments and adjust points for groupwork if students are found to not contribute adequately to draft deliverables.

Project:  CS 321 will have a software engineering project that requires student to participate in working teams where students organize, manage, and practice a software engineering project. This will be a design project with some prototype implementation. See the project page for more details.

Late Work: All assigned must be received by the deadline (submitted on Blackboard by 11:55pm on the date due). No late assignments will be accepted. All project assignments must be submitted online, through your team's repository, by 11:55pm on the day they are due.

Exams: Exams are closed book/notes unless specified otherwise by instructor. Appropriate documentation (as determined by instructor) and requisite permissions are required for make-up exam requests. Picture IDs are required to take all exams.

If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as a scheduled surgery, etc), you must notify the professor at least one week before the scheduled exam date to make arrangements for a make-up, and bring documentation with you when you take the make-up. If you miss an exam due to a university-accepted excused absence (such as an illness or car accident the day and time of the exam), you must notify your professor within 24 hours of your absence to make arrangements for a makeup, and bring approved documentation with you when you take the make-up exam. Failure to follow either of these policies will result in a zero.

There will be no makeups on exams except under exceptional circumstances (as judged by the instructor), and any such makeup must be arranged in advanced. Grades will be computed using a weighted average of these scores with the weights:
Contesting of grades on any/all submissions must be requested within one week of the item's return. No grade changes will be considered subsequent to that deadline, or after the final exam meeting.

Group members must participate equally in project assignments; the professor reserves the right to assign a zero to any student for any deliverable retroactively, if it turns out that nothing of academic merit was contributed to the assignment by any individual. It is up to students to prove their participation on deliverables, and the professor will examine ONLY svn logs in the event of any disputes of participation. Make sure you are using svn, and using it through your login.

Class Communications:  CS 321 will be using Blackboard and Piazza for most class communications. You are responsible for any notifications or information posted on these forums by your instructor, and you will need to check it regularly for such notices. Some information may be disseminated through Blackboard, Piazza, and/or the occasional email annoucement rather than in class. Individual communications with the professor may be done by email using your GMU email account. When you email, please be sure to include your name, the class number and the topic in the subject header. (E.g.: Subject: Jim Jones / CS 321 / Project Question)

Special Accommodations: If you are a student with a disability, please see your instructor and contact the Office of Disability Services (ODS) at (703) 993-2474. All academic accommodations must be arranged throuht the ODS: http://ods.gmu.edu

Honor Code Policies: All students are expected to abide by the GMU Honor Code. This policy is rigorously enforced. All class-related assignments are considered individual efforts unless explicitly expressed otherwise (in writing). Review the university honor code and present any questions regarding the policies to instructor.

Cheating on any assignment will be prosecuted and result in a notification of the Honor Committee as outlined in the GMU Honor Code. Sharing, collaboration, or looking at any code related to programming assignments that is not your own is considered cheating. The computer science department has an additional, more restrictive CS Honor Code that you are also subject to. Make sure you read and familiarize yourself with these rules.