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.

1 comment:

  1. Great post. You anticipated my request for creating a not-overly-difficult program. And I wonder (hopefully you'll cover this in a future post): how much of programming is reverse engineering current programs?

    Do programmers reinvent the wheel each time they have a new project with a new client? Are codes proprietary? What is the general time frame from start to completion for one programmer on a code like the one you'll do? Are most programs written in teams?

    ReplyDelete