software engineering tutorial
Software Engineering

Software Engineering Tutorial

Software Engineering Tutorial

This software engineering tutorial provides you basic understanding of software engineering concepts. Various concepts of software engineering to be discussed later in different post are listed in this free software engineering tutorial for students.

Software engineering deals with development of software product. Software is developed using some well defined scientific principles, methods and procedures.

Every computer science graduate should study the software engineering very well if he/she want to make a software engineer. There are several benefit of learning the software engineering.

Table of Contents

We will learn about following topics in this software engineering tutorial.

  1. Software Definition
  2. Types of Software
  3. Software Characteristics
  4. Software Engineering Introduction
  5. Why Study Software Engineering?
  6. Importance of Software Engineering
  7. Course Description
  8. Audience
  9. Prerequisite
  10. Software Engineering Syllabus
  •   Fundamentals of Software Engineering
  •    Software Requirement specifications
  •    Software Design
  •    Software Testing
  •  Software Maintenance and Software Project Management

11.Reference Books

12.Software Engineering Tutorials

Questions and Answers

By the end of this software engineering tutorial you will able to get the answer of following questions

  • What is software ?
  • What is system software?
  • What is application software ?
  • What are different  characteristics of software ?
  • What is difference between Application Software and System Software?
  • Why  study software engineering?
  • What is importance of software Engineering ?
  • Syllabus of software engineering subject.
  • Important concepts of software engineering.

What is Software ?

  • Software is a set of programs written in a specific programming language. Software is developed to implement a specific application using computer system or mobile devices.
  • Software is not only the set of programs but software also consists the documentation. This documentation is of two types.
  • Software is developed not manufactured.

User Specific Documentation

  • User specific documentation is mainly written for the end user of the software. This type of documentation is also known as User Manual.
  • This documentation consist the instructions and guidelines about how to operate the software. Different modules or functions of the software are written in this documentation.
  • Example When we purchase a mobile then we also get a guide in which different operations or functions of mobile are explained.

Documentation for Designer and Developer

This is the second type of documentation and this is mainly useful for the persons who are the part of  the design and development team. Such type of documentation includes the software design documentation and source code documentation

Documentation related to testing which consist of different test cases to be used by software tester during the testing phase.

Types of Software

Generally Software is of two types

Application software

  • Application software is designed and developed for a specific purpose such as software developed for library management system, hospital management system.

System Software

  • System software is a type of software that provides support or platform to execute the application software. Operating System is the best example of system software.

Characteristics of software

There are following characteristics of a software

Functionality

Functionality of a software refers to the degree of performance of the software against its intended purpose. Required functions are

  • Suitability
  • Accuracy
  • Interoperability
  • Compliance
  • Security

Reliability

Reliability can be defined in context of set of attribute that bear on capability of software to maintain its level of performance under the given condition for a stated period of time.

Under Reliability Required functions are:

  • Fault Tolerance
  • Recovery
  • Maturity
  • Efficiency

Efficiency  refers to the ability of the software to use system resources in the most effective and efficient manner. Software should make effective use of storage space and executive command as per desired timing requirement.

Usability

Usability tells about the extent up to which software can be used with ease. Usability also refers to the amount of effort or time consumed in understanding that how to use that software ?

Understandability, learn ability, operability are some attributes related to usability.

Maintainability

Maintainability of a software tell that how much it is easy to modify the software . Every time when a software is modified it need testing. Generally a software is modified to enhance its functionality and improve its performance.

Required functions are: Testability, stability,changeability,operability .

Portability

A set of attribute that bear on the ability of software to be transferred from one environment to another, without or minimum changes.

Adaptability, Installation and replaceability are some attribute related to portability.

What is Software Engineering?

Software engineering deals with development of software product.Software is developed using some well defined scientific principles, methods and procedures.

Programming languages such as c , java , c++  are mainly used to developed the software. Web technologies are used for web development.

Various software development  models such as waterfall model, spiral model, prototype model, incremental models are used to developed the software.

Software project management is advance and has wider scope than software engineering process. Software project management involves communication.

software engineering tutorial

Why Study Software engineering ?

All over the world need for talented software designer and developers because a good quality software is required almost in every industry.

Due to advancement in technology this is possible to build  good quality of software.

We should also consider quality during design and development as well as the security, and maintenance is sought after amongst all kinds of companies.

This required every where from finance and banking to healthcare and national security.

Software Engineering applies the concepts and theoretical understanding gained through computer science in order to build good quality software. Now a days software is becoming more and more important in our everyday lives.

Every computer science graduate should study the software engineering very well if he/she want to make a software engineer. There are several benefit of learning the software engineering.

Importance of Software Engineering

Software engineering (SE) is  very important in present time. Software engineering is a profession and practiced by software engineers.

A Software developer is mainly concerned with specifying the software requirement, make blueprint of the software, developing and maintaining the software applications.

A software engineer uses different technologies and various practices from computer science and concepts of  project management.

Software Engineering and related technologies and activities helps in improving the overall software production and quality of the software.

Software engineering plays an important role and is the backbone of software systems. Software engineering not only important for computer science field but also deals with project management plus telecom and other fields.

Software engineering basically covers the activities of designing, writing, testing, implementing and maintaining software.

Software engineering also plays a vital role for electronics devices such as mobile phone , micro controller, embedded devices.

Without software engineering, computers have no functions. Hardware is also equally important there is no use of hardware if there is no software in computers. Now a days software engineering is the functional part of the information system.

Course Description

The aim of this software engineering tutorial course is to prepare students or computer science graduate for careers in software engineering, software project management, and software development and integration.

Software engineering subject covers the basic principles used in software construction and maintenance some fundamental of software processes and life-cycles.

Mathematics is also used in software engineering to estimate the cost of software development.

Requirements analysis and different software engineering methodologies , different standard notations or principles of software architecture are some basics software engineering concepts.

Software re-use, software quality frameworks and validation, software development and maintenance environments and tools are some issues to be cover in software engineering.

Audience

This software engineering tutorial is designed for the computer science graduates and for those who want to pursue career in software development field.

Pre-Requisites

  • Basic knowledge of a system.
  • Exposure of core/general engineering concepts
  • Basic Knowledge of project/product
  • Basic Knowledge of metrics
  • Preliminary Knowledge of software
  • Preliminary Knowledge of software as a system

software engineering tutorial

Software Engineering Syllabus

Software engineering syllabus  covers the following concepts used by the software developer and designer during the development of the software.

Here I have described some important topics of software engineering subjects in five section. How can students learn software engineering ?

Students can earn software engineering in five section as given below.

Fundamentals of Software Engineering

  • Introduction to Software Engineering
  • Software Characteristics
  • Software Crisis
  • Software Engineering Processes
  • Similarity and Differences from Conventional Engineering Processes
  • Software Quality Attributes
  • Software Development Life Cycle (SDLC)
  • Various SDLC Models:
  • Water Fall Model
  • Prototype Model
  • Spiral Model
  • Evolutionary Development Model
  • Iterative Enhancement Models.

Software Requirement Specifications (SRS)

  • Requirement Engineering Process
  • Elicitation
  • Analysis
  • Documentation
  • Review and Management of User Needs
  • Feasibility Study
  • Information
  • Modeling
  • Data Flow Diagrams
  • Entity Relationship Diagram
  • Decision  Tables
  • SRS Document
  • IEEE Standards for SRS.
  • Software Quality Assurance (SQA):
  • Verification and Validation
  • SQA Plan
  • Software Quality Frameworks
  • ISO 9000 Models
  • SEI-CMM Model.

 Software Design

  • Basic Concept of Software Design
  • Architectural Design
  • Low Level Design
  • Modularization
  • Design Structure Charts
  • Pseudo Codes
  • Flow Charts
  • Coupling and Cohesion Measures
  • Design Strategies
  • Function Oriented Design
  • Object Oriented Design
  • Top-Down and
  • Bottom-Up Design
  • Software Measurement and Metrics:
  • Various Size Oriented Measures:
  • Halestead’s Software Science
  • Function Point (FP)
  • Based Measures
  • Cyclomatic Complexity Measures: Control Flow Graphs.

Software Testing

  • Unit Testing
  • Integration Testing
  • Acceptance Testing
  • Regression Testing
  • Testing for Functionality and Testing for Performance
  • Top-Down and Bottom-Up Testing Strategies:
  • Test Drivers and Test Stubs
  • Structural Testing (White Box Testing)
  • Functional Testing (Black Box Testing)
  • Test Data Suit Preparation
  • Alpha and Beta Testing of Products.
  • Static Testing Strategies: Formal Technical
  • Reviews (Peer Reviews)
  • Walk Through
  • Code Inspection
  • Compliance  with Design and Coding Standards.

Software Maintenance and Software Project Management

  • Software as an Evolutionary Entity
  • Need for Maintenance
  • Categories of Maintenance: Preventive
  • Corrective and Perfective Maintenance
  • Cost of Maintenance
  • Software Re-Engineering
  • Reverse Engineering
  • Software
  • Configuration Management Activities
  • Change Control Process
  • Software
  • Version Control
  • An Overview of CASE Tools
  • Estimation of Various
  • Parameters such as Cost
  • Efforts,
  • Schedule/Duration,
  • Constructive Cost
  • Models (COCOMO)
  • Resource Allocation Models
  • Software Risk Analysis and Management.

References Books

  1. R. S. Pressman, Software Engineering: A Practitioners Approach, McGraw Hill.
  2. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
  3. K. K. Aggarwal and Yogesh Singh, Software Engineering, New Age International Publishers.
  4. Pankaj Jalote, Software Engineering, Wiley
  5. Carlo Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of Software Engineering, PHI Publication.
  6. Ian Sommerville, Software Engineering, Addison Wesley.
  7. Kassem Saleh,”Software Engineering”, Cengage Learning.
  8. Pfleeger, Software Engineering, Macmillan Publication

Software Engineering Tutorials

  1. Software Quality Assurance Introduction

2. Cost Consideration in Software Quality Process

3. Software Quality Assurance Activities

4. Basic of Software Testing

5. Software Project Management MCQs

6. Evolutionary Model in Software Engineering

Give your feedback or leave comment so that we can improve and provide you a good quality tutorials

If you find this software engineering tutorial page helpful in improving your software engineering concepts then please Like and Share the post on Facebook, Twitter, Linkedin through their icons as given below.

Leave a Reply

Your email address will not be published. Required fields are marked *