Software Engineering

Software engineering provides methods and techniques to handle complexities in a software system and enables the development of reliable and efficient software systems, which in turn maximizes the productivity level. In addition to the technical aspects of the software engineering, it also covers management activities which include guiding the team, budgeting and scheduling. Software engineering methods, tools and techniques have been successfully implemented in various applications and spread across different walks of life.

Software Characteristics

Different individual’s judges software on different basis. For example, users want the software to be performed according to their own requirements. Similarly, developers involved in designing, coding, and maintenance of the software evaluate the software by looking at its internal and external characteristics, before delivering it to the user. Software characteristics are classified into six major components.

  • Functionality : It refers to the degree of performance of the software against its intended purpose. Software has to perform well to achieve the quality of the software.
  • Reliability : Refers to the ability of the software to achieve the desired functionality under the given conditions. Software must be able to run on any condition.
  • Usability : Refers to the extent to which the software can be used with ease. Software should be user-friendly and understandable to the user.
  • Efficiency : Efficiency refers to the effectiveness and efficiency of the software to use the system resources.
  • Maintainability : Refers to the ease with which the modifications can be made in a software system to extend its functionality, improve its performance, or correct errors. Maintenance of the software is very important to extend its performance.
  • Portability : Refers to the ease with which software developers can transfer software from one platform to another, without changes. It refers to the ability of software to function properly on different hardware and software platforms without making any changes in it.