Sunday, 19 February 2017

Software Engineering: Definition & Principles



Software Engineering: Definition
Software engineering is a field of science implemented in computer’s area used to develop various methods & techniques in order to achieve high quality software at lower cost, within scheduled time and at consistent production rate.
Software engineering is also defined as the systematic approach to the development, operation, maintenance and retirement of software.

  •   According to IEEE, software engineering is defined as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software.

  •   According to Fritz Bauer, Software engineering is the establishment and use of sound engineering principles in order to obtain software that is reliable and works efficiently on real machines.

  •   According to Dennis, Software engineering is the application of principles, skills, and art to the design and construction of programs and systems of programs.

  •   According to Boehm, Software Engineering is the practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them.

Principles Of Software Engineering:
Various principles of Software engineering that must be considered while developing software are as follows:
·         Simplicity: All system should be designed as simple as possible. It facilitates the easy understanding of    the system, which helps in making changes simple and easy.
·         Software  design should minimize the intellectual distance between the software and problem existing in the real world.
·         Modularity:A fundamental principle of software engineering for managing complexity is modularity which can be achieved by decomposing a large system into smaller and more manageable sub-units. These sub-units are called modules.
·         Abstraction: Abstraction is the mechanism to hide irrelevant details and represent only the
essential features so that you can focus on the important things at any point of time.
·         Reusability: The system should be designed in such a way that the existing design can be effectively reused. Reuse save both time and effort and thus increases productivity.
·         Various other major principles of Software Engineering are:
·         Make quality number one priority: The first requirement must be quality. A customer will not tolerate a poor-quality product.
·         High-Quality Software is possible: High-quality Software is possible by using techniques, skilled persons, simple design, conducting inspections, building prototype.
·         Give Products to Customers Early: Try to give products to the customer early.
·         Determine the Problem Before Writing the Requirements: Try to solve the problem by gathering all the requirements of the customers and understanding them before further proceedings.
·         Evaluate design Alternatives: After gathering all the requirements try to evaluate all the design alternative and then choose the best optimal solution for it.
·         Use an appropriate  Process Model: Various Process Models are available like Waterfall, Prototype, Spiral model. Each project must select the model that better describes it.
·         Use Different languages for different phases: Use a set of those languages and techniques  that best describes the phases.
·         Put Techniques Before Tools: Before using any tool understand and follow an appropriate software technique.
·         Get It Right Before You Make It Faster: Try to make right programs then to make it faster.
·         Inspect Code: Inspect code so that it results in error free software.

No comments:

Post a Comment