Introduction to software engineering

Software engineering is a framework for building software and is an engineering approach to software development.

Software programs can be developed without S/E principles and methodologies but they are indispensable if we want to achieve good quality software in a cost effective manner.

Software is defined as:

Instructions + Data Structures + Documents

Engineering

Engineering is the branch of science and technology concerned with the design, building, and use of engines, machines, and structures. It is the application of science, tools and methods to find cost effective solution to simple and complex problems.

Software engineering

Software engineering is defined as a systematic, disciplined and quantifiable approach for the development, operation and maintenance of software. It involves applying engineering principles to software creation to ensure that it is reliable, efficient, scalable, and meets the needs of users. This includes everything from understanding user requirements to writing code, testing it, and maintaining it over time.

Characteristics of software

  • Software is developed or engineered, but it is not manufactured in the classical sense.
    Development of software and other hardware involves manpower, but the quantity and the way of approach remain significantly different. In both the manufacturing processes, one will be left out with certain end products, but, the efforts applied in them remain different. Finally, both the activities are initiated with a determination of building high quality of products, but their quality maintaining activities differ. Hence, with these specifications it can be conclude that, “software is developed or engineered, it is not manufactured in the classical sense”.

  • Software does not wear out.
    One of the fundamental characteristics of software is that it does not wear out in the same way that physical objects do. Software doesn’t degrade or lose functionality over time due to wear and tear. The hardware development process the failure rate is very high because of manufacturing detects the failure rate remains constant for some period of time and again it starts increasing because of environment maladies (Extreme temperature, duties, and Vibrations).

  • Software is custom built rather than assembling existing components.
    When software is custom-built rather than assembled from existing components, it means that the software is designed and developed specifically for a particular user, organization, or purpose, instead of being based on pre-made parts, libraries, or frameworks.
    Customizable software refers to software that can be modified or adjusted to meet the specific needs, preferences, or requirements of a user or organization. It allows users to change certain features, settings, or functionalities without needing to alter the underlying code. This flexibility makes customizable software suitable for a wide range of applications, as it can adapt to different contexts or user preferences.