future of software engineering
TRANSCRIPT
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 1/12
Running Head: THE FUTURE OF SOFTWARE ENGINEERING
The Future of Software Engineering
2/2/2012
BLANCA I. DAVILA-PABON
GRANTHAM UNIVERSITY
Instructor Bernard Lichvar
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 2/12
Software Engineering i
Table of Contents
Abstract .................................................. Error: Reference source not found
Software ................................................................................................2
Software Engineering ...............................................................................2
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 3/12
Software Engineering 1
The Future of Software Engineering
Introduction
Advancement and technology have their own meaning and definition in every respective
era. In primitive times, progress would mean having a proper dwelling, food and shelter;
however, now advancement holds a total new and different concept. Almost a century back it
would be hard to believe the kind of progress mankind has made now. However, a progress made
in a primitive era has led to and enabled us to make or achieve what we have achieved today. For
example, the invention of fire and the power to control it led to the augmented accessible sources
of food; and the invention of wheel led to the mode of conveyance we now use for our transport
purposes. Let it be the skyscrapers, the fast-paced cars and trains, airplanes, the military, nuclear
assets, communication, internet and much more. If we cogitate closely, we will end up deducing
that, almost every other advancement made by the mankind is somehow linked with the progress
made in the computer technology.
It enabled us to adapt to our natural environment in a constantly evolving unique way.
The current advancements have delivered various modes of communication and transformation
of information, which eventually has enabled us to minify the impediments, which earlier existed
in communication. However, it will be extremely incorrect to grade the advancements
achievement as beneficial in every aspect, these technological advancements enabled and
encouraged us to demolish and destroy our world by contriving the deadly weapons for the sake
of our safeguard. Technology has benefited us, and our society in numerous ways; it has
enhanced our lifestyle, developed our economies, and enabled us to lead a luxurious life.
However, these technologies have many spin-offs, as pollution, depletion of our resources, which
is extremely detrimental to the earth and our environment. Often, the new technologies give rise
to various ethical issues and questions, and now it seems as if the advancements in computer
technology, especially software engineering are incessant (Cusumano, 2004).
Objective
Technology has paved entirely new paths for us in this world and our lives. The objective
of this paper is clearly to illustrate the role of software and software development in shaping and
enhancing our operations, functions and working in every possible and imaginable sector. The
paper aims to discuss the real understanding of software and software engineering. Besides that,
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 4/12
Software Engineering 2
it further illustrates the advancements made in the software industry and the privileges it
provided to the world, from primitive time to date. Furthermore, the purpose is to discuss the
significance of assumptions in software engineering and development, as it allows engineers
constantly to improve their productions and enhance the technology that revolves around
software, also other facets of technology, which are entirely dependent on new and improved
software.
Background
Software
Software is an integral component of computer, without it the computer would just be a
box with little machinery and chips in it. The basic distinction between hardware and software is
the tangibility factor. Hard-ware is the component of the computer that can be touched; however,
software is intangible; you can’t touch it but still it does all you required work. Basically,
software is a program and an assortment of data, which directs your computer and enable it to
perform the required task. It basically is the software that does all the working, hardware merely
shows you or gives you the output. It processes the data, which eventually results in the desired
function (Rucker, 1987). It is an informative entity that deals with the programs and certain
computer procedures which are associated with the information processing system. Software can
be used in two ways; it can either straight off instruct the hardware to process, or it can be
imbedded in or act as a stimulant to different software, to perform a special or extensive
function. So in other words, software is an electrical form of the data required to achieve certain
results or functions. Software as a whole can be of various types; however, it is mainly divided
into two broad classes: system software and application software. The system software
constitutes of the operating system and all the service programs which facilitate the computer to
perform. Whereas, the application software, enables users to get their desired function done
(Martin, 2008).
Software Engineering
The improvement, breakthrough and advancement in the software with respect to the
quantifiable, orderly and planned development are mainly known as software engineering; and
analysis of the implementation or application of engineering in software devisal. The sole reason
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 5/12
Software Engineering 3
of valuing it as the application if engineering because it involves sheer mathematical and
computer sciences which inceptions lie in engineering. Software engineering not on plays a
significant role in constantly innovating and improving the software but also help in handling the
software crisis, which in the past had remained a major problem. The basic objective is to
develop and design software that would eventually meet all the requirements the customers have
outlined. Software engineering can be accessed in two ways by the students, the computers
science programs offer a couple of software engineering courses or an exclusive software
engineering programs (Sommerville, 2010).
Software engineering has played a significant role in revolutionizing our world, our
countries and most importantly our life styles. It will not be wrong and incorrect to attribute the
development of economies to the advancement and development of software. Mainly because,
seldom does it come across our attention that a system is not software controlled, more and more
systems in our society nowadays are software oriented and controlled. In mainly all developed
countries, the spending made on software engineering constitutes a significant part of the GNP.
Quite often the cost of software is higher than the cost of hardware or the PC itself. Moreover, it
costs more to maintain the software than to develop it. It is where software engineering comes in
play as it is an ongoing struggle constantly to enable the software engineers to develop the cost
effective software. So, primarily, software engineering is an engineering domain relates to all
facets of the production of software. The software are not only confined to the computers we use
on a daily basis, it plays a significant role in fields of aerospace, mechanical and civil
engineering, environmental engineering and much more (Pressman, 2009).
From Yesteryears to Today: The Advancements Made By the Software Engineering
As discussed earlier, the advancements made in software and its development seem to be
incessant. It’s the same impression that existed even several decades ago. Almost 20 years ago or
more a Comodore “Amiga” would be exceptionally high quality, wonderful, marvelous and was
state-of-the-art PC, with the copy-righted operating system and GUI windowed along with the
sound and graphic chips. Undoubtedly, the Amigas were fairly fast for their times, however,
relatively slow in understanding and comprehension. In those times, the hard drives would still
be extraneous and big besides being expensive, and the applications would be intricate.
However, drastic changes have taken place over those decades. Just like betterments in other
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 6/12
Software Engineering 4
fields, software and their respective tools now have become rather quicker, improved and
relatively cheaper in some cases. The development in software entity can well be illustrated via
some examples.
The way data models are developed, they still have to go a long way before they can be
incorporated as an integral part of the software development processes. There are a few hopeful
prospects but a majority of the modeling tools are yet excessively heavy, overpriced and are
disjointed from the code and general development process. Although, the improvements are
evident regarding modeling classes, yet code is still a better option when it comes down to
writing logics and guts to most functions. When it comes to the automated build tools, the chief
mighty tools for its time would be ranked as the C make, by performing more or less the same as
the contemporary automated tools do. However, the contemporary automated build tools are
relatively easier when it comes to intricate and logic impelled build custom and graphics. The
model tools are more compatible as they are more effective in dealing with errors. Not only that,
the modern tools are adept at restarting the build procedure in the midway, it automatically
specifies and sets the dependencies of the project, interacts with the origin control system and
handles the process of a practical squad or group across the web (Koch, 2011).
The IDEs were considered a significant step in software development; they enable a user
to combine all the programming tools collectively in a single application, along with a regular
user interface and important components such as a macro language and documentation system.
Moreover, the IDEs enable the programmers to generate and form a broad and complete
dashboard for the software development process.
The accomplishment of software development in representing the data in human readable
and comprehensible form and general, universal, simple text type came in the shape of XMLs. In
the past, it was implausible with restricted and less storage space along with computing and
calculating ability. However, in today’s time even the most sophisticated and modern software
utilize XMLs for the purpose of storing and exchanging data. So as an outcome to that, we are
witnessing amplification in mashups, where with the objective to grant more powerful solutions
the software is combined (Ray, 2003).
The processors used today are far faster than what people used previously. It would take
them a great time to complete a project, now this is a gone tale, now the projects via advanced
software can be completed in a matter of minutes, and one can right away see the results and
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 7/12
Software Engineering 5
rectify any problem that may occur. It doesn’t only save time but also provides you with correct
and instant feedback, which also results in faster solutions.
However, nothing has revolutionized our computing and business platform as Microsoft
windows. It provides a person with the utmost attention and opportunity in a single place, hence
in the future will result in astonishing advancements and improvements that will carry on driving
our information society.
The process of organizing source codes in to collapsible divisions, parts and hierarchies
by usage of XML tags, denotes the code outlining. It can crumble a more than 60-page code file
in to a one screen and spares a programmer or user from numerous clicks and never ending
scrolling.
The code sharing as well as Google has made the solution search not less than a child's
play. In older times, it would take weeks and months to search something, but it can be now
found in a matter of minutes via Google and code sharing. There were limited documentation via
which one could hope to solve the persistent problem or issue, but now with the availability of
Google and other search engines, various solutions are easily accessible (Patterson & Hennessy,
2011).
The managed codes could not make the business processing easier. In managed code you
just have to write the code, and it’s sure to work. The focal point of managed code is on business
processes not any programming language or anything else.
The description of advancements in software development would be incomplete without
mentioning the World Wide Web, which has proven to be the greatest facilitator over time. It by
far can be rated as one of the greatest software developments, which integrated the whole world.
The web has completely changed every facet and aspect of mainly every company specially the
software development company. Not only has it simplified many tasks and projects, but also
enabled many small companies to flourish in the global market. For just a minimal amount, the
software or any other entrepreneur is able to promote and sell his products and services around
the globe where the respective market exists. It entails several advantages, such as; it enhances
the global economy by improving productivity and innovation. World Wide Web besides being
advancement itself has enabled several advancements to take place in the software arena
(Gamma et al., 1994).
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 8/12
Software Engineering 6
The Future of Software Engineering
The software engineering is ever emerging and altering as if always has been.
Developments have been made in past, and they continue to happen. The progress and
advancement in software development and engineering is ceaseless. Therefore, it can easily be
said that the future of software engineering is ever-evolving and developing. It’s been a long
journey for software engineering since 1968 where it was used for the first time in a Nato
conference. The software engineering got the real charge when a prompt response was made to
the needs of custom-based systems for the applications required by governmental institutes,
defense and industrial sector.
The future of software engineering and development requires collaboration, team work,
partnership, alliance, cooperation and communicating, because the activity of development of
software engineering is performed by numerous teams at a different location, on various different
platforms. The most important and critical components, which play a significant role, in shaping
up the future of the software engineering are the costs, resources, risk, technology and quality.
Still there’s a long way for the software engineering to go (Cohn, 2009). However, the future and
successful completion of the development rests on the following factors, such as the principles,
appropriate processes, suitable procedures and methods of evaluation, certain methods, the
models on which the anticipated development will bank, proper planning, correct scheduling,
perfect manufacturing, appropriate testing, the implementation and finally learning. However,
with respect to the current trend, the requirements tend to become complex, complicated and
huge.
Therefore, the adoption of engineering field and discipline became highly imperative for
the service and betterment of society, which leads to the continuous and uninterrupted alterations
and up-gradation in the software system. Software engineering plays a vital role in the corporate
world, as well. In the future, the company who lags behind in fulfilling the requirements of the
customers will suffer and find it difficult to keep up with the ever changing and fast-paced
demands (Braude & Bernstein, 2010). For a programmer, it entails that they need to get started
with the engineering practices on an immediate basis, which may involve constant integration,
pair programming and much more. The web browser these days are center of almost every
application that is used by a common user, however, if a programmer doesn’t value the
significance of understanding of java, Css HTML etc then chances of grasping the future
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 9/12
Software Engineering 7
innovation at hand are highly unlikely. The future clearly entails a mobile device which will
encompass all our requirements, the products such as iphone and androids are highly likely to
achieve in the near future (Nanz, 2010).
Assumptions of Future of Software Engineering
Assumptions in software engineering play a significant role in further shaping and
enhancing the software and the technology that revolves around it. Not only do the assumptions
help us is fulfilling any shortcoming in our existing projects but also enable us to foresee the
possible future projects. A software product will not be considered of high quality if it doesn’t
have or meet the absolute necessities and requirements. It is generally established and
acknowledged that software product quality is very much impacted by software requirement
quality. The software engineers endeavor to meet the gap with respect to the requirements that
were left incomplete. It is done by the engineers in two ways, they either prefer to take the
feedback by the customer or incline towards making an assumption. Furthermore, an assumption
can be both explicit and unambiguous or implicit. The sole reason explicit assumptions are given
preference and high weight-age over implicit assumptions is, that are chances of the explicit
assumption to be proven valid (Rozanski & Woods, 2011).
If we take the instance of quality software requirements, then the attribute and trait of
completeness of the requirement plays a vital role. So, its highly imperative that the assumptions
made by engineers are explicit than being implicit, so that they can be validated and documented,
in later case, chances are that the related requirements laid down by engineers in the implicit
assumptions are rather incorrect. If the software engineers opt to complete the gap with their
explicit assumptions, then the probabilities of high quality requirement automatically increases
(Pilone & Miles, 2008).
For instance if we’re venturing on a new software project, our first priority will be to
recognize and comprehend the assumptions which trigger our basic project. One thing that has to
be kept in mind that the assumptions related to our fundamental and primary project act as the
foundation to numerous added and supplementary assumptions. For instance, it is not enough to
presume that idea and principle of the project is substantially understood, but we also have taken
in to account the resources required to achieve and complete the project (Myers et.al, 2011). We
need to make sure that the resources, which are required, in completion of the project are not
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 10/12
Software Engineering 8
only accessible but are bound to bring about the desired affects and results in our project, and
cannot be withdrawn unless some cost is incurred by the respective stakeholders. Furthermore,
special care needs to be taken that, the objectives; aims and assumptions of stakeholders must be
in alignment with our project. Not only that, but the availability of the information required for
determining and setting the project, estimation of resource needed and final implementation is
extremely vital. It denotes that the information adequately accurate and precise to anticipate the
project’s future, which grants us permission to believe and be convinced that the purpose of the
project is achievable.
Conclusion
We have entered in an era where the technology has become an integral part of our lives.
Since the old times, mankind is continuously struggling to develop more and more, and far better than what was previously available. The quest and endeavor to advance further in technology
will not stop, and software plays an integral role in attaining every milestone that the engineers
eye for. However, the unfilled gaps or future endeavors are mainly based on assumptions. It is
highly imperative that the assumptions made are accurate and manageable.
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 11/12
Software Engineering 9
References
Braude. E & Bernstein. M. (2010), “Software Engineering: Modern Approaches”, Wiley; 2
edition
Cohn. M, (2009), “Succeeding with Agile: Software Development Using Scrum”, Addison-
Wesley Professional; 1 edition
Cusumano. M. (2004), “The Business of Software: What Every Manager, Programmer, and
Entrepreneur Must Know to Thrive and Survive in Good Times and Bad”, Free Press
Gamma. E, Helm. R. Jhonson. R & Vlissides. J. (1994), “Design Patterns: Elements of Reusable
Object-Oriented Software” Addison-Wesley Professional; 1 edition
Harold. E & Means. W. (2004), “XML in a Nutshell, Third Edition”, O'Reilly Media; Third
Edition edition
Koch. S. (2011), “Multi-Disciplinary Advancement in Open Source Software and Processes”,
IGI Global; 1 edition
Martin. R.(2008), “Clean Code: A Handbook of Agile Software Craftsmanship”, Prentice Hall; 1
edition
Myers. G. Sandelr. C. & Badgett.T. (2011), “The Art of Software Testing”, Wiley; 3 edition
Nanz. S(2010), “The Future of Software Engineering”, Springer; 1st Edition. edition
Partridge. D.(1986), “Artificial Intelligence: Applications in the Future of Software Engineering
(Ellis Horwood series in artificial intelligence)”, Ellis Horwood Ltd , Publisher
Patterson. D & Hennessy. J ,(2011), “Computer Organization and Design, Revised Fourth
Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann
Series in Computer Architecture and Design)”, Morgan Kaufmann; 4 edition
Pfleeger. S & Atlee. J. (2009), “Software Engineering: Theory and Practice”, Prentice Hall; 4
edition
Pilone. D & Miles. R.(2008), “Head First Software Development”, O'Reilly Media; 1 editionPressman. R. (2009), “Software Engineering: A Practitioner's Approach”, McGraw-Hill
Science/Engineering/Math; 7 edition
Ray. E.(2003), “Learning XML, Second Edition”, O'Reilly Media; Second Edition edition
Rozanski. N & Woods. E, (2011), “Software Systems Architecture: Working With Stakeholders
Using Viewpoints and Perspectives” Addison-Wesley Professional; 2 edition
8/3/2019 Future of Software Engineering
http://slidepdf.com/reader/full/future-of-software-engineering 12/12
Software Engineering 10
Rucker. R. (1987), “Software”, Eos
Schulmeyer. G. (2007), “Handbook of Software Quality Assurance”, Artech House Publishers; 4
edition
Sommerville. I. (2010), “Software Engineering (9th Edition)”, Addison Wesley; 9 edition
Sommerville .I.(2006), “Software Engineering: (Update) (8th Edition)”, Addison Wesley; 8
edition