Continuing with the trend about developing for the US Department of Energy Solar Decathlon competition, this assignment dealt with the creation of the Balsamiq markups as web pages using the Wicket framework. According to the Dr. Johnson’s assignment writeup, the goals of the project were as follows:
- Improve your development skills with HTML, Blueprint CSS, and Wicket technologies.
- Gain further experience with group-based software development using Issue Based Project Management techniques.
- Gain further experience with Eclipse, Java, Ant, and our build system.
- Develop a high quality, open source site that supports future development of your system.
Through this assignment I gained a better understanding of the Wicket development model’s interaction with HTML and CSS. Now that I have a better understanding of the Wicket model, I really like the way that Wicket divides the logic handling with information processing. I like that Wicket only needs for HTML to be written once, but used in multiple applications. For example, the BasePage.java is used to hold the header, the menu bar, and the main content across the whole website. But for pages such as LogInPage.java, the menu bar and the log out information is withheld since at the point the user has not logged in.
One goal that my group could have improved upon was project management. When we first started the project, we created goals to implement the web pages, but we never create new goals to implement other pages. Also, we could have created new task to implement certain portions of the web page. For example, the base page and its styles play a key role in the creation of the management system since all the other pages extend this page. Without the base page, the project could not have been created within a timely matter.
Through this project I found the reason for the existence of coding standards. Previously in the semester, the class learned of standardizing code, but we only learned about the theory. By having a code standard, I was able to update my code with my classmates code without needing to learn a new style of code format. Also, I knew that any code committed to the repository was free of bugs. In this way, I was able to focus more upon the development of the home management system rather than fix bugs or format code. Without this, I would have spent more time upon reformatting and refactoring code.
For this software engineering class, there are three prime directives that are necessary for open source development. As a developer, I cannot verify any of the prime directives, but I will offer my opinion on whether these prime directives have been fulfilled.
For prime directive one, I believe that the home management system accomplishes a useful task. Although the management system does not have many features, the basic functions do allow an end-user to manage and view the energy efficiency of the home. For example, the Lighting page allows the user to manage the lighting in certain rooms in the house.
For prime directive two, I believe that the home management system may be a little hard to run. As this system requires the user to have java installed and run the jar from the command line, a computer illiterate person may not be able to easily run the program.
For prime directive three, I believe that an external developer can successfully understand and enhance the system. We created the source code so that another page could be added to the website with ease. The OverAllStatusPanel class and the BasePage class allows each new page to implement a standard view. My one concern may be that the actual documentation may be a bit spare, but the actual implementation of the the code is easy to follow.