Software Engineering and Design
Course Outcome 4 Demonstrate an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals (software engineering/design/database).
Throughout my studies, I strived to use well-founded and innovative techniques, skills, and tools to implement computer solutions that deliver value to the end user. In CS 230, Operating Platforms, we were tasked with creating a software design document to inform the development of a web-based game, Draw It or Lose It, so that it could be deployed on various operating platforms including iOS and Mac OS. To best accomplish this, I outlined the design constraints, business constraints, the domain model, an estimated timeline to production, and an evaluation specifically tailored to meet the needs of the client. In this document, I created a pros and cons chart to compare Mac, Windows, mobile devices (in general), and Linux in terms of memory management, server development, tools available, and language-specifications to help the choose the appropriate platform for development as requested by the client.
In the project, I provided practical knowledge regarding best tools for each platform, operating costs associated with each platform, server software options available, and my recommendations given each of those factors. Based on the UML class diagram discussed with the client, I developed software that met the client’s need to manage players in-game data. I utilized the Singleton design pattern to address the need for a singular game instance for each device. When my work was complete, I performed dynamic testing in Eclipse to confirm that the software met the functional requirements of the client.
-
Using skills in documentation, Java, computer science, software testing, Mac OS, Linux, Windows, and mobile devices, I successfully met the need of the client and demonstrated an ability to use well-founded techniques and tools to implement computer solutions that accomplish industry-specific goals. You can see an example of my work in the following UML class diagram and in the platform comparison table here.
-
You can also see my software engineering and design enhancements on a C++ computational graphics project here.