Future of Software Engineering

Published on May 2016 | Categories: Documents | Downloads: 24 | Comments: 0 | Views: 233
of 12
Download PDF   Embed   Report

Comments

Content

Running Head: THE FUTURE OF SOFTWARE ENGINEERING

The Future of Software Engineering BLANCA I. DAVILA-PABON GRANTHAM UNIVERSITY Instructor Bernard Lichvar 2/2/2012

Software Engineering Table of Contents

i

Abstract..................................................Error: Reference source not found
Software ................................................................................................2 Software Engineering ...............................................................................2

Software Engineering 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

1

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,

Software Engineering 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

2

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

Software Engineering 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

3

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

Software Engineering 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

4

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

Software Engineering 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

5

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

Software Engineering 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

6

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

Software Engineering 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

7

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

Software Engineering 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,

8

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.

Software Engineering References

9

Braude. E & Bernstein. M. (2010), “Software Engineering: Modern Approaches”, Wiley; 2 edition Cohn. M, (2009), “Succeeding with Agile: Software Development Using Scrum”, AddisonWesley 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 edition Pressman. 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

Software Engineering Rucker. R. (1987), “Software”, Eos

10

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

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close