Software engineering – A layered technology

Software engineering is a fully layered technology. To develop software, we need to go from one layer to another. All the layers are connected and each layer demands the fulfillment of the previous layer.a layered technology

Layered technology is divided into four parts:

1. A quality focus

It defines the continuous process improvement principles of software. It provides integrity that means providing security to the software so that data can be accessed by only an authorized person, no outsider can access the data. It also focuses on maintainability and usability.

2. Process

It is the foundation or base layer of software engineering. It is key that binds all the layers together which enables the development of software before the deadline or on time. Process defines a framework that must be established for the effective delivery of software engineering technology. The software process covers all the activities, actions, and tasks required to be carried out for software development.

a layered technology process

3. Method

During the process of software development the answers to all “how-to-do” questions are given by method. It has the information of all the tasks which includes communication, requirement analysis, design modeling, program construction, testing, and support.

4. Tools

Software engineering tools provide a self-operating system for processes and methods. Tools are integrated which means information created by one tool can be used by another.

A process framework

Process framework plays a major role in every software development activity as it forms a base in initiating the development process. It is used to estimate certain framework activities which are applied in very developmental activity, irrespective of its size. The process framework includes several umbrella activities, which are useful throughout the software development process. Next to umbrella activity is a framework activity which includes definite number of software engineering actions applicable in driving a specific software engineering application. Each of these engineering actions corresponds to the task set which encompasses a list of actions to be applied. Each engineering action can perform a constituent activity which forms an essential part of the specific software application being developed.

The five generic process framework activities useful in developing several projects are given below:a process framework

1. Communication

This refers to a framework activity where, usually the end users (say customers) are communicated and their views related to the project are analyzed. Here, reports related to customer requirement specifications are developed.

2. Planning

In this framework activity, usually the entire work schedule which is going to be implemented in further stages is prepared. Hence, various issues to be addressed during this framework are risks, requirement of resources, software schedules, important products to be developed etc.

3. Modelling

Once the developer is done with analyzing the customer requirement specifications, the third framework activity will be modeling. Here, usually UML diagrams are used to represent the project in the form of architecture. This helps developers and the customer to gain an insight of the end product.

4. Construction

It is a combination of code generation and testing.

5. Deployment

In this framework activity, usually the developed project is delivered to the end users. They deploy the project and give relative feedbacks to the developers.

Umbrella activities

There are eight umbrella activities of a software process framework. They are:

  • Tracking and controlling software project

  • Managing risks

  • Software Quality Assurance (SQA)

  • Formal technical reviews

  • Software measurements

  • Software Configuration Management (SCM)

  • Managing reusability factor

  • Preparing and producing software work products

Tracking and controlling software project

The first umbrella activity is tracking and controlling the software project. This activity allows the software team to perform the following tasks:

  • Assessing of progress of the project against the plan of the project

  • Maintaining the schedule of the project by taking appropriate action based on above assessment

Managing risks

This activity involves the following tasks:

  • Evaluation of those risks that can have a serious impact on the final result of the project

  • Assessment of those risks that are likely to affect the product’s quality

Software Quality Assurance (SQA)

This activity ensures the software quality by defining and organizing the activities needed to assure quality of software.

Formal technical reviews

This activity tries to eliminate errors as quickly as possible so that they don’t affect the other activities. It is done by evaluation of work products of software engineering.

Software measurements

This activity describes as well as gathers measures of process, product, and project through which software team can deliver a software that fulfills the needs of the customer.

Software Configuration Management (SCM)

SCM is also referred to as Change Management (CM). During the software engineering process, SCM defines a set of activities for managing the changes made to the software components.

Managing reusability factor

This activity is incorporated by the software process framework because of the following reasons:

  • It defines the basic criteria for reusing a work product. Other than this, it also defines a criteria for software components reuse

  • It also obtains reusable components by developing the desired methods

Preparing and producing software work products

The last and final activity is the preparation and production of work products. It includes certain activities that are needed for the creation of the following work products:

  • Models

  • Logs

  • Documents

  • Lists and forms