Please use this identifier to cite or link to this item: http://hdl.handle.net/10609/221
|Title:||Software engineering in free software environments|
|Author:||Aycart Pérez, David|
Gibert Ginestà, Marc
Hernández Matías, Martín
|Director:||Mas i Hernàndez, Jordi|
Megías Jiménez, David
|Publisher:||Universitat Oberta de Catalunya|
|Abstract:||The term "software engineering" began to be used towards the end of the 1960s to refer to the area of knowledge being developed around the problems with the software of the time. During that period, the spectacular growth in demand for increasingly complex computer systems, associated with an immature computing sector (connected entirely to electronics) and with a lack of methods and resources, led to what is known as the "software crisis" (a phrase coined by Edsger Dijkstra) from 1965 to 1985. During this time, many important projects far exceeded their budgets and estimated deadlines, some of which were so critical (airport control systems, medical equipment, etc.) that their implications extended far beyond the million-pound losses that they generated. The software crisis ended not so much because of improvements in project management but partly because it is unthinkable to be in a crisis for more than twenty years and partly because progress was being made in design processes and methodologies. Thus, between 1985 and the present, tools, methodologies and technologies emerged that claimed to be the definitive solution to the problem of planning, cost prevision and quality assurance in software development. Of these tools, structured programming, object-oriented programming, aspect-oriented programming, CASE tools, ADA programming language, documentation, standards, CORBA, web services, and UML language, among others, were all acclaimed at the time as being the solution to software engineering problems, the so-called "silver bullet". And each year, new ideas and initiatives emerge with this aim. Naturally, some people will have laid the blame on programmers for their undisciplined or anarchic developments. Ignorance and the occasional unusual case merged to create a false image of the programmer that still exists even today. Although they are often the "sufferers" of some of these methodologies or their poor implementation, it is logical that, as an active participant of the project, more recent methodologies are beginning to take them into account. Alongside the development of tools, efforts have been made to incorporate formal methods into software development, based on the argument that if developments are formally tested to do what is required, the software industry will be as predictable as other branches of engineering. Besides Métrica v3 (launched by the Secretariat of the Higher Computing Council) and extreme programming, which we will see in more detail later on, there are many other methodologies and processes, such as RUP (Rational Unified Process, developed by Rational Software Corp., now a division of IBM), SSADM (Structured Systems Analysis and Design Methodology, developed by the British Government) or the method of evaluating the development capacity of equipment or companies known as CMMI (Capability Maturity Model Integration). Cost prediction methods like COCOMO and function points are also often used. There have been many recent initiatives in this field and they extend to the entire software process. The more academically-minded favour a structure of components, services and object-oriented or aspect-oriented in implementation, but the development of tools to help us represent and share these designs is just as relevant, as is appreciating the effort and value added to the finished product. It is truly a fascinating area in the sense that seminars, leading consultants and small laboratories are all innovating day in, day out to come up with good ideas.|
|Appears in Collections:||UOC Learning resources|
Recursos Educativos UOC Abiertos
Files in This Item:
There are no files associated with this item.
Items in repository are protected by copyright, with all rights reserved, unless otherwise indicated.