UCC/UGC/YCC Proposal for New Course 1. Effective BEGINNING of what term and year?: Fall 2012 See effective dates calendar. Electrical Engineering and 3. Academic Unit: Computer Science 2. College: CEFNS 4. Course subject and number: CS 540 5. Units: 3 6. Long course title: Advanced Software Architecture (max 100 characters including spaces) 7. Short course title: Advanced Software Architecture (max. 30 characters including spaces) 8. Catalog course description (max. 60 words, excluding requisites): Graduate level exploration of the design of software architectures, including foundational concepts, architectural styles, architecture description languages and modeling notations, domain-specific architectures, product-line architectures, and the role of architecture and architects in the software engineering process. 9. Grading option: Letter grade Pass/Fail Both 10a. UGC approval date*: 02/15/2012 10. Co-convened with: CS 440 (For example: ESE 450 and ESE 550) *Must be approved by UGC before UCC submission, and both course syllabi must be presented 11. Cross-listed with: (For example: ES 450 and DIS 450) Please submit a single cross-listed syllabus that will be used for all cross-listed courses. 12. May course be repeated for additional units? 12a. If yes, maximum units allowed? 12b. If yes, may course be repeated for additional units in the same term? Revised 06/22/2011 Yes No Yes No 1 13. Prerequisites: CS 386 14. Co requisites: NONE 15. Is this course in any plan (major, minor or certificate) or sub plan (emphasis or concentration)? Yes No If yes, describe the impact and attach written responses from the affected academic units prior to college curricular submission. 16. Is there a related plan or sub plan proposal being submitted? If no, explain. Yes No 17. Does this course include combined lecture and lab components? Yes If yes, note the units specific to each component in the course description above. No 18. Does this course duplicate content of existing courses? Yes No If yes, list the courses with duplicate material. If the duplication is greater than 20%, explain why NAU should establish this course. 19. Names of the current faculty qualified to teach this course: John Georgas 20. Justification for new course. One of the critical abilities students of computer science will need in their future careers is the expertise of system design, and software architecture is the area of computer science that studies the design and composition of large-scale software systems. This proposed course provides a graduate-level opportunity to critically study software architecture in depth, tackling design techniques and gaining expertise that are critically important in the professional context and their future career advancement. Furthermore, the graduate context allows for independent research and development of new ideas that advance the state of the art of the field, expressed in a significant scholarly paper. The course has been offered previously as a 599 course, was well received, and addresses an important need of further depth in the department’s graduate course offerings. Answer 21-22 for UCC/YCC only: 21. Is this course being proposed for Liberal Studies designation? Yes If yes, forward this form along with the appropriate supporting documentation to the Liberal Studies Committee. No 22. Is this course being proposed for Diversity designation? Yes If yes, forward this form along with the appropriate supporting documentation to the Diversity Committee No Revised 06/22/2011 2 Scott Galland Reviewed by Curriculum Process Associate 01/03/2012 Date Approvals: 03/21/2012 Department Chair/ Unit Head (if appropriate) Date Chair of college curriculum committee Date Dean of college Date For Committee use only: UCG/UGC/YCC Approval Date : Approved as submitted: Yes No Approved as modified: Yes No : : Please attach proposed Syllabus in approved university format. Revised 06/22/2011 3 College of Engineering, Forestry & Natural Sciences Department of Electrical Engineering and Computer Science Fall 2012 Course: CS 540 – Advanced Software Architecture Meeting Time: TuTh 11:10 AM - 12:25 PM, 69-314 Credit Hours: 3 Instructor: Dr. John Georgas Office: 69-265 Office Hours: TBD Course Prerequisites: CS 386 Course Description Graduate level exploration of the design of software architectures, including foundational concepts, architectural styles, architecture description languages and modeling notations, domain-specific architectures, product-line architectures, and the role of architecture and architects in the software engineering process. Learning Outcomes Upon successful completion of this course, graduate students will be able to: Describe the principles of software architecture; Apply architectural best-practices to software design; Describe and apply software architecture modeling notations; Demonstrate the ability to perform advanced analysis of software architecture research literature; Demonstrate the ability to lead class discussions and lecture on recent developments in software architecture state-of-the-art; Demonstrate the ability to synthesize results from the software architecture research literature in order to identify trends and emerging fields; and, Demonstrate the ability to identify shortcomings in the software architecture research literature and describe possible solutions to these shortcomings. Course Structure This course offering will consist of a number of elements: Lectures that meet three hours per week to present and discuss topics relating to software architecture, homework assignments that will sharpen students' understanding of the material and provide a chance to apply concepts from lecture, graduate student presentations and leading discussions that will give students a chance to share their insights, and reading assignments that will challenge students to think critically about current research directions in software architecture. Graduate students will also be required to write an in-depth, journal-quality research paper on a selected topic to be decided on in collaboration with the instructor, which will require significant additional writing and reading effort. Revised 06/22/2011 4 For all course-related work, graduate students will be held to a higher standard of professionalism and quality of work than one would expect to find in the equivalent undergraduate course, as befits a graduate level experience. Required Textbook Software Architecture: Foundations, Theory, and Practice. Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. John Wiley & Sons, Inc. (ISBN: 9780470167748) Graduate students will also be required to read significant outside research literature; selected readings are found below: Perry, D. E. and Wolf, A. L. Foundations for the Study of Software Architecture. ACM Software Engineering Notes 17(4):40-52, 1992. Garlan, D., Allen, R., and Ockerbloom, J. Architectural Mismatch: Why Reuse is So Hard. IEEE Software 12(6):17-26, 1995. Carzaniga, A., Rosenblum, D.S., and Wolf, A.L. Achieving Scalability and Expressiveness in an Internet-Scale Event Notification Service. In the Proceedings of the 19th ACM Symposium on Principles of Distributed Computing, p. 219-227, ACM Press, July 2000. Asuncion, H. U., Francois, F. and Taylor, R. N. An end-to-end industrial software traceability tool. In Proceedings of the 6th joint meeting of the European Software Engineering Conference and the 14th ACM SIGSOFT Symposium on Foundations of Software Engineering (ESEC/FSE 07), p. 115 - 124, ACM Press, September 2007. Grundy, J. and Hosking, J. Supporting Generic Sketching-Based Input of Diagrams in a Domain-Specific Visual Language Meta-Tool. In Proceedings of the 29th International Conference on Software Engineering (ICSE '07), p. 282 - 291, IEEE Computer Society, 2007. Brun, Y. and Medvidovic, N. An Architectural Style for Solving Computationally Intensive Problems on Large Networks. In Proceedings of International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07), 2007. Course Outline For a more detailed outline, check the course schedule. Topic Introduction Architecture and software engineering Basic architectural concepts Architectural design and styles Connectors Modeling and notations Visualization Analysis Implementation Applied architectures Revised 06/22/2011 Chapter 1 2 3 4 5 6 7 8 9 11 5 Architectural adaptation DSSAs and PLAs 14 15 Evaluation and Grading Your final grade for this course will be determined through the assessment of a number of exams, assignments, and readings that are summarized below: Assignment Homework assignments Research readings and analysis short papers Class discussion and participation Research reading presentations Research paper Midterm exam Final exam Grade Weight % 10% 20% 5% 10% 15% 15% 25% Grades will be awarded on the following scale: Percentage Grade 90% or above 80% through 89% 70% through 79% 60% through 69% 59% or below Letter Grade A B C D F There is no "curve;" your grade is completely up to you and is not in any way affected by the grades of your classmates. If you feel I've made a mistake in grading your assignment, please come visit me during office hours. I will very happily explain my reasoning for deductions and correct mistakes! However, any corrections must be discussed and made within a week of the assignment's return date. Sometimes instructors make mistakes, and I am no exception: exams are harder than expected, or assignments are just too optimistic for the time allotted. In these rare cases, I reserve the right to modify the class's grades before their final submission. This modification is subject to the following rules: (1) the same modification will be applied to the grades of all students, and (2) the modification may never result in a lower grade, but always a higher one. Submission and Late Policy All assignments are due at the beginning of class on each assignment's due date. Drop them on my desk as you come in. There is a 15 minute "grace" period before late penalties kick-in, to account for transportation and parking related delays -- please don't abuse this courtesy. Revised 06/22/2011 6 In order to get assignments back to you in a timely manner, I depend on having all assignments turned in on time. As a result, there are stiff late penalties: Each hour the assignment is late is worth a 10% penalty. The timer doesn't stop until the assignment is in my possession, even if I have already left for the afternoon. I would much rather you turn in an incomplete assignment on time than a complete one hours late. There are no "make-up" exams. If you fail to take any of the exams, the score for that exam is a zero. All that said, exceptions for exceptional circumstances can, of course, be made. If you are unable to make it to class due to a serious illness or injury, let me know as soon as possible (and be prepared to offer any supporting documentation I ask for). Institutional excuse forms must be submitted to me at least 5 business days before the first day of absence they cover, or they will not be honored. Any arrangements to make up missed work are solely my discretion. Attendance, Readings and Lecture It is critical that you attend every course meeting. The readings and lectures will go hand-in-hand and will not necessarily cover the same material. One will reinforce the other, and -- to do well -- you should be prepared to come to lecture having read (or, at the very least, skimmed) through the reading assignments for the day. This will allow you to more actively participate during lecture, which will make the course much more enjoyable for all of us. Exam content will be drawn from both. Electronic Devices Feel free to bring your laptops and take electronic notes during class. Note that watching Youtube videos or Facebooking does not count as taking notes. Please be courteous to me and to your classmates by silencing your cell phones. I reserve the right to ask you to stop using any device if it is bothersome during class. The Site The pages of the course's home site are the central course information and announcement clearinghouse, along with your email. I would ask that you check your email daily, at the very least and visit the site daily as well. Keep your eyes glued to the News section of the main page for announcements of changes, and to the Schedule that will be updated often with links to lecture notes and assignment details. Contact and Email Policies Please don't hesitate to drop by my office or send me an email with any questions or concerns. I will happily do my best to answer your questions and address your concerns. I reserve the right to ask you to come in for a chat during office hours for long answers, and reserve email for shorter answers. I will answer your emails as soon as I possibly can, but don't bank on a response time measured in minutes (though, that may sometimes happen too). Very often, students will have the same question, but only one of them will send an email my way asking it. Therefore, my default policy is to share answers to email questions having to do with the course content with the class mailing list! I will do my best to strip off any identifying information from the text of your email before I do so. If Revised 06/22/2011 7 you would rather I not share your question, please indicate that in your email. Obviously, I will never share a question that is personal in nature. My email is filtered, so to ensure that your message actually lands in my inbox, please include "CS565" in the subject line. Also, please make sure that you put your name somewhere in the message. Without this information, there's no guarantee that I will get and answer your email. Academic Dishonesty One of the foundations of academic life is honesty. Assignments and exams are ways to measure your understanding of the material being covered in the course, not medieval implements of torture. By cheating, you are cheating yourself out of the chance to have your understanding accurately evaluated. Grades are an indication of your final proficiency over the material, and not a form of punishment. Be honest and fair to your fellow classmates: do your own work. You'd also be surprised at how easy it is to spot cheating. Cheating and any other form of academic dishonesty (such as "borrowing" text or materials) will be dealt with seriously. Consequences to incidents of academic dishonesty may include a zero grade in the assignment in question, an F in the course, or may be referred to the university's channels and result in expulsion from NAU -- any and all at my discretion. Just don't do it! Special Accommodations I am committed to a classroom that is open to all. If you feel you need any special accommodations for any component of the course, please: (1) let me know immediately, and (2) contact Disability Resources immediately, so accommodations can be made. NAU Policies Please familiarize yourselves with the university's general policies that are available at the Engineering Sciences front desk and in various online locations within the university's site: http://www4.nau.edu/avpaa/UCCPolicy/plcystmt.html. Safe Working and Learning Environment Students with Disabilities Medical Insurance Coverage for Students Academic Dishonesty Institutional Review Board Accommodation of Religious Observance and Practice NAU Classroom Management Statement Building Evacuation Policy NAU Class Policy Statement Engineering Sciences Code of Ethics Revised 06/22/2011 8