Software engineering complete course free tutorial | Learn easy with quiz door| Part 5
◽Software Development
Software engineering is nothing but a disciplined approach to develop software. There are some of the activities involved in the course of software development. The activities involved in software development can broadly be divided into two major categories.
🔹 Construction.
🔹Management.
Construction
The construction activities are those that directly related to the development of software, e.g. gathering the requirements of the software, develop design, implement and test the software etc. Some of the major construction activities are listed below.
🔹Requirement Gathering
🔹Design Development
🔹Coding
🔹Testing
Management
Management activities are kind of umbrella activities that are used to smoothly and successfully perform the construction activities e.g. project planning, software quality assurance etc. Some of the major management activities are listed below.
🔹Project Planning and Management.
🔹Configuration Management.
🔹Software Quality Assurance.
🔹Installation and Training.
The figure shows that construction is surrounded by management activities. That is, all construction activities are governed by certain processes and rules. These processes and rules are related to the management of the construction activities and not the construction itself.
◽A Software Engineering Framework
Any Engineering approach must be founded on organizational commitment to quality. That means the software development organization must have special focus on quality while performing the software engineering activities. Based on this commitment to quality by the organization, a software engineering framework is proposed that is shown in the figure.
Quality Focus
As discussed, the given framework is based on the organizational commitment to quality. The quality focus demands that processes be defined for rational and timely development of software. And quality should be emphasized while executing these processes.
Processes
The processes define the tasks to be performed and the order in which they are to be performed. The processes are set of key process areas (KPAs) for effectively manage and deliver quality software in a cost effective manner.
Methods
Methods provide the technical “how-to’s” to carry out these tasks. There could be more than one technique to perform a task and different techniques could be used in different situations.
Tools
Tools provide support for software processes, methods, and quality control.
◽Software Development Loop
Software development activities could be performed in a cyclic and that cycle is called software development loop which is shown below.
Problem Definition
In this stage we determine what is the problem against which we are going to develop software. Here we discuss the issues and requirements of the software system to build.
Technical Development
In this stage we try to find the solution of the problem on technical grounds. This is the stage where a new system is actually developed that solves the problem defined in the first stage.
Solution Integration
If there are already developed system(s) available with which our new system has to interact then those systems should also be the part of our new system. All those existing system(s) integrate with our new system at this stage.
Status Quo (Status quo: present circumstances)
After going through the previous three stages successfully, when we actually deployed the new system at the user site then that situation is called status quo. But once we get new requirements then we need to change the status quo.
After getting new requirements we perform all the steps in the software development loop again. The software developed through this process has the property that this could be evolved and integrated easily with the existing systems.
▪ Software Construction
In Software Construction, a sequence of questions that have to answer in different stages of software development.
🔹 What is the problem to be solved?
🔹 What are the characteristics of the entity that is used to solve the problem?
🔹How will the entity be realized?
🔹 How will the entity be constructed?
🔹 What approach will be used to uncover errors that were made in the design and construction of the entity?
Software engineering is nothing but a disciplined approach to develop software. There are some of the activities involved in the course of software development. The activities involved in software development can broadly be divided into two major categories.
🔹 Construction.
🔹Management.
Construction
The construction activities are those that directly related to the development of software, e.g. gathering the requirements of the software, develop design, implement and test the software etc. Some of the major construction activities are listed below.
🔹Requirement Gathering
🔹Design Development
🔹Coding
🔹Testing
Management
Management activities are kind of umbrella activities that are used to smoothly and successfully perform the construction activities e.g. project planning, software quality assurance etc. Some of the major management activities are listed below.
🔹Project Planning and Management.
🔹Configuration Management.
🔹Software Quality Assurance.
🔹Installation and Training.
The figure shows that construction is surrounded by management activities. That is, all construction activities are governed by certain processes and rules. These processes and rules are related to the management of the construction activities and not the construction itself.
◽A Software Engineering Framework
Any Engineering approach must be founded on organizational commitment to quality. That means the software development organization must have special focus on quality while performing the software engineering activities. Based on this commitment to quality by the organization, a software engineering framework is proposed that is shown in the figure.
As discussed, the given framework is based on the organizational commitment to quality. The quality focus demands that processes be defined for rational and timely development of software. And quality should be emphasized while executing these processes.
Processes
The processes define the tasks to be performed and the order in which they are to be performed. The processes are set of key process areas (KPAs) for effectively manage and deliver quality software in a cost effective manner.
Methods
Methods provide the technical “how-to’s” to carry out these tasks. There could be more than one technique to perform a task and different techniques could be used in different situations.
Tools
Tools provide support for software processes, methods, and quality control.
◽Software Development Loop
Software development activities could be performed in a cyclic and that cycle is called software development loop which is shown below.
Problem Definition
In this stage we determine what is the problem against which we are going to develop software. Here we discuss the issues and requirements of the software system to build.
Technical Development
In this stage we try to find the solution of the problem on technical grounds. This is the stage where a new system is actually developed that solves the problem defined in the first stage.
Solution Integration
If there are already developed system(s) available with which our new system has to interact then those systems should also be the part of our new system. All those existing system(s) integrate with our new system at this stage.
Status Quo (Status quo: present circumstances)
After going through the previous three stages successfully, when we actually deployed the new system at the user site then that situation is called status quo. But once we get new requirements then we need to change the status quo.
After getting new requirements we perform all the steps in the software development loop again. The software developed through this process has the property that this could be evolved and integrated easily with the existing systems.
▪ Software Construction
In Software Construction, a sequence of questions that have to answer in different stages of software development.
🔹 What is the problem to be solved?
🔹 What are the characteristics of the entity that is used to solve the problem?
🔹How will the entity be realized?
🔹 How will the entity be constructed?
🔹 What approach will be used to uncover errors that were made in the design and construction of the entity?