0% found this document useful (0 votes)
28 views43 pages

Software Engineering Software Engineerin

This document provides an overview of software engineering. It discusses the software crisis in terms of projects being over budget and late with faults. It introduces software engineering as an approach to address these problems through producing good quality, maintainable software on time and within budget. The document also discusses software costs, characteristics, applications, and myths. It provides information on software processes, activities, documentation, and what constitutes a good software product.
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)
28 views43 pages

Software Engineering Software Engineerin

This document provides an overview of software engineering. It discusses the software crisis in terms of projects being over budget and late with faults. It introduces software engineering as an approach to address these problems through producing good quality, maintainable software on time and within budget. The document also discusses software costs, characteristics, applications, and myths. It provides information on software processes, activities, documentation, and what constitutes a good software product.
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/ 43

Sof t ware Engineering

Muham m ad Rabee Shaheen, Ph.D


Course Overview
• Introduction
• Software Life Cycle Models
• Software Requirem ents (Analysis & Specifications)
• Software Project Planning
• Software Design
• Software Metrics
• Software Reliability
• Software Testing
• Software Maintenance

٢
Today’s Topics
• Introduction
• Software Crisis
• Software Costs
• Software Engineering
• Software Engineers
• Software and Program s
• Docum entation
• Operating Procedures
• Software Products
• Product Specifications
• FAQs about Software Engineering
• Software Myths
• …
٣
Int roduct ion
• Software yesterday, today, tom orrow
▫ What is the difference?

٤
Int roduct ion
• Single processor, alphanum eric output, input
from linear source
• GUI
• Client-server architecture
• Several processors
• Different OS
• Geographically distributed m achines

Software com plexity?

٥
Int roduct ion
• Any challenge?
▫ Abreast of new technology
▫ Developm ent backlogs
▫ Cope with people issues
▫ “Guru of project” concept
▫ Do all em ployees like the change? (autom ation)

٦
Int roduct ion

“31% of projects get cancelled before they are


com pleted, 53% over-run their cost estim ates
by an average of 189% and for every 10 0
projects, there are 94 restarts” IBM Report

٧
Sof t ware Cost s
• Software costs often dom inate com puter system
costs. The costs of software on a PC are often
greater than the hardware cost.
• Software costs m ore to m aintain than it does to
develop. For system s with a long life,
m aintenance costs m ay be several tim es
developm ent costs.

٨
Sof t ware Crisis
• Software:
▫ still com e late
▫ exceed budget
▫ full of residual faults
• Som e failures:
▫ Y2K: m illion have been spent to handle this
practically non-existent problem
▫ Star wars (Patriot m issile) Ł 28 U.S. soldiers, due
to a sm all tim ing error in the system ’s clock

٩
Sof t ware Crisis
• Som e failures …
▫ In 1996, a US consum er group em barked on an
18-m onth, $ 1m illion project to replace its
custom er database. The new sy stem w as
delivered on tim e but did not w ork as prom ised.
As a result new tram w as brought in to rebuild
the sy stem !
▫ Ariane-5 space rocket, $ 70 0 0 M, over a 10 years:
was destroyed after 39 seconds of its launch!!
Conversion error: 64-bit to 16-bit form at

١٠
Sof t ware Crisis
• Som e failures …
▫ Financial software: “Many com panies have experienced
failures in their accounting sy stem due to faults in the softw are
itself. The failures range from producing the w rong inform ation
to the w hole sy stem crashing ”
▫ Windows XP: released on October 25, 20 0 1
On the sam e day com pany posted 18 MB:
Com patibility patches (for bug fixes)
Com patibility updates
Enhancem ent
2 patches fixed im portant security holes

١١
Sof t ware Crisis

There are serious problem s in the


cost, tim eliness, m aintenance and
quality of m any software products

So what should we do?


How could we react?

١٢
Sof t ware Engineering
• SE has the objective of solving these problem s by
producing good quality, m aintainable software,
on tim e, within budget.
“The establishm ent and use of sound engineering principles in
order to obtain econom ically developed softw are that is reliable
and w orks efficiently on real m achines” 1st SE conf. 1968

“A discipline w hose aim is the production of quality softw are,


softw are that is delivered on tim e, w ithin budget and that
satisfies its requirem ents” Schach

١٣
Sof t ware Engineers
• Software e n g in e e r s m ust:
▫ Adopt a system atic and organized approach to
their work
▫ Use appropriate tools and techniques depending
on the problem to be solved and the developm ent
constraints
▫ Use the resource available

١٤
Sof t ware, Programs

Software Program s

Software consists of program s, docum entation of any facet of


the program and the procedures used to setup and operate the
software system . While program is source code

١٥
Document at ion?
Docum entation
Manuals

Analysis/ Specification Design Im plem entation Testing

Form al Specification Flow Charts Source Code Listing Test Data

Entity-relationship Cross-Reference
Context-Diagram Test Results
Diagram Listing

Data Flow Diagram

١٦
Operat ing Procedures

Operating
Procedures

Operational
User Manuals
Manuals

System
System Beginner’s Reference Installation
Adm inistration
Overview Guide Tutorial Guide Guide
Guide

١٧
Sof t ware Product s
• Generic ?
• Bespoke (Custom ) ?

١٨
Product Specif icat ions
• Generic:
▫ The specification of what the software should do is
owned by the software developer and decisions on
software change are m ade by the developer.
• Custom ized:
▫ The specification of what the software should do is
owned by the custom er for the software and they
m ake decisions on software changes that are
required.

١٩
Sof t ware Product
• Software product is a product designated for
delivery to the user

٢٠
Sof t ware Myt hs
1. Software easy to change
2. Com puters provide greater reliability than the
devices they replace
3. Testing software or “proving” software correct
can rem ove all the errors
4. Reusing software increases safety
5. Software can work right the first tim e
6. Software can designed thoroughly enough to
avoid m ost integration problem s

٢١
Sof t ware Myt hs
7. Software with m ore features is better software
8. Addition of m ore software engineers will m ake
up the delay
9. Aim is to develop working program s

٢٢
Sof t ware Process
• SP: the way in which we produce software
• SP: help the developers to use the best technical
and m anagerial practices to successfully
com plete their projects
• SP is a way to im prove the quality, productivity,
predictability of the software developm ent and
m aintenance efforts

٢٣
Sof t ware Process Act ivit ies
• Software specification, where custom ers and
engineers define the software that is to be produced
and the constraints on its operation.
• Software developm ent, where the software is
designed and program m ed.
• Software validation, where the software is checked
to ensure that it is what the custom er requires.
• Software evolution, where the software is m odified
to reflect changing custom er and m arket
requirem ents.

٢٤
Sof t ware Charact erist ics
• Software does not wear out (hardware vs.
software)

• Software is not m anufactured (just copies!)


• Reusability of com ponents
• Software is flexible

٢٥
Sof t ware Applicat ions
• Sys te m So ftw are : com pilers, OS, drivers
• Re al-tim e So ftw are : used to m onitor, control
and analyze real world events (weather,..)
• Em be d d e d So ftw are : ROM, aircraft,
autom obile,..
• Bu s in e s s So ftw are : em ployee m anagem ent,
account m anagem ent, …
• Pe rs o n al Co m p u te r So ftw are : MS-office,
graphics,…

٢٦
Sof t ware Applicat ions
• Artificial In te llige n ce So ftw are : expert
system s, neural network, signal processing,…
• W e b Bas e d So ftw are : CGI, HTML, Perl,…
• En gin e e rin g an d Scie n tific So ftw are : CAD,
SPSS, MATLAB, Circuit analyzers, …

٢٧
Good Sof t ware
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 Software dependability includes a range of characteristics
security 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.

٢٨
FAQs about SE
Question Answer

What is software? Computer programs 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 are the fundamental software Software specification, software development, software
engineering activities? validation and software evolution.
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.

٢٩
FAQs about SE
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering? and the possibility of developing highly distributed service-
based systems. Web-based systems development has led
to important advances in programming languages and
software reuse.

٣٠
Frequent Terminologies in SE
• D e live rable s
▫ Generated during software developm ent
▫ E.g., source code, user m anuals, operating
procedures,…
• Mile s to n e s
▫ Events that are used to ascertain the status of the
project
▫ E.g., Finalization of specification is a m ilestone,
Com pletion of design docum entation, …

٣١
Frequent Terminologies in SE …
• Pro d u ct
▫ is what is delivered to the custom er
▫ includes source code, specification docum ent,
m anuals, docum entation,…
▫ Basically, a set of deliverables only
• Pro ce s s
▫ way in which we produce software
▫ collection of activities that leads to (a part of) a
product.

٣٢
Frequent Terminologies in SE …
• Me as u re s (Measurem ent, Metrics)
▫ Me as u re : a quantitative indication of the extent,
dim ension, size, capacity, or reliability of som e
attributes of a product or process. E.g., # errors in
the review of a single m odule
▫ Me as u re m e n t: the act of evaluating a m easure.
E.g., # m odules are investigated to collect
m easures of the # errors in each m odule
▫ Me trics : relating the individual m easures in
som e way. E.g., avg. # errors found per m odule

٣٣
Frequent Terminologies in SE …
• So ftw are Pro ce s s & Pro d u ct Me trics
▫ So ftw are m e trics : used to quantitatively
characterize different aspects of software process
or software products.
▫ Pro ce s s m e trics : quantify the attributes of
software developm ent process and environm ent.
E.g., productivity , quality , failure rate, …
▫ Pro d u ct m e trics : are m easures for the software
product. E.g., size, reliability , com plexity ,
functionality ,…

٣٤
Frequent Terminologies in SE …
• Pro d u ctivity
▫ defined as the rate of output, production per unit
of effort
▫ Output achieved with regard to the tim e taken, but
irrespective of the cost incurred.
▫ unit of m easure:
Quantity of output: e.g., LOC produced
Tim e: m easured in days or m onths
▫ Unit of effort: m ost appropriate unit of effort is
Person Months (PMs), i.e., # persons involved for
specified m onths

٣٥
Frequent Terminologies in SE …
• Pro d u ctivity…
▫ Productivity m ay be m easured as LOC/ PM
• Mo d u le
▫ a Fortran subroutine
▫ an Ada Package
▫ “procedures & functions” in Pascal & C
▫ “C++, J ava class, J ava packages”
▫ a work assignm ent for an individual developer

٣٦
Frequent Terminologies in SE …
• Co m p o n e n t
▫ an independently deliverable piece of functionality
providing access to its services through interfaces
• Ge n e ric & Cu s to m ize d So ftw are Pro d u cts
▫ Previously discussed

٣٧
Role of Management in Sof t ware
Development (SD)
• Four factors:
▫ People
▫ Product
▫ Process
▫ Project

٣٨
Role of Management in Sof t ware
Development (SD)
• Four factors:
▫ People SD requires good m anagers
▫ Product
Good m anagers understand people psychology
▫ Process
▫ Project Provide good leadership

Cannot ensure the success of project, but can


increase the probability of success
Priority: selection, training, com pensation, career
developm ent, work culture, …

٣٩
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People What do we want to deliver to the custom er?
▫ Product
Define objectives & scope of work (requirem ents)
▫ Process
▫ Project Discussion of alternative solutions

Select best approach within constraints im posed by


delivery deadline, budget, personnel availability,…

Define estim ated cost, Developm ent tim e, schedule,…

٤٠
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People Way in which we produce software
▫ Product Provides fram ework from which a com prehensive
plan for software developm ent can be established
▫ Process
Several life cycle m odels & process im provem ent
▫ Project m odels
CMM (Capability Maturity Model) , a standard for
process fram ework

٤١
Role of Management in Sof t ware
Development (SD) …
• Four factors:
▫ People A planning is required to m onitor the status of SD
▫ Product
A planning is required to control the com plexity
▫ Process
In a successful project, we m ust understand what can
▫ Project go wrong & how to do it right

Define concrete requirem ents & freeze them

Changes should not be incorporated to avoid


software surprises, because they are always risky!

٤٢
Covered Topics
• Software Crisis
• Software Costs
• Software Engineering
• Docum entation
• Software Products
• Product Specification
• Software Myths
• Software Process Activities
• Software Application Types
• Good Software
• FAQs
• Software Engineering Term inologies
• Managem ent in SD

٤٣

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy