Southern Polytechnic State University School of Computing and Software Engineering SWE 6653 – Software Architecture Course Syllabus and General Information Instructor: Dr. Hassan Pournaghshband Voicemail: 678-915-4282 Email: hpournag@spsu.edu Website: educate.spsu.edu/hpournag Office: J370 Office Hours: MW: 11:00AM-3:00PM, TTh: 3:00-6:00PM, and by appointment TEXTBOOK: Required: Introduction to Software Engineering Design: Processes, Principles, and Patterns with UML2 by Christopher Fox COURSE DESCRIPTION: This course examines the principles and methods of the architectural design of complex, large-scale software systems. Macro-level system architecture with an emphasis on approaches to interconnection and distribution of both current and emerging architectural systems (e.g., Model-View-Controller (MVC), serviceoriented, agent-oriented) as well as micro-level architecture including patterns, frameworks, and component-based software engineering are covered in detail. COURSE OBJECTIVES: The objective of this course is to first cover the general topics related to software architecture and design. Then cover both macro-level architecture and micro-level architecture emphasizing on patterns, component-based software engineering, and also architectural systems such as agent-oriented, service-oriented and model-view controller. The topics covered are: What is software architecture and design, What is software product design, What are product design analysis and product design resolution What is software engineering design, What are engineering design analysis and engineering design resolution, What is architectural design resolution, What are patterns and their role in software design. COURSE OUTCOMES Upon completion of this course, students will be able to: Describe the concept of software architecture and its application. Describe the role and advantage of design patterns in software engineering. Distinguish between architectural styles and describe their advantages and disadvantages. Evaluate the suitability of a software architecture (existing or proposed) for a given task. GRADING: 1. Mid-Term Exam 30% 2. Final Exam 30% 4. Homework Assignments 30% 4. Research Paper 10% Total 100% Grading Scale: 90 and above: A, 80-89: B, 70-79: C, and below 70: F. EXAMS: Final Exam will be cumulative. HOMEWORK ASSIGNMENTS: There will be several homework assignments. Carefully follow the guidelines for each assignment and submit it by due date. RESEARCH PAPER: All students are required to prepare a paper covering issues related to software architecture and design. Carefully follow the guidelines for research paper preparation and submit your proposal and the final paper by due date. DISCUSSION PARTICIPATION: All students are encouraged to participate in weekly class discussions. I’ll monitor your discussions and will give you my feedback when necessary. STUDENTS WITH DISABILITIES who believe that they may need accommodations in this class are encouraged to contact the counselor working with disabilities at (678) 915-7244 as soon as possible to better ensure that such accommodations are implemented in a timely fashion. For more information, visit http://www.spsu.edu/attic/Dis_Svcs.html. COLLABORATION AND PLAGIARISM: Group discussion and study are examples of collaboration. Everything must be done individually, and may not be done together with anybody else. Copying another’s work will be considered cheating, and the minimum penalty for such academic dishonesty is a mark of zero or a failing grade to all involved parties, according to university policy. If you are not sure you understand this policy, please seek clarification from the professor. The following links are of particular help in understanding academic dishonesty and plagiarism (courtesy Professors Brown, Harbort, Halstead-Nussloch, and Murphy): http://www.spsu.edu/cs/faculty/bbrown/papers/conduct.html (Academic Conduct) http://www.spsu.edu/cs/faculty/bbrown/papers/gshpla.html (Plagiarism and References) OTHER CLASS POLICIES: Include your name, contact information (email and phone numbers), class and section, and professor name with all submissions. You must submit them electronically in GeorgiaD2L WHAT YOU WILL NEED: You will need a modern computer with a current Web browser such as Internet Explorer 6, Netscape 7.1, Mozilla, Firefox or Opera. You will need continuous Internet access throughout the term because frequent participation is expected and assignments are due every week. If your Internet access is not reliable or you will be traveling, be sure you have a "backup plan" for Internet access. "Technical difficulties" are not a suitable excuse for late or incomplete work. A fast Internet connection will improve your online experience, but you should not get a high-speed connection specifically for this course; a dial-up modem will be sufficient. (See below if you download Open Office.) You will need a word processing program that will let you create files that can be opened with Microsoft Word. This does not mean you need to buy Microsoft Word. You might want to do that because, as a student, you can get substantial academic discounts on Microsoft products. However, there are alternatives. One such alternative is Open Office, which is available free of any charge from http://www.openoffice.org/. Open Office is a 64MB download, so if you decide to use this software, arrange to get it using a fast connection. Be sure you save documents you create for course assignments in .doc format. You will need the Adobe Reader or a similar program that will open documents in PDF format. You can download the Adobe Reader, which is free, directly from Adobe at http://www.adobe.com/products/acrobat/readstep2.html. You do not need to be able to create PDF documents. SWE 6653 – Software Architecture Topic Outline NOTE: You will also find modules corresponding to each of the weeks in the online course materials, with a document that provides guidance on how to use the materials and what to do. Please note that here weeks 1 through 16 refer to those 16 weeks that school and classes are in session. Week 1: Introduction to the course and Software Architecture Week 2: Overview of Software Architecture Week 3: Software Product Design Week 4: Use Cases Week 5: Software Engineering Design Analysis Week 6: Software Engineering Design Resolution Week 7: MID-TERM EXAM Week 8: Architectural Design Week 9: Architectural Design Resolution Week 10: Static Mid-Level OO Design Week 11: Dynamic Mid-Level OO Design Week 12: Dynamic Mid-Level State-Based Design Week 13: Low-Level Design Week 14: Architectural Styles Week 15: Design Reuse Course Review and Conclusion Week 16: FINAL EXAM