Software Engineering

SOFTWARE ENGINEERING

UNIT I

THE EVOLVING ROLE OF A SOFTWARE

What is Software Engineering?

The term software engineering is the product of two words, software, and engineering.

The software is a collection of integrated programs.

Software subsists of carefully-organized instructions and code written by developers on

any of various particular computer languages.

Computer programs and related documentation such as requirements, design models and

user manuals.

Engineering is the application of scientific and practical knowledge to invent, design,

build, maintain, and improve frameworks, processes, etc.



Software Engineering is an engineering branch related to the evolution of software

product using well-defined scientific principles, techniques, and procedures. The result of

software engineering is an effective and reliable software product.

THE EVOLVING ROLE OF SOFTWARE

Today, software takes on a dual role. It is a product and, at the same time, the vehicle for

delivering a product. As a product, it delivers the computing potential embodied by

computer hardware or, more broadly, a network of computers that are accessible by local

hardware. Whether it resides within a cellular phone or operates inside a mainframe

computer, software is an information transformer—producing, managing, acquiring,

modifying, displaying, or transmitting information that can be as simple as a single bit or as

complex as a multimedia presentation. 

As the vehicle used to deliver the product, software acts as the basis for the control of the

computer (operating systems), the communication of information (networks), and the

creation and control of other programs (software tools and environments). Software

delivers the most important product of our time—information. 

Software transforms personal data (e.g., an individual’s financial transactions) so that the

data can be more useful in a local context; it manages business information to enhance

competitiveness; it provides a gateway to worldwide information networks (e.g., Internet)

and provides the means for acquiring information in all of its forms. 

The role of computer software has undergone significant change over a time span of little

more than 50 years. Dramatic improvements in hardware performance, profound changes

in computing architectures, vast increases in memory and storage capacity, and a wide

variety of exotic input and output options have all precipitated more sophisticated and

complex computer-based systems. The lone programmer of an earlier era has been

replaced by a team of software specialists, each focusing on one part of the technology

required to deliver a complex application.

Software Characteristics:

Software is treated as good software using different factors. A software product is concluded as good software by what it offers and how well it can be used. The factors that decide the software properties are divided into three categories: Operational, Transitional, and Maintenance.

What is a Good Software?

 


 

Software engineering is the process of designing, developing, and maintaining software systems. Good software meets the needs of its users, performs its intended functions reliably, and is easy to maintain.

There are several characteristics of good software that are commonly recognized by software engineers, which are important to consider when developing a software system.

These characteristics include functionality, usability, reliability, performance, security, maintainability, reusability, scalability, and testability.


Categories of Software Characteristics

1. Operational

In operational categories, the factors that decide the software performance in operations. It can be measured on:

Budget

Usability

Efficiency

Correctness

Functionality

Dependability

Security

Safety

2. Transitional

When the software is moved from one platform to another, the factors deciding the software quality:

Portability

Interoperability

Reusability

Adaptability

3. Maintenance

In this categories all factors are included that describes about how well a software has the capabilities to maintain itself in the ever changing environment:

Modularity

Maintainability

Flexibility

Scalability

Characterisitics of Good Software

Functionality: The software meets the requirements and specifications that it was designed for, and it behaves as expected when it is used in its intended environment.

Usability: The software is easy to use and understand, and it provides a positive user experience.

Reliability: The software is free of defects and it performs consistently and accurately under different conditions and scenarios.

Performance: The software runs efficiently and quickly, and it can handle large amounts of data or traffic.

Security: The software is protected against unauthorized access and it keeps the data and functions safe from malicious attacks.

Maintainability: The software is easy to change and update, and it is well-documented, so that it can be understood and modified by other developers.

Reusability: The software can be reused in other projects or applications, and it is designed in a way that promotes code reuse.

Scalability: The software can handle an increasing workload and it can be easily extended to meet the changing requirements.

Testability: The software is designed in a way that makes it easy to test and validate, and it has a comprehensive test coverage.

By adhering to these characteristics, software engineers can develop software that is functional, reliable, and maintainable, thus providing the best experience to the end-users.

 

Comments