UNIT 2
UNIT 2
UNIT 2
Software Applications
Software is used in many fields to solve problems and
automate tasks. There are different types of software
applications based on their purpose and usage.
Types of Software Applications
Engineering
Used for simulations, calculations, and MATLAB,
& Scientific
research. AutoCAD, SPSS
Software
1
SOFTWARE ENGINEERING
Chatbots, Virtual
Assistants (Siri,
Artificial
Mimics human intelligence and automates Alexa)
Intelligence
tasks.
Software
Software Myths
There are several misconceptions about software development
that can cause problems in projects.
Software Myths:
2
SOFTWARE ENGINEERING
Management Myth
Myth 1: Manuals will have simple procedures, principles, and standards
that are required for developers to enquire about every piece of
information as they are necessary for software development.
3
SOFTWARE ENGINEERING
Customer Myth
Customer myth occurs due to false expectations by customers and this
can lead customers to become dissatisfied with software developers.
Some of the customer myths are the following:
Myth 1: Not solely relying on specific requirements,
If software goals are unclear or vaguely defined, programming can still
begin.
🔹 Developers might start coding without a detailed plan, believing they
can adjust later.
🔹 However, this is a misconception (a software myth) because unclear
goals lead to errors, rework, and project failure..
4
SOFTWARE ENGINEERING
Practitioner Myth
Developers often have to work under pressure from their managers to
finish software projects quickly and with limited resources. Sometimes,
they believe in certain software myths that can impact how they
approach their work. Here are some common myths that practitioners
may fall for:
Myth 1: There is a misconception that once the software is developed or
the code is delivered to the customer, the developer’s job is finished.
However, the reality is that software development is an ongoing process
that involves maintenance, updates, bug fixes, and support even after
the initial delivery. Developers play a crucial role in ensuring the software
continues to function
properly and meets the customer’s evolving needs over time.
Reality 1: A substantial portion, approximately 50-60%, of developers’
efforts, is dedicated to post- delivery tasks once the software is provided
5
SOFTWARE ENGINEERING
Reality 2: At any point during software development, the quality of the software
can be evaluated by applying a QA mechanism. Quality Assurance techniques
allow developers to measure the software’s performance and identify potential
issues, ensuring that the final product meets the desired standards. By
implementing QA processes throughout the development lifecycle, developers
can ensure that the software is of high quality and meets the expectations of the
end users.
6
SOFTWARE ENGINEERING
7
SOFTWARE ENGINEERING
The key requirements of the system and the software are identified.
Although the methods applied during the definition phase will vary
depending on the software engineering paradigm (or combination of
paradigms) that is applied, three major tasks will occur in some form:
system or information engineering, software project planning, and
requirements analysis.
The methods applied during the development phase will vary, but three
specific technical tasks should always occur: software design, code
generation,and software testing.
8
SOFTWARE ENGINEERING
The support phase reapplies the steps of the definition and development
phases but does so in the context of existing software.
Four types of change are encountered during the support phase:
a. Correction. Even with the best quality assurance activities, it is likely
that the customer will uncover defects in the software. Corrective
maintenance changes the software to correct defects.
b. Adaptation. Over time, the original environment (e.g., CPU,
operating system, business rules, external product characteristics) for
which the software was developed is likely to change. Adaptive
maintenance results in modification to the software to accommodate
changes to its external environment.
c. Enhancement. As software is used, the customer/user will recognize
additional functions that will provide benefit. Perfective maintenance
extends the software beyond its original functional requirements.
d. Prevention. Computer software deteriorates due to change, and
because of this, preventive maintenance, often called software
reengineering, must be conducted to enable the software to serve the
needs of its end users. In essence, preventive maintenance makes
changes to computer programs so that they can be more easily
corrected, adapted, and enhanced.