KEMBAR78
Software Engineering | PDF | Software | Information
0% found this document useful (0 votes)
43 views6 pages

Software Engineering

Software engineering combines software development and engineering principles to create, maintain, and improve software systems. It encompasses various types of software, including system, application, embedded, and web applications, each serving distinct functions and facing unique challenges. Additionally, the document addresses software myths that can lead to misunderstandings among managers, users, and developers, emphasizing the importance of clear communication and proper documentation in the software development process.

Uploaded by

Hima bindu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views6 pages

Software Engineering

Software engineering combines software development and engineering principles to create, maintain, and improve software systems. It encompasses various types of software, including system, application, embedded, and web applications, each serving distinct functions and facing unique challenges. Additionally, the document addresses software myths that can lead to misunderstandings among managers, users, and developers, emphasizing the importance of clear communication and proper documentation in the software development process.

Uploaded by

Hima bindu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

SOFTWARE ENGINEERING

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

The software is a collection of integrated programs.


Engineering is the application of scientific and practical knowledge to invent, design, build, maintain,
and improve frameworks, processes, etc.

IEEE defines software engineering as: The application of a systematic, disciplined,


quantifiable approach to the development, operation and maintenance of software.
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:
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.
Examples for software as product are mobile apps, standalone applications, software as a
service(Saas).

As a Vehicle:
As the vehicle used to deliver the products, 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.

Characteristics of software:
1. Software is developed or engineered; it is not manufactured in the classical sense.
Although there exist few similarities between the hardware manufacturing and software
development, the two activities differ fundamentally.
Both require a good design to attain high quality. But the manufacturing phase of hardware
can induce quality related problems that are either non-existent for software or can be easily
rectified.
Although both activities depend on people but the relationship between people and work is
totally different.
2. Software doesn’t “wear out”.

 Figure A. shows the failure rate of hardware as a function of time. It is often called
the “bathtub curve”, indicating that a hardware shows high failure at its early stage
(due to design and manufacturing defects); defects get resolved and the failure rate
reduces to a steady-state level for some time. As time progresses, the failure rate
shoots up again as the hardware wears out due to dust, temperature and other
environmental factors.
 software does not undergo environmental degradation; its failure curve ideally should
flatten out after the initial stage of its life. The initial failure rate is high because of
undiscovered defects. Once these defects are fixed, the curve flattens at a later stage
(idealized curve). Thus, the software does not wear out but deteriorates
 Because software undergoes changes during its lifetime as a part of the maintenance
activities, new defects creep in causing the failure rate to rise (spike). While the
software enters its steady state further more changes are added which induce further
more defects and hence, spikes in the
3. Software is Custom Built and Not Designed Component Wise
In the hardware world, component reuse is a natural part of the engineering process. In
software world, it has only begun to be achieved on a broad scale.
A software component should be designed & implemented so that it can be reused in many
different programs.
Few decades ago subroutine libraries were created that re-used well defined algorithms but
had a limited domain. Today this view has been extended to ensure re-usability of not only
algorithms but data structures as well.
Thus, the data and the processes that operate on this data were combined together to be able
to use later on.

Changing Nature of Software:

Nowadays, seven broad categories of computer software present continuing challenges for software
engineers which is given below:
1. System Software:
System software is a collection of programs which are written to service other programs.
Some system software processes complex but determinate (can estimate output), information
structures. Other system applications (OS Components, drivers etc.) process largely
indeterminate data.
Sometimes when, the system software area is characterized by the heavy interaction with
computer hardware that requires scheduling, resource sharing, and sophisticated process
management.
Application within this area includes compilers, editors, file management utilities.

2. Application Software:
Application software is defined as programs(“Apps”) that solve a specific business need. In
addition to convention data processing application, application software is used to control
business function in real time.
Application within this area includes spread sheets(excel), DBMS (MySQL, oracle).

3. Engineering and Scientific Software:


These are specialized applications used by professionals in fields like engineering, physics,
chemistry, biology to perform complex calculations, simulations & data analysis.
Computer-aided design, system simulation, and other interactive applications have begun to
take a real-time and even system software characteristic.
Application within this area includes R software, Autodesk AutoCAD, SAP2000

4. Embedded Software:
Embedded software resides within the system or product and is used to implement and control
feature and function for the end-user and for the system itself. Embedded software is like hidden
brain inside many devices and machines that we use in every day life.
Application within this area includes keypad control for a microwave oven, medical devices-
MRI Machine, x-ray scanners etc.,

5. Product-line Software:
It is involves creating a family of related software product that share common features and
components while allowing for customization to meet specific customer needs.
Application within this area includes companies like Microsoft offer various editions of their
windows OS (windows Home, Windows Pro, Windows Enterprise), companies like Dell, HP
produce product lines of software that vary in terms of performance, screen size, features etc

6. Web Application:
It is a client-server computer program which the client runs on the web browser. In their
simplest form, Web apps can be little more than a set of linked hypertext files that present
information using text and limited graphics. However, as e-commerce and B2B application grow
in importance.
Web apps are evolving into a sophisticate computing environment that not only provides a
standalone feature, computing function, and content to the end user.
Application within this area includes email services (Gmail, yahoo), social media platforms
(Facebook, twitter, Instagram). Online banking.

7. Artificial Intelligence Software:


Artificial intelligence software makes use of a non-numerical algorithm to solve a complex
problem that is not amenable to computation or straightforward analysis.
Application within this area includes robotics, expert system, pattern recognition, artificial
neural network, theorem proving and game playing.
New challenges in changing nature of software are:

1. Ubiquitous computing:
Here computing is made to appear anytime and everywhere. In contrast to desktop
computing, ubiquitous computing can occur using any device, in any location, and in any
format.
A user interacts with the computer, which can exist in many different forms, including laptop
computers, tablets, smart phones and smart home devices (ex. Smart door bells)
2. Net sourcing:
Net sourcing is the practice of renting or “paying as you use” access to centrally managed
business applications, made available to multiple users from a shared facility over the Internet
or other networks via browser-enabled devices.
Application within this area includes virtual private network(VPN’s), Voice over internet
protocol(VOIP), Data backup & recovery.
3. Open source software:
Open source software is developed via open collaboration, & its source code is available for
anyone to use, examine, alter & redistribute.
Examples are Firefox, GNU/Linux, VLC Media player

LEGACY SOFTWARE
Legacy software are older programs that are developed decades ago. The quality of legacy
software is poor because it has inextensible design, convoluted code, poor and non-existent
documentation, test cases and results that are not achieved.
As time passes legacy systems evolve due to following reasons:
 The software must be adapted to meet the needs of new computing environment or
technology.
 The software must be enhanced to implement new business requirements.
 The software must be extended to make it interoperable with more modern systems or
database
 The software must be rearchitected to make it viable within a network environment.

Software Myths: What is software myth in software engineering.


The development of software requires dedication and understanding on the developers’ part. Many
software problems arise due to myths that are formed during the initial stages of software development.
Unlike ancient folklore that often provides valuable lessons, software myths propagate false beliefs
and confusion in the minds of management, users and developers.
Managers, who own software development responsibility, are often under strain and pressure to
maintain a software budget, time constraints, improved quality, and many other considerations.
Common management myths are listed in Table.

Table: Management Myths


Myth Fact
 The members of an organization can  Standards are often incomplete,
acquire all-the information, they inadaptable, and outdated.
require from a manual, which contains  Developers are often unaware of all
standards, procedures, and principles; the established standards.
 Developers rarely follow all the
known standards because not all the
standards tend to decrease the
delivery time of software while
maintaining its quality.

 If the project is behind  Adding more manpower to the


schedule, increasing the number of project, which is already behind
programmers can reduce the time gap. schedule, further delays the project.
 New workers take longer to learn
about the project as compared to those
already working on the project.

 If the project is outsourced to a third  Outsourcing software to a third party


party, the management can relax and does not help the organization, which
let the other firm develop software for is incompetent in managing and
them. controlling the software project
internally. The organization
invariably suffers when it out sources
the software project.

In most cases, users tend to believe myths about the software because software managers and
developers do not try to correct the false beliefs. These myths lead to false expectations and ultimately
develop dissatisfaction among the users. Common user myths are listed in Table.
Table: User Myths
Myth Fact
Starting development with incomplete and
Brief requirement stated in the initial process is
ambiguous requirements often lead to software
enough to start development; detailed
failure. Instead, a complete and formal
requirements can be added at the later stages.
description of requirements is essential before
starting development.

Adding requirements at a later stage often


requires repeating the entire development
process.

Software is flexible; hence software requirement Incorporating change requests earlier in the
changes can be added during any phase of the development process costs lesser than those that
development process. occurs at later stages. This is because
incorporating changes later may require
redesigning and extra resources.

In the early days of software development, programming was viewed as an art, but now software
development has gradually become an engineering discipline. However, developers still believe in
some myths-. Some of the common developer myths are listed in Table.
Table: Developer Myths
Myth Fact
Software development is considered complete 50% to 70% of all the efforts are expended after
when the code is delivered. the software is delivered to the user.
The success of a software project depends on the The quality of programs is not the only factor
quality of the product produced. that makes the project successful instead the
documentation and software configuration also
play a crucial role.

Software engineering requires unnecessary Software engineering is about creating quality at


documentation, which slows down the project. every level of the software project. Proper
documentation enhances quality which results in
reducing the amount of rework.

The only product that is delivered after the The deliverables of a successful project includes
completion of a project is the working not only the working program but also the
program(s). documentation to guide the users for using the
software.

Software quality can be assessed only after the The quality of software can be measured during
program is executed. any phase of development process by applying
some quality assurance mechanism. One such
mechanism is formal technical review that can
be effectively used during each phase of
development to uncover certain errors.

You might also like