0% found this document useful (0 votes)
51 views31 pages

Introduction To Software Engineering

This document provides an introduction to software engineering. It defines software engineering as the application of a systematic, disciplined approach to software development, operation, and maintenance. The document discusses what software is, important attributes of good software like maintainability and dependability, and characteristics of software like its engineered nature and ability to change without wearing out. It also outlines some key aspects of software engineering like the importance of processes, methods, tools, and a quality focus.

Uploaded by

Abhi Parmar
Copyright
© Attribution Non-Commercial (BY-NC)
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)
51 views31 pages

Introduction To Software Engineering

This document provides an introduction to software engineering. It defines software engineering as the application of a systematic, disciplined approach to software development, operation, and maintenance. The document discusses what software is, important attributes of good software like maintainability and dependability, and characteristics of software like its engineered nature and ability to change without wearing out. It also outlines some key aspects of software engineering like the importance of processes, methods, tools, and a quality focus.

Uploaded by

Abhi Parmar
Copyright
© Attribution Non-Commercial (BY-NC)
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/ 31

Introduction


Introduction to software
engineering

Computer Science Software Engineering Slide 1


Objectives

To introduce software engineering and to explain
its importance

To set out the answers to key questions about
software engineering

Computer Science Software Engineering Slide 2


What is Software ?

instructions that when executed provide desired
features, function and performance.

data structures that enable the programs to
adequately manipulate information

documents that describe the operation and use of
the programs.

Software products may be
• Generic - developed to be sold to a range of different customers
• Custom - developed for a single customer according to their
specification

Computer Science Software Engineering Slide 3


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, reliable and secured

Efficiency
• Software should not make wasteful use of system resources

Usability
• Software must be usable by the users for which it was designed

Computer Science Software Engineering Slide 4


Some more Software
Characteristics

􀂄 Software is engineered or developed, not


manufactured in the traditional sense.
􀂄 Software does not wear out in the same sense as
hardware. But it does deteriorate due to change.
􀂄Although Industry is moving toward component
based construction, most software continues to be
custom built.

Computer Science Software Engineering Slide 5


Evolving Role Of Software

Software is both a product and a vehicle for
delivering a product.

Computer Science Software Engineering Slide 6


Changing Nature of Software
Categories of Computer Software :

System Software

Application Software

Embedded Software

Product-line Software

Web Applications

Distributed computing

Net Sourcing

Open source

Computer Science Software Engineering Slide 7


Software
Succeeds when

meets the needs of the people who use it( achieve customer
satisfaction)

performs flawlessly over a long period of time.

on-time delivery and developed within the budgeted cost

easy to modify and even easier to use.

it can and change things for the better.
Fails when

users are dissatisfied.

error prone.

difficult to change and harder to use.
Computer Science Software Engineering Slide 8
Introduction to Software engineering

To succeed we need discipline, when software is
designed and built.

Engineering approach is needed

Software community has continually attempted
to develop technologies that will make it easier
and less expensive and build and high quality
computer programs.

Computer Science Software Engineering Slide 9


Introduction to Software engineering

Software engineering is a framework that
encompasses a process, theories, set of methods
and tools for professional software development.

“In modern society, its role is to provide systems
and products that enhance the material aspects of
human life, thus making life easier, faster and more
enjoyable.”
Richard Fairley and Mary Willshire

Computer Science Software Engineering Slide 10


What is software engineering?

Software engineering is an engineering
discipline which is concerned with all aspects of
software production

Software engineers should adopt a systematic and
organised approach to their work and use
appropriate tools and techniques depending on
the problem to be solved, the development
constraints and the resources available

Computer Science Software Engineering Slide 11


Software Engineering- Realities

It follows that a concerted effort should be made to
understand the problem before a software solution is
developed.

It follows that design becomes a pivotal activity.

It follows that software should exhibit high quality.

It follows tat software should be maintainable.
Conclusion:-“Software in all of its forms and across all
Application Domains should be Engineered”

Computer Science Software Engineering Slide 12


Software Myths
• Erroneous beliefs about software and the process that
is used to build it.
• Reasonable statements of facts

 Management Myths
 Customer Myths
 Practitioners Myths

Computer Science Software Engineering Slide 13


Management Myths
 We already have a book that’s full of standards and
procedures for building software. Won’t that provide
my people with everything they need to know?
 If we get behind the schedule, we can add more
programmers and catch up (“Mongolian Horde concept”)
 If I decide to outsource the software project to a third
party, I can just relax and let that firm build it.

Computer Science Software Engineering Slide 14


Customer Myths
 A general statement of objectives is sufficient to begin
writing programs - we can fill in the details later.
 Software requirements continually change, but change
can be easily accommodated because software is flexible.

Computer Science Software Engineering Slide 15


Practitioners Myths
 Once we write the program and get it to work, our job is done.
 Until I get the program “running” I have no way of assessing its
quality.
 The only deliverable work product for a successful project is the
working program.
 Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down.

Recognition of software realities is the first step toward formulation of


practical solutions for software engineering

Computer Science Software Engineering Slide 16


Definitions of Software engineering

“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.”
- Fritz Bauer

“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[IEEE93a]

The study of approaches of above
-IEEE[IEEE93a]

Computer Science Software Engineering Slide 17


Software Engineering-Layered Technology

A quality focus:-
Any engineering approach must rest on an organizational commitment
to quality.
Total quality management, Six sigma philosophies foster a continuous
process improvement culture.

Process
It enables rational and timely development.
It defines framework that must be established for effective delivery of
SE technology.
It forms the basis for management control of software projects.

Computer Science Software Engineering Slide 18


Software Engineering-Layered Technology

Methods
Provide the technical how-to’s for building software.
It encompass broad array of tasks that include communication,
requirement analysis, design modelling ,program construction, testing and
support.
Rely on a set of basic principles, include modelling activities other
descriptive techniques.

Tools
Provide automated and semi automated support for the process and the
methods.
Tools are integrated so that information created by one tool can be
used by other tool

Computer Science Software Engineering Slide 19


What is a software process?

A process defines “who is doing what, when and
how to reach a certain goal”

A process is a collection of activities, actions and
tasks that are performed when product is to be
created.
 An Activity strives to achieve a broad objective and is applied to all
applications.
 An Action encompasses a set of tasks that produce a major work
product.
 A task focuses on a small, but well-defined objective.

Computer Science Software Engineering Slide 20


What is a software process?

A process is not a rigid prescription, rather it is
an adaptable approach.

The intent is to deliver software in timely manner
and with sufficient quality.

A process framework establishes the foundation
for a complete SE process by identifying small
number of framework activities.

Computer Science Software Engineering Slide 21


5 generic framework activities

Communication

Planning

Modelling

Construction

Deployment

Computer Science Software Engineering Slide 22


Umbrella activities

Software project tracking and control

Risk management.

Software quality assurance

Technical Reviews

Measurement

Software configuration management

Reusability management

Work product preparation and production.

Computer Science Software Engineering Slide 23


How do process model differ from
another?

Overall flow of activities, actions, and tasks and the
interdependencies among them.

Degree to which actions and tasks are defined within each framework
activity

Degree to which work products are identified and required

Manner in which quality assurance activities are applied.

Manner in which project tracking and control activities are applied

Overall degree of detail and rigor with which the process is described

Degree to which the custom and other stakeholders are involved with
the project

Level of autonomy given to the software team.

Degree to which team organisation and role are prescribed.

Computer Science Software Engineering Slide 24


Process models

Prescriptive process models
- stress on detailed definition, identification and application of
process activities and tasks.

Agile process models
-emphasize project “agility" and follow set of principles that lead to
more informal and adaptable approach to software process.

Computer Science Software Engineering Slide 25


Software Engineering Practice
Its Essence

Understand the problem( communication and analysis).

Plan a solution( modelling and software design).

Carry out the plan( code generation).

Examine the result for accuracy (testing and quality
assurance).

Computer Science Software Engineering Slide 26


Software Engineering Practice
Understand the problem( communication and analysis).

Who has a stake in the solution to the problem?

What are the unknowns? What data, functions and features are required to
properly solve the problem?

Can the problem be compartmentalized?

Can the problem be represented graphically? Can an analysis model be
created?

Computer Science Software Engineering Slide 27


Software Engineering Practice
Plan a solution( modelling and software design).

Have you seen similar problems before? Are there patterns that are
recognizable in a potential solution? Is there existing software that
implements the data, functions and features that are required?

Has a similar problem been solved? If so, are elements of the solution
reusable?

Can sub problems be defined? If so, are solution readily apparent for the sub
problems ?

Can you represent a solution in a manner that leads to effective
implementation? Can a design model be created?

Computer Science Software Engineering Slide 28


Software Engineering Practice
Carry out the plan( code generation).

Does the solution conform to the plan? Is source code traceable to the design
model?

Is each component part of the solution provably correct? Have the design and
code been reviewed, or better, have correctness proofs been applied to the
algorithm?

Computer Science Software Engineering Slide 29


Software Engineering Practice
Examine the result for accuracy (testing and quality
assurance).

Is it possible to test each component part of the solution? Has a reasonable
testing strategy implemented?

Does the solution produce results that conform to the data, functions, and
features that are required? Has the software been validated against all
stakeholder requirements?

Computer Science Software Engineering Slide 30


General Principles
Principle is “ An important law or assumption required in
a system of thought.”
 The Reason It All Exists
 Keep it Simple, Stupid!
 Maintain the vision
 What You Produce, Others Will Consume
 Be Open to the Future
 Plan Ahead for Reuse
 Think!

Computer Science Software Engineering Slide 31

You might also like