CSCI360 – Syllabus – Spring 2016

Instructor

Aspen Olmsted
Course website : http://blogs.cofc.edu/olmsteda
Tel: 843.953.6600
Email: Please use olmsteda@cofc.edu with CSCI360 in the subject line
Office: Harbor Walk East 315
Office hours: Office hours: TR 8:10 – 8:25 AM, T 2:00 – 2:50 PM

Class place and time

Classroom: Harbor Walk East 334, Time: TR 8:30 – 9:45 am

Catalog description

CSCI 360 Software Architecture and Design – This course covers the process of constructing software, including the structural views of software components, and their characteristics and interrelationships, at a high level of abstraction. The course also covers the design principles that govern the purpose, structure, development and evolution of software components. The informal laboratory component of the course uses software design tools to reinforce design processes and associated design representations.
Prerequisite: CSCI 230. Prerequisite or co-requisite: COMM 104.

Course Outcomes

  1. Describe the ethical issues associated with software architecture and design.
  2. Describe and evaluate how iteration with an agile approach works to create a resilient OO analysis and design process such as the Unified Process
  3. Work in teams to design software
  4. Analyze a software application problem with use cases.
  5. Produce a conceptual domain model with UML class diagram, associations, roles, multiplicities
  6. Use System Sequence Diagrams to illustrate operations
  7. Produce operation contracts.
  8. Describe evaluate the most common logical architectures for software systems and the nature of message passing among architectural components.
  9. Explain the nature and use of software patterns and give at least one illustrative example complete with code.
  10. Demonstrate the basics of software object design and the assignment of responsibilities and collaborations with reference to GRASP.
  11. Use UML activity diagrams to analyze and model processes
  12. Use UML state diagrams to analyze and model states.
  13. Demonstrate  basic design principles: Law of Demeter, Liskov Substitution Principle, SOLID
  14. Explain and implement test-driven development
  15. Exhibit a basic working knowledge of GUI development using an IDE.
  16. Produce a Software Architecture Document
  17. Write and present orally the analyses of topics in software analysis and design

Professor Assumptions

I am assuming because you are in this class you want to learn about software architecture.  Therefore, it is my job to use the 40 hour long classes and 80 hours of outside work to get you there.

Optional text

Object-Oriented Software Engineering, by B Bruegge and A Dutoit, 2009. Retail Price $140.  Used prices from  $78.  Electronic prices from $55.

Grading scale

100-90 (A); 87-89 (A-); 86-84 (B+); 80-83 (B); 79-77 (B-); 76-74 (C+); 73-70 (C); 69-67 (C-); 66-60 (D); else (F)

Evaluation schedule

30% Comprehensive Test
30% Quizzes
30% Group Project
10% Homework Assignments

Homework Assignments

During the semester you will be assignment many exercises to complete at home to get you ready for the next day of class.

Group Project

During the semester we will be designing and prototyping a real cloud based application  Each student will be organized into teams.  Each team will be assigned a stakeholder at the organization.  Over the semester the team will develop the design documentation and prototypes for the functionality they are assigned.  The teams will meet with the professor for initial interviews and will follow up with stakeholders with outstanding questions.  It is imperative that student teams act professionally in all communication with the external organization.  At the end of the semester  each team will give presentation of ten minutes in duration walking through the design of their functional areas.

Quizzes

Every few weeks we will have a quiz on the theoretical material covered in class and in the online-lectures.  Quiz dates and topic will be posted in advance in Oaks.  If you are sick on the day of the quiz you must notify the professor in advance via Email.  An alternative exercise will be given to replace the quiz grade.

Comprehensive Test

We will have one comprehensive final test given towards the end of the semester covering the theoretical material for the course.

Classroom disruption

Please read the College of Charlestons Student Code of Conduct. When you come to class please turn off your cell phones and all other electronic communication devices.  I do encourage discussion so if you have a question do not hold back from interrupting me if you are afraid I have moved on.  If it is something I will talk about a little later I will note it on the board so we do not forget.

Disabilities

If you have a documented disability and are approved to receive accommodations through SNAP Services, please contact me.

Student Honor Code

I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before acting! I encourage collaboration, but you must document it. Thus, each student will submit their own homework and, when collaborating, provide a reference to those people and documents consulted.