Software Engineering Principles
Software is a series of stored data and instructions which tell a machine how to perform. It is compared to hardware where the machine is constructed and in fact performs the actual work. It is made up of procedures written in a programming language like C++ and runs on a general purpose computer. Some examples of software programs are applications, operating systems, drivers, and databases. Applications are used in distributed computing, in which multiple machines are connected to each other through networks. Operating systems are used to control the execution of software programs.
The field of software engineering was first characterized by the adoption of the programming language C. More information regarding the field of software engineering can be learnt at length, using the resources available on the Internet. Software engineering is the study of software products and the implementation of these products. Software engineering was born out of the necessity of developing better and more efficient computer programs. Software products are needed everywhere, and they increase in number as computers become more complex. In order to make the computers more useful, better and more efficient software products were developed.
A generic term used for all software products is ‘software’. A more specific term used for computer programs is ‘computer program’. Computer programs are much more specific in nature than software products and hence the term becomes less relevant over time. However, programmers still use the generic term when talking about general computer programs.
Software development methodologies have evolved over the years. Original software engineering principles were based on simple programming models. These models made it easy to create good programs as well as generate a lot of output. These days, software engineering has given way to software engineering principles. Software developers still follow these original principles but more often than not they adapt to new software development methodologies. That is why some software development methodologies never get put into use.
The biggest change in software engineering principles came with the introduction of software modeling. Modeling is the process of deriving various different types of object models from a model. Typically, models are needed for a wide variety of objects that can include both hardware and non-hardware products. The object models are usually obtained from a higher level of abstraction. Software engineers used the new principle of object modeling to derive object-oriented specifications that define the user requirements.
This process is more abstract, since it requires the user requirements to be specified explicitly. This leads to the next principle of software engineering: the use of Software as a service (SaaS). SaaS allows software developers to quickly create and update computer programs as required by the user. There are many benefits of using a software application and SaaS greatly helps this process.