From: lott@bogner.informatik.uni-kl.de (Christopher Lott AGSE)
Subject: course projects
Organization: Universitaet Kaiserslautern FB Informatik
Date: Fri, 8 Jan 1993 13:31:20 GMT


Here is something that I put together to help us choose a 
project for our upcoming project course.  Hope it helps.

The classification scheme for project types evolved based
on the examples that I found; there is not some grand scheme
behind it and I'm certain that it could be done differently.

The size of these programs is all over the map; some are
trivial and some quite large.  Naturally large ones can be
constrained and small ones expanded.

References from which some of these ideas came are listed
at the bottom.

chris...

--------

SE-Course Projects

Some decisions to make:

1.  Useful program or not?
2.  Entire application or piece of a larger one?
3.  Use X interface or not?
4.  What type of application? (see below)

TYPE 1: DATABASE

    These systems are specialized data storage and retrieval systems.
    Generally the algorithms involve concurrency management,
    retrieval, etc.  This category blurs into the client server model
    where the server manages access to some database.

    - scientific reference library
    - personal data mgt systems
        e.g., wine cellar, record albums, books, videotapes, etc.
    - polling/voting system
    - library mgt system (books & patrons)
    - store sales activity
    - geneological db
    - software components catalog
    - photograph library sales system
    - student record system
    - student laboratory mgt system
    - course scheduling and mgt system
    - university department information mgt 
    - draw diagrams, generate relational db scheme


TYPE 2: CLIENT-SERVER MODEL

    The server commonly manages a database of some type; it interacts
    with the client according to some protocol.  These can all fit
    into the database section.

    - electronic mail system
    - student registration system
    - airline reservation system
    - electronic town meeting (or other group communication forum)
    - bulletin board/news system
    - electronic banking (e.g., ATM system)
    - group diary and appointment mgt system


TYPE 3: STANDALONE

    Subtype 3.1: System Software (utilities)

        In this subtype, user familiarity with operating systems and
	other computer software is vital.

        - assembler
	- compiler
	- linker/loader
	- search/replace utilities
	- substitute make utility
	- data compression utility
	- language toolset (analyzers, structure editors, viewers)
	- visual interface to Unix
	- test system for compiler X

    Subtype 3.2: User applications

	In this subtype, extensive domain knowledge is required.
	There is much computation and little data stored.

	- software metric tool
	    e.g., static structure analysis for a collection of modules
	- source-code management system
	    e.g., change control, reporting, data collection
	- program visualizer (structure, etc.)
	- test coverage tool
	- satellite tracking program
	- tax return calculation
	- hypertext authoring system
	- spreadsheet calculator
	- office automation system
	- expert system software
	- games (video, board, etc.; computer does not play)
	- computer opponent for game playing (e.g., tic-tac-toe, othello)
	- simple flight simulator
	- simulate evolution (game of life)
	- revenue projector for concert administration
	- document concordance (generating index)
        - personal calendar
	- household budget
	- simulate a scientific, pocket calculator
	- newspaper typesetter
	- scoring athletic events
	- simple diagram editor (any type of diagrams)
	- interactive, symbolic manipulation of polynomials
	- computer animation, animated presentation system
	- diagram editor for electric power distribution systems
	- police vehicle command and control system
	- overhead projector transparency preparer
	- idea processor (more than an outliner)

    Subtype 3.3: Reusable Software

        In this subtype, a adt/module is built for later use.

	- tree generic unit
	- stack, list (trivial)
	- help/message system
	- screen & forms generator

    Subtype 3.4: Using/controlling external devices

        This subtype focuses on external hardware devices, and is 
	critically dependent on what h/w is available.

	- data capture and report generation
	- environment monitor (temperature etc.)
	- heads-up display
	- Fire and security alarm monitoring system


Sources of project ideas (books):

Mynatt, _Software Engineering with Student Project Guidance_
von Mayrhauser, _Software engineering methods and management_
Schach, _Software Engineering_
Booch, _Software Engineering with Ada_
Lamb, _Software Engineering: Planning for Change_
Blum, _Software Engineering, A Holistic View_
Jones, _Software Engineering_ 
Rumbaugh et al., _Object-Oriented Modeling and Design_
Sommerville, _Software Engineering_
Frakes et al., _Software Engineering in UNIX/C Environment_
Rakos, _Software Project Management_

References that can help:

Kant, "A semester...," SEN Aug 81
Horning & Wortman, TSE Jul 77
-- 
Christopher Lott    lott@informatik.uni-kl.de   +49 (631) 205-3334, -3331 Fax
Post: FB Informatik - Bau 57, Universitaet KL, W-6750 Kaiserslautern, Germany