Computer Engineer Salary

A report by CNNmoney states that students who majored in computer engineering were the top earners of the class of 2011. On top of that according to the Bureau of Labor Statistics, the demand for computer software engineers is expected to grow by nearly 38% by 2016 You may have just stumbled upon your new career!

There are two types of engineers, hardware and software. A hardware engineer deals with physical components. They research, design, and test the physical components of a computer including circuit boards, chips, and keyboards. A software engineer, called developers, create programs for users to perform task. They create the software that translates the commands from applications into instructions that the hardware can understand. They create the operating systems and computer interfaces for desks and consumer electronics.

95% of jobs are located in metropolitan areas. Positions are located in research labs and manufacturing labs. Some work in computer system design firms, research and develop firms, or federal government. Just as there is a range of potential work environments you may end up being in, there are also a large variety of things you may be creating programs for. Computer engineers create on computers, cell phones, navigational systems in your car, video games, and etc. If you're creative, love computers, and do not mind making a lot of money in the process then this just might be for you!

Some of the highest income makers coming directly out of college are graduates in the computer engineering field. This is a great incentive to buckled down and stay focused on those late nights studying in your dorm. This will literally pay off .. BIG TIME! The average salary for computer engineer job postings nationwide are 29% higher than average salaries for all jobs nationwide. Sound good yet? Let's get into the specifics.

The overall computer engineer salary is $ 87,000. To be even more specific let's discuss what you can expect if you enter involved in hardware or software. Starting with the low end of what you can expect. As a software engineer the lowest 10% average $ 45.44 / hr or $ 57,810 annually. The highest 10% average $ 65.28 or $ 135,780. As a hardware engineer the percentages or a slight bit higher. A hardware computer engineer salary on the low end can on average expect $ 48.73 / hr or $ 62,400. The highest 10% of hardware engineers make $ 70.07 / hr or $ 147,610. Not a bad day's work!

Posted in general | Comments Off on Computer Engineer Salary

How to Fix an Error Accessing the System Registry Easily

The system registry is an important component to practically every computer, and it would actually be considered a pile of electronics if the system registry was not included. It is essential for computers based on Windows, since it is the storage location for the hardware, software, and pretty much everything that makes the computer run.

Changes and updates go directly through the system registry for storage, but sometimes things do not always go as smoothly as we wish. Not many know what to do about an error accessing the system registry, but it must be fixed in order to keep your computer running.

An error accessing the system registry is not very uncommon, and it usually occurs when old files or updates are still located within the registry. The error can occur when new updates are downloaded, new programs installed, or even when new software is being added to your computer. A window will usually pop up stating “error accessing the system registry” and not much can be done until the error is fixed.

It can result from old updates being left in the system, or even old files that were not deleted when a download or installation was incomplete. The best way to get rid of the error accessing the system registry is to find out the problem, get rid of old files, and start fresh with new updates and software to keep your computer running smooth.

Because the error accessing the system registry can occur for a number of different reasons, it can sometimes be hard to locate the specific problem. The first step is to determine what exactly triggered the error, such as a new download, new software being installed, or updates occurring to current software on the computer.

The error is most common when updates occur or when updated software is installed, since most likely older versions are still being kept within the registry. In this case, the error accessing the system registry can be easily correct. First off, the installation or update needs to be stopped. Then the system registry can be accessed by the computer owner, and software can be purchased or downloaded to fix this problem.

One of the best options for getting rid of an error accessing the system registry is a registry fix program, since it goes in and does all of the work for you. Rather than trying to find the damaged files and delete them yourself, the program knows exactly what to look for and get rid of for the error to go away.

Not only will a registry fix help to get rid of the problem occurring now, it can even help to get rid of any files and old updates that may cause problems in the future. It is beneficial for clearing your computer of any unnecessary files or programs that may be causing it to run slow, and can even prevent an error accessing the system registry in the future.

A registry fix program can either be downloaded online or purchased at an electronics store, and is a great way to fix an error accessing the system registry. It does all of the work for you, and can even improve the overall performance of your computer. It can get rid of old files, partial updates, or even programs that are no longer needed, and is perfect for fixing your error accessing the system registry.

Posted in general | Comments Off on How to Fix an Error Accessing the System Registry Easily

Advantages and Disadvantages of Biometric Time and Attendance Software

First of all let me ask you what you understand by time and attendance software? Have you ever been asked to log in as soon as you enter office and the main gate of the office has a Biometric machine that takes in your finger prints and allows you to enter the office premise? Yes, these are the time and attendance software being installed in a company.

Biometrics consists of methods for uniquely identifying a person (human being) by his/her physical or behavioral traits. There are many biometric software available in market for such purpose and their use is widely known. One such use is Biometric time and attendance management software.

Those days are gone when we had to punch in cards or sign into a register to tell the other person that we are present. Just as paper checking has been changed from manual to computerized, identifying a person and letting him in your office has been changed from manual to biometrics.

There are many benefits of having such methodology in your office. Such as:

• Accurate timing: When a person looks at his watch and enters the time there is a slight chance that he may see the wrong timing and write. Whereas with biometric time and attendance software there is no possibility of such mistake. The user does not need to see or check the time, it automatically gets logged in.

• Less error: There is no scope of human error here.

• Profit to company: If it’s accurate and correct the company will definitely gain from it.

As everything has a good and bad side this too has its disadvantages, such as:

• Extra cost to company: Biometric software and machine cost a lot more, so installing such software need a good investment money wise.

• Extra management: Remember when every employee is logging his own timing when he comes or leaves; there is no extra management here. But, if you are putting a machine there has to be taken some care of it.

Biometrics time and management software is really helpful when creating payrolls for employees. Once a definite timing has been registered you don’t need to think twice before creating the employees pay.

Many homes are also using such kind of software to have a safe and secure home. Biometric software is really helpful when you need security in your home as well as in office. There are many companies all over the world providing such biometric time and attendance software. You just need to keep an eye on the technologies and websites that are providing you these.

Posted in general | Comments Off on Advantages and Disadvantages of Biometric Time and Attendance Software

How to Watch Satellite TV Online Without Any Satellite Dish

Anyone can watch satellite TV online without any satellite dish system nowdays. In case you do not know, this article would show you one time-tested and another new revolutionary way to watch satellite TV on the internet without having to set up a satellite dish.

Many of the older generation grew up in an era of satellite dishes, especially for those who live in the rural areas where cable do not exist. The dishes are transmitters and together with receivers are conduits for TV signals to be displayed as visual images and pictures on our TV screens. However, they are not always pleasant. Set up can be tough and definitely not for those who are not good with their hands or have poor technical skills. Satellite dishes have grown smaller in recent years but they used to be larger than 6 foot monsters in earlier days. If that irks you, you would be relieved to know that you can watch satellite TV online just like many others without satellite dish system.

What are the hardware and PC requirements you need to set up your 'satellite-dish less' PC satellite online TV?

1. A Good PCTV Card

A PCTV card can be installed onto your computer to make your computer work like a satellite television set. Such cards come in the form of internal or external hardware. If you are familiar with the inside of a computer, then an internal card could be a good choice since they tend to be cheaper and more affordable. However, do not bother yourself when you find it too troublesome to fix it internally because there are external cards that work more like plug-and-play gadgets. They cost more and can set you back easily by a few hundreds. As long as your PC has a spare USB port, this option to watch satellite TV online is open to you.

2. PC Requirements

I would suggest you check your systems configuration before you start shopping for a PCTV card. Most cards require a minimum Pentium 3 333MHz system to run well but remember to note down the specifications like RAM, hard disk space, Operating System, etc before you head to the stores.

3. Ready Internet Connection

PCTV cards work well with both dial-up and broadband connections. However, I have a word of advice here. Dial-up transmission runs like a snail and is a really serious party spoiler. You can end up more frustrated than glad that you are watching the program. Go for broadband connection if you can afford to.

Okay, now that we have discussed about the older commonly accepted method to watch satellite TV online, we will look at another new revolutionary technique. This requires the usage of PC satellite TV software which can be downloaded easily. The setup is simple and all it takes is downloading the software and clicking a few buttons before you are ready to watch satellite TV online from more than 3000 channels. Awesome is not it?

For more information on this PC satellite TV software, do a read up at my satellite TV blog.

This article may be freely reprinted or distributed in its entity in any ezine, newsletter, blog or website. The author's name, bio and website links must remain intact and be included with every reproduction.

Posted in general | Comments Off on How to Watch Satellite TV Online Without Any Satellite Dish

Effective Job Numbering And Cost Code Systems

Overview

Many companies have a sequential job numbering system, but have you considered the possibility of altering the numbering sequence so you can pull reports for a certain type of project or projects by year and the informational reports that could be generated?

And, are your cost codes sufficient to cover the details you need to see in your reports? Do you lump all site related travel and subsistence into one code, or do you have the details of hotels vs. Housing and meals vs. Subsistence?

Not all software programs are sophisticated enough to allow for customized job type numbering sequences; However, even the basic job cost software systems can be adapted to allow for an advanced numbering system.

Specific Job Numbering Sequences

Advanced reporting techniques can yield a wealth of information. How jobs are numbered so ease the reporting burden so projects of a certain type and / or year can be easily excluded from the software. Samples of numbering sequences could be based on the following criteria:

· Year project was awarded

· Public vs. Private works

· Commercial vs. Residential

· Construction vs. Service

· Division (s) of the Company

If your software allows, you may start the job number with the year awarded, followed by the job type and then a sequential number. Management may request a report for gross revenue on all the commercial contractor improvement projects in 2013. If you have a numbering sequence, this would be an easy report to pull, rather than go through all your 2013 projects and manually add the numbers to obtain the Results.

The job cost master file is another good source of information if all fields are completed and there is a common usage of custom fields that can be used to pull reports.

Cost Codes – Too few or Too Many?

Often we see cost code lists that spill onto multiple pages. Most job cost software programs allow for use of one cost code for multiple categories (Labor, Materials, Direct Job Expense, etc.).

A good source to use for establishing a cost code list is the bid recap and detail sheets used when bidding projects. This will yield the different stages of labor, types of materials to install associated with that labor, the different types of equipment to be rented, categories of subcontractors and the details of direct job costs to be incurred.

These activities can be "numbered" to establish a list of cost codes. If the software allows for use of one code across multiple categories, give thought to not duplicating descriptions, but arranging codes together by "type" of work being performed, rented equipment, direct job expenses, work typically contracted out, etc.

Keeping your cost codes consistent will then allow even more sophisticated reporting – management can now ask for all commercial contractor improvement projects in 2013 and the total cost of crane rentals for the year on those specific projects.

Why Go Through These Steps?

History is a great source of information when anticipating the future. Cost details can be analyzed for specific types of jobs when preparing to bid a similar project. Historical information can be analyzed for margins on certain types of projects or a division of the company to make decisions on whether or not a certain type of work is profitable.

If fields are available in the job cost master file, reports can be declined not only by type and year but by project manager as well to look at performance and estimate vs. Actual results.

Conclusion

When developing any numbering system, consistency is important in order to maximize the reporting results. Management should determine the information they wish to see and develop job numbers and cost codes that will allow for advanced reporting not only to themselves but provide useful information to estimating, project managers and accounting as well.

Posted in general | Comments Off on Effective Job Numbering And Cost Code Systems

How Are Brains Different From Computers?

Ever wondered how brains are different from computers? This article shows how. Read on to find out.

Brains consist of cells called neurons and they connect with millions of other neurons and information gets transferred across connection gaps called synapses. Inside the cells data are processed which gives rise to an idea, concept or understanding.

Computers are built of hardware chips and the central processing unit (CPU) processes data after receiving them from the other chips. How it processes data conss of several steps but the main outline is that software programs are fed into the CPU and processed. They provide end result information depending on how the programs are furnished with data and what the query is that fed into the system. If some information is asked that is outside the scope of the software programs, the computer gets limited in functioning.

Brains, however, are limitless. From childhood until adulthood, the brain gets more and more developed and mature. It can process unknown data or abstract data as well and provide insights and knowledge.

The brain is more complex than the CPU and therefore, with neurons and synaptic connections, it is possible to process all kinds of information. It uses the five senses: touch, smell, hearing, taste and sight and takes in information and produces knowledge.

On the other hand, the CPU of computers takes in data from the typing of the keyboard and processes it, which is very limited. However, it is only human beings feeding data, writing software programs and making the computer like like a brain although not quite so.

The brain is still more intelligent than the CPU of computers and has yet to train the computer to have like the brain of a human being.

Yes, computers will be able to take over many tasks of human beings but without human beings, they are lifeless because humans have to give life to these computers, operate on them and have regular updating, monitoring and maintenance on them.

Just as a brain needs to rest and relax, computers will also need that from time to time but they can operate longer times than the average brain. While the brain sleeps, the computer can carry on with its duties of processing data and converting them to knowledge and information.

Summing up, although the CPU is sometimes called the brain of the computer, it is actually a misnomer because as I have outlined in this article, the brain is definitely different from the computer in varying ways and the brain has yet to teach the computer to Behave 100% like a brain.

Posted in general | Comments Off on How Are Brains Different From Computers?

7 Top Reasons Why You Need to Upgrade the Memory For Your Computer

Are you dissatisfied with the way your computer works at a snail's pace? Do you have trouble running multiple programs at a time in a multitasking Operating System like Windows? Does it take ages for your computer to run programs? Can you take a coffee break while your computer opens an icon that you double-clicked? Do games and other resource-intensive programs frequently crash on your computer? If your answer to all these questions is a YES, then you need to think about upgrading your computer.

Upgrading your computer is not a joke, as random upgrades can be quite expensive. A processor upgrade frequently involves upgrading several other components to keep in pace with changes in technology and could be one of the most expensive options. Upgrading other components like graphics card or sound card alone is also not the optimal solution as performance improvement is limited to these areas alone.

Here are some reasons why it makes sense to upgrade the memory in your computer:

1. Cost-Performance Benefit – The upgrade cost versus performance boost ratio is greatest for a memory upgrade as compared to other component upgrades.

2. Programs Run Faster – The availability of RAM can speed up programs and save significant time hitherto wasted while waiting for a response from the computer.

3. Better Multitasking – Multitasking environments like Windows highly heavily on memory to function and increasing memory can provide better performance especially with concurrent running programs.

4. Enhanced Entertainment – Gaming and streaming media applications can benefit tremendously in both performance and speed by a memory upgrade.

5. Advanced Hardware and Software – With increase in memory capacity by upgrading, newer hardware and software components that went hitherto unused due to less memory can now be used.

6. Delay Costlier Upgrades – Memory upgrades to improve performance can defer other upgrades like processor upgrade that necessitate greater expenditure through a major revamp of the computer.

7. Improvement in Data Access Speed ​​- Greater amount of RAM can improve the speed at which the processor does data access and significantly increase the speed of execution.

Posted in general | Comments Off on 7 Top Reasons Why You Need to Upgrade the Memory For Your Computer

The Importance Of Excel In The Workplace

Excel is perhaps the most important computer software program used in the workplace today. That’s why so many workers and prospective employees are required to learn Excel in order to enter or remain in the workplace.

From the viewpoint of the employer, particularly those in the field of information systems, the use of Excel as an end-user computing tool is essential. Not only are many business professionals using Excel to perform everyday functional tasks in the workplace, an increasing number of employers rely on Excel for decision support.

In general, Excel dominates the spreadsheet product industry with a market share estimated at 90 percent. Excel 2007 has the capacity for spreadsheets of up to a million rows by 16,000 columns, enabling the user to import and work with massive amounts of data and achieve faster calculation performance than ever before.

Outside the workplace, Excel is in broad use for everyday problem solving.

Let’s say you have a home office. You can use Excel to calculate sales tax on a purchase, calculate the cost of a trip by car, create a temperature converter, calculate the price of pizza per square inch and do analysis of inputted data. You can track your debt, income and assets, determine your debt to income ratio, calculate your net worth, and use this information to prepare for the process of applying for a mortgage on a new house. The personal uses for Excel are almost as endless as the business uses for this software – and an Excel tutorial delves into the practical uses of the program for personal and business use.

The use of spreadsheets on computers is not new. Spreadsheets, in electronic form, have been in existence since before the introduction of the personal computer. Forerunners to Excel and Lotus 1-2-3 were packages such as VisiCalc, developed and modeled on the accountant’s financial ledger. Since 1987, spreadsheet programs have been impacting the business world. Along the way, computerized spreadsheets have become a pervasive and increasingly effective tool for comparative data analysis throughout the world.

Today, end users employ Excel to create and modify spreadsheets as well as to author web pages with links and complex formatting specifications. They create macros and scripts. While some of these programs are small, one-shot calculations, many are much more critical and affect significant financial decisions and business transactions.

Widely used by businesses, service agencies, volunteer groups, private sector organizations, scientists, students, educators, trainers, researchers, journalists, accountants and others, Microsoft Excel has become a staple of end users and business professionals.

The beauty of Excel is that it can be used as a receiver of workplace or business data, or as a calculator, a decision support tool, a data converter or even a display spreadsheet for information interpretation. Excel can create a chart or graph, operate in conjunction with Mail Merge functions, import data from the Internet, create a concept map and sequentially rank information by importance.

Excel offers new data analysis and visualization tools that assist in analyzing information, spotting trends and accessing information more easily than in the past. Using conditional formatting with rich data display schemes, you can evaluate and illustrate important trends and highlight exceptions with colored gradients, data bars and icons.

Indeed, Excel can be customized to perform such a wide variety of functions that many businesses can’t operate without it. Excel training has become mandatory in many workplaces; in fact, computer software training is a must for any workplace trying to keep up with the times.

Let’s say you’re an employer with 97 workers, 17 of whom called in sick today, and you want to know the percentage represented by absentees. Excel can do that. You can learn Excel and use it to determine the ratio of male to female employees, the percentage of minorities on the payroll, and the ranking of each worker by compensation package amount, including the percentages of that package according to pay and benefits. You can use Excel to keep track of production by department, information that may assist you in future development plans. You can create additional spreadsheets to track data on vendors and customers while maintaining an ongoing inventory of product stock.

Let’s say you want to know your business production versus cost. You don’t have to be a math wiz – you just have to learn Excel. Excel allows you to input all of the data, analyze it, sort it according to your customized format, and display the results with color, shading, backgrounds, icons and other gimmicks that offer time-saving assistance in later locating precisely the information desired. If this spreadsheet is for presentation purposes, Excel helps you put it together in such a visually appealing way that the data may seem to pop and sparkle.

The single most important thing an employer may do is learn Excel – it is one of the most essential tools of the workplace.

Excel and Microsoft are trademarks of Microsoft Corporation, registered in the U.S. and other countries. Lotus is a registered trademark of International Business Machines Corporation in the U.S. and/or other countries.

Posted in general | Comments Off on The Importance Of Excel In The Workplace

Define Computer Hardware

It is quite well known that the working of the computer is dropped by hardware and software. One can define computer hardware as the electronic, magnetic, and electric devices that carry out the computing functions. Hardware is the physical components of the computer like microprocessor, hard disks, RAM, and motherboard. The peripheral devices such as monitor, mouse, keyboard, printer, and speakers can also be included in the list of hardware parts. The programs that run on the computers like Windows, C ++, and Photoshop are the software parts of the computer. A good example for an easy understanding of hardware-software definition is music CDs. The actual compact disk is the hardware, while the songs and music in the CD are the software parts.

There is another way to define computer hardware. Hardware devices are the executors of the commands provided by software applications. For example, let us see what happens when you click the print button of the web browsing software. The software application provides a command to the processor, which is the central part of all computer hardware. Processor in turn checks for an attached printer. If the printer is ready, the software will get a positive response from the processor. Then the software application provides instruction to the printer via the processor to print the web page. In that sense, hardware parts are the foot soldiers and software applications are the commanders in the digital operation that takes place within a computer.

The main player of computer hardware is unduly the microprocessor. It is the sun in the solar system of computer hardware devices. It is the central component and all other components work around it. It is an integrated chip on which a number of functions are incorporated. Two specifications determine its efficiency. One is its processing speed, which is measured in gigahertz. The other is its bit rate. Commonly available processors are 32 bit and 64 bit. The bit rate is a measure of the efficiency of a processor to carry out multiple operations at the same time.

One can not define computer hardware without mentioning the two types of memory used in computers. One is permanent memory. It refers to the magnetic storage capacity of hard disk. It is measured in gigabytes. The second is RAM or random access memory. This memory is able to store data only when the computer is switched on. The memory will lose all the data when the computer is switched off.

Another important product that one should mention when one defines computer hardware is motherboard. It is the electric and electronic circuit board on which all the other components are inserted. There are several other kinds of products such as sound card, video card, network card, and modem that complete the hardware spectrum.

Posted in general | Comments Off on Define Computer Hardware

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?