The assignment asks for
the utilization of software engineering principles in real life either
professional or personal ways.
According to theory and
research papers, there are seven basic software engineering principles.
When we go through the
history of software engineering, developers face many challenges all through
Software Development Life Cycle (SDLC) especially in the phases of design, construction
and maintenance of the software/project/product. To comfort SDLC software
engineering principles which I believe were introduced. These principles
facilitate to develop software in such a manner that it holds all the qualities
like: efficiency, functionality, adaptability, maintainability, and usability. The
following are some of the principles which claimed as software engineering
principles used in software development life cycle.
Abstraction: A software developer cannot
deal with more than a few concepts and their relationships simultaneously. An
abstraction allows suppressing details that are unimportant to him/her and
emphasize the important information
Generality: Generality can be
characterized as a state or quality of being not limited to one case.
Generalization, as an inductive process, collects information about many and
presents it in a single description
Reliability: Probability of failure-free
software operation for a specified period in a specified environment.
Incremental development: Incremental
development means development in a stepwise fashion. According to this
principle a subset of the system is delivered early to get the feedback from
the users in the early stages of the development.
Modularity and Decomposition: Modularity
is a kind of Separation of concerns. A complex problem can be divided into
simpler parts called modules, allowing details of each module being handled in
isolation and separately.
Anticipation of Change: The changes occur
because usually the entire software requirement is not understood by the
development team and this happens because of the communication gap between
client and software team.
engineering has come back an extended method since from years and the first to
create our field into an engineering discipline. In fact, the primary steps
enclosed the name itself, that mirrored the goal of introducing engineering
discipline into the software system development method. Our achievements toward
this goal embrace a larger understanding of the role of abstraction and
separation of considerations in software system engineering, the introduction
of modularity and the notions of a software system life cycle, process,
activity, abstract specifications and notations, etc.
of those concepts come back directly from engineering, though they required to
be tailored to the distinctive issues that arise in operating with totally
different and a lot of abstract materials though hardware engineers are
concerned in style, they’re radio-controlled and restricted by the natural laws
of the materials with that their styles should be enforced. Software system
seems to not have these same varieties of natural limits, however to be infinitely
versatile and malleable. The bounds exist however area unit merely less obvious
and a lot of associated with limitations in human talents than limitations
within the physical world.