Introduction

Michael L. Collard, Ph.D.

Department of Computer Science, The University of Akron

Software

  • software engineering - Software Engineer
  • software development - Software Developer
  • programming - Computer Programmer

Fundamental Activities

Best Time to Develop Software

  • Free and easy access to tools
  • Free and easy access to documentation, examples, etc
  • Free and easy ways to post information
  • Easy, low overhead, inexpensive ways to distribute and collect payment

Most software that people use is typically …

  • ugly and difficult to use
  • difficult to add new features or get bugs fixed
  • not updated very often

Changes in the software environment

“Software is eating the world”

  • Marc Andreessen Essay
  • A software layer gets introduced into part of an industry
  • Computer hardware can be iterated faster then mechanical systems or people
  • Software can be iterated much faster than computer hardware
  • Companies that can truly utilize a software layer often have less costs, and can brings features to those that previously did not have access
  • Older companies are unable to adapt so they die or become unimportant, e.g., first digital camera

Computing and Companies

  • Provide software-based service/product
  • Provide physical service/product with (potential) software layer
  • Provide physical product

Hardware Platforms

  • mainframe (server)
  • minicomputer (server)
  • desktop PC
  • laptop PC
  • tablet
  • smartphone
  • smartwatch
  • IoT: lights, appliances, locks, etc.

Historical Platform Sizes

  • Mainframes:
    • Total: 100,000
    • Active: 20,000 - 30,000
  • Word Processors (Sperry, etc.):
    • Total: 500,000 - 1 million
  • Minicomputers: DEC VAX
    • Total: 1 million
  • Apple IIs:
    • Total: 6 million
  • Commodore 64s:
    • Total: 17 million

Current Platform Sizes I

  • World Population:
  • U.S. Population:
  • Microsoft Video Console (Xbox)
    • Total:
  • Apple Watch
    • Total:

Current Platform Sizes II

  • PC
    • Total:
    • Active:
    • Yearly sales:
  • Mobile Phones:
    • Active:
    • Active Smartphones:
  • iOS: iPhone, iPad
    • Total:
    • Active:
    • Yearly sales:

Expectations are changing

  • Reliability
  • Robustness
  • Transparency
  • New features
  • Rate of improvements

Processes Needed

  • Fix bugs quickly and safely
  • Introduce new features quickly and safely
  • Get users what they need
  • Stay current with changes in software environment

Stakeholders, e.g., People

  • developers
  • developers’ management
  • other parts of the company
  • users
  • users’ management
  • other parts of the users’ company
  • others in same industry
  • reviewers and the outside world

Goal: Success

  • Improve quality
  • New features
  • Reduce needed resources
  • Reduce time-to-market

“Software Engineering”

Do we still have a software crisis?

Layers of Software Engineering

Goals

Process

Methods

Tools