What is Software Engineering?
Before we discuss software engineering issues, do you already know what software is? According to Roger S. Pressman in his book Software Engineering: A Practitioner’s Approach, software is something that consists of three main parts, namely:
- The instruction / code of the program which, when executed, produces a feature, function, and desired performance.
- Data structure that allows a program to be able to present information adequately.
- Descriptive information in hard copy or soft copy form describes an operation and the use of a program.
From the description of the software is clearly implied, that when creating a software, then we need also a hint of operation and usage that we often forget.
Once we know about the software, just let us discuss about software engineering. The term “software engineering” was first invented by NASA technician Margaret Hamilton in the 1960s, and was officially first used at a conference on software crisis in 1968.
Then what is software engineering? According to Ian Sommerville in his book Software Engineering, software engineering is a discipline that addresses all aspects of software production, from the initial stages of specification, design, construction, testing to maintenance after use.
Software engineering often deals with things like:
- How can we build a software in a short time, low cost, and high quality?
- How can we test a software in a short time, low cost, and high quality?
- When we work on a large team, how can we assign the best personnel to the development and testing tasks?
- How can we ensure that we can capture the desired software requirements of clients in the most efficient and effective way.
Building software will always be difficult, there is no silver bullet, because to build a good software should be:
- Can produce function and performance desired by client.
- Must be maintained, dependable and used.