Software Product – Software Engineering
Software Products are nothing but software systems delivered to the customer with the
documentation that describes how to install and use the system. In certain cases, software
products may be part of system products where hardware, as well as software, is delivered to
a customer. Software products are produced with the help of the software process. The
software process is a way in which we produce software.
Types of Software Products
Software products fall into two broad categories:
1. Generic products: Generic products are stand-alone systems that are developed by a
production unit and sold on the open market to any customer who can buy them.
2. Customized Products: Customized products are the systems that are commissioned
by a particular customer. Some contractor develops the software for that customer.
Characteristics of Software Product
A well-engineered software product should possess the following essential characteristics:
1. Efficiency: The software should not make wasteful use of system resources such as
memory and processor cycles.
2. Maintainability: It should be possible to evolve the software to meet the changing
requirements of customers.
3. Dependability: It is the flexibility of the software that ought to not cause any physical
or economic injury in the event of system failure. It includes a range of characteristics
such as reliability, security, and safety.
4. In time: Software should be developed well in time.
5. Within Budget: The software development costs should not be overrun, and they
should be within the budgetary limit.
6. Functionality: The software system should exhibit the proper functionality, i.e., it
should perform all the functions it is supposed to perform.
7. Adaptability: The software system should have the ability to adapted to a reasonable
extent with the changing requirements.
Software Evolution – Software Engineering
Software Evolution is a term that refers to the process of developing software initially,
and then timely updating it for various reasons, i.e., to add new features or to remove
obsolete functionalities, etc. This article focuses on discussing Software Evolution in
detail.
What is Software Evolution?
The software evolution process includes fundamental activities of change analysis,
release planning, system implementation, and releasing a system to customers.
1. The cost and impact of these changes are accessed to see how much the system is
affected by the change and how much it might cost to implement the change.
2. If the proposed changes are accepted, a new release of the software system is planned.
3. During release planning, all the proposed changes (fault repair, adaptation, and new
functionality) are considered.
4. A design is then made on which changes to implement in the next version of the
system.
5. The process of change implementation is an iteration of the development process
where the revisions to the system are designed, implemented, and tested.
Necessity of Software Evolution
Software evaluation is necessary just because of the following reasons:
1. Change in requirement with time: With time, the organization’s needs and modus
Operandi of working could substantially be changed so in this frequently changing
time the tools(software) that they are using need to change to maximize the
performance.
2. Environment change: As the working environment changes the things(tools) that
enable us to work in that environment also changes proportionally same happens in
the software world as the working environment changes then, the organizations
require reintroduction of old software with updated features and functionality to adapt
the new environment.
3. Errors and bugs: As the age of the deployed software within an organization increases
their preciseness or impeccability decrease and the efficiency to bear the increasing
complexity workload also continually degrades. So, in that case, it becomes necessary
to avoid use of obsolete and aged software. All such obsolete Pieces of software need
to undergo the evolution process in order to become robust as per the workload
complexity of the current environment.
4. Security risks: Using outdated software within an organization may lead you to at the
verge of various software-based cyberattacks and could expose your confidential data
illegally associated with the software that is in use. So, it becomes necessary to avoid
such security breaches through regular assessment of the security patches/modules are
used within the software. If the software isn’t robust enough to bear the current
occurring Cyber attacks so it must be changed (updated).
5. For having new functionality and features: In order to increase the performance and
fast data processing and other functionalities, an organization need to continuously
evolute the software throughout its life cycle so that stakeholders & clients of the
product could work efficiently.
Laws used for Software Evolution
1. Law of Continuing Change
This law states that any software system that represents some real-world reality
undergoes continuous change or become progressively less useful in that
environment.
2. Law of Increasing Complexity
As an evolving program changes, its structure becomes more complex unless effective
efforts are made to avoid this phenomenon.
3. Law of Conservation of Organization Stability
Over the lifetime of a program, the rate of development of that program is
approximately constant and independent of the resource devoted to system
development.
4. Law of Conservation of Familiarity
This law states that during the active lifetime of the program, changes made in the
successive release are almost constant.

Software product process and characteristics of SE

  • 1.
    Software Product –Software Engineering Software Products are nothing but software systems delivered to the customer with the documentation that describes how to install and use the system. In certain cases, software products may be part of system products where hardware, as well as software, is delivered to a customer. Software products are produced with the help of the software process. The software process is a way in which we produce software. Types of Software Products Software products fall into two broad categories: 1. Generic products: Generic products are stand-alone systems that are developed by a production unit and sold on the open market to any customer who can buy them. 2. Customized Products: Customized products are the systems that are commissioned by a particular customer. Some contractor develops the software for that customer. Characteristics of Software Product A well-engineered software product should possess the following essential characteristics: 1. Efficiency: The software should not make wasteful use of system resources such as memory and processor cycles. 2. Maintainability: It should be possible to evolve the software to meet the changing requirements of customers. 3. Dependability: It is the flexibility of the software that ought to not cause any physical or economic injury in the event of system failure. It includes a range of characteristics such as reliability, security, and safety. 4. In time: Software should be developed well in time.
  • 2.
    5. Within Budget:The software development costs should not be overrun, and they should be within the budgetary limit. 6. Functionality: The software system should exhibit the proper functionality, i.e., it should perform all the functions it is supposed to perform. 7. Adaptability: The software system should have the ability to adapted to a reasonable extent with the changing requirements. Software Evolution – Software Engineering Software Evolution is a term that refers to the process of developing software initially, and then timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities, etc. This article focuses on discussing Software Evolution in detail. What is Software Evolution? The software evolution process includes fundamental activities of change analysis, release planning, system implementation, and releasing a system to customers. 1. The cost and impact of these changes are accessed to see how much the system is affected by the change and how much it might cost to implement the change. 2. If the proposed changes are accepted, a new release of the software system is planned. 3. During release planning, all the proposed changes (fault repair, adaptation, and new functionality) are considered. 4. A design is then made on which changes to implement in the next version of the system. 5. The process of change implementation is an iteration of the development process where the revisions to the system are designed, implemented, and tested. Necessity of Software Evolution Software evaluation is necessary just because of the following reasons: 1. Change in requirement with time: With time, the organization’s needs and modus Operandi of working could substantially be changed so in this frequently changing time the tools(software) that they are using need to change to maximize the performance. 2. Environment change: As the working environment changes the things(tools) that enable us to work in that environment also changes proportionally same happens in the software world as the working environment changes then, the organizations require reintroduction of old software with updated features and functionality to adapt the new environment. 3. Errors and bugs: As the age of the deployed software within an organization increases their preciseness or impeccability decrease and the efficiency to bear the increasing complexity workload also continually degrades. So, in that case, it becomes necessary to avoid use of obsolete and aged software. All such obsolete Pieces of software need to undergo the evolution process in order to become robust as per the workload complexity of the current environment. 4. Security risks: Using outdated software within an organization may lead you to at the verge of various software-based cyberattacks and could expose your confidential data illegally associated with the software that is in use. So, it becomes necessary to avoid such security breaches through regular assessment of the security patches/modules are used within the software. If the software isn’t robust enough to bear the current occurring Cyber attacks so it must be changed (updated). 5. For having new functionality and features: In order to increase the performance and fast data processing and other functionalities, an organization need to continuously
  • 3.
    evolute the softwarethroughout its life cycle so that stakeholders & clients of the product could work efficiently. Laws used for Software Evolution 1. Law of Continuing Change This law states that any software system that represents some real-world reality undergoes continuous change or become progressively less useful in that environment. 2. Law of Increasing Complexity As an evolving program changes, its structure becomes more complex unless effective efforts are made to avoid this phenomenon. 3. Law of Conservation of Organization Stability Over the lifetime of a program, the rate of development of that program is approximately constant and independent of the resource devoted to system development. 4. Law of Conservation of Familiarity This law states that during the active lifetime of the program, changes made in the successive release are almost constant.