SE2811
Software Component Design

Introduction

Please follow the main lab instructions

Additions to lab requirements

  • Each bee must have a simple, distinct graphic along with a display of its energy level right next to the bee itself
  • Flowers must also have simple, distinct graphics, and display their energy level right next to the flower itself

Although not a requirement, you may wish to allow flowers to gain energy over time so that the bees can survive longer. In this case, you may need an option to not add flowers so that bee starvation can be illustrated as working.

(added 11 Dec 2019)

General Remarks

  • Plan for both students to contribute roughly equally to the lab and leave time for integration.
  • Check that your solution meets the the coding standard. Document responsibilities for classes, but you do not have to write Javadoc for methods.
  • Use the .gitignore file provided with the repository
  • Please use command-line git (e.g. Git Bash) as your standard git tool. It's OK to also use the Git built into IntelliJ, but knowing the command-line is essential. You may find my git page helpful for a refresher on the Git command-line.

GitHub Classroom Repositories

Please install Java 8 from Amazon as described in the new freshman lab sequence

Please find a team-mate for the lab. Work in teams of two unless otherwise approved by your instructor.

Please see your email for the link to the invitation to Github Classroom.

When following the link, please select your username from the list.

Determine if your team already has a team set up. If so, select that team:

If not, please create a new team. The team-name should be username1_username2 where the usernames are your MSOE usernames in alphabetical order separate by an underscore. Your username is your MSOE email address without the @msoe.edu. For example, Jean Passepartaut may have the email passepartautj@msoe.edu and username passepartautj.

If you are the first on your team to follow the invitation link, write your team's name, being sure to consult with your teammate to make sure you got their username spelled correctly:

Part a submission requirements

  • Merge your latest code into the master branch
  • Print your brief report with the list of domain classes, their responsibilities, and who implemented each class
  • Print your EA diagram.

All PDFs and printouts should include your name, the course number, the lab number and a brief title (e.g., Lab 2: Bees), and a date

Part b submission requirements

I will provide a printout of the lab checklist

  • It is not necessary to document all public methods in this lab. However, documenting methods is recommended as a form of communication between members of the team.
  • Check that your solution meets the the coding standard. Document responsibilities for classes.
  • Develop the system you specified in part A, being sure that both students contribute.
  • Ensure all code is in the master branch - I will not check other branches. (Branches are unlikely to help on such a small project.)
  • Check that the correct files are checked in to the repository. You should use the gitignore included with the lab to ensure you do not check in .class files and other build products. I recommend you check this .gitignore file into your repository code rather than placing it in your home directory.
  • I strongly recommend against auto-generating the code from your diagram. Enterprise Architect (EA) introduces a lot of elements that do not make sense unless you are going to maintain the code in EA, and the useful code that EA does generate (essentially, just method headers) is too limited to be valuable -- the process of thinking through your method headers as you introduce them into the code is valuable. If you do auto-generate the code, make sure you delete the meaningless comments with ID numbers and artifacts like the finally declarations.
  • Both students are to write initial versions of their code and submit these to Bitbucket during the Week 4 lab period. You do not have to write all of the code, but you should at least have methods with empty bodies for all of the portions called by your partner.
  • Keep the folder structure provided with the lab. The program SHOULD run in a fresh checkout with java 1.8 specified in the config files, unless the instructor has approved otherwise.
  • Ensure your application is organized so it fits on the school laptop display using the default resolution with a bit of room left over. That is likely a maximum of 1000 vertical pixels and about 700 horizontal pixels.
  • When complete, create an MSWord document (or other format) containing the following:
    • A reverse-engineered diagram (You can copy-paste this from EA and crop out the borders) of your implementation with classes reorganized so the structure is clear.
    • On the UML diagram, ensure all connectors have at least one line to another class. If a class has no enduring relationship, show a temporary association (dashed line with stick arrowhead) to one of the most important classes it uses.
    • A paragraph describing any significant changes to the design such as new classes. Recall that you do not have to introduce design patterns into this lab.
    • A paragraph describing who implemented which portions of the system.
    • Screen shots of solution in action. You do not have to capture every behavior, but do capture that bees move in the correct directions and that they change energy levels. Be sure to describe what the screen shots show.
    • A discussion of any known problems, either in the implementation or the design. Typically, documenting known problems reduces the penalty.
  • Print your document and submit it at the start of the Week 5 Lab period.
  • Your team should be ready to demo your solution at the start of the Week 5 lab.
  • Randomly generate the locations of the bees and flowers. Ask if you need help with this!
  • Adjust the number of bees, flowers, points, etc. so that you can generally see the correct behavior when you run the program. In particular, you should be able to see several bees move around for some time, and demonstrate that bees do die if the conditions are poor (e.g., not enough flowers), but can survive for a long time if conditions are right.