Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Definiciones en la Ingeniería de
Software
Universidad Tecnologica de Hermosillo
Tecnologias de la Informacion y la Comunicación
Juan Jose Sanchez Garcia
15 de enero de 2013
El presente trabajo contempla una breve pero informativa
introducción al tema de la Ingenieria de Software.
Este trabajo cubre varios temas de importancia para el alumno
de TICS pues presenta conceptos importantes de la Ingenieria
de Software.
Entre los temas que están en este trabajo se encuentra
W3C,Refactorizacion de Software,Sistema de computo,etc.
Es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento de
software, y el estudio de estos enfoques, es decir, la
aplicación de la ingeniería al software.
El concepto de ingeniería del software surgió en 1968, tras una
conferencia en Garmisch (Alemania) que tuvo como objetivo
resolver los problemas de la crisis del software. El término
crisis del software se usó desde finales de 1960 hasta mediados
de 1980 para describir los frecuentes problemas que aparecían
durante el proceso de desarrollo de nuevo software.
Tras la aparición de nuevo hardware basado en circuitos
integrados, comenzaron a desarrollarse sistemas y aplicaciones
mucho más complejos que hasta entonces no era posible
construir puesto que el hardware disponible no lo permitía.
Estos nuevos proyectos de desarrollo de software, en la mayoría
de ocasiones, no se terminaban a tiempo, lo cual también
provocaba que el presupuesto final del software excediera de
aquel que se había pactado. Algunos de estos proyectos eran tan
críticos (sistemas de control de aeropuertos, equipos para
medicina, etc.) que sus implicaciones iban más allá de las
pérdidas millonarias que causaban
En la ingeniería de software se utilizan los métodos, las
herramientas y los procedimientos necesarios para que el
software que se vaya formando tenga una buena calidad y que
los errores que se puedan cometer sean mínimos. Hay un factor
que se toma en cuenta para que el software funcione
adecuadamente y tenga la calidad requerida.
Las organizaciones se ven obligadas a disminuir el costo y el
tiempo tanto para el desarrollo de su producción, como para el
funcionamiento de la organización como tal, ello lleva a la idea
de generar crecimiento arrancando por la problemática de
corregir falencias y automatizar procesos sin dejar de lado el
hecho de que la solución definitiva no solo debe ser capaz de
realizar la labor que se solicita de la forma más eficiente y eficaz
sino también de permitir que mute o cambie de acuerdo a la
exigencia del mercado, con conocimiento claro que esta tiene
un tiempo de vida limitado
En la construcción y desarrollo de proyectos se aplican métodos
y técnicas para resolver los problemas, la informática aporta
herramientas y procedimientos sobre los que se apoya la
ingeniería de software.
mejorar la calidad de los productos de software
aumentar la productividad y trabajo de los ingenieros
del software.
Facilitar el control del proceso de desarrollo de
software.
Suministrar a los desarrolladores las bases para
construir software de alta calidad en una forma eficiente.
Definir una disciplina que garantice la producción y el
mantenimiento de los productos software desarrollados en el
plazo fijado y dentro del costo estimado.
De acuerdo a la forma de representación física de la
información: Hace referencia a la forma de recibir y/o procesar
internamente la información surgiendo así 3 tipos de estos
sistemas:
Sistemas Analógicos
Sistemas Digitales
Sistemas Hibridos
Basados en la lectura de magnitudes físicas que pueden tomar
un valor cualquiera dentro de un rango prefijado. Estas
representan los números mediante una cantidad física, es
decir, asignan valores numéricos por medio de la medición
física de una propiedad real, como la longitud de un objeto, el
Angulo entre 2 líneas, o la cantidad de voltaje que pasa a través
de un punto en un circuito eléctrico.
Las computadoras digitales representan los datos o unidades
separadas. La forma más simple de computadora digital es
contar con los dedos. A diferencia de la computadora
analógica, limitada por la precisión de las mediciones que
puedan realizarse, la computadora digital puede representar
correctamente los datos con tantas posiciones y números que se
requieran.
Estos sistemas toman valores tanto digitales como analógicos.
Generalmente se usan en problemas especiales en los que los
datos de entrada provienen de mediciones convertidas a dígitos
y son procesados por una computadora por ejemplo.
Es la computadora que puede utilizarse para distintas clases de
aplicaciones, es decir que puede soportar el trabajo
concurrente de diferentes aplicaciones de usuario y/o sistema.
Es la computadora que únicamente puede utilizarse para una
o grupo de aplicaciones determinado a una aplicación muy
concreta, este tipo de computadoras son conocidas
habitualmente como embebidas pues se encuentra incorporadas
a otros a otros sistemas o equipos.
De Acuerdo a la potencia
Hace referencia a la configuración que presentan las
computadoras que les permite un mejor desempeño , esta
clasificación considera:
Supercomputadora
Microcomputadora
Servidores de red
Estación de trabajo
Computadora Personal
Computadoras móvil
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.
Es un referente en Ingeniería de Software por realizar el
desarrollo del modelo SW-CMM (1991) que ha sido el punto
de arranque de todos los que han ido formando parte del
modelo que ha desarrollado sobre el concepto de capacidad y
madurez, hasta el actual CMMI.
El World Wide Web Consortium, abreviado W3C, es un
consorcio internacional que produce recomendaciones para la
WorldWide Web.
Está dirigida por Tim Berners-Lee, el creador original de URL
(Uniform Resource Locator, Localizador Uniforme de
Recursos), HTTP (HyperTextTransfer 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.
La ingeniería de software dispone de varios modelos, paradigmas y
filosofías de desarrollo, en los cuales se apoya para la construcción
del software, entre ellos se puede citar:
Modelo en cascada o Clásico (modelo tradicional)
Modelo de prototipos
Modelo en espiral
Desarrollo por etapas
Desarrollo iterativo y creciente o Iterativo e Incremental
RAD (Rapid Application Development)
Desarrollo concurrente
Proceso Unificado
RUP (Proceso Unificado de Rational)
El ciclo de vida básico de un software consta de los siguientes
procedimientos:
• Definición de objetivos: definir el resultado del proyecto y su
papel en la estrategia global.
• Análisis de los requisitos y su viabilidad: recopilar, examinar y
formular los requisitos del cliente y examinar cualquier restricción que se
pueda aplicar.
• Diseño general: requisitos generales de la arquitectura de la
aplicación.
• Diseño en detalle: definición precisa de cada subconjunto de la
aplicación.
• Programación (programación e implementación): es la
implementación de un lenguaje de programación para crear las funciones
definidas durante la etapa de diseño.
• Prueba de unidad: prueba individual de cada subconjunto de la
aplicación para garantizar que se implementaron de acuerdo con las
especificaciones.
• Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba de
integración que está cuidadosamente documentada.
• Prueba beta (o validación), para garantizar que el software
cumple con las especificaciones originales.
• Documentación: sirve para documentar información necesaria
para los usuarios del software y para desarrollos futuros.
• Implementación
• Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del
software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo
de vida de una aplicación dependen del tipo de modelo de ciclo de
vida acordado entre el cliente y el equipo de desarrolladores.
• Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba de
integración que está cuidadosamente documentada.
• Prueba beta (o validación), para garantizar que el software
cumple con las especificaciones originales.
• Documentación: sirve para documentar información necesaria
para los usuarios del software y para desarrollos futuros.
• Implementación
• Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del
software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo
de vida de una aplicación dependen del tipo de modelo de ciclo de vida
acordado entre el cliente y el equipo de desarrolladores.
En los inicios de la informática, la programación se consideraba un
arte y se desarrollaba como tal, debido a la dificultad que entrañaba
para la mayoría de las personas, pero con el tiempo se han ido
descubriendo y desarrollando formas y guías generales, con base a las
cuales se puedan resolver los problemas. A estas, se les ha
denominado Arquitectura de Software, porque, a semejanza de los
planos de un edificio o construcción, estas indican la estructura,
funcionamiento e interacción entre las partes del software. En el
libro "An introduction to Software Architecture", David Garlan y
Mary Shaw definen que la Arquitectura es un nivel de diseño que
hace foco en aspectos "más allá de los algoritmos y estructuras de
datos de la computación; el diseño y especificación de la estructura
global del sistema es un nuevo tipo de problema".
Conclusion
La ingeniería de software es un tema muy importante dentro
del proceso de aprendizaje de un alumno.
La ingeniería de software permite a los programadores la
creación de mejor software mediante el uso de técnicas y
metodologías para garantizar la correcta funcionalidad de
este, además de poder formalizar el código fuente para facilitar
la reutilización del software.
La ingeniería de software ha sido uno de los pilares mas grandes
para el crecimiento de la industria del software a lo largo de los
años