0% found this document useful (0 votes)
40 views

Lesson1-Intro To Software Engineering PDF

Software engineering is the application of engineering principles to software development. It involves designing, developing, testing and maintaining software through a well-defined process. This process includes requirements analysis, system design, coding, testing, deployment and maintenance. Software engineering aims to produce efficient, reliable and secure software through a disciplined and quantifiable approach.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

Lesson1-Intro To Software Engineering PDF

Software engineering is the application of engineering principles to software development. It involves designing, developing, testing and maintaining software through a well-defined process. This process includes requirements analysis, system design, coding, testing, deployment and maintenance. Software engineering aims to produce efficient, reliable and secure software through a disciplined and quantifiable approach.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

COSC70 – Software Engineering I

Look around. Can you see any electronic devices?


Besides your computer, any device you can see runs
not only because they are plugged in, but because
they operate using software.
Your TV won’t recognize your remote, let alone any
TV channels without communications with its
software, your mobile phone operates using its own
software, even the industries who makes your day-
to-day needs uses software to accomplish their
jobs. It’s safe to say that the world cannot operate
without software.
So, what the heck is a software anyways?
Software engineering is the application of engineering
principles to the development of software. It involves
the design, development, testing, and maintenance of
software to ensure it meets the user's needs.

Software engineering is a discipline that requires a


deep understanding of mathematics, computer
science, and engineering principles. It is used to
create software applications that are reliable, secure,
and efficient.
The Process of Software Engineering

Software engineering involves the use of various tools


and techniques to design, develop, test, and maintain
software. This includes the use of programming
languages, databases, and software development
frameworks.

The software engineering process also involves the


use of software testing tools to ensure that the
software meets the user's needs. This helps to ensure
that the software is reliable and secure, and that it
performs as expected.
❑ A software is more than just a program code. A
program is an executable code, which serves
some computational purpose.

❑ Software is considered to be a collection of


executable programming code, associated
libraries and documentations.

❑ Software, when made for a specific requirement is


called software product
Software systems are made up of the following
components:
❑ Users — the people who add information to the system,
request information from the system, and
❑ Procedures – the tasks performed by the human
components of the information system.
❑ Information – meaningful data that the system stores
and processes.
Software systems are made up of the following
components:
❑ Documents – manuals on how to use the system,
sometimes even files of data which should not
or could not be stored electronically.
❑ Hardware – not only the computers in the system but
also any networks linking the computers,
the input devices and output devices.
❑ Software – computer applications performing some of
the system functions to record, process, and regulate
access to some of the information worked with by the
information system
Updates Requirement
s
❑ To obtain a software product, programming is
Maintenance System
not enough, as one must follow the software Analysis
engineering process, which consists of the
following:
❑ Requirements
❑ System Analysis
❑ System Design
❑ Code Design
❑ Testing Deployment System
Design
❑ Deployment
❑ Maintenance Testin Code
❑ Updates g Design
❑ To understand what software engineering stands
for, we must now define the term engineering.
❑ Engineering is all about developing products
using well defined scientific principles and
methods.

❑ Engineering applies both science and math to


solve problems and to apply discoveries and
innovations scientists and inventors made.
❑ Software engineering is an engineering branch
associated with development of software
product using well-defined scientific
principles, methods and procedures . The
outcome of software engineering is an efficient
and reliable software product.
❑ The Institute of Electrical and Electronics
Engineers (IEEE) defines software
engineering as:
❑ The application of a systematic,
disciplined, quantifiable approach to the
development, operation and
maintenance of software; that is, the
application of engineering to software.
❑ Fritz Bauer, a German computer scientist,
defines software engineering as:
❑ Software engineering is the
establishment and use of sound
engineering principles in order to obtain
economically software that is reliable
and work efficiently on real machines.
❑ In short, Software engineering is a branch of
computer science, which uses well-defined
engineering concepts required to produce
efficient, durable, scalable, in-budget and
on-time software products.
❑ Software Paradigms refer to the methods and
steps which are taken while designing the
software.

❑ There are many methods proposed and are in


work today, but we need to see where in the
software engineering these paradigms stand.
❑ These can be combined into various categories, though each of
them is contained in one another:

SOFTWARE DEVELOPMENT PARADIGM


Software
Development ❑ This Paradigm is known as software
engineering paradigms, where all the
engineering concepts pertaining to the
Softwar development of software are applied.
e
Design ❑ It includes various researches and requirement
gathering which helps the software product to
build. It consists of –:
Programmin
❑ Requirements Gathering
g
❑ Software Design
❑ Programming
❑ These can be combined into various categories, though each of
them is contained in one another:

SOFTWARE DESIGN PARADIGM


Software
Development ❑ This paradigm is a part of Software
Development and includes –
Softwar ❑ Design
e ❑ Maintenance
Design ❑ Programming

Programmin
g
❑ These can be combined into various categories, though each of
them is contained in one another:

PROGRAMMING PARADIGM
Software
Development ❑ Programming paradigm is a subset of
Software design paradigm which is further a
Softwar
subset of Software development paradigm.
e ❑ This paradigm is related closely to
Design
programming aspect of software development.
This includes –
Programmin ❑ Coding
g ❑ Testing
❑ Implementation
❑ The need of software engineering arises because of
higher rate of change in user requirements and
environment on which the software is working.
❑ Large software – It is easier to build a wall than
to a house or building, likewise, as the size of
software become large engineering has to step to
give it a scientific process.
❑ Scalability – If the software process were not based
on scientific and engineering concepts, it would be
easier to re-create new software than to scale an
existing one.
❑ Cost – As hardware industry has shown its skills and
huge manufacturing has lower down he price of
computer and electronic hardware. But the cost of
software remains high if proper process is not
adapted.
❑ Dynamic Nature- The always growing and adapting
nature of software hugely depends upon the
environment in which user works. If the nature of
software is always changing, new enhancements
need to be done in the existing one. This is where
software engineering plays a good role.
❑ Quality Management- Better process of
software development provides better and
quality software product.
❑ A software product can be judged by what it offers
and how well it can be used. This software must
satisfy on the following grounds:

❑ Operational

❑ Transitional

❑ Maintenance
OPERATIONAL
❑ This tells us how well software works in
operations. It can be measured on:
❑ Budget
❑ Usability
❑ Efficiency
❑ Correctness
❑ Functionality
❑ Dependability
❑ Security
❑ Safety
TRANSITIONAL
❑ This aspect is important when the software is
moved from one platform to another:
❑ Portability
❑ Interoperability
❑ Reusability
❑ Adaptability
MAINTENANCE
❑ This aspect briefs about how well a software has
the capabilities to maintain itself in the ever-
changing environment:
❑ Modularity
❑ Maintainability
❑ Flexibility
❑ Scalability

You might also like