Course Name: Software Architecture
Course Description: Software development life cycle, software categories, techniques for effective software development, software design levels - high level, architectural level, low level, modularization, concurrency, cohesion, coupling, design verification.
Catalogue Description: Architectural abstraction of software systems. Software elements and how the elements relate to each other. Looking at a software system in terms of its elements, how they are arranged, how they interact, how they are composed, what their functional and behavioral properties are. Describing software in a modular/hierarchical manner. Describing interfaces between modules. Techniques for partitioning modules into submodules. Relationship of hardware architecture and software architecture descriptions of a Software system.
Detailed weekly description will follow later
Tentative weekly desciption:
Software development life cycle, software categories, techniques for effective software development,
software design levels - high level, architectural level, low level,
modularization,
concurrency,
cohesion, coupling,
design verification.
Intermediate presentations (during the midterm exams week)
Grading: Term Project (individual) 50%, Final Exam 50%
Term projects, which are to be prepared individually, should be on a subtopic related to Software Design. Students will select a subtopic by October 6, then find at least two journal papers about this topic, published in the last 5 years. Studenst should first understand the work done, compare the two, and provide a personal point of view on the topic. There will be Intermediate and Final resentations and reports during the semester. Intermediate presentations will be done during the midterm exams period (November 13-24, schedule to be determined later), Final presentations will be done during the last week of classes (December 25-29).