Course website : http://blogs.cofc.edu/olmsteda
Email: Please use firstname.lastname@example.org with Subject = CSCI360
Office: J. C. Long Building 226
Office hours: MWF 10:00 – 11:00 AM
Class place and time
Section I – Classroom: J C Long 219, Time: TR 5:30 – 6:45 PM
Section II – Classroom: J C Long 219, Time: TR 9:25 – 10:40 PM
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.
- 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 analyses of topics in software analysis and design
I am assuming because you are in this class you want to learn about object-oriented
programming. Therefore, it is my job to use the 40 hour long classes and 80 hours of outside
work to get you there.
Object-Oriented Software Engineering, by B Bruegge and A Dutoit, 2009. Retail Price $140. Used prices from $78. Electronic prices from $55.
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)
30% Group Project
Each student will choose a semester long project and work with a group of 2 or more students to build a software product. Groups can be as large as you like but a group of 4 should produce twice the output of a group of 2. You should choose group members with different skills and experiences from your own. The project with be similar to the case study at the end of each chapter. For your product you deliver the activity discussed that week in the chapter.
Each chapter of the book has a series of exercises that builds on previous chapters from the book. You are encourages to work through the exercises by the class time on the following Thursday after the material has been covered. A small subset of the homework will be used as a basis for a 15 minute quiz at the beginning of the class. We will have 13 quizzes and the lowest grade will be dropped automatically. There will be no makeups for any reason. So if you miss class during quiz time this will become your lowest grade.
We will have one comprehensive final during finals week covering the material for the whole course.
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.
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