Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment Re:some steps I'd take (Score 1) 532

In the proprietary system I used the BaSIC language was burned in ROM as the OS, no other languages. I've worked on other systems that did not have a C compiler or were sufficiently unique that the 'generic' tools would not work. I've even seen some generic tools blow up due to some of the bad programming used and/or not be able to figure out what was going on.

I'm not saying that the person should always write their own tools. If the generic ones aren't available or don't work for whatever reason, writing some of your own to help can be a bonus in the long run.

Sometimes having tools that know more about your specific environment can be more helpful. Sometimes the information you want isn't something available from a generic tool.

Comment some steps I'd take (Score 1) 532

There are many things I'd do and some are dependent on the language as some things make more sense in some languages and less in others.

First thing I'd do is get all the existing documentation I can find including the end user documentation of how to use the software.

I'd next try to break the software down by modules, subroutines, functions, library routines, etc. to get an idea of what does what. I'd also try to determine variable usage, such as local vs global variables and where things are defined.

If the above is not already documented I'd work on creating the documentation so I don't have to refigure things out each time I dig into the code for something.

The code style of the previous people who worked with the code can be very important. Some languages are easier to write obscured code in then others. If the code is NOT documented or the documentation is obsolete I'd start working on the inline documentation. Anyplace that the code is very obscured or poorly written I might look into rewriting so the code is easier to document and easier to read.

Don't trust any of the documentation until you've made sure it is up to date.

At one of my jobs the package I was hired to maintain, support, and enhance had been modified on a per customer basis where some varialbes had different meanings in different versions. There where some features where the feature was implimented differently in different systems to meet different customers differing and conflicting needs. In some cases the mainline module code would look the same but the differences would be hidden in the subroutines. This was made even more complicated by being a multiuser application that did its own file locking. The original application had been single user so there was more then one method of gdoing file locking, some of which was based on what files where in which 'partition'. The system only allowed locking entire 'partitions' at one time. As customer grew to need multiple disks with multiple partitions the multiuser locking would erratically fail, corrupt data or deadlock, etc.

Look for the tools people mentioned that can help you easier figure out how things work. There were no tools for the system I worked on so I had to create my own (proprietary non-standed OS and interpreted language).. My boss complained aobut some of the time I spent working on the tools until he saw how they were saving time and helping make it easier to make changes.

Don't be afraid to look for tools to make your life easier. Don't be afraid to write your own if there is a good reason to do so.

The system I worked with was about 200 programs / customer with about 200 subroutines (sometimes unique for a customer) in each system.

Slashdot Top Deals

"The four building blocks of the universe are fire, water, gravel and vinyl." -- Dave Barry

Working...