Software Engineering Tutorial

Useful for all software programmers, the purpose of Software Engineering is to provide a framework to build best quality software.

Software Engineering Tutorial

Learn Software Engineering with this most complete Software Engineering tutorial quickly. The diagrams of all Software Engineering models and methodologies in this tutorial help you learn all the basic and advance concepts easily.

Who is this Software Engineering Tutorial designed for?

This tutorial on Software Engineering will be extremely useful to all beginners, freshers, BCA, BE, BTech, MCA and college students in developing your notes, exam preparation, lab exercises, assignments and viva questions.

What do I need to know to begin with?

This tutorial for beginners doesn't expect you to possess any other background knowledge.

Software Engineering syllabus covered in this tutorial

This tutorial covers:

Agile Process, Cleanroom Software Engineering, Requirements Engineering, Requirement Modeling, Process designing concepts, Software Architecture design, Component & Interface design, Strategies of Software Testing, Approaches of Software Testing, Project Management Concepts, Advanced Software Engineering

This is pretty much everything that you would need in Software Engineering. Let's begin!

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.