Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
10 views

Chapter 1 - Introduction to Software Engineering

Software is defined as a set of instructions and associated documentation that manipulate inputs to produce desired outputs, categorized into generic and customized types. Good software is characterized by attributes such as maintainability, dependability, efficiency, and usability, while software engineering focuses on systematic approaches to software development and maintenance. Challenges in software engineering include scaling methods for large systems, ensuring quality and productivity, and adapting to rapid changes in business needs.

Uploaded by

bilisumat03
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Chapter 1 - Introduction to Software Engineering

Software is defined as a set of instructions and associated documentation that manipulate inputs to produce desired outputs, categorized into generic and customized types. Good software is characterized by attributes such as maintainability, dependability, efficiency, and usability, while software engineering focuses on systematic approaches to software development and maintenance. Challenges in software engineering include scaling methods for large systems, ensuring quality and productivity, and adapting to rapid changes in business needs.

Uploaded by

bilisumat03
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

What is Software?

Defn:
“ 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. It also include a set of
documents, such as the software manual ,
meant for users to understand the software
system.” 1
Cont’d……..
The set of computer programs,
procedures, and associated documents
(flowcharts, manuals, etc.) that describe
the programs and how they are to be
used. a collection of programs whose
objective is to enhance the capabilities
of the hardware.
the collection of computer programs,
procedure rules and associated
documentation and data.(IEEE)
2
Classes of Software
Types of software?
Software is classified into two classes:
 Generic Software:
is designed for broad customer
market whose requirements are very common,
fairly stable and well understood by the
software engineer.
 Customized Software:
is developed for a
customer where domain , environment and
requirements are being unique to that customer
and cannot be satisfied by generic products.
3
What is Good Software?
• Software has number of attributes which decide
whether it is a good or bad . 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.

4
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 5
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 is flexible
- Software is developed or engineered, it is not
manufactured in the classical sense.
- Software doesn’t “wear out”.
- Most software is custom-built, rather than being
assembled from existing components.

6
Types of Software
Applications
 System Software- A collection of programs written to service
other programs at system level.
For example, compiler, operating systems.

 Real-time Software- Programs that monitor/analyze/control


real world events as they occur.

 Business Software- Programs that access, analyze and


process business information.

 Engineering and Scientific Software - Software using


“number crunching” algorithms for different science and
applications. System simulation, computer-aided design.

 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.
7
Cont’d…..
Artificial Intelligence (AI) Software:
Programs make use of AI techniques and
methods to solve complex problems. Active
areas are expert systems, pattern recognition,
games

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

Personal Computer Software.


Word processing, spreadsheets, computer
graphics, multimedia, entertainment,.
8
Software problems
During software development, many
problems are raised and that set of
problems is known as the software crisis.
Schedule and cost estimates are often
grossly inaccurate.
 The “productivity” of software people
hasn’t kept pace with the demand for
their services.
 The quality of software is sometimes
less than adequate.
9
Cont’d
 Communication between the customer and
software developer is often poor.
 Software maintenance tasks devour the
majority of all software funds.

Programmers’ point of-view


Users point of view
• compatibility.
Software cost is very high.
• portability.
 Hardware goes down.
•documentation.
 Lack of specialization in
•piracy of software.
development.
•coordination of work of different
different versions of software.
people.
View & bugs
•maintenance. 10
Software Engineering
“A systematic approach to the analysis, design,
implementation and maintenance of software.”
(The Free On-Line Dictionary of Computing)
“ The systematic application of tools and
techniques in the development of computer-
based applications.”
(Sue Conger in The New Software Engineering)
“ Software Engineering is about designing and
developing high-quality software.”
(Shari Lawrence Pfleeger in Software
Engineering -- The Production of Quality
Software)
11
Cont’d…..
Software engineering is a modeling activity.

Software engineers deal with complexity through


modeling,
Software engineering is a problem-solving activity.

Models are used to search for an acceptable solution.


This search is driven by experimentation.
Software engineering is a knowledge acquisition

activity. In modeling the application and solution


domain, software engineers collect data, organize it
into information, and formalize it into knowledge 12
Why Software Engineering?
Objectives:

- Identify new problems and solutions in software


production.

- Study new systematic methods, principles, approaches


for system analysis, design, implementation, testing
and maintenance.

- Provide new ways to control, manage, and monitor


software process.

- Build new software tools and environment to support


software engineering. 13
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.
14
What is the difference between software engineering
and computer science?

Computer Software
Science is concerned
Engineering
with
 theory  the practicalities of
 fundamentals developing
 delivering useful software
Computer 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

15
What is the difference between software engineering
and system engineering?

Software engineering is part of System engineering


System engineering is concerned with all aspects of
computer-based systems development including
hardware,
software and
process engineering
System engineers are involved in
system specification
architectural design
integration and deployment
16
Software Engineering
challenges
Software engineering is a systematic approach to
the development, operation, maintenance, and
retirement of software. methodologies are
repeatable.
The aim is solve some problem of the client and
satisfy them.

There are some factors which affect the


approaches selected to solve the problem. 17
Challenges……….
A. Scale: development of a very large system
requires a very different set of methods
compared to developing a small system. 
the methods that are used for developing
small systems generally do not scale up to
large systems.
 Ex. counting people in a room versus taking a
census of a country
 In small projects, informal methods for
development and management can be used
but not for large scale.
 There is no universally acceptable definition
of what is a "small" project and what is a
"large“ 18
B. Quality and Productivity: quality is project
specific

C. Consistency and Repeatability: There are no


globally accepted methodologies and different
organizations use different ones.
D. Change: today change in business is very rapid,
so software has to change faster.
 Approaches that can produce high quality
software at high productivity but cannot accept
and accommodate change are of little use today
19
Components of Software Engineering
 SE approach has two components , namely:
1. systems engineering approach
2. development engineering approach.
The software and its quality depends upon
the system in which it is installed.
• The system here has a broad meanings.
The understanding of the system can be
achieved by the System study and Analysis.
The System study and Analysis is carried out
through SEM( Systems Engineering and
Methodology).
20
Components ……….
Systems study & Analysis
Define the Objective of the system
Define the boundaries of the system
Factories the system into different components
Understand the relationship between various
components in terms of inputs, outputs and
processes
Understand the role of hardware and software
Identify the key operational and functional
requirements
Model the system for analysis and development
Discuss the system with the customer
21
Components ……….
 Development Engineering methodology deals with
translating the system requirements as software system
goal.

Requirement definition
Design solution to deliver the requirements
Determine the architecture for the delivery of solution
Customer development and planning
Software testing components
Integration of system components
Implementation
Software development engineering is carried out in two ways
 Structured System Analysis and Design ( SSAD)
 Object Oriented System Analysis and Design ( OOSAD)
22

You might also like