"Software
engineering is one of the fastest growing fields in the world today," says
Ben Amaba, worldwide executive for IBM Complex Systems. "What we're seeing
across all other disciplines is that software is becoming an invisible thread
tying all disciplines together. Software is now embedded in almost all devices,
mechanical devices all talk with each other, and developing products using
software is faster and poses fewer risks than physical prototyping."
Software
engineering concerned with developing and maintaining software systems that
behave reliably and efficiently, are affordable to develop and maintain, and
satisfy all the requirements that customers have defined for them. It is
important because of the impact of large, expensive software systems and the
role of software in safety-critical applications.
It integrates significant mathematics,
computer science and practices whose origins are in engineering. Software
engineering focuses on software development and goes beyond programming to
include such things as eliciting customers’ requirements, and designing and
testing software. Software Engineering students learn how to assess customer
needs and develop usable software that meets those needs.
Software Engineering has its roots in
the theory and mathematics of computer science. While its study has a lot in
common with computer science, software engineers learn much more about creating
high-quality software in a systematic, controlled, and efficient manner.
Software engineers are trained in all aspects of the software life cycle, from
specification through analysis and design, to testing maintenance and
evaluation of the product. They are concerned with safety and reliability of
the product as well as cost and schedule of the development process.[1]
In order to be a successful software
engineering, [2]a
person firstly
must always do some extra activities apart from studies and related to any
software that has some real time solution of any problem. Whenever you have
free time spend it searching on the internet about new technologies in the
market and also watch for the technologies that will be useful in the future.
Next, after studying about all the fields related to Computer Science, choose a
particular direction in Software Industry.
Narrowing your choice down will help
considerably in planning your career. Always think simple because the Software
Industry itself is very complex. Learn about the field. The major
difference between programmer and engineer is simply that engineers design
tools, hence those are used by programmers to build solutions.
Firstly, because it requires a complex skill
set and high qualifications that are rare to find even today and because their
demand is constantly increasing as demand for software goes up. So, people with
right qualifications are a treasure companies are seeking, and once they get
them, they pay them well to keep them on board. Plus, you may develop anything
from business software to a gaming one, whatever you find more interesting. You
can also make your own decision about whether you want to work alone or you
require a team of other technology professionals to work with. [3]
In today’s business environment, it is one of
the most empowered jobs in the market. Being a software engineer gives
you some of the best platforms to play with your creativity and design
interfaces according to the user’s role. It should be professional, appealing
and must match your customer’s profile to some extent. Lastly, being a software
engineer can be quite challenging; a perfect choice for those who like a
challenge and love computers. Every few days, there are new innovations and
upgrades and a lot of new things to be learned. If you fail to keep up with the
technology, you will be left behind. Software engineers surely remain on their
toes all the time.
The pros of software engineering are the job is
perfect for people that love computers. This is a profession that pays well,
and yet, most software engineers do not have to deal with the customers
directly. You can freelance, not every software engineer can do
this, but good programmers can choose to freelance, they work at home, work on
projects posted on the Internet, and get paid. For cons of software engineering
are hard to change jobs.
There
is a lot of competition. Next, there is too much to learn in too little time.
This is related to the point above. Technology changes so fast, that if you
don't keep up, you become irrelevant and could be replaced with younger,
brighter and more tech savvy engineers. It is important to read the magazines
that talk about the changes in computer technology.
Software has three types which are system
software, application software, and general purpose software. System software
is a program that is designed for controlling input or output devices, memory
and processor. While application software are designed for specific computer
application and general purpose software is most programming language are
designed to be good for one category of application but not necessarily for the
other so general purpose software support both type.
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.
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 software engineers, also known as
software developers, are a vital component of Oregon's workforce. Within this
occupational group, there are two types of engineers: applications and systems.
Applications engineers are charged with developing, creating, and modifying
computer applications software or specialized utility programs.
Systems engineers are charged with
researching, designing, and developing operating systems-level software,
compilers, and network distribution software. This article focuses on
applications engineers as they makes up more than 80 percent of computer
software engineers statewide.
Applications engineers work across numerous
industries but are concentrated in three high-tech subsectors: semiconductor
and other electronic component manufacturing; software publishing; and computer
systems design and related services.
The odds are really freaking good, and only
some of the goods are odd. Sure there are a bunch of socially awkward
engineers, but because of the sheer scarcity of women in the field, if you are
a single female you can have first pick of a lot of really nice available guys. Less Drama, at working with mostly
men keeps the workplace drama-free. Not that all or most women are moody drama
queens, but you know, it happens. It just seems to happen less with men. Being liked, it’s just nice to have
some women in a male-dominated workspace.
They
generally remember to shower every so often, and if you ever bring brownies to
work, you’re suddenly everyone’s favourite person for at least a few minutes
(though this is true for males as well). Sure, if you’re a real bitch, no one’s
going to like you, but most female engineers are easy to get along with and are
well-liked and appreciated in their team. It makes it a little less like;
hey look at all this testosterone fuelling our coding hackathons in this smelly
room.
Determines operational feasibility by evaluating
analysis, problem definition, requirements, solution development, and proposed
solutions. Next, documents and demonstrates solutions by developing
documentation, flowcharts, layouts, diagrams, charts, code comments and clear
code. Prepares and installs solutions by determining and designing system
specifications, standards, and programming. Improves operations by conducting
systems analysis; recommending changes in policies and procedures. [4]
Updates job knowledge by studying
state-of-the-art development tools, programming techniques, and computing
equipment; participating in educational opportunities; reading professional
publications; maintaining personal networks; participating in professional organizations.
Protects operations by keeping information confidential.
Provides information by collecting,
analyzing, and summarizing development and service issues. Accomplishes
engineering and organization mission by completing related results as needed.
Develops software solutions by studying information needs.
The more the software industry matures, the
more it is accepted by the software engineering community that the people
involved in software development processes deserve more attention than the
processes or technologies themselves. To this end, Human Aspects of Software
Engineering details software engineering from the perspective of those involved
in the process: individuals, teams, customers, and the organization. The book is
written for software engineering students and professional software developers.
It illustrates the richness and complexity of the human aspects of software
engineering and covers the problems, questions, and conflicts that arise during
development. The importance of these issues is widely acknowledged in the
industry and academia, because many of the failures of software systems can be
traced to human factors. [5]
This, however, is the first textbook for a
full course on the topic. Focusing on the different social and cognitive
aspects of software development, the book addresses topics such as teamwork,
customer - software-engineer relationships, and learning processes in software
development. These topics are central to developers in understanding the multifaceted
nature of the process. While the code and technology of software engineering
are discussed, they are examined from the human perspective. In addition to the
detailed topic coverage, activities, questions for discussion, and practical
assignments are included.
A software engineer has one of the most
in-demand, lucrative careers in the world. Software engineers have advanced
math skills, which allow them to write complex algorithms required for
developing software. Those who design applications build software that will be
used by a person without a programming background.
Individuals in these computer careers may be
employed by companies such as Microsoft or Adobe to develop retail software
packages. Or they may work instead for a general business (or as a consultant
to a general business) where they develop custom, proprietary software or adapt
a retail package to meet specific business needs.
Most
employers prefer to hire people who have at least a college degree and
experience with a variety of computer systems. Students seeking software
engineering jobs can improve their chances by signing up as interns to get some
experience. Large firms that can train new hires may take new grads with no
experience. Persons looking at jobs in this field must have strong
problem-solving skills. They also must be able to work with team members, other
staff, and customers.
Because they often deal with many tasks at the
same time, they must be able to focus and pay close attention to detail. As
technology advances in the computer field, employers want workers to keep up.
Software engineers must learn new skills if they wish to remain in this
advancing field. To help them keep up, employers, vendors, private training
schools, and others offer a large number of courses.
It is the job of these professionals to make
user-friendly and efficient applications so that employees can be as productive
as possible. Training employees to use the applications should also be
straightforward. The software should be designed to cater to skills that
end-users already have so that, for example, transition from one system to
another is a smooth process.
The range
of work of an individual employed in one of many of the computer careers we
reviewed depends on the size of the organization for which he works. If you
work for a large organization, you are likely to fulfil a more narrow business
role, but you are more likely to perform many other functions in a smaller
organization.
Software
engineering also has its own requirement that have to be fulfilled by those who
are interested in software engineering’s scope. Skill set in one of them. Successful Software Engineers need to know basic business functions, have a
firm understanding of design methodology, and excellent communication skills.
Software engineers normally work in
well-lighted offices or labs. Most work at least 40 hours a week. If a big
project is due, they may have to work nights or weekends to meet deadlines.
Like other workers who sit for hours at a computer, they are susceptible to
eyestrain, back ache, and hand and wrist pain.Software engineers who are
employed by vendors and consulting firms spend time away from their offices to
meet with customers. As networks expand, they may be able to use modems,
laptops, e-mail, and the Internet to identify and fix problems from their own
office.
Both
computer applications software engineers and computer systems software
engineers are projected to be among the fastest growing occupations from 2008
to 2018. Rapid growth in the computer systems design industry should mean good
opportunities for college grads with a degree and some experience. Employers
will look for software engineers with a strong background in programming and
systems analysis, along with business and people skills.
The
number of computer software engineers is expected to rise much faster than the
average, as businesses are looking for new ways to get ahead of competition and
make their computer systems the fastest. Also, growing concerns over
"cyber security"—making sure only certain people can see private
information—will mean more jobs for these engineers. Job growth will not be as
fast as during the last decade because some work is outsourced to foreign
countries.[6]
Software
engineering has brought humanity closer to the moon and taken it deeper into
the earth. Along with all these miracles, software engineering has created many
job opportunities. For a software engineer, the most important is which
language he or she would like to learn in. just like how there are various
speaking languages, there are various programming languages, which are used for
several and certain purposes. C++ is a general purpose language. It is regarded
as a middle level language. The language comprises of high level as well as low
level language features.[7]
Being
software engineering in Islamic views are we can help other people to solve
their problems. As we know that Islam encouraged us to help each others.
Software engineer will help other people in specific problem related with
engineering.
[1]Jessica
Keyes. Software Engineering Handbook. Auerbach
Publications (CRC Press), 2003.Contains complete examples of various SE
documents.
[2]
Ian K. Bray. An Introduction to Requirements Engineering.
Pearson Addison Wesley; 1st edition (August 26, 2002).
[3]
Alan M. Davis. Software Requirements: Objects, Functions, and States.
Prentice Hall PTR; 2nd Revised edition (March 1993).
[4]
Dean Leffingwell, Don Widrig. Managing Software Requirements: A Unified Approach. Addison-Wesley Pub Co; 1st edition
(October 28, 1999).
[5]
Michael Jackson. Problem Frames: Analyzing and Structuring Software
Development Problems.
Addison-Wesley Pub Co; 1st edition (December 15, 2000; ©2001).
[6]
Capers Jones. Software Assessments, Benchmarks, and Best Practices.
Addison-Wesley Pub Co; 1st edition (April 28, 2000).
[7]
Gerard O'Regan. A Practical Approach to Software Quality.
Springer Verlag; 1st edition (June 13, 2002).
Contents in brief: Introduction (functionality, reliability, usability, efficiency, maintainability, portability), Inspections and Testing, ISO 9000, CMM, SPICE 15504, Metrics, Formal Methods and Design.
Contents in brief: Introduction (functionality, reliability, usability, efficiency, maintainability, portability), Inspections and Testing, ISO 9000, CMM, SPICE 15504, Metrics, Formal Methods and Design.
No comments:
Post a Comment