CIS 501: Software Architecture and Design, Fall 2014

Objective and Topics

You will learn about software engineering and software architectures: how to read and write software blueprints, how to convert blueprints into code, and how to employ standard design patterns and software architectures in real systems.

Here is a list of topics to be covered:

  1. How to manipulate Visual Studio
  2. Software as “virtual reality”; classes and unit testing
  3. Classes and objects; storage layout; object diagrams
  4. Class diagrams and using Visual Studio to draw them
  5. Interfaces, abstract classes, and C# delegates
  6. Reactive-system architecture: entities, boundaries, controllers
  7. Coupling and coherence; software metrics
  8. Model-View-Controller (MVC) architecture and its variants (MVP and MVB)
  9. Use cases and use-case realization; communication and sequence diagrams
  10. State diagrams and controller design
  11. Multithreading and its implementation by C# threads and locks
  12. Tiered (“3-tier”) software architecture
  13. Design patterns: behavioral, structural, and creational
  14. Introduction to software architecture “theory”


The Course Notes are the main course materials. Other references will be provided as the course unfolds.


Time:Tuedays & Thursdays, 2:30pm - 3:45pm
Place:021 Nichols Hall


Each class starts with a lecture for about 30-45 minutes, followed by a lab exercise; the exercise will be scored before the end of the class.

There will be about 3 programming homework and 2 design-implementation projects, with about 2-3 times 1-on-1 design and code reviews with the instructor/graduate teaching assistant. There will be two in-class exams, one scheduled mid-semester, and the other scheduled at the Finals Week exam time.


3 credits


Robby, Office: 324B Nichols Hall, Office Hours: T U 3:45-5pm (or by appointment), E-mail: robby at

Graduate Teaching Assistant

Ana Stanescu, Office: 227H Nichols Hall, Office Hours: M W 1-2pm (or by appointment), E-mail: anas at


At the end of the term, the points are totalled, and letter grades are assigned. There are no fixed 90-80-70 cutoffs for the letter grades — a “curve” is calculated based on the difficulty of the course activities (lab exercises, homeworks, projects, one-on-one meetings, and exams). (If you score 90% or better, you are guaranteed an ‘A’, in any case.)

Important: if you want a ‘C’ or better from this course, it is necessary for you to average at least 50% on the course exams.

Computer Access

This course involves a lot of programming, and it makes significant use of software tools. Many of these can be accessed by you (for free) and installed on your own machine. If you prefer, we have everything you need on our CIS department machines so you can get an account on our machines. See the Course Notes for information on how to get an account and use our machines.

Attendance Policy

In general, there will be NO make-up lab exercises or exams! Special consideration will be given in only exceptional circumstances. Exceptional circumstances are generally limited to:

  • Emergencies: death in student’s immediate family, or near-death experience of the student.
  • Non-emergencies: certified excused absences for official university activities.

If you believe you qualify for exceptional treatment, you must notify the instructor prior to the date of the lab exercise or exam to be missed.

Statement Regarding Academic Honesty

Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance in academic matters one’s work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reach via the following URL:

A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: “On my honor, as a student, I have neither given nor received unauthorized aid on this academic work.” A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.

Other Administrative Issues

  • Incompletenes: An incomplete (I) final grade will be given only by prior arrangement in exceptional circumstances conforming to departmental policy in which the bulk of course work has been completed in passing fashion.
  • Drop Policy: It is your responsibility to drop the course if you are enrolled but decide not to complete the course — there are no “automatic” drops due to nonattendance. The University allows a retake of a course with removal of the prior grade, at most once per course, for a maximum of five courses.
  • Students with Disabilities: If you have any physical or learning disability which will make it difficult for you to carry out the work as I have outlined in this syllabus or which will require academic accommodations, please notify me the first two weeks of the course.
  • Harrassment: One purpose of your education is to help you develop skills, approaches, and abilities that are necessary for effective teamwork, and for your success in your profession and as a citizen. It is important that you understand your rights and responsibilities regarding the University’s Sexual and Racial Harassment policies (full text of the policies can be found on KSU’s web site at If you experience any situations, in or out of class, that seem inappropriate or that make you uncomfortable, a list of resources and courses of action to assist you can be found on the College of Engineering web site at
  • Expectations for Classroom Conduct: All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Government Association By Laws, Article VI, Section 3, number 2. Students that engage in behavior that disrupts the learning environment may be asked to leave the class.
  • Campus Safety: Kansas State University is committed to providing a safe teaching and learning environment for student and faculty members. In order to enhance your safety in the unlikely case of a campus emergency make sure that you know where and how to quickly exit your classroom and how to follow any emergency directives. To view additional campus emergency information go to the University’s main page,, and click on the Emergency Information button.
  • Copyright Issues: Class and lecture notes for this course carry a copyright. Students are prohibited from selling (or being paid for taking) notes during this course to or by any person or commercial firm without the express written permission of the professor teaching this course.

For a more complete discussion of these issues see the course policies for the College of Engineering at Kansas State University:

This course is modeled after David Schmidt's CIS 501, Spring 2014 course.