0% found this document useful (0 votes)
7 views23 pages

SE Chap 0

The document provides an overview of software engineering, defining it as a systematic approach to developing, maintaining, and managing software. It outlines key objectives, principles, classifications, and types of software, emphasizing the importance of maintainability, correctness, and usability. Additionally, it distinguishes between software engineering and computer science, highlighting the practical focus of software engineering in delivering functional software.

Uploaded by

delloptiplex3854
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)
7 views23 pages

SE Chap 0

The document provides an overview of software engineering, defining it as a systematic approach to developing, maintaining, and managing software. It outlines key objectives, principles, classifications, and types of software, emphasizing the importance of maintainability, correctness, and usability. Additionally, it distinguishes between software engineering and computer science, highlighting the practical focus of software engineering in delivering functional software.

Uploaded by

delloptiplex3854
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/ 23

Software Engineering

Er.Hari Narayan Yadav

1
Introduction to Software Engineering
(Basic Concept)
What is Software?(Meaning)

“ Software is a set of instructions to acquire inputs and to


manipulate them to produce the desired output in terms of
functions and performance as determined by the user of
the software. ”
“Software is a computer program or instructions that
provides desired function or features when executed.”
What is Engineering?(Meaning)

• Engineering is the process of using knowledge


and principles to design , build and analyzed
objects.
What is software Engineering?

• “Software Engineering is the process of developing,


maintainability a software in a systematic , disciplined
and quantifiable manner is called a software
Engineering”.
Objectives of Software Engineering

➢ Maintainability
➢ Correctness
➢ Reusability
➢ Testability
➢ Reliability
➢ Portability
➢ Adaptability
Principles of Software Engineering

➢ Think though the problem completely before


implementation
➢ Divide and conquer
➢ KISS(keep it simple and stupid)
➢ Learn especially from your mistake
➢ What you produce other will consume
➢ Be open to the future
➢ Plan ahead for reuse
Classification of Software

Software is classified into two classes:


 Generic Software: It is designed for broad customer market
whose requirements are very common, fairly stable and well understood
by the software engineer.

 Customized Software: It is developed for a customer where


domain , environment and requirements are being unique to that
customer and cannot be satisfied by generic products.
What is Good Software?

Software has number of attributes which decide whether it is a good or


bad . The definition of a good software changes with the person who
evaluates it. The software is required by the customer , used by the
end users of an organization and developed by software engineer .
Each one will evaluate the different attributes differently in order to
decide whether the software is good.
What are the attributes of good
software?

The software should deliver the required functionality and performance to


the user and should be maintainable, dependable and usable.
• - Maintainability
– Software must evolve to meet changing needs
- Dependability
– Software must be trustworthy
-Efficiency
– Software should not make wasteful use of system resources
-Usability
– Software must be usable by the users for which it was designed
Software - Characteristics
➢ Software has a dual role. It is a product, but also a vehicle for
delivering a product.

➢ Software is a logical rather than a physical system


element.
➢ Software has characteristics that differ considerably from those of
hardware.
➢ Software is developed or engineered, it is not manufactured in the
classical sense.

➢ Most software is custom-built, rather than being assembled from


existing components.
Types of Software

1. System Software- A collection of programs written to service


other programs at system level.
For example, compiler, operating systems.

2. Real-time Software- Programs that monitor/analyze/control


real world events as they occur.

3. Business Software- Programs that access, analyze and


process business information.

4. Engineering and Scientific Software - Software using “number


crunching” algorithms for different science and applications. System
simulation, computer-aided design.
Types of Software

 Embedded Software-:

Embedded software resides in read-only memory and is used to
control products and systems for the consumer and industrial markets.
It has very limited and esoteric functions and control capability.

 Artificial Intelligence (AI) Software:


Programs make use of AI techniques and methods to solve complex
problems. Active areas are expert systems, pattern recognition, games
Types of Software

3. Internet Software :
Programs that support internet accesses and applications.
For example, search engine, browser, e-commerce
software, authoring tools.

4. Software Tools and CASE environment :


Tools and programs that help the construction
of application software and systems. For example, test
tools.
Software Engineering

“A systematic approach to the analysis, design, implementation and


maintenance of software.”

“ The systematic application of tools and techniques in the


development of computer-based applications.”

“ Software Engineering is about designing and developing high-


quality software.”
What is Software Engineering?
Although hundreds of authors have developed personal definitions of software
engineering, a definition proposed by Fritz Bauer provides a basis:

“[Software engineering is] the establishment and use of sound


engineering principles in order to obtain economically software that is
reliable and works efficiently on real machines.”

The IEEE has developed a more comprehensive definition when it states:

“Software Engineering: (1) The application of a systematic, disciplined,


quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software. (2) The study
of approaches as in (1).”
What is Software Engineering?
Pressman’s view:
“Software engineering is a layered technology ”

Tools
Methods

Process

A quality Focus
What is Software Engineering?

Software methods:
Software engineering methods provide the technical “how to” for
building
software. Methods --> how to encompass a broad array of tasks:
- requirements analysis, design, coding, testing, and maintenance
Software engineering methods rely on a set of basic principles.
What is Software Engineering?

Software process:
A set of activities whose goal is the development or
evolution of software
Generic activities in all software processes are:
– Specification - what the system should do and its
development constraints

Development - production of the software system

Validation - checking that the software is what the customer
wants

Evolution - changing the software in response to changing
demands
What is Software Engineering?

Software tools:
-programs provide automated or semi-automated support for the
process and methods.
-programs support engineers to perform their tasks in a systematic
and/or automatic manner.
Why Software Engineering?

Major Goals:
-To increase software productivity and quality.
-To effectively control software schedule and planning.
-To reduce the cost of software development.
-To meet the customers’ needs and requirements.
-To enhance the conduction of software engineering process.
-To improve the current software engineering practice.
-To support the engineers’ activities in a systematic and efficient
manner.
Difference between software engineering and
computer science?
Computer Science Software Engineering
is concerned with
 theory  the practicalities of developing
 fundamentals  delivering useful software

omputer science theories are currently insufficient to act as a


complete underpinning for software engineering, BUT it is a
foundation for practical aspects of software engineering
The END

23

You might also like