Nothing Special   »   [go: up one dir, main page]

Software Engineering: Lecture # 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 44

SOFTWARE ENGINEERING

LECTURE # 1

 Prepared By:
 Jaswinder Kaur
 CSE/IT
TOPICS:

 INTRODUCTION
 CHARACTERISTICS
 CRISIS / CHALLENGES
 MYTHS
What is Software?
Software is
 Instructions that when executed provide desired

features, functions and performance;


 Data structures that enable the programs to

adequately manipulate information; and


 Documents that describe the operation and use

of the programs.

Software = Computer programs + associated documentation


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
“The Problem Domain”

Student software
Industrial Strength software
 Developed to solve some  Meant for demonstration
problems of the client and purposes.
is used by organizations for  Software failure does not
operating some part of cause any loss
business.
Software Characteristics
 Software is developed or engineered; not manufactured.
 Software does not wear out. But it does deteriorate.[Failure curves for H/W
and S/W]
 Although industry is moving to component-based design, most software
continues to be custom built.
 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 failures
 Therac-25 (1985-1987):
o six people overexposed during treatments for
cancer
 Taurus (1993):
o the planned automatic transaction settlement
system for London Stock Exchange cancelled
after five years of development
 Ariane 5 (1996):
o rocket exploded soon after its launch due error
conversion (16 floating point into 16-bit
integer)
 The Mars Climate Orbiter
o assumed to be lost by NASA officials (1999):
different measurement systems (Imperial and
metric)
Categories of computer softwares
 System Software
Collection pf programs written to service other
programs; e.g.,compilers,editors,etc.

 Application Software
Standalone programs that solve a specific buisness
need.
Categories cont…

 Embedded Software

Resides within the product and control the features


for end user; e.g,dashboard displays, microwave,
etc.

 Web applications

 AI Software's
Robotics, expert systems,
Software Engineering Challenges
 Heterogeneity
◦ Developing techniques for building software that can cope
with heterogeneous platforms and execution environments;
 Delivery
◦ Developing techniques that lead to faster delivery of
software;
 Trust
◦ Developing techniques that demonstrate that software can
be trusted by its users.
 Schedule
◦ Business trends need, time to market a product
should be minimum.
Software Engineering Challenges
 Coping with legacy systems, coping with
increasing diversity and coping with demands for reduced
delivery times

 Legacy systems
• Old, valuable systems must be maintained and updated
 Scale

 Systems generally do not scale upto lagre systems.


 Determined by size of software
 Productivity measured in terms of LOC or KLOC per
person-month.
NOTE: If productivity is higher cost in terms of person-month
will be lower
 Cost measured in terms of person-months
Software Engineering Challenges
 QUALITY
 Functionality
 Reliability
 Usability
 Efficiency
 Maintainability
 Portability
 Consistency & Repeatability
 Methods being used are repeatable across projects leading
to consistency in quality of software.
 to ensure successful results can be repeated.
 Change
 To accommodate and embrace the change
 Although maintenance and rework are very expensive.
SOFTWARE MYTHS
Software Myths (Customers)
 I can give the developers a general idea of
what I want developed, and fill in the details
later.
 Software is flexible; if things change, the
developers will be able to accommodate the
changes easily.
Software Myths (Practitioners)
 Once we write the program, our job is done –
so let’s start coding early.
 Until the program is running, we have no way
to assess its quality.
 The only deliverable for a successful project is
a working program.
 Software engineering will make us create
voluminous and unnecessary documentation
that will invariably slow us down.
Software Myths (Management)
 We have a book filled with standards and
development procedures. Won’t that provide my
developers with everything they need to know?
 My developers don’t need additional tools; we buy
them state-of-the-art development equipment.
 If we’re behind schedule, we’ll just add additional
developers to get us back on track.
 If we outsource the project, we can forget about it
for awhile while we’re working on other things.
Final Thought
“ Good cooking takes time. If you are made to
wait, it is to serve you better, and to please
you.”

… As it is with software engineering.


LECTURE # 2

SOFTWARE PROCESSES
Definition:
 A structured set of activities required to develop a
software system
◦ Specification;
◦ Design;
◦ Validation;
◦ Evolution.
 A software process model is an abstract
representation of a process. It presents a description
of a process from some particular perspective.
Components in a S/W Process
PROCESS

PRODUCT PROCESS
ENGG. PROCESS MANAGEMENT

PROJECT
DEVELOPME MANAGEME SCMP
NT PROCESS NT PROCESS
 SCMP
o Deal with managing change
 Project Management Process
o Specifies how to plan and control these

activities so that cost, schedule, quality


and other objectives are met.
 Development Process

◦ Specifies the development and quality


assurance activities that need to be
performed
 Process management Process
• To improve the software process
• To improve the capability of the process to ptoduce
quality goods at low cost
 Product Engineering Process
◦ The three constituent processes focus on the
projects and products; thus can be considered as
comprising the product engineering process
INFORMATION FLOW
CONTROL
INFO. OF MGMT.
PROCESS

PROCESS STEP V& V

I/P O/P
Desired characteristics of S/W process

 Predictability
◦ Under stastiscal control[graph]
 Support testability and maintainability
 Support change
 Early defect detection and removal
 Process improvement and feedback
Generic software process models
 The waterfall model
◦ Separate and distinct phases of specification and
development.
 Evolutionary development
◦ Specification, development and validation are
interleaved.
 Component-based software engineering
◦ The system is assembled from existing components.
 There are many variants of these models e.g. formal
development where a waterfall-like process is used
but the specification is a formal specification that is
refined through several stages to an implementable
design
WATERFALL MODEL
 MODEL
 ENTRY AND EXIT CRITERIA
 WORK PRODUCTS

◦ Feasibility report
◦ SRS
◦ Design documents
◦ Test plans and test reports
◦ Final code
◦ Software manuals
Waterfall model phases
 SYSTEM FEASIBILITY
 REQUIREMENT ANALYSIS
 SYSTEM DESIGN
 DETAILED DESIGN
 CODING
 TESTING
 INSTALLATION
 MAINTENANCE
Waterfall model problems

 The main drawback of the waterfall model is the


difficulty of accommodating change after the
process is underway. One phase has to be complete
before moving onto the next phase.

 Inflexible partitioning of the project into distinct


stages makes it difficult to respond to changing
customer requirements.

 Therefore, this model is only appropriate when the


requirements are well-understood and changes will
be fairly limited during the design process.
Waterfall model problems
 Few business systems have stable requirements.

 H/W obsolete.

 The waterfall model is mostly used for large


systems engineering projects where a system is
developed at several sites.
LECTURE # 3

EVOLUTIONARY MODELS
The Incremental Model
 It combines elements of waterfall model
applied in an iterative fashion.
 Each linear sequence produces a deliverable

“increment” of the software


Communication

Planning

Modeling

Construction

Deployment
The incremental Model
Example
 word-processing software developed using
the incremental paradigm might deliver basic
file management, editing, and document
production functions in the first increment.
 editing and document production capabilities

in the second increment.


 spelling and grammar checking in the third

increment.
 advanced page layout capability in the fourth

increment.
About the model
 the first increment is often a core product.
 basic requirements are addressed, but many

supplementary features (some known, others


unknown) remain undelivered.
 Customer uses this core product and the plan

is developed for the next increment.


 process is repeated following the delivery of

each increment, until the complete product is


produced.
EVOLUTIONARY SOFTWARE
PROCESS MODELS
 Prototyping
 Spiral Model
Need of Evolutionary Model
 The evolutionary nature of software is not
considered in either of these classic software
engineering paradigms.
 Evolutionary models are iterative.
 enables software engineers to develop

increasingly more complete versions of the


software with each iteration
Prototyping
 The prototyping model is designed to assist
the customer (or developer) in understanding
requirements
 Customer does not identify detailed input,

processing, or output requirements


 Developers may be unsure about the

efficiency of an algorithm, the adaptability of


O.S.
PROTOTYPE MODEL
Problems
 To the customer prototype appears to be a
working version of the software
 Developers often make implementation

compromises in order to get a prototype


working quickly
 less-than-ideal choices
 quality degrade.
Difference
 The prototyping model is designed to assist
the customer (or developer) in understanding
requirements
 The incremental process model, like

prototyping and other evolutionary


approaches, is iterative in nature. But unlike
prototyping, the incremental model focuses
on the delivery of an operational product with
each increment.
The Spiral Model
 An evolutionary software process model that
couples the iterative nature of prototyping
with the controlled and systematic aspects of
the linear sequential model.
 Software is developed in a series of

incremental releases.
 At final stages, more complete versions of the

engineered system are produced.


 the project manager adjusts the planned

number of iterations required to complete the


software.

You might also like