J. W. Rider
23 April 2000

Evolution of Software Engineering Paradigms

Paradigm General Features Java-related Features
Machine Representation of problem solutions in computers.
  • Java Virtual Machine (JVM)
  • J-code (in *.class file)
  • Primitive data types (boolean, byte, short, int, long, float, double, char)
Mnemonic Readability of computer programs.
  • Assignment statement
  • Absolute, conditional jumps
  • Reserved words
  • Operators
  • Identifiers
  • Constants
  • Comments
Modular Simplify understandability of programs by partitioning.
  • Subroutines, functions
  • Formal, actual arguments
  • Separation of code and data
  • Scope of identifiers
  • Function libraries
Favors programs designed from the bottom-up.
  • Classes and packages
  • Variables and statements
  • Methods
    • return statement
  • Standard classes (e.g., String)
Structured Simplify understandability of programs by eliminating unconditional control execution.
  • Sequence
  • Selection
  • Iteration
Favors programs designed from the top-down.
  • Blocks
  • if and switch statements, ternary operator
  • for, while, do statements
  • Exception handling
    • throws clause
    • throw statement
    • try/catch/finally block
Object-oriented Simplify understandability of programs by collecting logically related parts of code and data together.
  • Encapsulation
    • Members
      • Fields
      • Methods
  • Inheritance
  • Polymorphism
    • Virtual methods
  • class, interface keywords
  • extends, implements keywords
  • Reference model for objects
  • Object class used for ancestor of all other classes.
Event-driven Programs should be built as a collection of responses to programs events.
  • Events
  • Event generation
  • Event handling
  • AWT classes
  • Inherited event model
  • Distributed event model
Visual Programs should be organized to emphasize the visual aspects of the program first. That is, designed and constructed from the outside-in.
  • Components, containers
  • Properties
  • Events
  • Java Beans
1