Published on

COMP2120 - Week 1 - What is Software Engineering

Table of Contents

Software Engineering

  • Use of scientific principles to design and build something

  • Concened with all aspects of software production

  • Costs more to maintain than to develop

What is Software?

  • Computer programs and associated documentation

Generic Software

  • Stand-alone + sold to any customer who wishes to buy it

  • Owned by software developer with decisions being made by the developer

Custom Software

  • Software commissioned by specific customer

  • Specification owned by the customer with decisions being made by the customer

Software Process Activities

  1. Software specification (Requirements) -> Problem is defined that built software will address

  2. Development -> Software designed, programmed and documented

  3. Validation -> Tested to ensure specifications are satisfied

  4. Evolution -> Software maintenance and modifications

Essential Attributes

  • Acceptability -> Must be acceptable to type of users it is designed for.

    • Also must be functional, usable and compatible with other systems
  • Dependability -> Software should not cause physical or economic damange in event of a failure. Malicious users should not be able to access or damange the system

    • Includes reliability, security and safety
  • Efficiency -> Includes responsiveness, processing time, memory utilisation

  • Maintainability -> Should be created such that it can evolve to meet changing needs of customers as it is an inevitable requirement

General Issues

  1. Business and societal change
  2. Heterogeneity -> Systems distributed across different computers and mobile devices
  3. Security and trust -> Essential we can trust software
  4. Scale -> Internet and cloud-based systems mean scales may change as software evolves