Software Engineering and Software Development
What is software?
Software is a set of instructions, data or programs that used to operate computers and execute specific tasks.
What is hardware?
Hardware is the machinery and electronic parts of a computer system. It is the physical part of the computer system or electronic devices. It can be categorized as input, output, storage, and processing components. As an example for the hardware is a mouse, screen or keyboard as peripherals devices. Also, all parts inside the computer like the hard disk, motherboard or CPU are the hardware devices.
History of Software Engineering
The notion of ‘software engineering’ was first proposed in 1968 at a conference held to discuss what was then called the ‘software crisis’ (Naur and Randell, 1969). It became clear that individual approaches to program development did not scale up to large and complex software systems.
These were unreliable, cost more than expected, and were delivered late. Throughout the 1970s and 1980s, a variety of new software engineering techniques and methods were developed, such as structured programming, information hiding and object-oriented development. Tools and standard notations were developed and are now extensively used.
A number of people can write a different variety of programs. In business, people write spreadsheets programs to simplify their jobs, hobbyists write their programs for their own interests, bloggers, YouTubers, etc. However, software development is a professional activity in which software is developed for specific business purposes or as software products.
According to Sommerville(2009), Professional Software, developed for use by someone apart from its developer, for experienced or non-experienced users, is usually developed by teams rather than individuals. It is changed and maintained throughout its life. That’s why it should have some standardizations and includes principles. However, this topic will be mentioned under another title in the near future.
Generally, when the topic is about software, a number of people think that software is another alias or name for computer programs. However, if we are on the software engineering basis, software is not only the program themselves but also all related documentation and configuration data to make these programs set up and run correctly. A professional software consists of more than a separate program and system and architecture documentation which describe the structure of the system and user documentation which explains how to use the system.
There is a crucial difference between professional and amateur software development. If a program is written for yourself, no one will use and maintains it, there is no problem and necessary to write its program guides or documenting its design, structure, etc. However, if it is written for other people to be able to use and other engineers will maintain it, additional information has to be provided as well as the code of the program. This point of view is the crucial differences between a programmer and an engineer.
Consequently, if someone concerns with all aspects of software production, we can say that this person works in the border of software engineering.
Have error-free software!
- Sommerville, I. (2011). Software Engineering.(9 th ed.). Boston: Pearson Education.
- Software Engineering(4 th ed.) P. L. Shari and A. M. Joanne