Introduction to Software Engineering

4 min read Last updated Mon Jun 08 2026 07:12:15 GMT+0000 (Coordinated Universal Time)

An engineering discipline concerned with theories, practical methods, and tools for professional software development.

Society relies on large, complex software systems that must be dependable and trustworthy.

Good Software

  • Provides required functionality
  • Maintainable
    Easy to modify and evolve.
  • Usable
  • Reliable
  • Efficient on resources
  • Secure

Software Costs

Usually exceed hardware costs over a system’s lifetime.

  • Software often costs more than the hardware it runs on.
  • Maintenance cost exceeds development cost for long-life systems.
  • Maintenance may be several times the initial development cost.

Software Product

Generic Product

Pre-built, stand-alone system sold to the open market. Also called COTS (Commercial Off-The-Shelf). Acquired and configured to meet requirements rather than built from scratch.

Specifications are owned by the developer. Developer decides on changes.

Examples:

  • Graphics software
  • Project management tools
  • CAD software
  • Appointment systems

Customized Product

Software built for a specific customer’s needs.

Specifications are owned by the customer. Customer decides on changes.

Examples:

  • Embedded control systems
  • Air traffic control systems
  • Traffic monitoring systems

General Issues

Heterogeneity

Systems run across networks, different hardware, and mobile or distributed devices.

Business and Social Change

Rapid market and technology changes require software to evolve quickly.

Security and Trust

Software affects all aspects of life. Trustworthiness is essential.

Software Engineering Diversity

Varies by application type, customer requirements, and team skills.

Application Types

  • Stand-alone applications
    Not dependent on other systems. Runs on a single computer.
  • Interactive transaction-based systems
  • Embedded control systems
  • Batch processing systems
  • Entertainment systems
    Intended for individual users.
  • Modeling and simulation systems
  • Data collection systems
  • Systems of systems

Fundamentals

  • Use a managed development process
  • Dependability and performance matter
  • Requirements must be well understood
  • Software reuse is encouraged

Software Engineering Ethics

Software engineers have responsibilities beyond technical skills.

Ethical Behaviour

  • Honesty
  • Professional responsibility
  • Moral principles beyond law

Professional Responsibility

  • Confidentiality
    Respect employer and client information.
  • Competence
    Do not accept work beyond skill level.
  • Intellectual Property
    Respect copyrights and patents.
  • Computer Misuse
    Do not misuse systems or skills.

ACM/IEEE Code of Ethics

Defines professional ethical standards for engineers, managers, educators, and students.

8 principles:

  1. Public
    Act consistently with the public interest.
  2. Client and Employer
    Act in the best interests of client and employer, consistent with the public interest.
  3. Product
    Ensure products and modifications meet the highest professional standards possible.
  4. Judgment
    Maintain integrity and independence in professional judgment.
  5. Management
    Promote an ethical approach to management of software development and maintenance.
  6. Profession
    Advance the integrity and reputation of the profession, consistent with the public interest.
  7. Colleagues
    Be fair to and supportive of colleagues.
  8. Self
    Participate in lifelong learning and promote an ethical approach to the practice of the profession.

Ethical Dilemmas

  • Disagreement with management policies
  • Releasing untested safety-critical software
  • Working on military or nuclear systems

Case Studies

Insulin Pump Control System

Safety-critical embedded system.

Functions:

  • Read blood sugar
  • Compute insulin dose
  • Control pump delivery

Risks:

  • Low blood sugar: coma or death
  • High blood sugar: long-term damage

Mental Health Care Patient Management System

Maintains patient and treatment records.

Features:

  • Central database
  • Offline local access
  • Management reporting

Concerns:

  • Privacy
  • Safety
  • Availability

Wilderness Weather Station

Data collection system.

Functions:

  • Collect weather data
  • Transmit to central system
  • Monitor hardware health

Additional features:

  • Fault reporting
  • Power management
  • Dynamic reconfiguration
Was this helpful?