Software Engineering Introduction - Software Engineering

Explain in detail the concept of Software Engineering

The term software engineering comprises of two words, software and engineering.

The collection or a group of executable programming code along with the documentations and libraries is known as software. The program is said to be an executable code when any specific computational purpose is served. The software that is being designed for a desired specific requirement is known as software product.

The concept related to product development with the help of well-defined scientific methods and principles is known as Engineering.

Software Product

The branch of engineering that is related to development of the software product with the help of well-defined scientific methods, procedures and principles is known as software engineering. An efficient and reliable software product is the result of software engineering concept.

Definitions of Software Engineering

Software engineering as defined by IEEE is as follows –

Software engineering is the application of engineering to software, in other words, application of a systematic and quantifiable approach to the development and maintenance of software.

Software engineering as defined by Fritz Bauer, a scientist from German is as follows –

Attaining software that is economically reliable and efficient on the machines by using sound engineering principles, is referred as software engineering.

What is Software Evolution?

With the help of software engineering methods and principles, a software product is developed and the process of development is known as software evolution. Software evolution includes right from the software development, updates maintenance and till the development of the desired software product as per the requirements.

Software Evolution

The initial step of the software evolution is gathering of the requirements. Then a prototype of the intended software is created by the developers and the feedback from the users is obtained at the early stages of the development of the software product. As per the suggestions of the users, the product is changed several times till the desired software is established.

Once the desired software is established as per the user, it needs to change in accordance with the technological advancements and changes in the requirements. This can be achieved by updating the existing software to match the desired user requirements.

What are the Software Evolution Laws?

The laws for the software evolution have been provided by Lehman and the software evolution is divided into three different categories. They are -

  • S-type (static-type) – There are defined specifications and solutions and the software should work in accordance with the laid out specifications and solutions. This type of software evolution is not subjected to the environmental changes and hence it is considered as the simplest form. For instance, calculator program for mathematical computation.
  • P-type (practical-type) – Software with a collection of procedures is known as P-type software evolution. The specifications for the software are described but not the solution. For instance, gaming software.
  • E-type (embedded-type) – In accordance with the Real-world environment requirements, the software is developed. The real world situations are involved with enormous changes in laws and taxes and thus the software is involved with a high degree of evolution. For instance, Online trading software.

Explain in detail E-Type software evolution

E-type software evolution is associated with eight laws. They are as follows -

  • Continuing change – The software system need to change by adapting to the real world changes otherwise the software is considered waste.
  • Increasing complexity – The complexity of the e-type software system increases unless or until steps are taken to control or reduce.
  • Conservation of familiarity – In order to implement the changes in the system some of the information such as knowledge about how the software was developed, why it was developed etc.
  • Continuing growth- In accordance with the changes in the business lifestyle the size of the changes implementation grows for resolving any business problems.
  • Reducing quality – Until and unless the quality is rigorously adapted and maintained the quality of an E-type software system continues to decline.
  • Feedback systems- A multi-loop and multi-level feedback system need to be maintained by any E-type software system.
  • Self-regulation – With the distribution of product and process measures close to normal the evolution processes of the E-type system is self-regulated.
  • Organizational stability – The global activity rate is stable throughout the product lifetime in an E-type system

What are Software Paradigms?

Software is designed by following some of the methods and steps which are known as Software paradigms. A number of methods are proposed and are in practice today but only the appropriate is selected by the software engineering.

Software Paradigm

From the above figure, it is understood that the Programming paradigm is a subset of Software design paradigm and Software design paradigm is a subset of Software development paradigm.

Software Development Paradigm

All the engineering concepts that are related to the software development are applies in software engineering paradigms. This paradigm helps in building the software product by gathering the different requirements and researches. Software Development Paradigm includes -

  • Requirement gathering
  • Software design
  • Programming

Software Design Paradigm

Software Design paradigm is a subset of Software Development and includes -

  • Design
  • Maintenance
  • Programming

Programming Paradigm

Programming paradigm is associated with the programming part of software development. Programming paradigm include -

  • Coding
  • Testing
  • Integration

What is the need of Software Engineering?

The environment in which the software works and the changes in the requirements of the user may lead to the need for software engineering.

  • Large software – Because of the large size of the software, engineering need to provide a scientific process.
  • Scalability- Re-creation of the new software is easier than the existing one if the software process was not based on scientific and engineering concepts.
  • Cost- In case a proper process is not adopted, the cost of software turns out to be high, on the other hand the prices of the computer and electronic hardware being coming down.
  • Dynamic Nature- The software needs to be changed and enhanced as per the user requirements and this can be comfortable done by software engineering.
  • Quality Management- A better and qualitative software product is provided by better process of software development.

What are the characteristics of good software?

Based on the parameters like what is being offered by software and how best software can be used, the software product is judged. The software should be -

  • Operational
  • Transitional
  • Maintenance

The characteristic of well-engineered software is as follows -

Operational

The operational characteristic provides information about the working of the software. The working of the software is measured on the basis of -

  • Budget
  • Usability
  • Efficiency
  • Correctness
  • Functionality
  • Dependability
  • Security
  • Safety

Transitional

The transitional characteristics are essential for moving the software from one platform to another.

  • Portability
  • Interoperability
  • Reusability
  • Adaptability

Maintenance

The software need to be capable enough to maintain and sustain the ever-changing environment. The aspects of maintenance are -

  • Modularity
  • Maintainability
  • Flexibility
  • Scalability

To summarize, a branch of computer science which deals with producing efficient, in-budget durable and scalable software products by using well-defined engineering concepts is known as software engineering.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

Software Engineering Topics