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