Comp 523: Software Engineering Laboratory
Spring 2008

Instructor: Diane Pozefsky   
     Office: Sitterson 141
    email:
pozefsky@cs.unc.edu

    AOL and MSN Instant Messenger: dianepozefsky
    Yahoo Messenger: dianepoz24
    phone: 919-962-1817

Class
    Time: Tuesday and Thursday 12:30 - 1:45
    Location: Sitterson 011

Calendar
Deliverables
Templates and Samples
Grading

Team Meetings (Sitterson 141)
Amazing Grace Tracking
Monday 11:00 a.m.
Move to Music Monday 3:30 p.m.
Wireless Mesh Management
Tuesday 11:00 a.m.
Beep Ball Tuesday 2:00 p.m.
IQWST
Tuesday 4:00 p.m.
Osprey
Wednesday 10:00 a.m.
FotoMD Thursday 10:00 a.m.
Rocking Horse
Thursday 2:00 p.m.
3D Neural Activity Mapping Friday, 10:00 a.m.

Comic here

What is software engineering?

In its SWEBOK project, IEEE defines software engineering as

The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (Guide to the Software Engineering Body of Knowledge, IEEE 2001)

But in general, you will find a broad range of usages.

Software Engineering has come to mean at least two different things in our industry.  First of all the term "software engineer" has generally replaced the term "programmer".  So, in that sense there is a tendency to extrapolate in people's minds that Software Engineering is merely the act of programming.  Secondly, the term "Software Engineering" has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers", as was used in Fundamentals of Software Engineering by Ghezzi, Jazayeri, and Mandrioli.  (Software Engineering Yellow Pages)

Underlying all the definitions is a set of processes and technologies that take software development from the sphere of art to an engineering discipline. Software engineering is still an emerging discipline and some of the technologies and models accepted today will be discredited, but given the importance of software development in today's world, its growth as an engineering discipline is certain.

Course Description:

The goal of this course is to teach the skills necessary for building a software product as a team. The lecture portion of the class will cover the broader picture of software engineering that includes a wide range of software development projects in terms of size, complexity, and criticality.

There will be no written exams;  there will be a number of essays assigned to cover the key concepts of the course.

The essence of the course, however, is the faculty-coached team project. Teams of 2-4 students spend the semester negotiating, estimating, scheduling, specifying, coding, debugging, integrating, documenting and testing a substantial programming product. Each project has a real client that is expecting a completed project. Each document will be submitted to the professor in draft form and will be revised based on comments.  In addition, documentation needs to be maintained to reflect changes in the product that is being produced. 

Project grades are based on code, documentation, ambition, effort, teamwork, and accomplishment. 

The final exam is a presentation of the end product.

At the end of the course, each student will have experienced all aspects of a software development project, including


Project Hours Spring 2007
These hours are self-reported and exclude the last week before final projects were due (my mistake in collecting data).  They should not be taken as anything more than interesting information.

Individual Statistics

mtgs doc design code
total
Min 21 7 0 47
74
Max 43 18 26 83
148
Average 30 7 8 42
87
Median 33 6 8 45
85

Team Statistics

mtgs doc design code
total
Min 54 10 1 82
160
Max 156 37 68 166
373
Average 94 21 26 133
273
Median 99 20 22 139
279