MET CS 893: Agile
and Advanced Software Engineering Methods
Last updated April 25, 2007
|
Background of the
Instructor
changed if this is red |
Learning Objectives
changed if this is red |
|
Contacting
Eric Braude changed if this is red |
Plagiarism
Warning changed if this is red |
|
Evaluation of
Students changed if this is red |
Policies - Miscellaneous changed
if this is red |
|
Forums: Past and Present
changed if this is red |
Presentation
recommendations changed if this is red
|
|
Home Page
of Eric Braude changed if this is red |
Textbooks and
Materials changed if this is red |
|
Homework and Due Dates changed
if this is red |
Topics, Class
Dates & Readings
changed if this is red |
Contemporary
software engineering takes several distinct and rapidly changing forms. First, Agile methods are based on the need
for flexibility while applications are being built. Agile methods constitute a radical departure
from pre-existing methods: They rely on newly developed technologies such as
test-driven development, XUnit, and refactoring. Another form is the emergence of open-source
development. We discuss the
architectural and operational implications of open source development and
explore its relationship with agile methods.
The course will also discuss aspect-oriented programming, the
decomposition of applications into onshore and offshore components, design for
security, and formal methods. Laboratory course.
MET
CS 673 or equivalent.
Required
|
“Agile Software Development” by Martin (Prentice Hall) ISBN: 0135974445 |
|
“Understanding Formal Methods” by Monin
(Springer) “Aspect-Oriented Programming with AspectJ” by
Kisilev (SAMS) Probable: “Secure Systems Development With UML” by Jan Juerens ( “Balancing Agility and Discipline” by Boehm (Addison-Wesley) |
Absorbing and
creating advanced software engineering methods will be expected of all
students. To attain excellence, students
will be expected to create original analyses and comparisons. The course grade will be computed from the
following
Assignments:
35%
Project: 65%
The project will be in
three phases, weighted as follows:
phase 1 (problem statement): -- 1/7
phase 2 (analysis & design): -- 2/7
phase 3 (implementation and critical review): --4/7
Late homework will not be accepted unless there is a
reason why it was impossible to perform the work in time given work and
emergency conditions. In that case, e-mail the written reason should be
attached to the homework, which will be graded on a pass/fail basis if the
reason is accepted by me.
Click
here for generic information on how grades are allocated and
averaged in all of my classes.
Please cite all
references and uses of the work of other.
All instances of plagiarism must be reported to the College for
action. e-mail,
see or call me if you have any doubts about the proper use of others’ material.
In any case, clearly acknowledge all sources in the context they are used,
including code, of course. See plagiarism
policies for examples and a fuller explanation.
The purpose of the end-of-semester presentation is to share
with the class your impressions and lessons learned from carrying out the term
project. The following format usually
works well.
2 mins: Describe the application (1-2
slides)
2 mins: Describe why the technology
selected applies (1-2 slides)
5 mins: Describe the design and
outcome; use diagrams and screenshots where appropriate (1-3 slides)
4 mins: Describe negative lessons
learned (concentrate on your criteria and include scalability) (1-2 slides)
4 mins: Describe positive lessons
learned (concentrate on your criteria and include scalability) (1-2 slides)
|
Class # |
Date |
Category
|
Topic
|
Comment (These dates are estimated. See homework
site for actuals.) |
|
1 |
April 2 |
Process |
·
Agile
Processes |
Assign phase 1 |
|
2 |
April 9 |
Process |
·
Advanced
Software Processes ·
Introduction
to Aspect-Oriented Programming (AOP) ·
Geographically
distributed development |
|
|
3 |
April 16 |
Process |
·
Open
source case studies ·
Introduction
to the Eclipse and OpenOffice Open
Source Projects ·
Eclipse
is an environment for developing applications. |
Phase1 due Assign phase 2 |
|
4 |
April 23 |
Requirements |
·
Test-Driven
Development as Requirements |
|
|
5 |
April 26 |
Requirements |
·
Advanced
Requirements Methods ·
Open
source case studies |
|
|
6 |
April 30 |
Design |
·
Design
for Agile Processes |
|
|
7 |
May 3 |
Design |
·
Formal
and Emerging Design Methods ·
Creating
designs that can be decomposed into offshore components |
Phase 2 due Assign phase 3 |
|
8 |
May 7 |
Design |
·
Pair
Programming ·
Introduction
to Security in Development ·
UML
Designs for Security |
|
|
9 |
May 10 |
Geographically Distributed Development |
·
Trade-offs ·
Phases
in distributed mode |
|
|
10 |
May 14 |
Implementation |
·
Principles
of Advanced Implementation ·
Formal
and Emerging Implementation Methods |
|
|
11 |
May 17 |
Implementation |
·
Refactoring
in Implementation I |
|
|
12 |
May 21 |
Implementation |
·
Refactoring
in Implementation I |
|
|
13 |
May 24 |
To be decided |
|
|
|
14 |
May 30 |
|
·
Presentations |
Phase 3 due |
Spring 2006:Group home page: http://groups.yahoo.com/group/893F06
Summer 2006: Group home page: http://groups.yahoo.com/group/893Su06
Spring
2007: http://groups.yahoo.com/group/893Sp07 ;Group
email address: 893Sp07@yahoogroups.com