CSSE 374 – Software Architecture and Design I

General course information

Prerequisite:

CSSE 371 – Software Requirements and Specification

Meeting times and places:

Course Description:

The official course description from the course catalog reads:

Introduction to the architecture and design of complete software systems, building on components and patterns. Topics include architectural principles and alternatives, design documentation, and relationships between levels of abstraction.

Designing software is an integral part of engineering a software product. Poorly designed software exposes systems and the organizations they serve to many risks ranging from innocent defects injected during development to more sinister assurance vulnerabilities that might compromise the systems’ mission. Effectively designed software ensures a product that evolves with its changing environment, providing the requisite functionality within the expected performance parameters.

Design is both a process and a product – a creative process producing a software artifact that models key aspects of the system. This course presents software design principles in the context of software engineering that enables software engineers to produce and deliver software on-time, on-budget, and on specification. Students will be exposed to software engineering teams, the Unified Modeling Language (UML) and its application to analysis and design, and a range of software design activities and artifacts. Students will participate in a team project to gain an appreciation of the practical aspects of software engineering and an understanding of the interdisciplinary nature of design.

Instructors

Shawn Bohner – Section 1

Professor of Computer Science and Software Engineering

Email: bohner@rose-hulman.edu
Office phone: (812) 877-8685
Office address: Moench F-212
Office hours: TBA

Curt Clifton – Section 2

Assistant Professor of Computer Science and Software Engineering

Email: clifton@rose-hulman.edu
Office phone: (812) 877-8593
Office address: Moench F-222
Home page: http://www.rose-hulman.edu/~clifton
Office hours: I strive to be in every day from 8:00 a.m. until 5:00 p.m. Please stop by whenever. If my door is shut, just knock. I am also frequently available by email in the evenings. My schedule is available from my home page.

Text

Required Text

Applying UML and Patterns Cover Image

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3ed)
Craig Larman

ISBN 13: 978-0131489066
Publisher: Prentice Hall PTR
Copyright: 2004

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Work effectively with a team of software project stakeholders, including customers and members of the development team.
  2. Demonstrate object-oriented design basics like domain models, class diagrams, and interaction (sequence and communication) diagrams.
  3. Demonstrate a working knowledge of test-driven development and refactoring.
  4. Recognize the differences between problems and solutions and deal with their interactions.
  5. Use fundamental design principles, methods, patterns and strategies in the creation of a software system and its supporting documents.
  6. Identify criteria for the design of a software system and select patterns, create frameworks, and partition software to satisfy the inherent trade-offs.
  7. Analyze and explain the feasibility and soundness of a software design.

Electronic Distraction Policy

We’ll do our best to keep class interactive, but we recognize, and remember, that sometimes it is hard as a student to stay focused. With laptops in class, there are many more ways to become distracted than we faced as undergrads. And unfortunately modern distractions are much more pernicious; it is very easy to get drawn into things like IM conversations, RSS feeds, or Flash games.

We strongly encourage you to turn off IM and email software and only use other software for things directly related to class. If you choose to use non-class-related software during class, then you must sit in the back row. Doing so will prevent your classmates from being distracted by what is on your screen.

Grading

Grading Mechanisms

The learning outcomes for this course are listed above. We’ll be using various mechanisms to measure your progress against these learning outcomes. Among these are:

Grading Weights

The relative weights for each of these mechanisms are listed below.

Mechanism Weight
In-class quizzes 5%
Exams 30%
Homework Assignments 20%
Team project deliverables 35%
Project meetings 10%

We reserve the right to make small adjustments to this plan, with appropriate notice. All work will be graded both on correctness and on style; after all, your eventual customers will do the same.

Late Work

Late work will not be accepted, with the following exception:

You begin the term with two “late day” credits. You may use one of them on any non-project assignment, which will allow you to submit that assignment up to 24 hours after the due time. You may earn one additional “late day” per assignment by submitting it at least 24 hours before the due date. Occasionally, some particular assignment may be designated as a “no late day” assignment.

If you wish to use a late day for submitting late, or earn a day by submitting early, you must complete the Late Day Form on ANGEL before the assignment deadline.

Lost or Corrupted Files

You are expected to backup your computer files regularly. If you are unable to turn in an assignment on time because of a lost or corrupted file, then you must either complete it and turn it in late, subject to the Late Work policy above, or else turn in the most recent (uncorrupted) version that you have, subject to points off for any errors or incompleteness.

Integrity

Recall the Institute policy on academic misconduct:

"Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity."

Exams and homework will be done on an individual basis. The simple rule of thumb for individual work is:

Never give or use someone else's code or written answers.

Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.

Plagiarism or cheating will result in a negative grade of the same magnitude as the points possible for the assignment or exam. For example, cheating on an exam worth 100 points would result in a score of -100, roughly equivalent to getting a zero on two exams. Egregious cases of cheating will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem. So don't cheat.

If you sincerely believe that certain problems are too much busy work, then please bring it to our attention.

Syllabus developed by Curt Clifton and Shawn Bohner, based on earlier work by Curt Clifton and Mark Ardis.