Wednesday, February 6, 2013

Components of my Program

There are going to be four main sections of my program that will allow it to run well and be user-friendly. The first will be the JAR file which will serve both as the storage device for all the necessary files to be used by the program. It will also be used to cause the program to start running on its own without the help of any other programs.

The next section will be the GUI(Graphical User Interface) which will allow the user to use the program with much more ease than a command line based program would be. I will have one main section of the GUI which will display a listing of all the labels that have been entered into the program. On the top will be a bar with buttons to create a new entry, edit an entry, delete an entry, and any additional functions that will be needed for a user to use the program.

The next two sections will work together; they are parts of the code that will store any new information provided by the user and then also encrypt it to make the information more secure. The part of the code that stores the information provided by the user will not be individually visible to the user but will work together with the GUI in order to make information stored by the user available not only right after the user hits the “save” button but also every time that the user opens the program up. The second part, the code that will encrypt any information provided by the user, will not be visible to the user but will play an important role in keepings the user’s information safe.

In some of my coming posts I will be discussing the makeup of each of these parts for when I create them for my program.

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.