Briefly summarize the DriverPass project. Who was the client? What type of system did they want you to design?
The client for this project was DriverPass. DriverPass wanted a system designed that would offer drivers practice tests based on DMV testing requirements, tutoring based on test results, and driving lessons with DriverPass' own instructors.
I believe my system design very accurately represents the client's needs and wishes.
If you could choose one part of your work on these documents to revise, what would you pick? How would you improve it?
I would revise the use case diagram attached to the system design document. The functionality is all present, but I believe the current diagram is slightly messy and could likely be cleaned up to more clearly/plainly represent the system.
How did you interpret the user’s needs and implement them into your system design? Why is it so important to consider the user’s needs when designing?
I interpreted the user's needs by combining their requests along with intuition based on experience with programming to "fill in the cracks". In a real-life scenario, I would have asked many more clariyfing questions, but as that was not available, I had to do my best to design the system based on a mixture of client request and intuition.
Again, in a real-life scenario I would have asked many more questions during the interview process. I would have also provided the working design to the client at every stage of the design process. This would have greatly improved the product as it pertains to the client's needs and wishes. The client's needs and wishes are the most important aspect of the design process. Without the client their is no requirements, design, or implementation. Therefore, the client's needs should drive the entire development process.
How do you approach designing software? What techniques or strategies would you use in the future to analyze and design a system?
For most projects, I simply combine the design process into the development procces. However, for more complex projects, I usually create class diagrams and (sometimes) use case diagrams. This is to help organize my thoughts, as well as ensure I am not missing any aspect of the project before I begin. In the future, creating a requirements document is something that I will likely use. A requirements document will not only help me to remember all the requirements, but also to keep the bigger picture in mind when deep into the code of a project.