My work done in QA Software Engineering Test & Automation
We have learned in this class that no program can be 100% clean and error free. However, we can strive to reach that perfection through certain methods and stradegies. Specifically, we used JUnit testing to test and assure that our programs code blocks behaved and outputted exactly as they should. This is one of many ways to ensure that your software is behaving as anticipated. As for being secure, we can use things like input validation, and encapsulation of data to ensure that the program is protected.
These are called requirements, and its one of the most important steps in the software development lifecycle. The clients needds and wants are a roadmap of the product that is being developed. Sometimes even the user cant fully express exactly what is needed, and thats why its up us to decipher their needs fully. We have to be sure and listen carefully and always keep discussions open through the development process. Needs and wants can change and its important to maintain communication with the client to ensure that changes are implemented successfully.
Before I went back to school, I approached an idea or program in a hail-mary sort of way. Just dive right in and whatever problems that arise are just a Google away. Since then, I have learned about how important it is to lay out and design your software from the ground up. It gives you a clearer picture of the goal, and the clearer that picture is, the smoother development will be. I now create UML digrams that explain how and what my program will do, and it has made programming more enjoyable, and the development process faster.