Thursday, June 4, 2009

Where is "Engineering" in Software Engineering?

For years, there had been debates about where is "engineering" in software engineering when in fact; engineering software is mainly concerned with building reliable and cost-effective software applications. If we examine the term "engineering", it focuses mainly on the application of scientific knowledge in the creation and building of cost-effective solutions in the service of mankind.

In building software applications, it also undergo the systematic approaches (like engineering) of identifying and analysing the business problem, identify possible alternatives specifically on what technologies can be used, conducting evaluation of the appropriate solutions and later on design and implement the software solutions.

In engineering the software product, it encompasses the issue of just building and constructing it. Rather, it should be aligned with addressing the business goals through its achievement of the desired set of product properties. Normally, these requirements are defined by key stakeholders in the project. In software terms, they are considered to be functional and non-functional requirements which can evolve and subjected to changes during actual project execution.

Software engineers use standards and design handbooks as with engineering. They are represented by IEEE Standards, CMM/SPICE, IEEE/EIA 12207, and many others to guide the execution of software processes in the project. The release of Software Engineering Code of Ethics by IEEE-CS & ACM guides the practice of software engineers in dealing with stakeholders and colleagues during software projects.

As with engineers, software engineers design and make choices of an appropriate architecture of systems. It covers the selection of appropriate technologies to address the business problems of clients and customers. There were too many database technologies now and it would be the responsibility of the software engineer to make design decisions of what database technology will be used to achieve the business goals of stakeholders. In any product development, there can be tradeoffs to cost, schedule and scope but it should be managed by engineers by making the correct decisions.

The "engineering" side of software engineering can be clearly justified as long as those "would-be" software engineers understand the "engineering practice" in development. When you engineer the software product, the issue of looking towards "systematic, disciplined, and quantifiable" should be the main attributes of your practice. Product development gears towards achieving software quality and it can be achieved only if it is done the proper way. Although quality is subjective, it doesn't mean that it can't be measured.

13 comments:

  1. The same issue I have from my aunt that I've mention in my comment on "I am a Software Engineer, not a Computer Programmer!". Many people think why would you be called an "Engineer" if you don't have a board examination. Some countries even made their own licensing examinations for making sure that the "qualified" Software Engineers can only do software engineering in their country.

    Though we don't have an exact or proper board examination for it but it's not a right way to treated like a wannabee engineer. We work and study hard to be a rightful one. Engineering colleges always have a high standards which makes engineering only for those who are worthy and good enough to overcome the challenges.

    As an engineering student, I won't let all my hardship to survive will be gone to waste and can't let their examinations prevent me from recovering the family's reputation and establishing a good and progressive future for my family.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Where is "Engineering" in software engineer?

    Why should we call yourself a engineer if you don’t have a Professional licensure examinations like other sister engineering courses (Civil Engineering, Mechanical Engineering, ECE, EE). Here in the Philippines the professional licensure examination is a very important for the engineering graduates. When they pass these examinations they will now formally call themselves as engineer.

    Software engineering is different from other engineering courses, it has no board exam. But like other Engineering Courses, Software Engineering implies methods such as proper process, designing and measurement
    I agreed that there is engineering in software engineering.
    Although Software Engineering is relatively young compare to other engineering field.
    In software engineering many engineering approach are used.
    Software Engineers jobs like other engineers involve Design and Analysis.

    ReplyDelete
  4. Where is “Engineering” in Software Engineering? Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.

    Software Engineering is the practice of designing and implementing large, reliable, efficient and economical software by applying the principles and practices of engineering. They are learn more on how to create high-quality software in an efficient, systematic and controlled manner. They are trained in all aspects of the software life cycle. They must go through the specification, analysis and design, testing maintenance and evaluation of the product. They are also concerned with the safety and reliability of the software and also the cost and time of the development process.

    Although it is young compare to other engineering courses, Software engineering employs engineering methods, processes, techniques and measurement.

    =)'<=

    ReplyDelete
  5. Absolutely no doubt that I agree because as I know Engineering is the key concept why Software Engineering is one of the successful fields worth to fit with. Engineering in Software Engineering can be found not only before or after the development of a certain project, but it is found before the start of any project until that certain product reaches its maximum upgrade of functionality and reusability. I think Engineering is incorporated in Software merely because of its attributes, like the collaboration of ideas and solutions of other fields (Mathematics, Science and latest innovations) to generate a promising solution into a certain project that fits to what the customers are imagining of. One thing that makes Engineering the best partner of Software in the industry is the capability of Engineering to turn any wild ideas into a promising reality.

    ReplyDelete
  6. If want to be an engineer, it does not mean that you need to pass the board exam, engineering is also a practice, it involves processes like data gathering, design and analysis.
    When building a structure, you need to have some planning before implementing it, and you need engineers and architects to get the job done. In the case of software engineers they are the one’s designing software to be low-cost and efficient. Even though software engineers occasionally go through a lot of calculation, they have to go through a lot of processes before they achieve their goals. Also as stated above, software engineers, too, have to meet standards in their practice.
    Software applications today are becoming larger more complex. We need to design our software to be more efficient, both in production and in usage. That is where the software engineers come in. Software engineers are called “engineers” because they apply engineering practices in designing software and implementing software. They gather data from clients, which are the requirements. After gathering those requirements, they need to plan and decide which appropriate solution to use to meet the requirements specified by the client, and then they proceed to the construction or implementation phase. Software engineers are also concerned with the maintenance of the software.
    Those are some of the things that makes a software engineer truly an “engineer”.

    ReplyDelete
  7. If you are a computer programmer, you may tend to do the most common approach to software development today which is the code-and-fix programming, also known as hacking. Hacking would take time and effort for a programmer to finish its project in a given period of time. He would do trial-and-errors which would result to a lesser quality of software applications. While a software engineer can design and “make choices of an appropriate architecture of systems”. He can finish the project in a given period of time and has also done the project what his client wants.

    A very long bridge, i.e., the San Francisco Bridge, will not stay long for years if engineers and architects have not work hand in hand in designing and determining the maximum strength of the bridge. That is the work of software engineers in making software applications. Software engineers apply software development processes in order for an application to become secure and reliable to consumers.

    ReplyDelete
  8. Many people are confused and indoubt if what "software Engineering" is. But for me, it is a systematic and harmonious practice. For it needs the collaboration of imagination and intellenceof the software engineer, Enable to build a project. Based on the topic, for me, it Covers big part of the information technology industry. Plus it is combination of many fields like commerce, almost all from the engineering feild, and more. In can lead them all through its progression. Inshort, it INNOVATES... SOFTWARE ENGINEERIN IS ESSENTIAL NOWADAYS...

    ReplyDelete
  9. Where is “Engineering” really in software Engineering? When we say “Engineering” it is the application our scientific knowledge towards building or creating cost-effective solutions to the welfare of the mankind while Software Engineer knows first how to identify the problem of the customer and to make cost-effective software solutions. A software Engineer has the means to design and create the concept or application of engineering to software. The fast change of technology has been a challenge to software engineers and to conquer this issues software engineers should adapt or create new innovations in software. To reach this advances in developing a software he must be a well-informed of the software life-cycle and most importantly the processes he/she will use.

    ReplyDelete
  10. As its name imply, Software Engineering is engineering software applications. Like any other fields of engineering, they follow certain disciplines that results to solutions or innovations to resolve problems. Every engineer or I must say software engineers, makes software applications the “engineer’s” way. Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software(Wikipedia). As long as these “systematic, disciplined, quantifiable approach” is observed, the question “Where is engineering in Software Engineering?” will no longer be an issue. But question came up in my mind, “Is engineering observed in software engineering?” Well it depends on how well they observe the “engineering” they have been educated with.

    ReplyDelete
  11. What is Software? What is Engineering? What is Software Engineering?
    Software is something used or associated with and contrasted with hardware. The entire set of programs, procedures, and related documentation associated with a system and especially a computer system; specifically: computer programs. Materials for use with audiovisual equipment.
    Engineering is the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people.
    Combining Software and Engineering. Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches. The design and manufacture of complex products.

    In summary,Sofware Engineering uses the principles of other major engineering. Analyzing, constructing, designing, building, testing, creating quality outputs and many more. But not in the sense of Civil Engineering, Mechanical Engineering or other majors in engineering does. But in the Software Enineering way!

    ReplyDelete
  12. Let me goes with this word “If you design and build the project you may call a scientist but if you design, build and sold the project you may call engineer”. Engineering is an attitude or practice on how you deal with the problem of customer. It simply means that engineering is not only designing and building. It also a matter of giving an answer to what is need and wants of the customer and “Engineering” relate by giving an appropriate architecture design of the system. It is not possible that the present system is subject to change in the future for improvements. Software Engineering makes the project flexible for the further changes.

    ReplyDelete