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

Intro

The document provides an overview of software engineering, defining software as a combination of instructions, data structures, and documentation. It discusses the importance of software in modern economies, the distinction between generic and customized software products, and the significance of software engineering in producing reliable and efficient systems. Additionally, it highlights essential attributes of good software, including maintainability, dependability, efficiency, and acceptability.

Uploaded by

kunduakash1102
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Intro

The document provides an overview of software engineering, defining software as a combination of instructions, data structures, and documentation. It discusses the importance of software in modern economies, the distinction between generic and customized software products, and the significance of software engineering in producing reliable and efficient systems. Additionally, it highlights essential attributes of good software, including maintainability, dependability, efficiency, and acceptability.

Uploaded by

kunduakash1102
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Introduction to Software Engineering

By
Debraj Chatterjee
WHAT IS SOFTWARE?

The product that software professionals build and then support


over the long term.
Software encompasses:
(1) instructions (computer programs) that when executed provide
desired features, function, and performance;
(2) data structures that enable the programs to adequately store
and manipulate information
(3) documentation that describes the operation and use of the
programs.
SOFTWARE PRODUCTS

• Generic products
• Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
• Examples – PC software such as editing, graphics programs,
project management tools; CAD software; software for
specific markets such as appointments systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
WHY SOFTWARE IS IMPORTANT?

• The economies of ALL developed nations are dependent on


software.
• More and more systems are software controlled ( transportation,
medical, telecommunications, military, industrial, entertainment,)
• Software engineering is concerned with theories, methods and tools
for professional software development.
• Expenditure on software represents a significant fraction of GNP in
all developed countries.
SOFTWARE COSTS

• Software costs often dominate computer system costs. The costs


of software on a PC are often greater than the hardware cost.
• Software costs more to maintain than it does to develop. For
systems with a long life, maintenance costs may be several times
development costs.
• Software engineering is concerned with cost-effective software
development.
FEATURES OF SOFTWARE?

Its characteristics that make it different from other things human being build.
Features of such logical system:
•Software is developed or engineered;
•it is not manufactured in the classical sense which has quality problem.
•Software doesn't "wear out.” but it deteriorates (due to change). Hardware has
bathtub curve of failure rate ( high failure rate in the beginning, then drop to steady state, then
cumulative effects of dust, vibration, abuse occurs).
•Although the industry is moving toward component-based construction (e.g.
standard screws and off-the-shelf integrated circuits), most software continues
to be custom-built. Modern reusable components encapsulate data and
processing into software parts to be reused by different programs. E.g. graphical
user interface, window, pull-down menus in library etc. 6
WEAR VS. DETERIORATION

7
SOFTWARE APPLICATIONS

• 1. System software: such as compilers, editors, file management utilities


• 2. Application software: stand-alone programs for specific needs.
• 3. Engineering/scientific software: Characterized by “number crunching”algorithms. such
as automotive stress analysis, molecular biology, orbital dynamics etc
• 4. Embedded software resides within a product or system. (keypad control of a
microwave oven, digital function of dashboard display in a car)
• 5. Product-line software focus on a limited marketplace to address mass consumer
market. (word processing, graphics, database management)
• 6. WebApps (Web applications) network centric software. As web 2.0 emerges, more
sophisticated computing environments is supported integrated with remote database
and business applications.
• 7. AI software uses non-numerical algorithm to solve complex problem. Robotics, expert
system, pattern recognition game playing
8
SOFTWARE—NEW CATEGORIES

• Open world computing—pervasive, ubiquitous, distributed computing due to


wireless networking. How to allow mobile devices, personal computer,
enterprise system to communicate across vast network.
• Net sourcing—the Web as a computing engine. How to architect simple and
sophisticated applications to target end-users worldwide.
• Open source—”free” source code open to the computing community (a blessing,
but also a potential curse!)
• Also … (see Chapter 31)
• Data mining
• Grid computing
• Cognitive machines
• Software for nanotechnologies
9
SOFTWARE ENGINEERING DEFINITION

The seminal definition:


[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 definition:


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).
IMPORTANCE OF SOFTWARE
ENGINEERING

• More and more, individuals and society rely on advanced software


systems.
• We need to be able to produce reliable and trustworthy systems
economically and quickly.
• It is usually cheaper, in the long run, to use software engineering
methods and techniques for software systems rather than just
write the programs as if it was a personal programming project.
• For most types of system, the majority of costs are the costs of
changing the software after it has gone into use.

11
FAQ ABOUT SOFTWARE ENGINEERING
Question Answer

What is software? Computer programs, data structures and associated


documentation. Software products may be developed for a
particular customer or may be developed for a general
market.

What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be maintainable,
dependable and usable.

What is software engineering? Software engineering is an engineering discipline that is


concerned with all aspects of software production.
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? software engineering is concerned with the practicalities of
developing and delivering useful software.

What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
12
ESSENTIAL ATTRIBUTES OF GOOD
SOFTWARE

Product characteristic Description

Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.

Dependability and security Software dependability includes a range of characteristics including


reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious
users should not be able to access or damage the system.

Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.

Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
A LAYERED TECHNOLOGY
tools

methods

process model

a “quality” focus

 Any engineering approach must rest on organizational commitment to quality which fosters
a continuous process improvement culture.
 Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report,
and forms) are produced, milestone are established, quality is ensured and change is
managed.
 Method provides technical how-to’s for building software. It encompasses many tasks
including communication, requirement analysis, design modeling, program construction,
testing and support.
 Tools provide automated or semi-automated support for the process and methods.
SOFTWARE PROCESS

• A process is a collection of activities, actions and tasks that are


performed when some work product is to be created.
• It is not a rigid prescription for how to build computer software.
• Rather, it is an adaptable approach that enables the people doing
the work to pick and choose the appropriate set of work actions
and tasks.
• Purpose of process is to deliver software in a timely manner and
with sufficient quality to satisfy those who have sponsored its
creation and those who will use it.

You might also like