Software Engineering Tutorial

Software Engineering Introduction

  • Computer software is a product or program code developed by software engineers.
  • The applications of computer software are: Telecommunication, military, medical sciences, online shopping, office products, IT industry etc.
  • A Software consists of data and the related documents.
  • The software is the key element in all computer based systems and products.
  • The main purpose behind software engineering is to give a framework for building a software with best quality.

Software engineering definitions

  • The establishment and use of sound engineering principles in order to obtain economical software that is reliable and works efficiently on real machines.
  • Software engineering is a systematic and disciplined approach towards the development of the software operation and maintenance.
  • Software engineering is an engineering branch associated with the development of software product using well-defined scientific principles, methods and procedures.

Characteristics of a software

  • Software should achieve a good quality in design and meet all the specifications of the customer.
  • Software does not wear out i.e. it does not lose the material.
  • Software should be inherently complex.
  • Software must be efficient i.e. the ability of the software to use system resources in an effective and efficient manner.
  • Software must be integral i.e. it must prevent from unauthorized access to the software or data.

Software engineering - Layered technology

  • Software engineering is a fully layered technology.
  • To develop a software, we need to go from one layer to another.
  • All these layers are related to each other and each layer demands the fulfillment of the previous layer.
se layers

The layered technology consists of:

1. Quality focus
The characteristics of good quality software are:
  • Correctness of the functions required to be performed by the software.
  • Maintainability of the software
  • Integrity i.e. providing security so that the unauthorized user cannot access information or data.
  • Usability i.e. the efforts required to use or operate the software.
2. Process
  • It is the base layer or foundation layer for the software engineering.
  • The software process is the key to keep all levels together.
  • It defines a framework that includes different activities and tasks.
  • In short, it covers all  activities, actions and tasks required to be carried out for software development.
3. Methods
  • The method provides the answers of all 'how-to' that are asked during the process.
  • It provides the technical way to implement the software.
  • It includes collection of tasks starting from communication, requirement analysis, analysis and design modelling, program construction, testing and support.
4. Tools
  • The software engineering tool is an automated support for the software development.
  • The tools are integrated i.e the information created by one tool can be used by the other tool.
  • For example: The Microsoft publisher can be used as a web designing tool.