Computer Software Engineer Tools and Job Roles
Computer Software Engineers and Computer Programmers - What They Do
Computer
software engineers design and develop software. They apply the theories
and principles of computer science and mathematical analysis to create, test,
and evaluate the software applications and systems that make computers work.
The tasks performed by these workers evolve quickly, reflecting changes in
technology and new areas of specialization, as well as the changing practices
of employers.
Software engineers design and develop many types of
software, including computer games, business applications, operating systems,
network control systems, and middleware. They must be experts in the theory of
computing systems, the structure of software, and the nature and limitations of
hardware to ensure that the underlying systems will work properly.
Computer software engineers begin by analyzing users' needs,
and then design, test, and develop software to meet those needs. During this
process they create flowcharts, diagrams, and other documentation, and may also
create the detailed sets of instructions, called algorithms, that actually tell
the computer what to do. They also may be responsible for converting these
instructions into a computer language, a process called programming or coding,
but this usually is the responsibility of computer programmers.
Computer software engineers can generally be divided into
two categories: applications engineers and systems engineers. Computer
applications software engineers analyze end users' needs and design, construct,
deploy, and maintain general computer applications software or specialized utility
programs. These workers use different programming languages, depending on the
purpose of the program and the environment in which the program runs. The
programming languages most often used are C, C++, Java, and Python. Some
software engineers develop packaged computer applications, but most create or
adapt customized applications for business and other organizations. Some of
these workers also develop databases.
Computer systems software engineers coordinate the
construction, maintenance, and expansion of an organization's computer systems.
Working with the organization, they coordinate each department's computer
needs—ordering, inventory, billing, and payroll recordkeeping, for example—and
make suggestions about its technical direction. They also might set up the
organization's intranets—networks that link computers within the organization
and ease communication among various departments. Often, they are also responsible
for the design and implementation of system security and data assurance.
Systems software engineers also work for companies that
configure, implement, and install the computer systems of other organizations.
These workers may be members of the marketing or sales staff, serving as the
primary technical resource for sales workers, or providing logistical and
technical support. Since the selling of complex computer systems often requires
substantial customization to meet the needs of the purchaser, software
engineers help to identify and explain needed changes. In addition, systems
software engineers are responsible for ensuring security across the systems
they are configuring.
Computer programmers write programs. After computer software
engineers and systems analysts design software programs, the programmer
converts that design into a logical series of instructions that the computer
can follow. The programmer codes these instructions in any of a number of
programming languages, depending on the need. The most common languages are C++
and Python.
Computer programmers also update, repair, modify, and expand
existing programs. Some, especially those working on large projects that
involve many programmers, use computer-assisted software engineering (CASE)
tools to automate much of the coding process. These tools enable a programmer
to concentrate on writing the unique parts of a program. Programmers working on
smaller projects often use “programmer environments,” applications that
increase productivity by combining compiling, code walk-through, code
generation, test data generation, and debugging functions. Programmers also use
libraries of basic code that can be modified or customized for a specific
application. This approach yields more reliable and consistent programs and
increases programmers' productivity by eliminating some routine steps.
As software design has continued to advance, and some
programming functions have become automated, programmers have begun to assume
some of the responsibilities that were once performed only by software
engineers. As a result, some computer programmers now assist software engineers
in identifying user needs and designing certain parts of computer programs, as
well as other functions.
Comments
Post a Comment