adapting engineering principles of software designing
TRANSCRIPT
-
7/25/2019 Adapting Engineering Principles of Software Designing
1/5
Adapting Engineering Principles of Software Designing
In todays world the need for Computer Engineers and Software Engineers are growing
constantly. Engineering is the application of mathematics, empirical evidence and scientific,
economic, social, and practical nowledge in order to invent, design, !uild, maintain, research,
and improve structures, machines, tools, systems, components, materials, and processes. "here
are numerous reasons why Engineering Principles should !e incorporated in Software Design. In
this essay only five reasons will !e e#pounded on.
"he first principle which one should incorporate in Software Designing is called
Separation of Concerns $SoC%. Separation of concerns is a recognition of the need for human
!eings to wor within a limited conte#t. "he human mind is limited to dealing with
appro#imately seven units of data at a time. A unit is something that a person has learned to deal
with as a whole & a single a!straction or concept $'or e#ample, concentrating on a single part of a
software(program%. Although human capacity for forming a!stractions(ideas appears to !e
infinite, it taes time and repetitive use for an a!straction to !ecome a useful tool) that is, to serve
as a unit. Separation of concerns is important in simplifying development and maintenance of
computer programs. *hen concerns are well&separated, individual sections can !e reused, as
well as developed and updated independently. In addition to that it gives the engineer the a!ility
to later improve or modify one section of code without having to now the details of other
sections, and without having to mae corresponding changes to those sections.
Another principle which one should adapt is +odularity. "he principle of modularity is a
specialiation of the principle of separation of concerns. In software engineering, as the name
suggests, modularity refers to the e#tent to which a software(application may !e divided into
-
7/25/2019 Adapting Engineering Principles of Software Designing
2/5
smaller modules. Software modularity indicates that the num!er of application modules are
capa!le of serving a specified !usiness domain. +odularity is successful !ecause
developers(engineers use prewritten code, which saves resources. +odularity provides greater
software development managea!ility.
"he principle of a!straction is another specialiation of the principle of separation of
concerns. "he principle of a!straction implies separating the !ehavior of software components
from their implementation. It re-uires learning to loo at software and software components
from two points of view what it does, and how it does it. 'urthermore, A!straction is an
identical application, where the implementation of a particular interface is separated from its
design. "he interface can !e a data structure or a framewor. An API, for e#ample, is literally an
application programming interface, providing a /deeper discussion of the relations among types,
data a!straction, and polymorphism $occurring in different forms%0. A!straction in computer
programming is an evolution that resulted out of the necessity of reducing comple#ity for users
as well as software engineers and to -uantify and to simplify new applications of e#isting
paradigms. "he iteration to this new style provides a techni-ue for programming and a way to
write /good0 programs to solve a given pro!lem in an organied, porta!le, and reusa!le way.
In addition to A!straction, one should always !e Consistent. "he principle of Consistency
is a recognition of the fact that it is easier to do things in a familiar conte#t. 'or e#ample, coding
style is a consistent manner of laying out code te#t. "his serves two purposes. 'irst, it maes
reading the code easier. Second, it allows programmers to automate part of the sills re-uired in
code entry, freeing the programmer1s mind to deal with more important issues.
Also, the anticipation of change should !e incorporated in Software Engineering. *hen
there are changes, additional costs will !e incurred. A design goal in software development is to
-
7/25/2019 Adapting Engineering Principles of Software Designing
3/5
ensure cost is ept to a minimum. 2ne approach is to anticipate where changes are liely to
occur and mae provisions for the changes during the design stage. 2ne need to provide tools for
storing and retrieving documents, and for managing source code and o!3ect code. "hese tools
must also !e wored into the overall configuration management of a system.
In concluding, engineering techni-ues should !e incorporated in software engineering as
they prove to mae software designing easier, efficient and afforda!le.
-
7/25/2019 Adapting Engineering Principles of Software Designing
4/5
4i!liography
*or Cited
/Principles of Software Engineering.0 d.umn.edu. *e!.
https((www.d.umn.edu(5gshute(softeng(principles.html
/Seven Strategies for Successful Software Engineering Part 60BrightHub.com *e!. 78 9uly
:88;.
http((www.!righthu!.com(computing(windows&platform(articles(787of>concerns
https://www.d.umn.edu/~gshute/softeng/principles.htmlhttp://www.brighthub.com/computing/windows-platform/articles/10178.aspxhttps://en.wikipedia.org/wiki/Separation_of_concernshttp://www.brighthub.com/computing/windows-platform/articles/10178.aspxhttps://en.wikipedia.org/wiki/Separation_of_concernshttps://www.d.umn.edu/~gshute/softeng/principles.html -
7/25/2019 Adapting Engineering Principles of Software Designing
5/5