VAST 20002 Computers and Society - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

VAST 20002 Computers and Society

Description:

Roadmap for the Term: Major Topics. Course Introduction. Computer ... (available at http://www.wired.com/wired/archive/11.09/xmen.html) VAST 200 Spr. ' 04 ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 19
Provided by: JohnN2
Category:
Tags: vast | computers | society | xmen

less

Transcript and Presenter's Notes

Title: VAST 20002 Computers and Society


1
VAST 200-02 Computers and Society
  • Lecture 5 - Building Software
  • Spring 2004

Prof. John NestorECE DepartmentLafayette
CollegeEaston, Pennsylvania 18042nestorj_at_lafayet
te.edu
2
Roadmap for the Term Major Topics
  • Course Introduction
  • Computer Systems Overview
  • Computer History
  • Technology Trends
  • The Art of Building Hardware and Software \
  • Current Issues
  • Looking to the Future

3
References - HW and SW Design
  • 1. M. Reilly, "Designing an Alpha
    Microprocessor", IEEE Computer, July 1999.
  • 2. C. Hoare, "The Emperor's Old Clothes (Turing
    Award Lecture)", Communications of the
    ACM,    February 1981.
  • 3. D. Parnas, "Software Aspects of Strategic
    Defense Systems", Communications of the ACM,
    December 1985.
  • 4. M. Baer, The New X-Men, Wired, Issue 11.09,
    September 2003(available at http//www.wired.com/
    wired/archive/11.09/xmen.html)

4
Todays Lecture
  • Software Design
  • What is software design?
  • Is Software harder than hardware?
  • Estimating Software Complexity
  • Software design methods
  • Software Engineering as an emerging field

5
General Steps in Software Design
  • 1. Requirements Analysis deterimine what problem
    the software will solve.
  • 2. Design the program and select the tools to
    solve the problem.
  • 3. Code the program in the language of choice
  • 4. Compile into executable code
  • 5. Test the program to make sure it works if
    not, return to step 3.
  • 6. Maintenance - correct bugs after the program
    is in use (and try to avoid creating new ones!)

6
What Makes Software Hard?
  • Software is
  • Abstract in nature - invisible and
    unvisualizable1
  • Arbitrarily complex - often too large for one
    person to comprehend
  • Arbitrarily changeable
  • Arbitrarily fragile
  • Specifications change before, during and after
    development
  • Communications issues between designers and
    programmers

1F. W. Brooks, No Silver Bullet, The Mythical
Man Month Anniversary Edition, Addison Wesley,
1995
7
Measuring SW Complexity
  • Source Lines of Code (SLOC)
  • Measures how many lines (statements) in a
    program
  • Useful as a measure of software complexity
  • SOME SLOC Estimates

Sources D. Wheeler, More Than A Gigabuck
Estimating GNU/Linuxs Size, http//www.dewheeler
.com/sloc/ Wikipedia ( wikipedia.org).
8
Estimating Software Cost
  • Barry Boehms Constructive Cost Model (COCOMO)1
  • T cost in person-years
  • k - empirical constant
  • x - empirical constant (0.1 - 0.25)

1Barry Boehm, Software Engineering Economics
Prentice-Hall, 1981
9
Software Cost
  • Programmer time is not fungible
  • Brooks Law Adding programmers to a late
    project makes it later
  • Brooks key challenge Conceptual Integrity

1Frederic Brooks, The Mythical Man-Month,
Addison-Wesley, 1975
10
Software Design Methods
  • Define the steps of creating a large software
    system
  • Common Models
  • Code and change
  • Waterfall
  • Spiral
  • Extreme Programming - a recent proposal

11
SW Development - Waterfall Model
Integration
Product Verif.
Product design
System feasibility
Verification
System Test
Detailed Design
Operations Maint.
Verification
Revalidation
Source A Spiral Model of Software Development
and Enhancement, IEEE Computer, May 1988.
12
SW Development - Spiral Model
Source A Spiral Model of Software Development
and Enhancement, IEEE Computer, May 1988.
13
Extreme Programming
  • A recent design method developed by Beck,
    Cunningham, and Jeffries
  • Key ideas
  • Incremental and iterative development
  • Continuous testing
  • Pair programming
  • Onsite customer - encourage interaction between
    user developers
  • Simplicity
  • Feedback

14
Software Engineering
  • Software development as an engineering
    discipline
  • Still a young discipline - consider Civil
    Engineering
  • Fundamentals remain to be discovered
  • Engineering failures are still commonplace
  • Late release of products
  • Bugs in released products
  • Software-related disasters

15
Roadmap for the Term Major Topics
  • Course Introduction
  • Computer Systems Overview
  • Computer History
  • Technology Trends
  • The Art of Building Hardware and Software
  • Current Issues \
  • Looking to the Future

16
Outline - Course Overview
  • Administrative Details \
  • Course Overview and Introduction
  • Computer Systems Overview
  • General Concepts
  • History and Trends
  • The Creative Process
  • Hardware Design
  • Software Design
  • Current Issues Computers and Society
  • Faults and Failures
  • Privacy and Encryption

17
The Illusion of Privacy
  • 1993 - On the Internet, nobody knows youre a
    dog -- New Yorker cartoon, 1993
  • 1998 On the Internet, nobody knows youre a
    police officer posing as a 14-year old
  • 2002 On the Internet, nobody knows youre a
    Carnivore
  • 2003 On the Internet, nobody knows youre the
    RIAA

18
The Internet - A Network of Networks
  • Common addressing scheme
  • Routers connect networks,
  • TCP/IP
  • IP Addresses - what identifies computers on the
    internet
  • Static addresses - permanently assigned
  • Dynamic addresses
Write a Comment
User Comments (0)
About PowerShow.com