CS321 Syllabus: Software Requirements/Design Modeling

Course Outcomes CS 321 gives an introduction to principles and techniques used in software engineering:
  • An understanding of all phases of the software engineering lifecycle (requirements, design, implementation, testing, deployment, maintenance).
  • An understanding of several lifecycle models including both prescriptive and agile methodologies and knowledge of tradeoffs among the methodologies.
  • An ability to create and use UML models to document software analysis and design artifacts.
  • An understanding of fundamental techniques used to lead a software team.
  • An ability to apply software engineering techniques to complete the requirements and design phases of a large software 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.

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 a software engineering topic. The schedule for the writing assignment will be presented in class.
Prerequisite C or better in CS211
Professor Contact Information Dr. Kinga Dobolyi
Office: Engineering (Rm. 4440)
Email: kdobolyi@gmu.edu
Phone: 703–993–4198
http://www.cs.gmu.edu/~kdobolyi/cs321/
Office Hours: MW (1:45 PM — 2:45 PM), TR (12:15 PM — 1:15 PM) or by appointment. Please email the professor at least 48 hours in advance when seeking an appointment.
TA Contact Information GTA: TBA
Office: Engineering (Rm. 4456)
Email: @masonlive.gmu.edu
Office Hours: (PM — PM)
Textbook Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Fundamentals of Software Engineering, 2nd Edition. (optional: it is NOT required that you purchase a copy of this book for the course. I have a copy in my office if you want to refer to it. Instead, we will be reading several scholarly articles throughout the semester.)
Course Tools
  • Subversion (SVN) tools:
    Tortoise SVN - SVN client for Windows only
    SCPlugin - SVN client for Mac OSX (but NOT Snow Leopard)
    svn - command line (Windows version in link) (Mac version built in to OSX)
  • Project Hosting tool:
    XP dev
  • UML Tools:
    Netbeans with UML plugin
    Violet UML - Open source UML tool - Simple, looks good, but sometimes hard to get exactly what you want
    ArgoUML - Open Source UML tool - Previous classes did not like this tool, but it has more features than Violet
    IBM Rational Software Architect - Very mature UML and architecture tool
  • Project Scheduling Tools:
    OpenProj - Open source version of MS Project
    Microsoft Project - Industry standard project scheduling tool
Email I will use email to send information about the course, ask questions, etc... You must check your GMU email account. If you prefer to use another account, that is okay, just forward your GMU email to your preferred account.
Grading
  • Project assignments (30%)
  • Homeworks/in-class assignments (10%)
  • Essay (10%)
  • Class participation (10%)
  • Midterm (15%)
  • Final Exam (25%)

Final course grades are calculated as follows:

A+ (>= 98.0%) A (>= 92.0%) A– (>= 90.0%)
B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
D (>= 60.0%)
F (< 60.0%)

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 Participation Students are expected to attend and actively engage in lectures. Several lectures will involve completing reading assignments at home and being prepared to discuss them in class. Each student must prepare a five minute summary of the reading material for each lecture - I will call on one student randomly each class to present. Even if you have already given a presentation this semester, as these are independent events, you may be called on to present again, so you must prepare for every lecture. This presentation is worth half of your participation grade (and five percent of your grade overall) - missing lecture (unless it is an excused absence that you inform the professor of beforehand), or failing to provide a presentation will result in a 0.

In your five minute summary (and you may use powerpoint), you should do ONE of the following:
  • What was the conference (google the title), and the acceptance rate of the conference (look it up here)?
  • Define all terms in the title and abstract that we have not covered in class
  • What is the motivation of the research?
  • What experiments did the researchers perform?
  • What were the conclusions?
OR
  • Choose a software engineering or research topic, algorithm, methodology, or challenge that the paper mentions or discusses.
  • Provide a short introduction to the problem, and why it is important
  • Discuss the problem in the context of the paper

You will be graded based on these five questions - each one worth 1 percentage point. If your presentation is less than five minutes, you will lose one point for each minute under 5.

The other half of your class participation grade will come from speaking in class (answering or asking a question) at least once a week. If you end up never being called to give a presentation, I will use your in-class participation for that five percent.
Late Policy All homework must be received by the deadline (submitted on Blackboard by 11:55pm on the date due). No late homeworks will be accepted. The final version of the paper is due as described on the schedule below. No further revisions will be allowed after that date. 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.
You must take the final exam for the section that you are registered for.
Honor Code 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.
Learning Disabilities Students with a learning disability or other condition (documented with GMU Office of Disability Services) that may impact academic performance should speak with professor ASAP to discuss accommodations.

For a list of topics covered and a class schedule visit the course website