Syllabus CS 3411B (Hutto) Spring 99 Georgia Tech

CS 551 Advanced Software Engineering
Fall 2004
Yugi (Yugyung) Lee, Ph.D.
Office: FH 560D, Phone: 235-5932, Email: [email protected]
Office Hour: T/TH 4:30 – 5:30 or by appointment
Project Mentors:
Kartik Vishwanath ([email protected]), Arvind Gautam ([email protected])
Venkatesh Viswanath ([email protected]), Singh, Sachin Birendra ([email protected])
Class Hours: R 5:30pm – 8:15pm
Text Book:
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
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):
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.
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 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)
Aug. 26
Sep. 2
Sep. 9
Sep. 16
Sep. 23
Lecture Topic
No Class (“Celebrate UMKC” DAY)
Advanced Software Engineering
Presentation: Project Proposals
Lecture: UML Catalysis Model
Lecture: UML Catalysis: Static Model
Lecture: UML Catalysis: Dynamic Model
Sep. 30
Oct. 7
Oct. 14
Oct. 21
Oct. 28
Nov. 4
Nov. 11
UML Catalysis: Interaction Model
Midterm I : 7:00 – 8:15
Middleware- Introduction
Web Middleware
P2P Middleware
Grid Middleware
QoS Middleware
Midterm II: 7:00 – 8:15
Pervasive Middleware
Middleware – Summary
Nov. 18
Nov. 25
Thanksgiving (no class)
Dec. 2
Project Presentation
Dec. 9
Project Presentation
Dec. 16
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:
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."
Related flashcards
Create flashcards