CS211 Course Project - Design Phase

50 Points

 

Objectives:

Due Date/Time:

This project design is due at the end of class on Lesson 34.

A late penalty accrues at a rate of 25% for each 24-hour period (including weekends) past the on-time turn-in date and time.  The late penalty is a cap on the maximum grade that may be awarded for the late work.  Thus zero points will be awarded for a submission 72 hours or more late.

Help Policy:

AUTHORIZED RESOURCES: 

      Any, except another cadet’s program.

NOTES: 

Requirements For Documentation:

Team Work vs. Individual Work

You may choose to work alone on this project, or you may choose to work in teams of two. The choice is your personal preference.

If you work in a team:

Special Projects (HIGHLY RECOMMENDED)

You may choose to design and implement one of the projects described below, or you may propose a different project of similar scope and difficulty. If you would like to propose a different project, you must:

Project Idea 1

Introduction: MATLAB is designed to efficiently process large datasets that are stored in arrays. Therefore MATLAB is very good at manipulating color digital photographs because such photographs are simply 3D arrays of intensity values. A digital photograph has several major advantages over a film photograph: 1) digital photographs can be reproduced with no loss of quality, and 2) digital photographs can be manipulated by computers using appropriately designed algorithms.

Problem Statement: Design and implement a GUI MATLAB program that allows a user to read into a computer's main memory one or more digital photographs, manipulate the digital photographs in interesting ways, and store the digital photographs back to a computer file.

(If you do this project, you will be provided with additional help on MATLAB instructions that manipulate digital photographs when we start the implementation phase on Lesson 36.)

Project Idea 2

Introduction: MATLAB is designed to efficiently process large vector and matrix datasets. One example of large vector datasets is digital music. A digital music file is nothing more than a series of numbers that represent the magnitude of a sound wave over time. (Music data is often compressed to reduce its file size and/or encrypted to thwart piracy, but we will ignore these issues for this project.) A digital representation of music has two major advantages over analog representations: 1) digital music files can be reproduced with no loss of sound quality, and 2) digital music can be manipulated by computers using appropriately designed algorithms. Your project is to design and implement a GUI digital sound "editor".

Problem Statement: Design and implement a GUI MATLAB program that allows a user to read into a computer's main memory one or more digital sound files, manipulate the sound data in interesting ways, and store the digital sound data back to a computer file.

(If you do this project, you will be provided with additional help on MATLAB instructions that manipulate digital music files when we start the implementation phase on Lesson 36.)

Project Overview

You are the software developer for this project.

If you do one of the projects ideas given above, your instructor is your customer. If you do an alternate project, your customer may be someone other than your instructor, but you must identify your customer as part of your project proposal. Your customer will determine the direction of your project and make critical decisions about the functionality that is included in your project.

The intent of this project is to simulate real-world software development. Real-world software development projects often have one or more of the following characteristics:

This project will be done in two distinct phases: design and implementation. The remainder of this document deals only with the design phase. You will be given additional instructions for the project when the implementation phase begins on Lesson 36.

What is a software design?

The development of complex software systems is a very difficult, time consuming, and expensive task. In relationship to expense, it has been shown that software maintenance accounts for up to 2/3rds of the cost of a software system over its lifetime. Software maintenance occurs after a software system is "finished" and put into service. Software maintenance involves:

Because software maintenance is so critical to the success of a software system, it is vital that software be designed with future modifications in mind. The purpose of software design is to create a software system that not only meets the current needs of a customer, but also facilitates future bug fixes and software modifications. The goal of software design is to decrease the total cost of a software system over its entire lifecycle.

There are abundant examples of poorly designed systems in the real world. For example, some automobiles are not designed with maintenance in mind! I have tried to change the spark-plugs on some automobile engines and it was VERY difficult to access the spark-plugs, let alone remove them? In such cases the cost of engine maintenance is greatly increased. How about another example? Have you every tried to replace a light bulb, but you cannot even remove the cover from the light fixture? In such cases the light fixture was not designed with maintenance in mind. Any system that is not designed to facilitate maintenance will be more costly to repair and update over its lifetime.

Your Design Project

The design of your project should be divided into the following two steps. The results of both steps should be documented in a single word processing document.

Step 1: Gather the customer's requirements

Step 2: Write the system specifications

Turn-in Requirements

Your work for this assignment should be contained in one word processing document and one (or more) MATLAB *.fig files.

You must submit electronic copies of your documents (one copy per team) to the course web site by the end of class on Lesson 34.
You must submit a hardcopy printout of your word processing document (one copy per team) to your instructor by the COB on Lesson 34.

IMPORTANT: Make sure your word processing document includes, at the top of the first page,

Grading Information:

Proper Documentation Statement (-3 pts)?                               

Criteria

Pts

Customer Requirements (documentation style, grammar, spelling, etc.) 4

Customer Requirements (content)

10

   
System Specifications (documentation style, grammar, spelling, etc.) 4

System Specifications (content)

12

System Specifications (screen shots) 2
   
GUI design (style, layout, correct use of buttons, menus, list boxes, etc.) 8

GUI design (content - will the design allow for the system specifications?)

8

GUI design (all components use normalized units to specify their location and size) 2

Totals

50

Late Penalties (-12, -25, -37 -50)

 

Final Grade