01-The Scope of Software Engineering

Embed Size (px)

Citation preview

  • 7/29/2019 01-The Scope of Software Engineering

    1/55

    1

    Chapter 1:

    The Scope of Software Engineering

  • 7/29/2019 01-The Scope of Software Engineering

    2/55

    2

    By the end of this module, you will...

    Recall what a software is and identify its categories.

    Understand what software engineering is. Understand why software engineering is important.

    Know answers to key questions related to the software

    engineering discipline.

  • 7/29/2019 01-The Scope of Software Engineering

    3/55

    Quick Look

    WHAT is it?: Computer software encompassesprograms that execute within a computer of any

    size and architecture, documents that

    encompass hard-copy and virtual forms, and

    data that combine numbers and text but alsoincludes representations of pictorial, video, and

    audio information.

    3

  • 7/29/2019 01-The Scope of Software Engineering

    4/55

    WHO does it?: Software engineers buildsoftware products by applying software

    engineering approach.

    WHY is it important?: Computer software areused in nearly every aspect of our lives.

    4

  • 7/29/2019 01-The Scope of Software Engineering

    5/55

    Software

    Programs

    DocumentationData

    5

    Software: Where does it lie?

    SystemDocumentation

    UserDocumentation

    It encompasses programs that execute

    within a computer, documents that include

    hard-copy & virtual forms, and data that

    combine numbers and text but alsoincludes representations of pictorial, video,

    and other information.

  • 7/29/2019 01-The Scope of Software Engineering

    6/55

    6

    The Evolving Role of Software

    Software takes on a dual role:

    It is a product

    It is a vehicle for delivering a product

    Significant change in its role has been

    precipitated by:

    Dramatic improvement in hardware performance

    Profound change in computing architectures

    Vast increases in memory and storage capacity

    Wide variety of input and output options

  • 7/29/2019 01-The Scope of Software Engineering

    7/55

    7

    The Nature of Software

    Software is intangible

    Hard to understand development effort

    Software is easy to reproduce but costly

    In other engineering products, manufacturing is

    the costly stage

    In software, cost is in its development

    Software is complex to develop esp. for

    labor-intensive industry

    Difficulty in automating some manual tasks

  • 7/29/2019 01-The Scope of Software Engineering

    8/55

    8

    The Nature of Software

    Software quality problems are hard to notice

    Finding all the errors in the software before

    delivering it to the customer is difficult

    Software is easy to modify

    People make changes without fully understanding

    the software

    Software does not wear out

    It deteriorates by having its design changed:

    erroneously, or in ways that were not anticipated, thus

    making it complex

  • 7/29/2019 01-The Scope of Software Engineering

    9/55

    10

    Types of Software

    Custom / Bespoke

    For a specific customer

    Customization is based on user requirements

    Generic

    Sold on open market

    Often called COTS (Commercial Off The Shelf)

    Embedded

    Intelligent products that reside in ROM

    Built into hardware and is hard to modify/change

  • 7/29/2019 01-The Scope of Software Engineering

    10/55

    11

    Types of Software

    Differences among custom, generic and

    embedded software

    Custom Generic EmbeddedNumber ofcopies in use low medium high

    Total processing power

    devoted to running this

    type of software

    low high medium

    Worldwide annual

    development effort

    high medium low

  • 7/29/2019 01-The Scope of Software Engineering

    11/55

    12

    Specific Types of Software

    Systems software

    Programs written to service other programs

    Include language translators, file management

    utilities, operating systems, device drivers

    Real time software

    Programs that analyze and control real world

    events

    Include control and monitoring systems

  • 7/29/2019 01-The Scope of Software Engineering

    12/55

    13

    Business/Data processing software

    Programs that facilitate business operations or

    management decision making

    Include payroll, sales & inventory, accounts

    receivable/payable

    Engineering & scientific software

    Programs characterized by number crunchingalgorithms

    Include applications used in the area of molecular

    biology, volcanology, astronomy, systemsimulation, etc.

  • 7/29/2019 01-The Scope of Software Engineering

    13/55

    14

    Personal computer software

    Commonly known as productivity tools

    Include word processing, spreadsheets, computer

    graphics, multimedia, entertainment, database

    management, etc.

    Web-base software

    Web applications that incorporates executableinstructions (e.g. CGI, HTML, Perl, or Java)

  • 7/29/2019 01-The Scope of Software Engineering

    14/55

    15

    Artificial intelligence software

    Programs that makes use of non-numerical

    algorithms to solve complex problems that are not

    amenable to computation or straightforwardanalysis

    Include robotics, expert systems, knowledge-

    based systems, pattern recognition (image and

    voice), neural networks, theorem proving, game

    playing

  • 7/29/2019 01-The Scope of Software Engineering

    15/55

    16

    Activity Think about all the devices and systems

    that you encounter in your everyday lifewhich have software controlling them

    List as many as you can

    Virtually all countries

    depend on complex

    computer-based

    systems.

  • 7/29/2019 01-The Scope of Software Engineering

    16/55

    17

    Why is Software Engineering important?

    Complex systems need a disciplined approach for

    designing, developing and managing them.

  • 7/29/2019 01-The Scope of Software Engineering

    17/55

    18

    Software Development Crises

    Projects were:

    Late Over budget

    Unreliable

    Difficult to maintain

    Performed poorly

    19

  • 7/29/2019 01-The Scope of Software Engineering

    18/55

    19

    Software errors incur cost.

    20

  • 7/29/2019 01-The Scope of Software Engineering

    19/55

    20

    The Cost of Software Engineering

    The cost depends on:

    The type of software being developed, and The process used in software development

    Each generic approach has a different profile of cost distribution.

    Roughly 60% of costs are development costs, 40% are testing

    costs.

    For custom software, cost distribution depends on the process

    used.

    Evolution costs often exceed development costs.

    21

  • 7/29/2019 01-The Scope of Software Engineering

    20/55

    21

    Cost distribution

    Generic software development (COTS)

    Product development costs

    0 25 50 75 100

    Specification Development System testing

    22

  • 7/29/2019 01-The Scope of Software Engineering

    21/55

    22

    Cost distribution

    Custom software development (Bespoke)Software Model

    Cost units

    Cost distribution

    Software development activity

    Waterfall Model

    0 25 50 75 100

    Specification Design Development Integration and testing

    Iterative Development

    0 25 50 75 100

    Specification Iterative Development System testing

    Component-based Software Engineering

    0 25 50 75 100

    Specification Development Integration and testing

    23

  • 7/29/2019 01-The Scope of Software Engineering

    22/55

    23

    Errors in computer software can havedevastating effects.

    24

  • 7/29/2019 01-The Scope of Software Engineering

    23/55

    24

    Software Crisis

    Example 2: Ariane 5 Explosion

    European Space Agency spent 10 years and $7

    billion to produce Ariane 5.

    Crash after 36.7 seconds.

    Caused by an overflow error. Trying to store a 64-bit

    number into a 16-bit space.

    Watch the video:

    http://www.youtube.com/watch?v=z-r9cYp3tTE

    25

    http://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTE
  • 7/29/2019 01-The Scope of Software Engineering

    24/55

    25

    Software Crisis

    Example 1: 2009,Computer glitch delays flights

    Dozens of flights from the UK were delayed Saturday after

    a glitch in an air traffic control system in Scotland, but theproblem was fixed a few hours later.

    The agency said it reverted to backup equipment as

    engineering worked on the system.

    The problem did not create a safety issue but could cause

    delays in flights.

    Read more at:

    http://edition.cnn.com/2009/WORLD/europe/10/03/uk.fl

    ights.delayed

    26

    http://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayed
  • 7/29/2019 01-The Scope of Software Engineering

    25/55

    26

    Software Crisis

    Example 3: 1992, London Ambulance Service

    Considered the largest ambulance service in the

    world.

    Caused by database overload problem.

    It was unable to keep track of the ambulances

    and their statuses. Sending multiple units to some

    locations and no units to other locations.

    Generates many exceptions messages.

    46 deaths.

    27

  • 7/29/2019 01-The Scope of Software Engineering

    26/55

    27

    Therefore

    A well-disciplined approach to

    software development and

    management is necessary. This is

    called software engineering.

    28

  • 7/29/2019 01-The Scope of Software Engineering

    27/55

    28

    Software Engineering: Historical Aspects

    The term software engineering first appeared in the 1968 NATO

    Software Engineering Conference and was meant to provokethought regarding what was then called the softwarecrisis..

    .. An engineering discipline that is concerned with all aspects of

    software production from the early stages of system specificationto maintaining the system after it has gone into use. Sommerville,

    pg.7

  • 7/29/2019 01-The Scope of Software Engineering

    28/55

    29

    Software Engineering and the

    Engineering Profession The term Software Engineering was coined in 1968

    People began to realize that the principles of engineeringshould be applied to software development

    Engineering is a licensed profession In order to protect the public

    Engineers design artifacts following well acceptedpractices which involve the application of science,

    mathematics and economics Ethical practice is also a key tenet of the profession

    In many countries, much software engineering does not

    require an engineering license, but is still engineering

    30

  • 7/29/2019 01-The Scope of Software Engineering

    29/55

    30

    Software Engineering vs. Computer Science

    Computer science is no more about computers than

    astronomy is about telescopes. Edsger Dijkstra

    Computer Science

    Theory.

    Fundamentals.

    Software Engineering

    Practicalities of softwaredesign, development anddelivery.

    31

  • 7/29/2019 01-The Scope of Software Engineering

    30/55

    31

    Software Engineering vs. Systems Engineering

    Systems Engineering:

    Interdisciplinary engineering field (computer, software, and process eng.).

    Focuses on how complex engineering projects should be designed and managed.

    Systems Engineering

    All aspects of computer-based systemsdevelopment: HW + SW +Process.

    Older than SWE.

    Software Engineering

    Deals with the design,development and deliveryof SW.

    Is part of SystemsEngineering.

  • 7/29/2019 01-The Scope of Software Engineering

    31/55

    The process of solving customers problems by

    the systematic development and evolution of

    large, high-quality software systems within

    cost, time and other constraints.

    Other definitions: IEEE: (1) the application of a systematic, disciplined, quantifiable approach to

    the development, operation, maintenance of software; that is, the applicationof engineering to software. (2) The study of approaches as in (1).

    The Canadian Standards Association: The systematic activities involved in the

    design, implementation and testing of software to optimize its production and

    support.

    32

    What is Software Engineering?

    To solve customers problems

    To utilize systematic development

    To produce high-quality softwareTo produce software within the

    allotted budget & time

  • 7/29/2019 01-The Scope of Software Engineering

    32/55

    33

    Goals of Software Engineering

    Solving customers problems

    This is the goalof software engineering

    Sometimes the solution is to buy, not build

    Adding unnecessary features does not help solve

    the problem

    Software engineers must communicate effectively

    with the customers to identify and understand theproblem

  • 7/29/2019 01-The Scope of Software Engineering

    33/55

    34

    Goals of Software Engineering

    Systematic development and evolution

    An engineering process involves applying well

    understood techniques in a organized and

    disciplinedway Many well-accepted practices have been formally

    standardized

    e.g. by the IEEE or ISO

    Most development work is evolutionary

  • 7/29/2019 01-The Scope of Software Engineering

    34/55

    35

    Goals of Software Engineering

    Large, high quality software systems

    Software engineering techniques are needed

    because large systems cannot be completely

    understoodby one person Teamwork and co-ordination are required

    Key challenge: Dividing up the work and ensuring

    that the parts of the system work properlytogether

    The end-product must be of sufficient quality

  • 7/29/2019 01-The Scope of Software Engineering

    35/55

    36

    Goals of Software Engineering

    Cost, time and other constraints

    Finite resources

    The benefit must outweigh the cost

    Others are competing to do the job cheaper and

    faster

    Inaccurate estimates of cost and time have caused

    many project failures

  • 7/29/2019 01-The Scope of Software Engineering

    36/55

    1. Users

    Those who use the software

    2. Customers

    Those who pay for the software

    3. Software developers

    Include system analysts, system designers, system

    builders

    4. Development Managers

    All four roles can be fulfilled by the same person37

    Stakeholders in Software Engineering

  • 7/29/2019 01-The Scope of Software Engineering

    37/55

    38

    Software Quality and the Stakeholders

    QUALITY

    SOFTWARE

    Developer:easy to design;

    easy to maintain;easy to reuse its parts

    User:

    easy to learn;

    efficient to use;

    helps get work done

    Customer:solves problems at

    an acceptable cost in

    terms of money paid and

    resources used

    Development manager:sells more and

    pleases customers

    while costing lessto develop and maintain

    39

  • 7/29/2019 01-The Scope of Software Engineering

    38/55

    Functional Attributes of a Software

    Functional attributes

    System performance; what the system does;

    capability of the software to provide functions which

    meet stated and implied needs when the software is

    used

    Key Goal: To capture the required behavior of asoftware system in terms of functionality and the

    technology implementation through a system analysis

    process.

    40

  • 7/29/2019 01-The Scope of Software Engineering

    39/55

    Non-Functional Attributes of a Software

    Non-functional attributes

    System quality; how the system does it; based on the

    parameters of system performance, software quality

    attributes, reliability and security, cost, constraints in

    design and implementation

    Key goal: To determine the factors that can be used tojudge the operation of a system or the quality attributes

    of the system.

    41

  • 7/29/2019 01-The Scope of Software Engineering

    40/55

    Some Attributes of a Good Software

    Product Characteristic Description

    Usability Easy to learn how to use the system by target users.Efficient to use the system by users to accomplish a

    task.

    Satisfying to use by intended users.

    Maintainability Evolution qualities such as testability, extensibility.

    Dependability Reliability, security, safety.

    Efficiency Response time, processing time, memory utilization.

    Reusability Reprogramming is not needed.

    http://en.wikipedia.org/wiki/Non-functional _requirement

    43

    http://en.wikiepedia.org/wiki/Non-functionalhttp://en.wikiepedia.org/wiki/Non-functional
  • 7/29/2019 01-The Scope of Software Engineering

    41/55

    Activity

    What are the key attributes for..

    Interactive game Banking systemCardiac monitor in an ICU

    unit

    Players, score, scenes,

    theme.

    Client accounts, stocks

    bonds, money transfers.

    heart rate, temperature,

    blood pressure.

  • 7/29/2019 01-The Scope of Software Engineering

    42/55

    44

    Software Quality: Conflicts & Objectives

    The different qualities can conflict Increasing usability can reduce efficiency

    Increasing efficiency can reduce maintainability orreusability

    Setting objectives for quality is a key engineeringactivity

    You then design to meet the objectives

    Avoids over-engineering which wastes money

    Optimizing is also sometimes necessary E.g. obtain the highest possible reliability using a fixed

    budget

    45

  • 7/29/2019 01-The Scope of Software Engineering

    43/55

    Challenges Facing Software Engineering

    Challenge Why? Software needs to ..

    HeterogeneityDifferent computers, different

    platforms, different support systems.Cope with this variability.

    Delivery

    Businesses are more responsive

    supporting software needs toevolve rapidly.

    Be delivered in shorter timewithout compromising quality.

    TrustSoftware is a part of many aspects of

    our lives (work, study, leisure).Demonstrate that it can be

    trusted by users.

  • 7/29/2019 01-The Scope of Software Engineering

    44/55

    46

    Software Engineering Projects

    1. Most projects are evolutionaryor

    maintenance projects, involving work on

    legacysystems

    Development and evolution costs for long-lifetime systems

    0 100 200 300 400

    System development System evolution

  • 7/29/2019 01-The Scope of Software Engineering

    45/55

    47

    Software Engineering Projects

    Corrective projects: fixing defects

    Adaptive projects: changing the system in

    response to changes in

    Operating system, Database, Rules and regulations Enhancement projects: adding new features for

    users

    Reengineering or perfective projects: changing

    the system internally so it is more maintainable

  • 7/29/2019 01-The Scope of Software Engineering

    46/55

    48

    Software Engineering Projects

    2. Greenfield projects

    New development; project that lacks anyconstraints imposed by prior work; theres noneed to remodel or demolish an existing structure

    Minority of projects are greenfield; projects thatare often coveted by engineers

    Examples: Cellular networks, power plant, airports

  • 7/29/2019 01-The Scope of Software Engineering

    47/55

    49

    Software Engineering Projects

    3. Projects that involve building on aframeworkor a set of existing components.

    A framework is an application that is missing some

    important details. E.g. Specific rules of this organization.

    Such projects: Involve plugging together components that are:

    Already developed. Provide significant functionality.

    Benefit from reusing reliable software.

    Provide much of the same freedom to innovate foundin green field development.

  • 7/29/2019 01-The Scope of Software Engineering

    48/55

    50

    Information Systems Framework

    This provides a unifying framework, inspiredby the works ofJohn Zachman, by whichvarious people with different perspectives can

    organize and view the fundamental buildingblocks ofsoftware projects.

    1. DATA

    2. PROCESSES

    3. INTERFACES

  • 7/29/2019 01-The Scope of Software Engineering

    49/55

    51

    Activities Common to Software Projects

    Requirements and specification

    Includes

    Domain analysis

    Defining the problem Requirements gathering

    Obtaining input from as many sources as possible

    Requirements analysis

    Organizing the information

    Requirements specification

    Writing detailed instructions about how the software should

    behave

  • 7/29/2019 01-The Scope of Software Engineering

    50/55

    52

    Activities Common to Software Projects

    Design Deciding how the requirements should be

    implemented, using the available technology

    Includes: Systems engineering: Deciding what should be in

    hardware and software

    Software architecture: Dividing the system intosubsystems and deciding how the subsystems willinteract

    Detailed design of the internals of a subsystem

    User interface design

    Design of databases

  • 7/29/2019 01-The Scope of Software Engineering

    51/55

    53

    Activities Common to Software Projects

    Modeling Creating representations of the domain or the software

    Use case modeling

    Structural modeling

    Dynamic and behavioural modeling

    Programming

    Quality assurance Reviews and inspections

    Testing

    Deployment

    Managing the process

    Diffi lti d Ri k i S ft

  • 7/29/2019 01-The Scope of Software Engineering

    52/55

    54

    Difficulties and Risks in Software

    Engineering

    Complexity and large numbers of details

    Uncertainty about technology

    Uncertainty about requirements

    Uncertainty about software engineering skills

    Constant change

    Deterioration of software design Political risks (considered as wicked problem)

  • 7/29/2019 01-The Scope of Software Engineering

    53/55

    55

    Software Depression

    The software crisis has not been solved:

    - Data on 9236 projects completed in 2004

  • 7/29/2019 01-The Scope of Software Engineering

    54/55

    56

    Cutter Consortium Data

    2002 survey of information technology

    78% have been involved in disputes ending in litigation

    For the organizations that entered into litigation:

    In 67% of the disputes, the functionality of the informationsystem as delivered did not meet up to the claims of the

    developers

    In 56% of the disputes, the promised delivery date slipped

    several times In 45% of the disputes, the defects were so severe that the

    information system was unusable

  • 7/29/2019 01-The Scope of Software Engineering

    55/55

    Software Myths: Practitioners View

    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.