Software Engineering: A Layered Approach

Agile Actors
PlayBook
2 min readNov 4, 2019

--

Over the past years, technological advancements have resulted in some revolutionary breakthroughs. You can now order clothes, a cab or even food from your smartphone, while on the phone and en route your next adventure. And that is only an example of how software has grown to provide humanity with endless opportunities. But with software becoming more complex there was soon a need to advance from basic programming principles to that of software engineering in order to tackle those projects more efficiently.

More complex software products require more than basic programming skills, as they are designed to be critical systems for businesses. Software engineering teams are required to analyze user needs and then go on to design, implement and test their end product to make sure it satisfies those needs through the use of programming languages. This process is systematic, disciplined and quantifiable. According to the IEEE, software engineering is “the application of a systematic disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software”.

In a nutshell, software engineering is a systematic approach used by professionals to develop complex software end products within a specified time and budget. This approach is often viewed as layered.

The 4 Layers Of Software Engineering

Tools: This layer contains automated or semi-automated tools that offer support for the framework and the method each software engineering project will follow.

Method: This layer contains the methods, the technical knowledge and “how-tos” in order to develop software.

Process: This layer consists of the framework that must be established for the effective delivery of software.

A Quality Focus: This layer is the fundamental layer for software engineering. As stated above it is of great importance to test the end product to see if it meets its specifications. Efficiency, usability, maintenance and reusability are some of the requirements that need to be met by new software.

Having Tools, Methods and Processes laid out from the beginning of any software engineering process makes it an easier task for both developers and project managers to check the quality of the end product and deliver a more complex software on time by staying on budget.

_____

Have you got any complex software engineering projects in mind? We would like to hear all about them. Contact us.

--

--