Chapter 01: The Product - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Chapter 01: The Product

Description:

How many microprocessors do you think you use everyday? ... 1977 Atari games console released, Intel produces 16bits microprocessors. ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 18
Provided by: christop139
Category:

less

Transcript and Presenter's Notes

Title: Chapter 01: The Product


1
Chapter 01 The Product
  • 1.1 Introduction
  • Software is absolutely everywhere in
    industrialised countries of course but also
    increasingly in developing countries
  • How many microprocessors do you think you use
    everyday?
  • The vast majority of microprocessors end up in
    embedded systems
  • Most people working in the software industry do
    not work on PC related projects
  • 1.2 History of Software
  • See http//www.computerhistory.org/timeline/ and
    http//www.thocp.net/ for an historical
    perspective.
  • The roles that software plays in our lives have
    changed dramatically due to
  • Cheaper, smaller, more reliable and more powerful
    hardware
  • The complexity of software has increased todays
    projects are more complex than before.

2
Computing in 1948
Software in 1948
3
  • 1.2.1 First Era 1950-1965
  • Software was viewed as an afterthought very few
    systematic methods existed, software development
    was unmanaged.
  • During this time general purpose hardware became
    commonplace.
  • Software was custom designed for each customer.
  • Software was often written by an individual or a
    very small group design and documentation did
    not exist.
  • FORTRAN 1957, COBOL 1960
  • Famous quote We will never have enough problems
    to have enough work for one or two computers
    working on it by Howard Aiken (IBM)

First mass produced computer, the IBM 650 in
1953 450 sold in first year
4
  • 1.2.2 Second Era 1965-1975
  • Multi-user systems introduced
  • Real-time systems now feasible control plants
  • First databases developed
  • Software now seen as a product
  • More and more software written for different,
    often incompatible, computers
  • All these programs had to be corrected when
    faults were detected, modified as user
    requirements changed or ported to new hardware
    these activities are called software maintenance.
  • 1968 the term software crisis is used,
    software engineering is founded.
  • Intel establish in 1968, 1st commercial
    microprocessor 1971.
  • ARPA Network starts in 1969.
  • In 1972 INTEL releases the 200 kHz, 8 bit , 3500
    transistors, 8008 which could address 16Kb of
    memory.
  • Unix proposed in 1974, by 1977, 500 computers run
    Unix, by 1984, 100 000

5
  • 1.2.3 Third Era 1975-1988
  • Distributed systems introduced, communication
    networks developed.
  • Smaller, cheaper hardware make embedded systems
    persuasive.
  • 1977 Atari games console released, Intel produces
    16bits microprocessors.
  • 1978 VisiCalc 1st Spreadsheet developed.
  • 1981 IBM PC introduced

4.77 MHz 8 bit 8088 CPU of Intel 64KB RAM, 40KB
ROM, one 5.25-inch 160KB floppy drive. MS-DOS
operating system
  • Apple Mac 1984
  • MS Windows 1985 (does not catch on until
    version 3.1 in 1992 )
  • 1985 INTEL 32bits microprocessors
  • 1986 C introduced

6
  • 1.2.4 Fourth era 1988 1998
  • Powerful desktop computers change software
  • Better GUIs possible
  • New common input/output devices (mice, floppies,
    modems etc.)
  • Move away from mainframe computing towards
    client/server environments.
  • First ARPA net virus 1988
  • 1989 Internet born based on TCP/IP
  • 1990 birth of the WWW, 1st browser 1992 the
    Internet opens up to everybody
  • 1992 Windows 3.1
  • 1992 1st commercial text (SMS) message sent
  • Java 1994
  • Amazon 1996
  • Millennium Bug panic

7
  • 1.2.4 Third Era 2001-now
  • Google 1998
  • Software as a service
  • Cloud computing.
  • 1.2.6 Conclusion
  • Very fast evolution of hardware and new usages
    create problems for software engineers
  • Technology becomes obsolete very quickly (2 - 3
    years)
  • Hardware out-pacing software
  • High cost of software is a problem
  • Reliability of software is a problem
  • Slowness of software production is a problem
  • Software maintenance is a problem
  • More and more software is safety critical (all
    transports, medical devices ), or economically
    critical (the Internet, financial transactions )
  • New security issues.
  • All this put pressures on the software industry
  • Increased knowledge of software development
    techniques needed
  • More regulations and controls are on the way for
    the software industry.

8
  • 1.3 The Software Industry
  • In the early days focus was on hardware (because
    of costs)
  • programming was viewed as an art form
  • Mostly trial and error techniques used
  • Now software rather than hardware is more
    expensive. It is also the most un-reliable, the
    hardest to fix, the longest to develop
  • Why does it take so long to get software
    finished?
  • Why are costs so high?
  • Why is software so unreliable?
  • Some organisations (e.g. banks, government
    agencies) have thousands of critical
    software-based applications that are very old
    (gt20 years), and very difficult to maintain (very
    high risk to fail after change.
  • The software industry is becoming a more
    competitive industry
  • Anybody can create a software company it costs
    very little to start up

9
  • 1.4 Software
  • 1.4.1 Why is Software Different?
  • Software is not a physical product it is an
    intellectual, some say logical, product.
  • 1) Software is developed or engineered it is not
    manufactured
  • Reproducing and distributing software is easy
    cheap and perfect copying
  • Software costs are almost entirely development
    costs
  • 2) Software does not wear out
  • Because it is not part of the physical world
  • But it often deteriorates over time because of
    poor maintenance
  • Software maintenance is more complex than
    hardware maintenance no quick fix (e.g.
    component part) is usually available
  • 3) A lot of software is still custom-built
  • Bespoke software (A unique solution for a unique
    customer) -gt expensive etc.
  • Reusing components across project helps

10
  • 1.4.2 Software Components ?
  • As engineering discipline evolves a collection of
    standard components is created
  • Examples
  • The advantages are enormous
  • Cheaper mass market production
  • More reliable the components have already been
    tested
  • Quickly available reduce the schedule
  • (imagine building a PC without using standard
    components )
  • In the software industry this has mostly not
    happened yet
  • Ok for GUI components
  • Ok for very common algorithms and data structures
    especially for Object Oriented Programming
    Languages (e.g. Java Development Kit)
  • Ok for common networking protocols
  • But not for everything else

11
  • 1.4.3 Range of Software
  • Subjective as usual
  • System software
  • Software written to help other software
  • E.g. operating systems, compilers, Computer Aided
    Software Engineering (CASE) tools, device drivers
  • Characteristics close to hardware, multiple
    users, complex data structures
  • Embedded/Real-time Software
  • Embedded software reside in ROM and are part of a
    physical device
  • most embedded software are real-time software
  • Real-time software monitor, analyse and respond
    to real-world events
  • E.g. mobile phones, engine controllers, MP3
    players, photocopiers, X-by-wire systems, robots
    on an assembly line, medical devices
  • Characteristics use sensors, hard time
    constraints, manufacturer specific (often
    developed in-house), often small software

12
  • Business Software
  • To help businesses or large organisations (e.g.
    governments)
  • Largest application area
  • E.g. E-commerce sites, payroll systems, financial
    systems, Customer Relationship Management (CRM)
    systems, Management Information Systems (MIS),
    Tax and Benefits systems
  • Characteristics very large databases, financial
    environments, distributed systems
  • Engineering/Scientific Software
  • Perform vast amounts of mathematical
    computations number crunching applications
  • E.g. meteorology, all simulations, Computer Aided
    Design (CAD)
  • Characteristics concurrent computing, batch
    computing, custommade software
  • Personal Computer Software
  • Increasingly complex and varied applications
  • E.g. too many to mention
  • Characteristics High-levels of interactivity,
    Very competitive market

13
  • Forgotten areas?
  • Entertainment software?
  • ?
  • 1.4.4 A Software Crisis?
  • First identified in 1968 (unresolved?)
  • What are the problems?
  • Schedule and costs estimates often grossly
    inadequate
  • Productivity of the software industry is still
    very low
  • The quality of software is often inadequate
  • Why?
  • Developing software looks easy it isnt.
    Software is maybe the most complex product that
    humans produce
  • We are simply not very good at it software
    engineering practices have improved dramatically
    since the late 60s but we still have far to go
  • The pace of technical innovations is too rapid
  • Bad managers
  • Bad programmers (working by trial-and-error, not
    disciplined, individualistic)

14
  • 1.4.4 Persistent Software Myths
  • Managements Myths
  • Myth We are fine as our company follows strict
    internal procedures for developing software
  • Reality The procedures may well exist but are
    they applied? Are they complete? Beware of as
    long as the paper work is in order mentality.
  • Myth Our company is the best because we use
    the latest programming language and expensive
    development tools
  • Reality Good people are much more important
    than technology in software engineering. A lot of
    hype surrounds programming languages. Tools are
    important and should be used more by developers
    but badly used they are useless (even dangerous).
  • Myth Dont worry too much about the schedule
    if we are late we have the resources to add more
    people to the project
  • Reality It will not work. Adding developers to
    a late project will most likely only delay it
    further (Why?)

15
  • Customers Myths
  • Myth It is obvious what we need the
    programmers should start right now. We will
    provide the details later
  • Reality The main cause of failed software,
    delays, and budget overruns is bad understanding
    of the project. What may be a detail for customer
    can have huge software consequences.
  • Myth We just want you to add this little cool
    functionality to the project that you started 6
    month ago surely that wont be a problem
    software is flexible
  • Reality The later changes are required in a
    project the harder they are to accommodate a
    cool functionality may require re-design of the
    entire software....
  • Developer's Myths
  • Myth We are finished look, it compiles
  • Reality Is this a joke?
  • Myth This project is finished, and the
    customer seems happy we will never see this
    software again
  • Reality For a software to be successful it
    needs to be maintained, for many years. Often
    this will cost more than the original costs.

16
  • Myth Ill tell you how well I am doing
    whenever the code is running
  • Reality We can assess a project as any stage of
    development. We need to. The sooner problems,
    potential risks or quality deficiencies are
    detected in a project the better.
  • Myth At the end of the day, as long as the
    software runs we will be fine
  • Reality Another joke? First, not any software
    is needed but only the software that will address
    the customer/users problems or needs. In
    addition, quality documentation, design and
    testing are needed.

17
  • 1.5 Summary
  • In fifty years, software has evolved from nothing
    to being the most important, and difficult, link
    of the information society.
  • The essential attributes of well-engineered
    software could be said to be
  • Maintainability software must be able to evolve
    efficiently
  • Dependability includes reliability, security
    and safety
  • Suitability/Usability software must be
    developed to address the needs of the
    customer/users and it must do so in a way that is
    easily accessible to them
  • Efficiency so that it does not affect
    usability
Write a Comment
User Comments (0)
About PowerShow.com