2. INTRODUCCIÓN
En el presente trabajo se define el concepto de Ingeniería de software así
como sus inicios, la importancia y la utilidad que tiene. También se
indican las clasificaciones de los tipos de aplicaciones de cómputo. Se
realiza una breve descripción del organismo encargado de evaluación y
mejora del software como Software Engineering Institute (SEI) y del
consorcio internacional que produce recomendaciones para la World
Wide Web (W3C).
Se enlistan algunos de los modelos y filosofías de desarrollo de software,
también se resume el proceso para el desarrollo de software conocido
como el ciclo de vida del software. Por último se define el concepto de
arquitectura del software.
3. Definición
La ingeniería de software es una disciplina formada por un conjunto de
métodos, herramientas y técnicas que se utilizan en el desarrollo de los
programas informáticos (software).
Esta disciplina trasciende la actividad de programación, que es el pilar
fundamental a la hora de crear una aplicación. El ingeniero de software
se encarga de toda la gestión del proyecto para que éste se pueda
desarrollar en un plazo determinado y con el presupuesto previsto.
La ingeniería de software, por lo tanto, incluye el análisis previo de la
situación, el diseño del proyecto, el desarrollo del software, las pruebas
necesarias para confirmar su correcto funcionamiento y la
implementación del sistema.
4. Inicios
Desde sus inicios en la década de 1940, escribir software ha evolucionado
hasta convertirse en una profesión que se ocupa de cómo crear software y
maximizar su calidad. La calidad puede referirse a cuán mantenenible es el
software, su estabilidad, velocidad, usabilidad, comprobabilidad, legibilidad,
tamaño, costo, seguridad y número de fallas o "bugs", así como, entre muchos
otros atributos, a cualidades menos medibles como elegancia, concisión y
satisfacción del cliente. La mejor manera de crear software de alta calidad es un
problema separado y controvertido cubriendo el diseño de software, principios
para escribir código, llamados "mejores prácticas", así como cuestiones más
amplias de gestión como tamaño óptimo del equipo de trabajo, el proceso, la
mejor manera de entregar el software a tiempo y tan rápidamente como sea
posible, la "cultura" del lugar de trabajo, prácticas de contratación y así
sucesivamente. Todo esto cae bajo la rúbrica general de ingeniería de software.
5. Inicios
El término Ingeniería del software apareció por primera vez en la
década de 1950 y principios de los años 1960. Los programadores
siempre habían sabido sobre ingenieros civiles, eléctricos y de
computadores y debatían qué podría significar la ingeniería para
el software.
El Comité de ciencia de la OTAN patrocinó dos conferencias
sobre ingeniería del software en 1968 (Garmisch, Alemania —
ver informe de la Conferencia) y en 1969, que dio al campo su
impulso inicial. Muchos creen que estas conferencias marcaron
el inicio oficial de la profesión de la Ingeniería de software.
6. Importancia
La ingeniería de software se centra en los métodos, herramientas y
procedimientos para establecer un control en el desarrollo del software, lo
que permite construir software de calidad de forma productiva y evitando
posibles errores humanos. De hecho, la predictibilidad de los resultados es
uno de los factores que garantizan la calidad de los sistemas. Un mercado
emergente en nuestro país, que refleja cómo el personal directivo de las
empresas cada vez se preocupa más de la repercusión de los procesos de
ingeniería de software en sus objetivos de negocio.
Automatizar procesos en el desarrollo del software supone mejorar
las aplicaciones, disminuir las posibles incidencias en el mismo, lo que, para
las empresas va a suponer, optimizar las funcionalidades y maximizar el
rendimiento de sus productos software y de su cartera de servicios. Si bien
durante muchos años, el outsourcing de pruebas se percibió como un nicho
hiper-especializado ocupado por pocos actores, en la actualidad cada vez
más compañías y asociaciones, como la Escuela Técnica Superior de
Ingenieros Industriales, Gesein o ATI (Asociación de Técnicos de
Informática), están muy involucrados en esta tecnología.
7. Utilidad
La
Ingeniería de Software
es muy útil
para detectar problemas en el Desarrollo de
Software; sea por Falta de estándares, Por No
presentar todas las funcionalidades requeridas
por los Usuarios o por Requerir recursos
excesivos para su ejecución.
8. Clasificación de los tipos de aplicaciones
de cómputo
El software para computadoras puede clasificarse en general en dos clases: los
programas de sistema, que controlan la operación de la computadora en sí y
los programas de aplicación, los cuales resuelven problemas para sus usuarios.
El programa fundamental de todos los programas de sistema es el sistema
operativo (SO), que controla todos los recursos de la computadora y
proporciona la base sobre la cual pueden escribirse los programas de
aplicación. En conclusión, el software se divide en:
1.- SOFTWARE BÁSICO O DE SISTEMA.
• Conjunto de programas imprescindibles para el funcionamiento del
sistema.
2.- SOFTWARE DE APLICACIÓN.
• Conjunto de programas que van a ser utilizados por el usuario para realizar
una determinada tarea.
9. Clasificación de los tipos de aplicaciones
de cómputo
Dentro de los programas de aplicación, puede ser útil una distinción
entre aplicaciones verticales, de finalidad específica para un tipo muy
delimitado de usuarios (médicos, abogados, arquitectos…), y
aplicaciones horizontales, de utilidad para una amplísima gama de
usuarios de cualquier tipo.
•
•
•
•
•
•
•
Procesadores de texto. (Bloc de Notas)
Editores. (PhotoShop para el Diseño Gráfico)
Hojas de Cálculo. (MS Excel)
Sistemas gestores de bases de datos. (MySQL)
Programas de comunicaciones. ( Messenger)
Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
Programas de diseño asistido por computador. (AutoCAD)
10. Software Engineering Institute (SEI)
Software Engineering Institute (SEI) es un instituto
federal estadounidense de investigación y desarrollo, fundado por
Congreso de los Estados Unidos en 1984 para desarrollar modelos
de evaluación y mejora en el desarrollo de software, que dieran
respuesta a los problemas que generaba al ejército
estadounidense la programación e integración de los sub-sistemas
de software en la construcción de complejos sistemas militares.
Financiado por el Departamento de Defensa de los Estados
Unidos y administrado por la Universidad Carnegie Mellon.
11. W3C
El World Wide Web Consortium, abreviado W3C, es un
consorcio internacional que produce recomendaciones para la
World Wide Web.
Está dirigida por Tim Berners-Lee, el creador original de URL
(Uniform Resource Locator, Localizador Uniforme de Recursos),
HTTP (HyperText Transfer Protocol, Protocolo de Transferencia
de HiperTexto) y HTML (Hyper Text Markup Language,Lenguaje
de Marcado de HiperTexto) que son las principales tecnologías
sobre las que se basa la Web.
12. Modelos y filosofías de desarrollo de software
Cada metodología de desarrollo de software tiene más o menos su
propio enfoque para el desarrollo de software. Estos son los enfoques
más generales, que se desarrollan en varias metodologías específicas.
Estos enfoques son los siguientes:
•
•
•
•
•
•
•
•
•
Modelo en cascada: Framework lineal.
Prototipado: Framework iterativo.
Incremental: Combinación de framework lineal e iterativo.
Espiral: Combinación de framework lineal e iterativo.
RAD: Rapid Application Development, framework iterativo.
Desarrollo por etapas
Desarrollo concurrente
Proceso Unificado
RUP(Proceso Unificado Racional)
13. Ciclo de vida del desarrollo de software
(proceso para el desarrollo de software)
Un proceso para el desarrollo de software, también
denominado ciclo de vida del desarrollo de software es una
estructura aplicada al desarrollo de un producto de software. Hay
varios modelos a seguir para el establecimiento de un proceso para
el desarrollo de software, cada uno de los cuales describe un
enfoque diferente para diferentes actividades que tienen lugar
durante el proceso. Algunos autores consideran un modelo de
ciclo de vida un término más general que un determinado proceso
para el desarrollo de software. Por ejemplo, hay varios procesos de
desarrollo de software específicos que se ajustan a un modelo de
ciclo de vida de espiral.
14. Arquitectura de software
La arquitectura de software es un conjunto de patrones
que proporcionan un marco de referencia necesario
para guiar la construcción de un software, permitiendo
a los programadores, analistas y todo el conjunto de
desarrolladores del software compartir una misma línea
de trabajo y cubrir todos los objetivos y restricciones de
la aplicación. Es considerada el nivel más alto en el
diseño de la arquitectura de un sistema puesto que
establecen la estructura, funcionamiento e interacción
entre las partes del software.
15. CONCLUSIONES
Al terminar el presente trabajo acerca de la ingeniería de software
puedo concluir la gran importancia que tiene para el desarrollo de
software de calidad en la actualidad, ya que el proceso para crear un
software debe de seguir ciertas técnicas de acuerdo al modelo de
desarrollo que más convenga a determinado proyecto y poder
conseguir un resultado funcional y de gran calidad, el cual no será
desechado por no cumplir los requerimientos para lo que había sido
creada cierta aplicación.