Introduction to
Software Engineering
SOFTENG1 – SOFTWARE ENGINEERING 1
MS. CATHERINE D. DUMPIT
Software engineering has two parts:
Software is a collection of codes,
documents, and triggers that does a
specific job and fills a specific
requirement.
Engineering is the development of
products using best practices,
principles, and methods.
Software Engineering Definitions:
➢ It is a detailed study of engineering to the
design, development and maintenance of
software.
➢ It is the systematic application of engineering approaches
to the development of software (Wikipedia)
➢The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software; that is,
the application of engineering to software.( IEEE )
Software Characteristics:
functionality portability
reliability usability
efficiency maintainability
Software Characteristics:
Robustness
Integrity
Classification of Software:
• System software - manages and control the
internal operation of a computer system.
• Real-time software - observe, analyzes and
controls real world event as the occur.
• Business software - used in areas where
management and control of financial activities is
of utmost importance
• Engineering and scientific software - a
powerful tool in the research and development
of next generation technology such as the study
of celestial bodies and programming of an
orbital path for space shuttles.
Classification of Software:
• Artificial Intelligence (AI) software - problem-
solving technique is non-algorithmic in nature. AI
software role is to add certain degrees of
intelligence to the mechanical hardware in order
to get desired in work done in an agile manner.
• Web-base software - acts as an interface,
between the user and the Internet.
• Personal computer (PC) software - used for both
official and personal used. This software is used
predominantly in almost every field, whether it is
database management system, financial
accounting package, or multimedia-base
software.
Examples of Software Crisis:
The Equifax social security hack
Equifax, one of the United States’
largest credit reporting agencies,
announced that up to 143 million of
their consumer records were stolen
by hackers. Names, Social Security
numbers, birth dates, and credit
card numbers were all amongst the
data stolen.
Examples of Software Crisis:
Medicine infusion pumps recalled for
deadly flaw
In 2015, CareFusion’s Alaris Pump was
recalled over a software error that caused
the pump, designed to automatically
deliver medicine and fluids to hospital
patients, to delay an infusion. The
consequences, which can range anywhere
from medicine being withheld at critical
points or accidental over-dosing, can be
deadly
Examples of Software Crisis:
• The Northeast blackout in 2003 – one of the major
power system failure in the history of North
America. It was determined that the major reason
behind the failure was a software bug in the
power monitoring and management system.
• In 1996, Arian-5 space rocket, developed at the
cost of $7000 million over a period of 10 years
was destroyed within less than a minute after its
lunch. The crash occurred because there was a
software bug in the rocket guidance system.
The tools layer includes
the software and
platforms used to
Tools support and automate
different stages of the
software development
Software Methods lifecycle (SDLC).
Engineering Methods refer to the
Layers: Process systematic techniques or
approaches used in the
software development
process to solve
Quality Focus problems, achieve
specific outcomes, and
ensure consistency and
quality.
The process layer defines how the entire
software development life cycle (SDLC) is
managed, focusing on project governance,
development workflows, and quality
assurance
Tools
Software Methods
Engineering
Layers: Process
Quality Focus
In software engineering, the Tools, Methods, and Process Layer
are crucial for controlling and streamlining the program
development process. Every component is essential to making
sure the software development process is effective, well-
structured, and results in high-caliber software.
Software Engineering
Management
Software engineering management can be
defined as the application of management
activities—planning, coordinating, measuring,
monitoring, controlling, and reporting, to
ensure that software products and software
engineering services are delivered efficiently,
effectively, and to the benefit of stakeholders
Software Engineering Skills
Application Modelling
Skills
Software Development Life Cycle
(SDLC)
Requirements Analysis, seeks to identify
and record the precise requirements of
the final users. In this phase, the team is
looking to answer, “What are the
expectations of our users from our
software?”
Planning phase fosters effective
communication and collaboration within
the team. By defining clear roles,
responsibilities, and expectations, it lays a
solid foundation for an efficient software
development process.
Design phase is all about building the
framework. The development team is
responsible for software engineering and
outlines the software’s functionality and
aesthetic.
Software Development Life Cycle
(SDLC)
Build phase aims to develop software that is
functional, efficient, and [Link]
document, acting as a roadmap, ensures the
software aligns with the vision set in earlier phases.
The testing process begins by setting clear parameters in
line with the software’s requirements. This includes
identifying the necessary software conditions, and
outlining diverse scenarios to examine these conditions.
This step aids in creating an efficient testing strategy.
The Deployment phase involves rolling out the
meticulously tested and fine-tuned software to its
end-users.
The maintenance phase is characterized by constant assistance
and improvement, which guarantees the software’s best
possible functioning and longevity and ensures it meets
customer expectations.
Three constraints on which
decision to go ahead or not
Technical
This evaluation determines whether technology
needed for the proposed system is available , then how it
can integrated within the organization.
Time
This evaluation determines the time needed to
complete a project.
Budgetary
This evaluation looks at the financial aspect of the
project, determines whether the investment needed to
implement the system will be recovered at later stages.