Introduction to Silk Test Architecture

Normal use of an application consists of a person manipulating a keyboard and mouse to initiate application operations. The person is said to be interacting with the GUI (Graphical User Interface). During Silk Test testing, Silk Test interacts with the GUI to submit operations to the application automatically.

Thus Silk Test can simulate the actions of a person who is exercising all the capabilities of an application and verifying the results of each operation. The simulated user (Silk test) is said to be driving the application. The application under test reacts to the simulated user exactly as it would react to a human rest. Silk Test consists of two distinct software components that execute in separate processes:

The Silk Test host software

The 4Test Agent software

Silk Test host software

The Silk Test host software is the program you use to develop, edit, compile, run and debug your 4Test scripts and test plans. This manual refers to the system that runs this program as the host machine or the Silk Test machine.

The Agent

The 4Test Agent is the software process that translates the commands in your 4Test scripts into GUI-specific commands. In order words, it is the Agent that actually drives and monitors the application you are testing. One Agent can run locally on the host machine. In a networked environment, any number of Agents can run on remote machines. This manual refers to the systems that run remote Agents as target machines. This manual refers to the systems that run remote Agents as target machines. In a client/server environment, Silk Test drives the client application by means of an Agent process running on each application’s machine. The application then drives the server just as it always does. Silk Test is also capable of driving the GUI belonging to a server or of directly driving a server database by running scripts that submit SQL statements to the database. These methods o directly manipulating the server application are intended to support testing in which the client application drives the server.

Posted in general | Comments Off on Introduction to Silk Test Architecture

Strengths and Weaknesses of Waterfall Approach for Software Development

One of the most famous and widely used approaches for software development is the waterfall model. Waterfall approach is an old technique that has been in use for quite some time, but in modern times agile approach is gaining prominence.

Waterfall approach, as is evident from the name, refers to a systematic approach where one step comes after the other. It cannot go the other way round. The process works like the waterfall effect that flows in one direction, which is from up to down.

In this process the life cycle of the development process is predetermined. All the steps are defined before the start of the project. The approach is predictive, where the team is well aware of the order of each step and therefore works accordingly. It starts from the requirement analysis, the design phase and then proceeds on to the implementation, testing and the maintenance phases.

The waterfall approach can be quite beneficial for those who are quite clear on their requirements. A planned approach works for them because they want fixed processes and budget. Where fixed processes are beneficial, at the same time they can be inconvenient at times. In cases where the client is not clear on the requirements and finds in the middle of the project that he/she wants to change course, this approach can prove to be quite problematic.

Another point of the waterfall approach is that the requirement analysis and design of architectural structure can consume a lot of time. Extensive research is done initially as the next phases depend completely on the planning strategy. However, the good thing is that everything is thoroughly worked out and each aspect is studied beforehand. The developers in such cases know what is expected of them.

A waterfall approach works in a systematic order, with one step following the other and the testing phase comes in the end. If there are any big problems encountered in the testing phase, it means a long process to make the amends. The process can consume extra time and money.

We cannot conclude that one approach is better than the other, as every method would have its own strengths and weaknesses. The determination of success for each method depends on how it is being used and whether the approach suits the scope of work being undertaken. While one approach may be suitable for a particular project, it might become totally useless under different circumstances. For example, some believe that agile methods are not well suited for offshore development, as they require a closer contact and communication that is not possible in an offshore project.

Posted in general | Comments Off on Strengths and Weaknesses of Waterfall Approach for Software Development

How to Retrieve Deleted Text Messages & Not Go Crazy in the Process

It’s happened to all of us. We’ve deleted a text message only to realize a short while later that we either deleted the wrong message, or we need to retrieve information off one of the deleted text messages. We then frantically search out ways online how to retrieve deleted text messages hoping to find an easy solution. We pour through websites pulling our hair out because we can’t find an easy solution.

Ultimately we walk away dismayed because either we were not able to find any solutions on how to retrieve deleted text messages, or the solutions we found seemed to require so much “detective” work, that the solution itself should be on a an episode of CSI.

Are there really any “easy” ways to retrieve deleted messages?

The good news is that YES, there are a couple options that do exist which enable anyone to easily recover deleted texts, and both are not only very affordable, but both work exactly as advertised.

Before we dig into the solutions, there is one solution that is often discussed, which does not work, although many people do still talk about it.

What does NOT work?

Going to your own phone carrier is not going to be a viable option. Yes, they are required by law to keep records of your communication (SMS, call, etc.), but they are not required to turn over their logs to you, unless requested by a court of law. You cannot call up AT&T, Verizon or Sprint and tell them you want to retrieve a deleted text message from last week because there is something really important within the contents of the message. It just wont work.

The only information AT&T, Verizon, Sprint, or any other cell phone carrier is going to provide you is the number, date, and time of a call or message. You can plead all you want, but they will not be able to do anything, so it’s not worth your time to attempt this approach.

What DOES work?

There are actually two options available for anyone who is looking for information on how to retrieve deleted text messages. These options rank from the “quick and easy” to the more difficult, but also the most effective.

1) Quick & easy method.

The ‘quick & easy method’ is to buy a SIM card reader, often referred to as a SIM card spy device. This device looks like a USB reader, and the way it works is you remove the SIM card out of your phone, and then place the SIM card into the SIM card reader, and then plug the reader into your computer. Using the included software (of the SIM card reader), you’ll be able to immediately retrieve and read deleted text messages. The time frame will vary, based on what new information is overwritten on the SIM card, but you’ll at least be able to retrieve and read the last 15-20 messages and scan through your call history and contacts, even if they were all deleted.

Positives of this approach?

  • Very easy.
  • Enables you to quickly recover deleted messages.
  • Does not require software to be installed prior to the message being deleted.

Negatives of this approach?

  • A bit costly.
  • Limited cell phone support.
  • Does not work on CDMA networks.

2) More difficult, but most effective method.

The more difficult, but most effective method’ is to purchase a cell phone monitoring app that is often used to spy on cheating spouses, monitor teen cell phone use, track cell phone location, and locate missing or stolen cell phones. These apps (often called spy apps or spy phone software) are often used by people who want an easy and convenient way to back up and store all their own personal cell phone data. The reason why this method is fast becoming a popular way to back up their own personal cell phone data is because everything happens automatically. There is no “syncing” required, or any buttons or settings to worry about. Your cell phone data (text messages, call history, etc.) are automatically backed up every single day. This means if you ever delete a text message, and then need to quickly recover it, all you have to do is log onto your account and then in just a few clicks, you’ll have full contents of every message that was either sent or received from your phone. In addition, you’ll get access to all your call logs and contacts.

The reason why this is a more difficult method, is because it requires that you download the software from your cell phone’s web browser and install the application on your phone. Not everyone is comfortable downloading cell phone apps from the internet using their phone’s web browser. However, once you do complete the download, the actual installation is similar to installing an app on your computer. If you are willing to roll the dice and go with this method, you’ll be very happy with the results. It’s essentially a real time person back up solution that requires absolutely ZERO work on your part. Everything is done for you. The only drawback with this approach is that it does require you to install the software BEFORE you delete the text message that you want to retrieve. This means you need to be proactive and install the software ahead of time.

Positives of this approach?

  • Extremely effective.
  • Affordable.
  • Full contents of text messages are retrieved.
  • Large amount of cell phones are supported, including the popular models such as Android, BlackBerry, iPhone, Nokia, and more.

Negatives of this approach?

  • Can be difficult if not familiar with installing cell phone apps.
  • Software must be installed prior to message being deleted.
  • Requires a data connection such as 3G or Edge
  • May increase data fees if a large amount of text messages are sent on a daily basis.

There you go. Now you know how to retrieve deleted text messages using a couple different approaches. The next time someone asks you how to retrieve deleted text messages, you’ll know what options exist, and which one is the best for that particular situation.

Good luck!

Posted in general | Comments Off on How to Retrieve Deleted Text Messages & Not Go Crazy in the Process

The Advantages and Disadvantages to Bug Tracking Software

Bug tracking has been around as early as the 1940’s, just not in a software form. In these early days, simply using a pen and a paper created tracking systems. It evolved from then to using spreadsheets. Now there is bug tracking software like the defect tracking tool and even more specific programs like Mantis and Bugzilla, just to name a couple. As with anything that evolves however, there will always be those that are 100% for the programs and those that are against it. This article will cover all claims – both positive and negative – of bug tracking software like the defect tracking tool.

The Positive Claims

It certainly depends on the type of bug tracking software that is used, but it seems as if there are many more advantages to these tools than disadvantages. The most obvious advantage is that these types of tools allow companies to keep a record of the issues that are recorded, who fixed them, and even how long it took to fix the issue for some types of programs. Customers are encouraged to be as detailed as they can be when requesting that an issue be fixed so that companies can complete their requests as quickly as possible. The fact that the issues are recorded and saved is a huge benefit for the companies because sending the recorded bug list with the purchased software is a common practice. This is a benefit to customers because if it is a common error, they can simply look up this issue in the previously recorded bug list. However, if the list is incredibly long (a common disadvantage) it can become more of a hassle.

The Negative Claims

As with anything that has a list of positive aspects there is also a list of negative aspects, though there are few. One of the biggest complaints is not so much from the bug tracking software or defect tracking tool itself but more from the process of submitting issue requests. Customers need to be extremely detailed with their issue requests if they want a detailed response. Miscommunication isn’t a fault of the product, the customer, or the company – it’s simply something that happens. Customers and companies alike both need to remember to be patient with each other and to treat each other with a mutual respect. A second complaint that was previously mentioned is the length of issues in some of these software programs.

Some customers don’t have the patience to look through a long list of software issues that have been previously recorded and this causes frustration among the companies that took the time to purchase software that saves them. The length of issues that are submitted can also become a problem because if there are too many issues submitted and not enough engineers to address them, some can get overlooked. Nobody likes to be forgotten, but usually these types of bug tracking software include detailed instructions and are easy to use.

Usually when a company purchases a bug tracking software or defect tracking tool it already has an experienced IT department in place. Whatever the software is that is being used with these programs should have some sort of backup for when the work is completed so it does not get lost if the issues that occur are deadly.

Posted in general | Comments Off on The Advantages and Disadvantages to Bug Tracking Software

Introduction to Fixed Asset Management

There are obvious benefits from implementing and maintaining a record and control over assets. Savings can be obtained from being able to both see current asset deployment and thenby maximizing their use. Monitoring assets will reduce unauthorized use or misappropriation and insure employees leaving a firm return assets under their control. In some cases a system is mandated by government regulations, terms of lending, public grant terms, insurance terms etc. One person can maintain and manage all fixed assets of a business if they have software to assist them. Computer systems and software available reduce complexity, save time and prevent mistakes. Why use an asset management software program?

While paper and pencil methods can be used, software programs assist in the recording, maintenance and auditing of assets. This saves time and gives a clear picture of assets since sorting and viewing in different ways is quick and easy.

The most basic 'solution' would be using a spreadsheet program such as excel. Even after migrating to software specifically designed for asset management there are times that a spreadsheet program may continue to be useful.

What is an Asset?

What you call an asset often depends upon your business activities. The first thing that comes to mind is fixed assets such as computers, production equipment, office furnishings etc. You might even wish to consider employees as assets or even service and maintenance contracts. A flexible asset management software program can provide a way to track many things most of us would not consider to be assets.

What are my first steps in setting up a system or 'solution'?

1: Decide what assets will be managed.

The more assets the more work in setting up your system. Limiting assets to only those over a certain dollar value is a good idea.

2: Deciding what characteristics of assets it is important to record within the software.

Your choices will not only have an effect upon the amount of work required but also the amount to which you can manipulate and view asset information by sorting on asset information field or combination of fields.

For example if you setup a field for 'location' then you can sort data to see what assets are in each location. If you also have a field for 'type' or 'class' then you could further sort and display to show only certain types of assets such as computers at one or more location.

As in every aspect of life one has to make tough choices between what is ideal and what is feasible. Your choices will have an effect upon data data when new assets arrive as well as collecting information about existing assets. Choices you make will also have a bearing upon your choice of software since some may not handle everything you want. One such a limitation is found within the AssetTrakker Pro software program. TrackitSoftware does not provide a method of tracking depreciation because it was felt this added too much complexity requiring the collecting and maintaining of a lot more data. Additionally, they felt, handling depreciation requires superior knowledge of government rules and regulations beyond the expertise of the very people that stand to benefit most from asset management. Accounting departments already calculate and account for depreciation. * Some software does promote depreciation calculation but only limited functionality that in most cases is not the way regulations demand.

Some help!

Below is a listing of Asset Attributes 'fields' for your consideration. You will not want to use all of them for your own 'solution' and may well have additional ones you need.

Asset #: The key identification reference used to track assets. They can be straight numbers or a number with an alphabet prefix. (0001 or A001). This number is used for audit purposes and for cross-reference.

Make: Manufacturer

Model: Use when arranging service or buying parts. Use as allowed grouping by model type.

Serial #: Specific asset identification. Needed when making warranty or insurance claims.

Cost to Repl .: Estimate the cost of replacing an asset. Useful for planning, risk assessment and insurance.

Cross Ref. #: Reference other asset number or tie together group of assets.

Type: Can be used for general grouping such as furniture, computer, shipping, etc.

Condition: Helpful to see what is likely to require replacement or decide on service needs.

Description: Other detail in addition to make, model, and serial number.

Memo: Additional information about the asset. If a computer you might want to list details of the hardware configuration or even the programs installed on it.

Department: This is helpful for sorting assets by department to assist in auditing.

Location: Good field to have so that a search / sort can give you a clear view of where assets are located.

Used by: Necessary if you have assets in the personal possession of an employee and / or assets off business concessions.

Date Assigned: Useful if assets are moved around or for telling how long an asset has been at its current location.

Expected EOL: The anticipated date when the asset will no longer be useful.

Funded by: Source of funds if provided by Bond Issue, or outside funds (loan) or a grant.

Cost: Total cost of acquiring an asset.

Date Acquired: Helps give some idea when replacement may be required.

Disposed: Indicates an asset has been disposed of.

Disposed Date: Date asset was disposed of.

Business Use%: Used if an asset is not used full time by the business to break down asset use. Not for everyone, but a field that imagination might find an indispensable use for.

OUT: Used for Tool / Equipment Tracking,

Taken By / In From: Used for Tool / Equipment Tracking to indicate who is taking or returning item.

Date Due: Used for Tool / Equipment Tracking to show when an asset is due back.

Recovered Value: Net proceeds of the disposal of an asset.

Disposed Detail: Notes on how and where an asset was treated of.

Warranty: Indicates if asset is covered by a warranty or could be used if covered by a service / maintenance contract.

Warranty Expiry: It is useful to see what expiries are approaching for tracking maintenance or service agreements. Helps prevent paying for service covered by warranty as well as prompting the repair of items before expiration.

Image: Can assist in asset identification or where 'look' is an important feature. Useful if insurance claim ever made.

Value: Could be amount the asset is insured for. Risk exposure control.

Leased: Helps keep track of Leased vs Owned assets.

Lease End: Used to warn when assets have to be replaced or the lease has to be renewed according to the terms of the lease.

Lease Start: Commencement date of lease on leased equipment.

Lease Co: The name of the company from which an asset is leased.

Audit Date: This column records the date the batch scans of assets were made for audit purposes.

Auditor: Record the name of the person who performed the audit.

What next?

By now you have a good idea of ​​what asset information you want to track. Before looking at the various software packages available you should consider how many people will be entering data and how many will be accessing the data. For a smaller organization it is likely that just one person will be involved but in larger firms despite a number will wish to participate. Your situation could require purchasing more than one software license and the software must support multiple users.

Use a Barcode Scanner?

A barcode scanner can be used to speed data entry and auditing. This will add to the cost and most lower priced software packages offer limited support for barcode scanners. If properly incorporated into software a scanner can provide excellent value and save a lot of time, particularly for annual audit purposes.

Below are outlined the types of barcode scanners used with asset management software.

A 'dumb' tethered ccd scanner is cheapest and purchased for around $ 70. This can only be used when plugged into the computer and acts just to a keyboard in that you scan a barcode and it is put into whatever cell or space you are in.

A 'laser' tethered scanner is more money but will be able to scan smaller barcodes and sometimes have a defect field of view (easier to scan a barcode quickly).

A ccd or laser scanner which has built in memory so scans can be made and then the scanner can be brought back and plugged into a computer, and those scans uploaded. This is extremely useful for audit purposes. For maximum utility your software should be optimized to take advantage of this 'batch' memory capability. A capable unit can be obtained for around $ 150.

A laser scanner with internal memory, as well as an input screen and keys, means that after scanning a barcode you can add additional information. These are more expensive and again their use has to be integrated into your management software. While prices are coming down you are looking at units in the pocket pc price range plus scanner cost. It is usual for software utilizing these units to also, for some reason, be priced higher.

Asset Management Software

The range of prices for asset management software is $ 200 to $ 10,000 and all require you to do the entry of existing asset data as well as some setting up for your requirements. Some offer telephone advice at additional cost but hands on assistance only comes with expensive packages (this level of software requires expensive sales force and marketing expense so possibly their price, for the features provided, may seem high).

Purchasing Criteria a lot of people seem to use. You may have more.

1: Price 2: Ease of implementation of system 3: Ease of use 4: Ability to fit the business 5: Functionality 6: Potential to handle growth

What you can obtain for a reasonable price

A program with full relational database, such as MS SQL Server Express, or open source database. Today there is no reason to set for less power or quality. Microsoft provides their SQL 2005 'Express' DB version at no cost.

A program that allows you to attach images of assets. While not necessary for everyone it is something that someday you might want to use.

A program that integrates the use of inexpensive 'batch' memory barcode scanners because, if not now, at some point in the future such an accessory will save time and money. Used in auditing it assures an asset was actually seen as barcode had to be scanned.

A program that will permit the management of 10,000+ assets. With decent memory in your computer and a fast full relational database engine there is not much of a limitation anymore and while certain functions may slow down a bit even a low cost program should handle over 10,000 assets.

A program that is flexible so you can take advantage of features later instead of having to implement everything at once.

* If more than one person is to be given access to the database then you should ensure that different levels of access can be set for different users to prevent unauthorized changes to data.

What you can get but not cheaply.

A program that integrates directly into your current accounting system.

A program that has full professional depreciation calculations.

A program that runs directly off your company server (lower cost software runs off workstations and while a central database can be located on your server and accessed by individual workstations this is not the same as complete software being server based with applets on workstations.

Hand holding and in house training to get your system up and running. There are firms that will sit down with you and ask you all the right questions, set up your software, audit and list all your assets and then train your staff how to operate and maintain your 'solution'. Most, to my knowledge, will recommend a mid to high priced software because it is easier to sell (commission higher as well) and easier for them to install due to their familiarity with it.

Nuts and Bolts

Gathering your Asset Information How you perform this step depends upon your situation. In our discussion below we assume you do not have existing asset information, in an existing excel spreadsheet or other format. If you do then you would save work by exporting / importing that data into your asset management software.

Starting your Asset Listing and Numbering from Scratch

This is an advantage because you are not limited by inherited constraints. Of course it is more work, as you can not just load in existing asset information but have to collect everything yourself.

Collecting asset information is time consuming. Getting this information accurately, with as little work as possible is important. Thinking about how to do the job and planning will help make this big job easier.

The following is how I suggest doing this but you may have your own, sometimes better plan.

Create data entry sheets that you will have people write in information about assets under their control. Your asset management software may create these or you could make up an excel spreadsheet to obtain them.

Try and obtain some 'buy in' from the department or location manager with control over assets. The closer to the asset you can allocate some responsibility the better that asset will be controlled. 'It's my department's asset' is more powerful an incentive than 'it's IT Dept's asset'.

Final steps

After entering data, that your co-operative managers helped you obtain, it is time to work with that data within your asset management software. It should not take long to become familiar with how it can present information to you on screen and in reports.

Now sit back and enjoy how easy it is to manage your assets.

Posted in general | Comments Off on Introduction to Fixed Asset Management

Medical Coding History – From Paper to Medial Coding Software

If we define medical coding as the assignment of alphanumerical characters to diagnoses, diseases, and treatments, then medical coding has been traced back to the 1600s in England with the London Bills of Mortality. A more standardized system of coding was developed for classifying death at the tail end of the 19th century. In 1893, Jacque Bertillon, a statistician, created the Bertillon Classification of Causes of Death, a system which was eventually adopted by 26 countries at the beginning of the 20th century. Shortly after the Bertillon Classification system was implemented, people began discussing the possibility of expanding the system beyond mortality as a way of tracking diseases.

By the middle of the 20th century, the World Health Organization (WHO) adopted a goal of a single global classification system for disease and mortality, entitled the International Classification of Diseases, Injuries, and Causes of Death (ICD). This classification system is updated every 10 years. The latest revision, ICD-10, is scheduled for adoption in the United States in 2013.

What started out as a small set of medical codes has evolved into a complex system that was initially standardized by the American Medical Association back in 1966 with current procedure codes (CPT) codes that are updated annually.

In the late 1970s, the Healthcare Common Procedure Coding System (HCPCS) was developed based on CPT. HCPCS has three levels of codes: Level One is the original CPT system. Level Two codes are alphanumeric and include non-physician services such as ambulances and other transportation as well as patient devices such as prosthetic devices. Level Three codes were developed as local codes, and were discontinued in 2003 in order to keep all codes relevant worldwide.

Recently, medical coding systems have been expanded to include other medical specialties. For example, there are coding systems related to disabilities, the dental field, prescription drugs, and mental health.

As the coding systems have become more complex and diverse, the need for training of medical coders has grown exponentially. Private training schools and public colleges throughout the country have developed certification programs. In order to be awarded a certificate, students must obtain a two-year degree from an accredited medical coding school and pass an exam given by the AHIMA.

Over the past 20 years, many coding processes have shifted from a paper-based system to a computer-based system using medical coding software and medical billing software. Many companies sell complete medical software-based coding solutions and myriad of products for specific medical disciplines, such as products that are specifically tailored to skilled nursing facilities, physicians, hospitals, surgery, cardiology, and more.

As medical facilities and professionals begin preparing for the conversion to ICD-10 in 2013, the need for more sophisticated medical coding software solutions and qualified medical coders will continue to grow.

CPT is a registered trademark of the American Medical Association.

Posted in general | Comments Off on Medical Coding History – From Paper to Medial Coding Software

The Advantages of Having Personal Productivity Software

Personal productivity software is an application that no business should be without. This is because of the simple fact that this piece of software makes a great contribution when it comes to ensuring productivity in the workplace. But if you are not too convinced about the importance of purchasing personal productivity software just yet, well, this is actually normal. A lot of business men do become wary when presented with the notion of purchasing such software because computer software is a bit pricey in the market right now. However, when presented with the many benefits businesses enjoy with these software applications, the activity of convincing businessmen becomes very, very easy to do.

So, why exactly do you need personal productivity software in running your business? First of all, this piece of software can give any type and size business the professional touch it needs. The software comes with applications and programs that make it very easy for you to produce professional looking letterheads, marketing reports, brochures, mailing campaigns, and the like. Even the simple act of developing professional looking paychecks is easily done with the use of such software as well. And this is just one of the minor benefits that come with such software!

When you get the basic package, you actually get a word processor, a spreadsheet application, presentation software, and the like. For a more cost-efficient option, you could consider getting one of those suites that contain a number of these tools. This way, you are sure to get more value for your money. Some examples of these suites include Microsoft Office, Sun Staroffice 8, Microsoft Works, or Corel WordPerfect Office. An interesting fact about Microsoft Works is that it actually comes free with personal computers. Aside from these suites, you can also choose to get supplementary software packages that can make your whole life easier.

One of the popular software packages includes QuickBooks. This choice is popular because it is known to be very efficient in handling and managing inventory and business finances, such as payroll and benefits packages. Now, with all these abilities, you have to be sure to allot a hefty budget for your suite of tool and the additional applications and programs you would be getting. The typical price for suites and the individual applications range from a hundred to five hundred dollars. So, if your PC is meant for more than just doing the regular email and the basics on word processing, then you should consider this option thoroughly.

You may also be worried about the hidden and recurring fees that might come with having personal productivity software installed in your system. Yes, they do come with long term costs, but these are just minimal when you compare them to the benefits you would come to enjoy with the software. An upgrade would occasionally be needed, especially after a few years or so with your own application suite. Plus, your business should be growing in a few years, right? Thus, it would make much sense to avail of this upgrade, to foster improvement for your company in the business setting. Do not worry too much about upgrade expenses because they would definitely be lower than that of the original purchase.

Posted in general | Comments Off on The Advantages of Having Personal Productivity Software

Why Do We Need Software Engineering?

To understand the necessity for software engineering, we must pause briefly to look back at the recent history of computing. This history will help us to understand the problems that started to become obvious in the late sixties and early seventies, and the solutions that have led to the creation of the field of software engineering. These problems were referred to by some as “The software Crisis,” so named for the symptoms of the problem. The situation might also been called “The Complexity Barrier,” so named for the primary cause of the problems. Some refer to the software crisis in the past tense. The crisis is far from over, but thanks to the development of many new techniques that are now included under the title of software engineering, we have made and are continuing to make progress.

In the early days of computing the primary concern was with building or acquiring the hardware. Software was almost expected to take care of itself. The consensus held that “hardware” is “hard” to change, while “software” is “soft,” or easy to change. According, most people in the industry carefully planned hardware development but gave considerably less forethought to the software. If the software didn’t work, they believed, it would be easy enough to change it until it did work. In that case, why make the effort to plan?

The cost of software amounted to such a small fraction of the cost of the hardware that no one considered it very important to manage its development. Everyone, however, saw the importance of producing programs that were efficient and ran fast because this saved time on the expensive hardware. People time was assumed to save machine time. Making the people process efficient received little priority.

This approach proved satisfactory in the early days of computing, when the software was simple. However, as computing matured, programs became more complex and projects grew larger whereas programs had since been routinely specified, written, operated, and maintained all by the same person, programs began to be developed by teams of programmers to meet someone else’s expectations.

Individual effort gave way to team effort. Communication and coordination which once went on within the head of one person had to occur between the heads of many persons, making the whole process very much more complicated. As a result, communication, management, planning and documentation became critical.

Consider this analogy: a carpenter might work alone to build a simple house for himself or herself without more than a general concept of a plan. He or she could work things out or make adjustments as the work progressed. That’s how early programs were written. But if the home is more elaborate, or if it is built for someone else, the carpenter has to plan more carefully how the house is to be built. Plans need to be reviewed with the future owner before construction starts. And if the house is to be built by many carpenters, the whole project certainly has to be planned before work starts so that as one carpenter builds one part of the house, another is not building the other side of a different house. Scheduling becomes a key element so that cement contractors pour the basement walls before the carpenters start the framing. As the house becomes more complex and more people’s work has to be coordinated, blueprints and management plans are required.

As programs became more complex, the early methods used to make blueprints (flowcharts) were no longer satisfactory to represent this greater complexity. And thus it became difficult for one person who needed a program written to convey to another person, the programmer, just what was wanted, or for programmers to convey to each other what they were doing. In fact, without better methods of representation it became difficult for even one programmer to keep track of what he or she is doing.

The times required to write programs and their costs began to exceed to all estimates. It was not unusual for systems to cost more than twice what had been estimated and to take weeks, months or years longer than expected to complete. The systems turned over to the client frequently did not work correctly because the money or time had run out before the programs could be made to work as originally intended. Or the program was so complex that every attempt to fix a problem produced more problems than it fixed. As clients finally saw what they were getting, they often changed their minds about what they wanted. At least one very large military software systems project costing several hundred million dollars was abandoned because it could never be made to work properly.

The quality of programs also became a big concern. As computers and their programs were used for more vital tasks, like monitoring life support equipment, program quality took on new meaning. Since we had increased our dependency on computers and in many cases could no longer get along without them, we discovered how important it is that they work correctly.

Making a change within a complex program turned out to be very expensive. Often even to get the program to do something slightly different was so hard that it was easier to throw out the old program and start over. This, of course, was costly. Part of the evolution in the software engineering approach was learning to develop systems that are built well enough the first time so that simple changes can be made easily.

At the same time, hardware was growing ever less expensive. Tubes were replaced by transistors and transistors were replaced by integrated circuits until micro computers costing less than three thousand dollars have become several million dollars. As an indication of how fast change was occurring, the cost of a given amount of computing decreases by one half every two years. Given this realignment, the times and costs to develop the software were no longer so small, compared to the hardware, that they could be ignored.

As the cost of hardware plummeted, software continued to be written by humans, whose wages were rising. The savings from productivity improvements in software development from the use of assemblers, compilers, and data base management systems did not proceed as rapidly as the savings in hardware costs. Indeed, today software costs not only can no longer be ignored, they have become larger than the hardware costs. Some current developments, such as nonprocedural (fourth generation) languages and the use of artificial intelligence (fifth generation), show promise of increasing software development productivity, but we are only beginning to see their potential.

Another problem was that in the past programs were often before it was fully understood what the program needed to do. Once the program had been written, the client began to express dissatisfaction. And if the client is dissatisfied, ultimately the producer, too, was unhappy. As time went by software developers learned to lay out with paper and pencil exactly what they intended to do before starting. Then they could review the plans with the client to see if they met the client’s expectations. It is simpler and less expensive to make changes to this paper-and-pencil version than to make them after the system has been built. Using good planning makes it less likely that changes will have to be made once the program is finished.

Unfortunately, until several years ago no good method of representation existed to describe satisfactorily systems as complex as those that are being developed today. The only good representation of what the product will look like was the finished product itself. Developers could not show clients what they were planning. And clients could not see whether what the software was what they wanted until it was finally built. Then it was too expensive to change.

Again, consider the analogy of building construction. An architect can draw a floor plan. The client can usually gain some understanding of what the architect has planned and give feed back as to whether it is appropriate. Floor plans are reasonably easy for the layperson to understand because most people are familiar with the drawings representing geometrical objects. The architect and the client share common concepts about space and geometry. But the software engineer must represent for the client a system involving logic and information processing. Since they do not already have a language of common concepts, the software engineer must teach a new language to the client before they can communicate.

Moreover, it is important that this language be simple so it can be learned quickly.

Posted in general | Comments Off on Why Do We Need Software Engineering?

The Importance of Educational Software in Educational Institutes

Internet has expanded its dimensions like anything. The incredible expansion of the web world along with its easy and affordability of integrated technology have come together to create a new learning methodology of Educational Software. Nowadays, the task of carrying out educational projects and disseminating education is not at all futuristic or alien. This have not only become an important part of the educational setup but also of the business world. The facility to link with the internet in a reasonably priced and competent manner was the basic reason for this tremendous growth of this. Nowadays, education software available in comprehensive package forms for colleges, schools, Universities and even home use.

With time, educational institutions have become more diverse and therefore they cannot risk being simple temples of education. There are vast varieties of activities in educational institutes like admissions, curriculum management, library management, placements, hostel management, finance management and a number of other requirements. It is in view of these burgeoning requirements of schools and higher educational institutions that Educational Software have become popular nowadays. This software can address all the requirements of an educational institute starting from student curriculum management to school bus tracking system to Biometric Attendance System to Student Information System to Library Automation Systems.

Education Software is nowadays constituents of a school’s identity as they are capable of delivering all the associated tasks. Present day software even provides the facility and access to parents to keep a bird’s view of their kid’s progress in the classroom. The Student Information System enables parents to monitor the curriculum of their children and receive feedbacks from the teachers. Intelligent Library Management System allows easy access to library records.

Another aspect of education software is their Bus Tracking System that ensures the safety of students. It is a path breaking integration into this software. Nowadays, they have become quite affordable integrating advanced GPS applications into the software. They are effective tools for the school management as well as the parents, who want to know whether their students or kids are safe while travelling from school to home and vice versa.

The curriculum management component of this is capable giving an interactive learning experience to students. Nowadays, most of the education software is capable of developing to the next level as and when students grow in their knowledge. Online tests and evaluations have become important tools used by such software in order to test the level of students. It can even take the form of a game in order to stimulate the mind of children giving them real demonstrations of subject matter. Educational Software can now be found for students of all ages and for all subjects.

Posted in general | Comments Off on The Importance of Educational Software in Educational Institutes

Why Computer Hardware Is Important

In this day and age, it is hard to deny the influence of technology in our lives. We live in an era where pretty much is automated and computerized. And amidst all the technological advancement that humankind has achieved, one important device has been created that will only sure to become more relevant to our lives as technology progresses, the computer. No one can deny that computers are now an essential part of our lives, the same way a cell phone and television does. It is safe to say that in this day and age, having no computer would be an inconvenience. Which is why it is important that we know the way our computer works so that we would be aware of the things that we should do in case it stops working. The hardware of the computer is considered to be the most important because without it, it will simply not work.

Simply put if you know how to handle the hardware of a computer and know each of their function for the unit, then you can easily determine what the problem is in case the unit stops functioning. In order to be familiar with basic computer troubleshooting, then you also need to be familiar with computer hardware. A good example of this is the memory of the computer (RAM). All programs and applications that are ran in a computer needs memory. Without RAM it simply will not function. Aside from that, even if you have a RAM but it does have the specifications to keep up with the programs that are being run, then the operation would have slowed down to a crawl. So when it comes to computer hardware, you have to make sure that it is not obsolete, so you need to upgrade depending on what sort of program that you are usually using.

When handling computer hardware, you have to keep in mind some safety measures so you can manipulate the unit safely. Before opening any computer cases, you have to make sure that the unit is unplugged or you might risk electrocution or shocks. While checking your hardware components, always check for damaged parts because that is most likely the one that is causing problems. When inserting components and parts, you have to remember that if it does not fit, then most likely you are inserting it on the wrong slot. If it does not fit, then do not force it or you will risk breaking the component. Before touching any parts inside the unit, make sure that you discharge yourself first by through a grounded metal object or you can use an anti-static wrist strap or mat which is sold in stores for cheap.

By knowing and analyzing every computer hardware part you will know about its importance and if it ever breaks down then you can perform the proper troubleshooting steps. Every hardware component is important for the computer's operation. The performance of your computer largely depends on how good your hardware is, so be sure that they are always in good working condition.

Posted in general | Comments Off on Why Computer Hardware Is Important