CS 551 Advanced Software Engineering Fall 2004 Instructor: Yugi (Yugyung) Lee, Ph.D. Office: FH 560D, Phone: 235-5932, Email: leeyu@umkc.edu Office Hour: T/TH 4:30 – 5:30 or by appointment Project Mentors: Kartik Vishwanath (kvktb@umkc.edu), Arvind Gautam (asg3hb@umkc.edu) Venkatesh Viswanath (vsvvh4@umkc.edu), Singh, Sachin Birendra (sbs7vc@umkc.edu) Class Hours: R 5:30pm – 8:15pm Text Book: o o Objects, Components, and Frameworks with UML; the catalysis approach, Desmond f. D'souza and Alan Cameron Wills, Addison-Wesley, 1999 Middleware for Communications, Qusay H. Mahmoud (Editor), ISBN: 0-470-86206-8 References: o o o Engineering Distributed Objects, Wolfgang Emmerich, John Wiley & Sons, LTD, 2000 Component Software: beyond Object-oriented programming, Clemens Szyperski, AddisonWesley, 1999 Technical Papers (Class Handout/Class Website) Prerequisites (Mandatory): o o CS451 (Software Engineering) Object-Oriented programming language (Java, C++) Course Overview: As a software environment (i.e., Internet) is evolving very rapidly, it is necessary to understand the current trend of software systems and to identify the technologies and requirements for the system development. Some requirements and characteristics of the current system can be determined as comparability, heterogeneity, scalability and distribution. Emerging concepts, such as “Component-Oriented architecture/Service-Oriented architecture”, appear to be a solution for the development of software system. The distributed Software Engineering focuses on the objects developed and the components intended from their inception to be used within a framework in which they are placed in containers and combined with other components. A Service-Oriented architecture is essentially a collection of services that communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. The major objectives of the course are to study, apply and evaluate current best practices in collaborative, distributive software development techniques and tools. (1) This course will introduce advance UML (Unified Modeling Language) and discuss different middleware frameworks, such as Webbased Middleware (Web Services), P2P Middleware (JXTA), Grid Middleware (Globus, Condor), Pervasive Middleware (Jini), etc. Those approaches will be compared and evaluated. (2) This course will provide students hands-on experience programming components/services in XML and Web Services. Through this exercise, students will understand how components/services work in a distributed computing environment. (3) One third of this course will devote considerable attention to journal club which guides students critically evaluate technical papers and introduce students to technical discussion. Each student is required to present a technical paper to the class. The purpose of the presentation is to describe, and critically review, the important points of a paper and to lead discussion of the paper's content. We assume that students in this course are willing to thoroughly research topics related to the course and are actively participating in the software projects of the assignments. This is a heavy load course. The course mainly consists of three parts: (1) Lectures by instructors, (2) Student presentations, (3) In-class team meetings for project coordination and software development. Student groups will have the responsibility to research assigned topics in depth, present the main issues and lead the discussion of the background, aims, objectives, techniques and application of the topic. All students will be expected to take an active part in the discussion and critical analysis of the topics covered. Assessment: 1 2 3 Individual Work (60%): Exams (3): 30% Journal Club (7 – 8): 20% (1) Present/Attend talks in class. (2) Participate in discussion of the issues raised in the talks in class. (3) Critique the required readings (1 or 2 pages) and Post it on the web. The paper critique must both summarize the paper and offer at least half a page of Critical Comments. Also it should include at least THREE critical questions. Your critique must include a complete citation of the paper. Lab (3): 10% (1) Pair programming (2) Programming Assignment: 1. Lab 1: XML-I (3%) 2. Lab 2: XML-II (3%) 3. Lab 3: Web Services (4%) (3) Short report Group Work (40%): 1. Objectives of Project: Student teams (five or six students) will work on building a real-world software system. Incremental outcomes will be generated according to service/componentoriented development paradigm (requirement analysis and design, implementing, testing, and integration). During the development process, students will learn ObjectOriented Specification/Design language/tool (UML, Rational Rose or Together), Design patterns and styles, Object oriented programming. These processes demand accurate and complete specification, realistic plans, schedules and sizing estimates, acceptance test criteria, risk analysis, configuration control, etc. 2. Project Plans and Requirements: Each group will produce formal specification, analysis and design, implementation and presentation. Project 1 (8%): Project proposal and Research Project 2 (8%): Requirements specification and System design Project 3 (8%): System Prototyping Project 4 (8%) System Implementation Project 5 (8%): Project report Grading policy: 94-100 = A; 90-93 = A-; 85-89 = B+; 75-84 = B; (≤ 74) = B- and below. Contents of Lecture: Topic 1: Today's Software Systems o What's a current trend of Software Systems? Distributed System? o Examples of Distributed Systems o New Software Requirements o The Evolution of Object Technology Topic 2: Service-Oriented Software Engineering o What is Object? Component? Service? o What is Object-oriented SE? Component-oriented SE? Service-oriented SE? o Frameworks, Patterns, Software Architecture, Components, Services o Designing for reuse o Service Oriented Architectures (Web Services, Jini, Grid) Topic 3: Object Oriented Modeling (UML) o Modeling with Objects o Static Models: Object Attributes and Invariant o Behavior Models: Object Types and Operations o Interaction Models: Use Cases, Actions, Collaboration Topic 4: Web-Based Middleware o Web Services (XML, WSDL, SOAP) o Web Service Composition (Workflow) o QoS for Web Services based Workflow Topic 5: P2P Middleware o Peer to Peer Computing o JXTA o P2P Messaging Systems o Hybrid Middleware Topic 6: Grid Middleware o The Grid o Grid Architecture o Grid Middleware Standardization o Grid Middleware Services Topic 7: QoS Middleware o Quality of Services o QoS Provisioning o QoS Measurement o QoS Enforcement Topic 8: Pervasive Middleware o Mobile Distributed Systems o Context-Awareness o Context-Aware Services Schedule (Tentative) Week Date 1 Aug. 26 2 Sep. 2 3 Sep. 9 4 Sep. 16 5 Sep. 23 Lecture Topic No Class (“Celebrate UMKC” DAY) Advanced Software Engineering Presentation: Project Proposals Lecture: UML Catalysis Model Presentation: Lecture: UML Catalysis: Static Model Presentation: Lecture: UML Catalysis: Dynamic Model Presentation: 6 Sep. 30 7 Oct. 7 8 Oct. 14 9 Oct. 21 10 Oct. 28 11 Nov. 4 12 Nov. 11 UML Catalysis: Interaction Model Midterm I : 7:00 – 8:15 Middleware- Introduction Presentation: Web Middleware Presentation: P2P Middleware Presentation: Grid Middleware Presentation: QoS Middleware Midterm II: 7:00 – 8:15 Pervasive Middleware Presentation: Middleware – Summary 13 Nov. 18 14 Nov. 25 Thanksgiving (no class) 15 Dec. 2 Project Presentation 16 Dec. 9 Project Presentation 17 Dec. 16 Presentation: FINAL EXAM 5:30 – 8:15 Policy on Student Attendance and Make-ups: Each student should make every attempt to get to class on time. The instructor is willing to circulate a signin sheet at every class and missing more than two class sessions may result in a reduced grade. With the exception of documented emergencies, medical reasons or out of town travel related to work, make-ups will not be possible. Whenever possible, advance notification is required. University Policy on Student Conduct: Cheating, plagiarism, disruptive behavior and other forms of unacceptable conduct are subject to strong sanctions in accordance with university policy. See detailed description of university policy at the following URL: http://www.umkc.edu/html/handbook/policies-and-regulations/conduct.html University policy on English proficiency of Instructors: "Students who encounter difficulty in their courses because of the English proficiency of their instructors should speak directly with their instructors. If additional assistance is needed, they may contact the UMKC Help Line at 816-235-2222 for assistance."