Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 3.03 KB

R07.prototype.build.md

File metadata and controls

47 lines (33 loc) · 3.03 KB

CSC493: R07: Prototype Build1

Overview

You have been thinking about your project for a while now, so it is time to be a little creative and have some fun. This week we are finally require to implement some complete software portion of your project which can be small, but it must be complete.

There are a number of design methodologies in software development. However, all good methodologies use a technique of implementing and testing small components. Agile software development is a group of software development methodologies based on iterative and incremental development. In this methodology, software evolves incrementally, and both the requirements and the solutions evolve through frequent contact and collaboration between the developer team and the end user. (Of course, for this project you are both, but we will overlook that oddness.)

Top Down

The technique for writing a program using a top-down method is to write a main function that includes the skeletal structure of all the functions it needs to go its work. These function calls essentially are stubs that exist only to test the flow of the main function. After testing you will start to completely the functions are each codes as subroutines or methods. When all the various subroutines and methods have been coded and tested the program is complete. This strategy works best for defining user experience on a wholistic way and provides a guide for what is important.

Bottom Up

The bottom-up approach works in reverse by finding libraries and other tools that already exist and then integrating them until the complete program is done. You can also imeplement and test parts of your program with unit testing before integrating them together. This approach has the benefit that you can test smaller pieces quickly and see progress, but you must be careful to not get "lost in the weeds" by tweaking lower level issues and losing track of the overall structure of your program.

Documentation

There are no changes to your documents unless something has come up during implementing a core component of your system.

There are other methodologies as well… feel free to Google them. But suffice it to say, they all recommend breaking systems down into small units. So, today's work will be to fully implement some small portion(s) of your project. Of course, it is required that this component has internal documentation though comment lines.

Commit and Issues

Create an issue for anything that you have implemented so that the TA or the instructor is able to give you targetted feedback. Push your repo so that it is up to date. TALK TO THE TA TO GET HELP LINKING YOUR GITHUB REPO TO YOUR CODE!

Be sure to identify which component you have fully implemented in your weekly report and explain how it fits in with your system.

1. Adapted from https://github.com/pearcej/pearcej.github.io/edit/master/csc493/r04-design.md