Wednesday, January 30, 2013

Some Programming Definitions


The following are a few terms that I will be using quite a bit in coming posts. In order to have a better understanding of what I am talking about, here are a few of the terms and what they are. If I use additional terms in the future I will update this post with the new definition.

JAR

When building a program using the java programming language probably the most important thing for the program to run is the JAR File. JAR stands for Java Archive and the file is used to store all the information needed for a program to run. In many cases it the JAR file is also used as an executable file to begin having a program run. But in some instances a JAR file can just be used to transfer components needed by a Java applet, or application.(Oracle)

GUI

A Graphical User Interface or GUI as it is commonly referred to is another very important part of any program in general.  What a GUI does is it allows a user to interact with the program using visual icons as opposed to line of code appearing on a screen.("GUI Definition") One of the main benefits of having a GUI  compared to a command line interface for any program or operating system is that the amount of prior computer experience required by the user to use the program. For programs with only a command line interface the user needs to have quite a bit of experience dealing with command lines. A GUI on the other hand requires very little knowledge of computers or experience dealing with them.

Encryption

Collins English Dictionary defines encrypt as “to put into a coded form”(Dictionary.com). When put into the context of information on a computer, encrypting data takes and makes it more secure by changing the data into a seemingly random jumble of code. In this form the data is completely useless to anybody or any sort of program. In order for it to become useful again is if the person or program has the key that was used to encrypt the data, if this is available it can then be used to decrypt to information back to a useable form.

Works Cited

Oracle.“Java Achieve Files” Web.30 Jan. 2013
“GUI Definition” 1 Oct. 2004. Web. 30 Jan. 2013
Dictionary.com. “Encrypt” Web. 30 Jan 2013

Wednesday, January 23, 2013

The Birth of a Program


This week I am beginning the process of building my program. For a professional programmer either working for a company or independently the first step to of the process is determining what the end product of the program is to do. In most cases a basic description of this is provided by the person or company who the program is being made for, it is then the programmer’s job to ask questions to understand exactly what the boss/client wants. After meeting with the boss or client, the next step is to take everything that was learned from the meeting and break the program down into individual modules, parts of the program. One thing I learned last week during my software design class that really shows how important understanding the needs of the program is that analyzing what is needed out of the program alone should take up about 35% of the time spent making the whole program. Another 30% should be spent just designing the program and how it will work. The remaining 35% should be spent implementing the analysis and design, coding the program, testing the program, if needed debugging any problems that arise and maintaining and updating the code. It is critical that ample time be allocated to analyze what is needed and design a program that fits the needs.

 

Since I am not making this program for anyone specific I began this week with trying to figure out what I want the program to be able to do. After ruling a few ideas out either for being far too difficult for me to have a chance of finishing in 16 weeks or so simple that I could have to program completely finished in a few days I thought of a program that with my current experience will be a challenge to complete in 16-weeks but I think could be possible to do.

 

The program will allow a user to enter and store a password and give the entry a label, for example a user might store their password to their Amazon.com account, so they might label it as Amazon. Once a user saves an entry, that one and any added in the future, will be accessible via an entry library which will display all the labels.  All of the information inputted by the user will be encrypted for security and then stored. If the user wants, a password to secure access to the entire library can be applied.

 

One other feature of the program I am considering including in it would be a way so that when a user clicks on an entry they can press a button that would open their internet browser to the login page for the site their password is used on. If I were to do that I would need to have a way for users to input the URL of the login screen for websites that aren’t included in the program.

Tuesday, January 22, 2013

Welcome to my Blog

 Hi I’m Cameron,
Over this next semester I will be taking a program through as many stages of development as I can with the time available. As I go through this process I’ll have to be learning a lot of the code that will be used in the program because in the past, I have never made a program to this scale. I will begin by deciding on the main goals of the program, what I want it to be able to do when it is completed. The next step will be to break the program into modules, each of while will be responsible for a specific part of the program. After that will come a lot research to find out how to form these modules using the Java programming language. Once my research is complete I will begin using Java to write the code for the program. Following that will be the testing and if necessary, debugging. Each week I will try and highlight my progress, what decisions I have made and why.