future of software engineering

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 

Upload: blanca-iris-davila-pabon

Post on 06-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Future of Software Engineering

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 

Page 2: Future of Software Engineering

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

Page 3: Future of Software Engineering

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,

Page 4: Future of Software Engineering

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

Page 5: Future of Software Engineering

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 

Page 6: Future of Software Engineering

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

Page 7: Future of Software Engineering

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).

Page 8: Future of Software Engineering

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

Page 9: Future of Software Engineering

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

Page 10: Future of Software Engineering

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.

Page 11: Future of Software Engineering

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

Page 12: Future of Software Engineering

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