Recent Changes - Search:
ECG Home

GitHub

People

Publications

Calendar

Projects

Fall 2017

Older Courses

Spring 2017

Fall 2016

Spring 2016

Fall 2015

Spring 2015

Fall 2014

Spring 2014

Fall 2013

Spring 2013

Fall 2012

Spring 2012

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007

HOWTOs

edit SideBar

SoftwareEngineeringSpring2008

SoftwareEngineeringSpring2008.SoftwareEngineeringSpring2008 History

Hide minor edits - Show changes to output

May 20, 2008, at 08:33 PM by Fred Martin -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]][[Final Paper]][[Documentation]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]] [[Final Paper]] [[Documentation]]
May 15, 2008, at 11:25 PM by 76.118.143.3 -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]][[Final Paper]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]][[Final Paper]][[Documentation]]
May 12, 2008, at 01:23 PM by Fred Martin -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]][[Final Paper]]
May 11, 2008, at 06:05 AM by 76.118.160.14 -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]] [[ServerInfo]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
March 03, 2008, at 07:01 AM by 76.118.142.175 -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[DatabaseIdeas]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]] [[ServerInfo]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[VizIdea]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]] [[ServerInfo]]
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[DatabaseIdeas]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[DatabaseIdeas]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]] [[ServerInfo]]
February 19, 2008, at 07:35 AM by 76.118.142.175 -
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[DatabaseIdeas]] [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Calendar]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Build Calendar]]
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[Build Calendar | http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York Build | Calendar]]
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[Build Calendar]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[Build Calendar | http://www.google.com/calendar/embed?src=ja6orhu5j2cjm5vue8s0942ldo%40group.calendar.google.com&ctz=America/New_York]]
Changed lines 2-3 from:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]]
to:
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]] [[Build Calendar]]
February 13, 2008, at 04:45 PM by Fred Martin - created syllabus
Changed lines 1-9 from:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]]

Syllabus http://docs.google.com/Doc?id=dvv234n_2f3t8krm2

iSENSE project web site http://www.cs.uml.edu/isense



to:
[[iSENSE -> http://www.cs.uml.edu/isense]] [[LectureBlog]]
[[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]]

!!Overview

In this course, we will learn about software engineering by creating a
significant piece of software—a large, multi-faceted software
system.  This will be a team project in which the class will be formed
into sub-teams that tackle specific parts of the design, and integrate
their pieces into a whole.

We will learn how to design software by reading case studies of large
software design projects, considering theory of well-designed
software, and reflecting on the design process as our own projects are
underway.


From a technical perspective, we will:

* Discuss requirements elicitation, agile design, the role of
  documentation, design patterns, test-driven development, the
  second-system effect, and the role of community / peer-pressure in
  sotware design.

* Use the following technologies:  Java, MySQL, PostGreSQL, Moodle,
  PHP

* Work with source code control

!!A Bit More...

To generalize, there are two types of software engineering classes:
one in which everyone builds the same thing, and one in which everyone
builds something different. The former is good because it lets
instructors focus in on specific and particular theoretical
material. Instructors know exactly what problems you will be
encountering as you write code, because they have created the design
challenges expressly to expose certain ideas!  A great example of this
type of class is MIT's course 6.170,
[[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-170Fall-2005/CourseHome/index.htm|Laboratory in Software Engineering]].

On the other hand you have courses that are more representative of
life in the unstructured real-world, where every project is indeed
different.  As described by Diane Pozefsky in her
[[http://www.cs.unc.edu/~pozefsky/COMP523_s07/home.html | Software Engineering Laboratory at UNC]], this course is a
“faculty-coached team project.” Student teams in this type
of class might each have a different client and be working with wholly
different software technologies.

Here, we will take a middle ground.  Primarily, we will have project
implementation as the heart of the class.  But we will all be working
a joint project, and will share code and technologies.

!!Required Books

We will use two required books. They are ordered and available now at
the UML North Bookstore.  Please buy them there to make sure you have
them right away:

|| border=0 width=100% cellpadding=10
|| '''The Mythical Man-Month, 20th Anniversary Edition''' (1995) [[<<]] Frederick P. Brooks [[<<]]  %height=150px% [[http://www.informit.com/store/product.aspx?isbn=0201835959 | Attach:mythical.jpg]] || '''Dreaming in Code''' (2007) [[<<]] Scott Rosenberg [[<<]] %height=150px% [[http://www.randomhouse.com/crown/catalog/display.pperl?isbn=9781400082469 | Attach:9781400082469.jpg]]
||This is a landmark book on software engineering.  It was written in 1975, but it's based on the experiences of lead designer of the IBM System/360 mainframe project in the 1960s.  It was updated 20 years later.  The book gets more and more relevant as the years pass, because its core thesis remains true, even as technology advances:  adding more people to a late software project ''makes it even later''!! ||This is a recent study of the design process of Mitch Kapor's [[http://www.osafoundation.org/ | Chandler Project]], an open-source personal information management system.  It's a modern take on what makes software development hard.

There will be other readings, including essays published on the web and material photocopied from out-of-print books.  The latter will be handed out in class.  The current reading assignment is always [[Assignments | here]].

!!Deliverables

This is a project-driven course with a reading component.  Discussion,
writings, and other reflections on the readings will illuminate your
design process as you are engaged in your own software development.

Therefore the projects themselves and the readings/reflections are both important.

The specific deliverables you will be responsible for are:

# '''Tools Setup and Integration Build.'''  This is the
  proof-of-concept design that implements all of the essential
  functionality of the iSENSE system.

# '''Pre-Alpha Release.''' This is the first significant release of
  the iSENSE system.  We will continue to spec out new functionality
  based on our experience using the release.

# '''Alpha Release.'''  This release will incorporate most of the
  features we plan to include, and will be usable (if a bit buggy) by
  project partners.

# '''Beta Release.''' This release has a feature freeze.  Only
  bug-fixes are allowed after this release.

# '''Version 1.0 Release.''' This will be used by teachers and
  students during a summer 2008 workshop.

# ''Documentation.''' This includes having your code on the course
  source code control server, and turning in specific documentation on
  the design.

# '''Reading reflections.''' Short, 1-page essays on the assigned
  readings will be a regular event. ''Weekly.''

# '''Mid-term.''' Precise placement in semester TBD.

!!Build Technology

You are free to use your choice of development tools.  I will probably
demonstrate most stuff typing at the Unix console.  Most people seem
to like Eclipse.

There will be a CVS or SVN server set up for course use.  Instruction
on using this will be made available.  By the 3rd week all code should
live on the server.


!!Collaboration
Some work will be done individually and other work will be done in pairs.

For project work, teams will be responsible for conceiving work in
such a fashion that each person is responsible for a separable portion
of the project.  A clear division of work, with an API between each
person's portion, will be spec'ed out before substantial
implementation is undertaken.  Students will be responsible for
implementing their portion of work as originally agreed.  If the
design changes dramatically, so that the original definition is no
longer applicable, this should be documented and reported as soon as
it become apparent.

We will use a course Wiki for each team to post its game releases.


Changed lines 132-133 from:
We will use Google Groups for class conversation and announcements.  Please join this group.  I'd advise setting it to send email to you directly. 
to:
We will use Google Groups for class conversation and announcements.
Please join this group.  I'd advise setting it to send email to you
directly.
Added lines 166-177:

!!Grading
This course does not have an objective external standard (i.e., curriculum) with respect to which student performance will be measured. Instead, I expect that students will enter the course with different backgrounds and abilities, and I am interested in seeing how you challenge yourself and grow rather than where you end up.

The following schedule will be used in determining course grades:

|| border=0
|| 20% ||Classroom participation ||
|| 20% ||Coding and implementation work ||
|| 20% ||Documentation and reporting work ||
|| 20% ||Readings and written reflections ||
|| 20% ||Midterm ||
February 11, 2008, at 07:12 PM by 129.63.220.104 -
Changed lines 1-2 from:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]  [[Task List]]
to:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]  [[Task List]] [[DemoCode]]
Changed lines 1-2 from:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]][[Task List]]
to:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]  [[Task List]]
Changed lines 1-2 from:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]
to:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]][[Task List]]
February 10, 2008, at 07:49 PM by 129.63.223.173 -
February 10, 2008, at 07:49 PM by 129.63.223.173 -
Changed lines 1-2 from:
[[LectureBlog]] [[ScreenNames]]
to:
[[LectureBlog]] [[ScreenNames]] [[ClientIdeas]]
Changed lines 1-2 from:
[[LectureBlog]]
to:
[[LectureBlog]] [[ScreenNames]]
February 06, 2008, at 07:09 AM by 76.118.142.175 -
Changed lines 5-7 from:


to:
iSENSE project web site http://www.cs.uml.edu/isense



Changed lines 1-2 from:
This is a placeholder for now.
to:
[[LectureBlog]]
Changed lines 5-20 from:
iSENSE project web site http://www.cs.uml.edu/isense

!!!Monday February 4 2008
* Will Brendel's [[Attach:iSENSE_API_20080203.pdf]] document
* http://www.cs.uml.edu/~jalbert/XMLParser

!!!Friday February 1 2008
* Attach:jalbert-isense-org-proposal.pdf
* Attach:william-brendel-PostgreSQL.pdf
* [[Michael Cusumano article -> http://delivery.acm.org/10.1145/1350000/1340930/p15-cusumano.pdf?key1=1340930&key2=9845781021&coll=ACM&dl=ACM&CFID=14546570&CFTOKEN=74061933]]
* http://simile.mit.edu/timeplot/




to:


Changed lines 9-10 from:
to:
* http://www.cs.uml.edu/~jalbert/XMLParser
Changed lines 20-54 from:
http://www.cs.uml.edu/~jalbert/XMLParser
to:

!!Discussion Group / E-Mail List

We will use Google Groups for class conversation and announcements.  Please join this group.  I'd advise setting it to send email to you directly. 

(:html:)
<table style="border:1px solid #aa0033; font-size:small" align=center>
  <tr>
    <td rowspan=3>
    <img src="http://groups.google.com/groups/img/groups_medium.gif" height=58 width=150 alt="Google Groups">
    </td>
    <td colspan=2 align=center><b>Subscribe to 91412-s08</b></td>
  </tr>
  <form action="http://groups.google.com/group/91412-s08/boxsubscribe">
  <tr>
    <td>Email: <input type=text name=email></td>
    <td>
      <table
      style="background-color:#ffcc33;padding:2px;border:2px outset #ffcc33;">
      <tr>
        <td>
        <input type=submit name="sub" value="Request">
        </td>
      </tr>
      </table>
    </td>
  </tr>
  </form>
  <tr><td colspan=2 align=center>
  <a href="http://groups.google.com/group/91412-s08">Browse Archives</a> at <a href="http://groups.google.com/">groups.google.com</a>
  </td></tr>
</table>
(:htmlend:)

The group address is mailto:91412-s08@googlegroups.com.  You have to be a member to send to the list.
February 04, 2008, at 02:55 PM by 129.63.220.141 -
Changed lines 14-19 from:
* http://simile.mit.edu/timeplot/
to:
* http://simile.mit.edu/timeplot/




http://www.cs.uml.edu/~jalbert/XMLParser
Added lines 5-6:
iSENSE project web site http://www.cs.uml.edu/isense
Added lines 5-7:
!!!Monday February 4 2008
* Will Brendel's [[Attach:iSENSE_API_20080203.pdf]] document

Changed lines 8-9 from:
* [[Michael Cusumano article -> http://delivery.acm.org/10.1145/1350000/1340930/p15-cusumano.pdf?key1=1340930&key2=9845781021&coll=ACM&dl=ACM&CFID=14546570&CFTOKEN=74061933]]
to:
* [[Michael Cusumano article -> http://delivery.acm.org/10.1145/1350000/1340930/p15-cusumano.pdf?key1=1340930&key2=9845781021&coll=ACM&dl=ACM&CFID=14546570&CFTOKEN=74061933]]
* http://simile.mit.edu/timeplot/
Added lines 1-8:
This is a placeholder for now.

Syllabus http://docs.google.com/Doc?id=dvv234n_2f3t8krm2

!!!Friday February 1 2008
* Attach:jalbert-isense-org-proposal.pdf
* Attach:william-brendel-PostgreSQL.pdf
* [[Michael Cusumano article -> http://delivery.acm.org/10.1145/1350000/1340930/p15-cusumano.pdf?key1=1340930&key2=9845781021&coll=ACM&dl=ACM&CFID=14546570&CFTOKEN=74061933]]
Edit - History - Print - Recent Changes - Search
Page last modified on May 20, 2008, at 08:33 PM