Software Development Project

Project ideas

These are ideas for projects that come from local software development companies:

Facebook Application for SalsaNinjas

Kiosk Web Interface

Remote Video Playback

Project Request Web Form

Sync Utility

Real-time client/server communication using eJabberD

Converting Powerpoint files to images

Mobile Device Friendly Video Portfolio

Purpose

The purpose of this project is for you to understand the apply the process of software engineering on a “real-world” project and to develop the skills and knowledge of a software developer. Your goal will be to not only deliver a software product by the end of the course but also to gain experience in the concepts, principles, art, and the skill that go into software development.

Size and effort

When you conceive of and propose a software product, keep in mind that it should be neither too “big” nor too “small”. You can easily solve this problem by choosing a project that will attempt to solve a “real-world” project. In fact the best defining quality of your final product will be how well it solves a real-world problem. Obviously, this would mean lots of work. You should expect this project to be your most intensive software project yet.

Audience

You will be working for a real customer. This not only means gathering the initial requirements and delivering the final product but to also involve the customer in every step of the design, development, and testing phases. In your interactions with the customer you must make sure of the following:

There are three ways in which you can find a customer:

If you are coming up with the project idea on your own, then here are some pointers to help you:

Platform, tools, techniques

You are not limited to any particular set of development tools, platform or process. The tools of the trade and the way you proceed are choices that are open to you, pending, of course, my approval. This means that you can choose the programming language and platform that seems most well matched to the design of the project. Some pointers:

Team Work

Team work is a very important facet of your development process. How well you work in a team will reflect on how skillful you are as a developer. Naturally this means that you learn the skills of effective cooperation and communication. Let the other person in the team know about your opinions and expectations of the project at all stages. Make sure you have an effective way of dividing up the work. This could be in terms of different roles for each person, or a clear division of work (50–50).

Another important pan-team point: multiple teams may choose to work on the same product. This will only be possible and good for you if you do not share design ideas and code. Of course, I will work with you in figuring out what would be the proper logistics and setup for sharing project ideas.

Resources

Dates

If you miss the deadlines that may compromise your project grade regardless of your overall effort.

Criteria for grading

These are the qualities that I will look for when evaluating your project so be mindful of them throughout the semester. All of these are important. You may choose to focus on a couple of these, but not at the expense of the others: