CS
551 Advanced Software Engineering
Winter
2006
Instructor:
Yugi (Yugyung) Lee, Ph.D.
Office: FH 560D, Phone:
235-5932, Email: leeyu@umkc.edu
Office Hour: T/TH 2:00
– 3:00
or by appointment
Class Hours: T/TH 12:30 – 1:45pm in FH260
References:
o
Objects,
Components, and Frameworks with UML; the catalysis approach, Desmond f. D'souza and Alan Cameron Wills, Addison-Wesley, 1999
o
Design Patterns: Elements of Reuseable
Object-Oriented Software by E. Gamma, R. Helm, R. Johnson and J. Vlissides, Addison-Wesley, ISBN: 0-201-63361-2, Copyright 1995.
o
Middleware for Communications, Qusay H. Mahmoud (Editor), ISBN: 0-470-86206-8
o
Engineering Distributed Objects, Wolfgang Emmerich, John Wiley &
Sons,
o
Component Software: beyond
Object-oriented programming, Clemens Szyperski,
Addison-Wesley, 1999
o
Technical Papers (Class
Handout/Website)
Prerequisites:
o
CS451 (Software Engineering)
o
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 Web-based Middleware (Web Services), Pervasive
Middleware,
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:
·
Individual
Work (60%):
1
Exams: 20%
2
In-class
exercises: 15%
3
Journal Club: 15%
o
Present a paper in class.
o
Participate in discussion of the
issues raised in the talks in class.
o
Critique the required readings. 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.
4
Labs: 10%
Programming & short report
·
Group Work
(40%):
1.
Objectives of Project:
Student teams (three
or four
students) will work on building a real-world software system. Incremental
outcomes will be generated according to service/component-oriented development
paradigm (requirement analysis and design, implementing, testing, and
integration). During the development process, students will learn Agile process model, Object-Oriented 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
proposal 8%
·
Skill
building +
Plan 6%
·
Increments
(4)
16%
·
Project
Report & Presentations 10%
Grading
policy: 100
- 94
= A; 93 - 90 = A-; 89 - 87 = B+; 86-83 = B; 82- 80 = B-
and so on.
Contents of Lecture:
Topic 1: Today's Software Systems
Topic 2: Service-Oriented Software Engineering
Topic 3: Object Oriented Modeling (UML)
Topic 4: Software Architecture and Design Patterns
Topic 5: Case study: Web Services Architecture
Late Submission:
The late policy on
assignments is 10% off the grade if late within one day, 20% off the grade for
two days late, 30% off the grade for three days late. Assignments that are submitted more than three days late will no longer
be accepted. More information will be available on the Announcements web
page.
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 sign-in
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."