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