Software Engineering

The study of systematic and disciplined approaches to develop, operate and maintain a software.

Software that is :

  • Delivered on time
  • Reliable
  • Complete
  • Cost Effective

Software

Set of instructions that operates the hardware
Documentation such as requirements, models and user manuals.

Difference between Systems and Software Engineering

In system engineering, you tend to work with lower level software and hardware to solve problems; in software engineering you tend to work with software of medium/ higher levels and typically won’t do as much with hardware, so the main difference is the amount of abstraction.

Difference between Product and Project

Product Ready to use solution sold to customers
Project Involves building of solution based of provided requirements

Software Process

Set of activities whose goal is the development or evolution of software

Software Process Model

Abstraction of software process
how should development of a software progress
consists of dividing software development work into distinct phases to improve design and project management.

Monolithic

A program that doesn’t consist of modules.
doesn’t follow modular programming approach.

Error

Leads to a faulty state of software : Manifests an error

Fault

An incorrect state of a program

Defect

A fault that is delivered to the software consumer

Failure

An event not a state, based on the incorrect target of the software

Incident

May or may not lead to a failure

Bug

The intermediate state of fault or defect

Verification

Correct Working
Product right?

Validation

Correct Requirement implemented
Right Product?