Index
Introduction of Software Engineering will be introduced in the fourth decade of its existence and suffering of the many strengths and weaknesses. Engineering Software is approaching middle age with many successes behind him, but with significant work to be done. Today is recognized as a legitimate discipline, worthy of having a serious, careful study and a great and tumultuous debate. In industry the software engineer has replaced the programmer as preferred job title. The software process models, software engineering methods and tools have been successfully adopted in the broad spectrum of industrial applications. Managers and users recognize the need for a more disciplined approach to software.
The search for techniques that improve quality and cuts the costs of computer-based solutions has been one of the objectives pursued since the beginning of computing. A mid 60's, the creation of a software product became a harrowing task, it was therefore necessary to introduce a series of tools and procedures to facilitate the one hand, the work of creating new software and on the other, understanding and handling. These were the beginnings of Software Engineering. Over time, the evolution of these methods have led us to recognize the software engineering as a true discipline, derived from a serious and careful study.
Evolution Software
During the early years of the era of the computer, the software was viewed as an addition. Computer programming was a "homespun art" for which there were few systematic methods. Software development was done virtually no planning, until the plans began cracking his head and running costs. Developers tried to make things right, and a heroic effort, often out successfully. The software is custom designed for each application and had a relatively small distribution.
Most software was developed and was used by the same person or organization. The same person I wrote it, running and if that fails, then purified. Because of this custom software environment, the design was an implicit process, held in someone's mind, and usually there was no documentation.
The second era in the evolution of computer systems ranging from the mid-sixties to late seventies. Multiprogramming and multiuser systems introduced new concepts of human - machine. Interactive techniques opened a new world of applications and new levels of sophistication of hardware and software. Real-time systems could collect, analyze and transform data from multiple sources, controlling processes and producing output in milliseconds rather than minutes. Advances in online storage devices led to the first generation of systems management databases.
The second era was also marked by the establishment of software as a product and the advent of "software houses." Employers in industry, government and college were preparing to "develop the best software package and win a lot of money. As
growing number of computer systems, began to expand the libraries of computer software. The houses developed projects that are producing tens programs of thousands of source sentence. All these programs, all these source statements had to be corrected when errors were detected, modified when changing user requirements or adapted to new hardware devices that were acquired. These activities are collectively called software maintenance.
The third era in the evolution of computer systems began in the mid-seventies and continued more than a decade. The distributed system, multiple computers, each running concurrent tasks and communicating with another, significantly increased the complexity of computer systems. Local area networks and global area, the digital communications and high bandwidth access to the growing demand for "instant" to the data, were a strong pressure on software developers.
The conclusion of the third era is characterized by the advent and wide use of microprocessors. The microprocessor has a large group of smart products, from automobiles to microwave ovens, from industrial robots diagnostic equipment serum.
The fourth was the development of computer systems away from individual computers and computer programs, addressing the collective impact of computers and software. Powerful personal machines controlled by sophisticated operating systems, global and local networks, accompanied by advanced software applications have become the norm.
software industry and is home to the world economy. The fourth generation techniques for software development are changing the way software community builds software. Object-oriented technologies are moving rapidly approaches conventional software development in many areas of applications.
However, a set of software-related problems have persisted through the evolution of computer-based systems, and these problems continue to rise.
software advances continue to outpace our ability to build software to achieve the potential of the hardware.
Our ability to build new programs can not go the same pace as demand for new programs, nor can we build programs quickly enough to meet market needs and business.
The widespread use of computers has made society increasingly dependent on reliable operation of the software. When software fails, can occur and cause huge economic damage human suffering.
fight to build computer software that is reliable and high quality.
Our ability to support and enhance existing programs is threatened by poor design and inadequate resources.
In response to these problems, the practices of Software Engineering are being adopted throughout the industry.
What is Software Engineering?
Software Engineering is a discipline or area of \u200b\u200bInformatics or Computer Science, which offers methods and techniques for developing and maintaining quality software that solve problems of all kinds. Today it is increasingly common for consideration by the Software Engineering as a new area of \u200b\u200bEngineering, and Software Engineer begins to be a profession established in the international workplace, with rights, duties and responsibilities to fulfill, along with one, and recognized social status in the business world, and fortunately, for those people with bright future.
software engineering deals with very diverse areas of Information and Computer Science, such as compiler construction, operating systems and development of Intranet / Internet, addressing all phases of development life cycle of any information systems and applicable to a myriad of areas such as business, scientific research, medicine, manufacturing, logistics, banking, traffic control, meteorology, the legal world, the network of networks, Internet, Intranet and Extranet networks, etc.
Definition of Software Engineering
The engineering term is defined in the Dictionary of the English Royal Academy of Language as: "1. The knowledge and techniques to apply scientific knowledge to the use of the material and energy sources. 2. Profession and exercise of the Engineer "and the term engineer is defined as a person who professes or is engaged in the engineering. Similarly the Royal Academy of Exact, Physical and Natural Sciences of Spain Engineering defines the term as: "A set technical knowledge and their application to the rational use of materials and natural resources, through inventions, facilities or other accomplishments beneficial to man. "
Clearly, if the Software Engineering is a new engineering, it seems logical to collect the features mentioned in the above definitions. However neither DRAE (Dictionary of the English Royal Academy of Language), and the Royal English Academy of Sciences have yet to include the term in their latest editions, and consequently we will use for defining more precisely some of the most reputable authors in due course began to use the term or in the definitions given by international organizations such as prestigious professional IEEE or ACM, which we have selected the following definitions of Software Engineering.
Definition 1:
Software Engineering is the study of the principles and methodologies for developing and maintaining software systems [Zelkovits, 1978].
Definition 2:
Software Engineering is the practical application of scientific knowledge in the design and construction of computer programs and documentation required to develop, operate (run) and keep them [Boehm, 1976].
Definition 3:
Engineering Software is the establishment of the principles and methods of engineering software to obtain cost-effective manner that is reliable and work on real machines [Bauer, 1972].
Definition 4:
The application of a systematic, disciplined and quantifiable development, operation (performance) and software maintenance, ie the application of engineering to software [IEEE 1993].
An industrial perspective
In the early days of computing, computer-based systems were developed using standard hardware-oriented management. Project managers centraban en el hardware, debido a que era el factor principal del presupuesto en el desarrollo del sistema. Para controlar los costes del hardware, los gestores instituyeron controles formales y estándares técnicos. Exigían un análisis y diseño completo antes de que algo se construyera. Median el proceso para determinar donde podían hacerse mejoras. Dicho sencillamente, aplicaban los controles, los métodos y las herramientas que reconocemos como Ingeniería del Hardware. Desgraciadamente, el software no era normalmente mas que un añadido.
En los primeros días, la programación se veía como un arte. Existían pocos métodos formales y pocas personas los usaban.
Hoy, la distribución costs in the development of computer systems has changed dramatically. Software instead of hardware, is usually the main cost element.
In past decades many executives and technical trainees had made the following questions:
Why take so long to finish the programs?
Why is it so high the cost?
Why can not we find all the bugs before releasing the software to our customers? Why
difficult for us to note the progress as it develops the software?
These and many other issues are a manifestation of the software and of how it develops, a problem that has led to the adoption of Software Engineering as a practice. Competitiveness
Software
For many years, software developers employed by large and small companies were the only ones in this field. As all programs are custom-built, the developers of the domestic software dictate the cost, planning and quality. Today, all this has changed.
software is now an extremely competitive business. The internally built software is available now in stores. Many companies that once paid for legions of programmers create specialized applications now offer a third lot of software work.
Software Software Description A textbook could take the following form: the software is (1) instructions that when executed provide desired function and performance, (2) data structures that allow programs to adequately manipulate information, and (3) documents describing the operation and use of software.
Software Features
To understand what the software (and consequently the Software Engineering), it is important to examine the characteristics of software that differentiate it from other things that men can build.
The software is a system that is logical rather than physical. Therefore the software has characteristics significantly different from the hardware:
The software is developed, not manufactured in the classical sense. Although there are similarities between the development of software and hardware construction, the two activities are fundamentally different. In both activities, the quality is acquired through good design, but the construction phase of the hardware can introduce quality problems that do not exist (or are easily correctable) in the software. Both activities depend on the people, but the relationship between people working and the work is completely different for the software. Both activities require the construction of a product, but the methods are different.
costs are in software engineering. This means that software projects can not be managed as if they were manufacturing projects.
The software does not spoil. The software is not susceptible to the ills of the environment that make the hardware is damaged. Another aspect of this decline illustrates the difference between hardware and software. When a component breaks down, is replaced by a spare. No replacement part for the software. Each software failure indicates an error in the design or the process by which the design is translated to executable machine code. Therefore, software maintenance is considerably more complex than the hardware maintenance.
Most software is made to measure, instead of assembling existing components. No software component catalogs. You can buy software already developed, but only as a complete unit, not as components that can be reassembled into new programs.
important for a software component quality. The component should be designed
Software Components Reuse is a feature and implemented so you can return to be reused in many different programs.
software components are built using a programming language that has a limited vocabulary, grammar rules explicitly defined and well-formed syntax and semantics.
Software Applications
The software can be applied in any situation in which previously defined a specific set of procedural steps (ie, an algorithm). (Notable exceptions to this rule is the software expert systems and neural networks).
The following areas of software indicate the breadth of potential applications:
Software Systems: software systems is a set of programs that have been posted to serve other programs. The area of \u200b\u200bsoftware systems characterized by a strong interaction with the computer hardware, a great use for multiple users, a concurrent operation that requires planning, resource sharing and sophisticated process management, complex data structures and multiple external interfaces. (Eg, compilers, editors, utilities, certain operating system components, utilities, management of peripherals, telecommunications processors.)
Real Time Software: software measuring / analyzes / controls real-world events as they occur is called real time. Among the elements of real-time software include: a data acquisition component that collects and formats the information received from the external environment, an analysis component that transforms the information received from the external environment, an analysis component that transforms information as required by the application, a control component / output responsive to the external environment and a monitoring component that coordinates all other components, so you can keep real-time response.
Management Software: information processing trade is the largest application areas of software. Discrete systems (eg payroll, accounts of assets / debts, inventories, etc..), Have evolved into software management information systems (GIS), which accesses one or more large databases containing commercial information. The applications in this area restructure existing data to facilitate business operations or management decisions. In addition to the conventional tasks of data processing, software applications management also perform interactive calculations (eg, transaction processing in retail outlets).
Software Engineering , and Scientist: Software Engineering and Science is characterized by the management algorithms of numbers. Applications range from astronomy to volcanology, from the analysis of automotive pressure to the orbital dynamics of space launchers and from molecular biology to automated manufacturing. Embedded Software
: Embedded software resides in read-only memory and is used to control products and systems for industrial and consumer markets. The embedded software can perform limited functions and odd (eg: the control of the keys of a microwave oven) or provide a significant role and control capabilities (eg: digital functions on a car such as fuel control, indications on the dashboard, brake systems, etc.)..
Personal Computer Software: The market for personal computer software has sprouted in the past decade. Word processing, spreadsheets, computer graphics, multimedia, entertainment, management of databases, business applications and personal financial and networks or access to external databases are some of the hundreds of applications.
Artificial Intelligence Software: software artificial intelligence (AI) uses non-numerical algorithms to solve complex problems for which the calculation is not appropriate or direct analysis. The most active area of \u200b\u200bAI is expert systems, also called knowledge-based systems.
Today the software plays a dual role. It is a product and at the same time, the vehicle for delivery of a product. As a result, delivers the computing power of computer hardware. If you live in or operate a cell phone into a central computer, the software is a processor of information, producing, managing, acquiring, modifying, displaying or transmitting information that can be as simple as a single bit or as complex as a multimedia simulation. As a vehicle used to deliver the product, the software acts as the basis for control of the computer (operating systems), communication of information (networks), and the creation and control of other programs (software tools and environments).
computer software, has become the alma mater. Is the machine that leads to business decisions. Serves as the foundation of modern scientific research and engineering problem-solving. Is the key factor that differentiates modern products and services. Is embedded in systems of all kinds: transportation, medical, telecommunications, military, industrial processes, entertainment, office products, etc. The software will take us in hand advances in everything from elementary education to genetic engineering.
Evolution of Software Engineering
Initially computer programming was an art that did not have systematic methods in which to build for the realization of software products. Were carried out without any planning. Evolution and Prospects of Software Engineering Subsequently, from mid 60 to late 70's was characterized by the development of software as a product that was developed for general distribution. In this era gave rise to what is known as software maintenance that occurs when changing user requirements and requires the modification of software. The effort required for this maintenance was in most cases so large that it was impossible to maintain it. Then comes a stage that is characterized by the appearance of a number of techniques such as structured programming and design methodologies that address the above problems. At the end of this stage appear CASE tools, although as we can imagine were very rudimentary. Conclusion
software has become the key element the evolution of systems and software products. In the past four decades, software has evolved from a specialized problem solving and data analysis tool, to be an industry in itself. But the early culture and history of programming has created a set of problems that still persist. The software has become a limiting factor for the development of computer systems. The software consists of programs, data and documents. Each of these elements form a configuration that is created as part of the Software Engineering. The intent of the Software Engineering is to provide a framework for building software with higher quality.
0 comments:
Post a Comment