- Forward


Software Engineering: An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

What is Software?
Back SMYC Forward
  • To the Hardware:
    • A collection of instructions to be executed by a computer/processor
  • To the Developer:
    • A collection of human-readable statements (in a language) that can be converted to a collection of instructions to be executed by a computer/processor
The Organization of Software
Back SMYC Forward
  • Program:
    • Any piece of software that can "run on its own" (including utilities, tools, scripts, apps, etc...)
  • Sub-Program:
    • A collection of instructions/statements that implement an algorithm for accomplishing a specific task or tasks
  • Library:
    • A group of related sub-programs for accomplishing a specific collection of (usually related) tasks
From Software to Software Product
Back SMYC Forward
  • What People (Other than Us) Care About:
    • Having everything they need to solve one or more problems or achieve one or more goals (i.e., a complete means to one or more ends)
  • Definition:
    • A software product is one or more programs, sub-programs, or libraries, along with the data and supporting materials and services, that a client can use to solve problems or achieve goals
Kinds of Software Products
Back SMYC Forward
  • Bespoke:
    • Software products that are developed (usually under contract) for a specific client
  • Generic:
    • Software products that are developed (usually speculatively) and then sold to market clients (either a mass market or a niche market)
Software Engineering
Back SMYC Forward
  • Defined:
    • The application of (scientific) theories, methods and tools to the specification, design, creation, verification/validation, deployment, operation, and maintenance of software products
  • Scope:
    • From specification to maintenance
    • Involves technical and managerial concerns
    • Involves theories/methods from psychology, mathematics/statistics, computer science, and management (of people and resources)
    • Consists of science and art
Software Engineering vs. Computer Science/Engineering
Back SMYC Forward
  • Computer Engineering:
    • The application of theories (often from physics) to the creation of computational devices
    • Usually thought of as a subset of electrical and electronic engineering
  • Computer Science:
    • The theories and methods that underlie computation and the use of computational devices
There's Always More to Learn
Back -