SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
S.E.P.                                D.G.E.S.T.                            S.E.I.T.




                                                                     ASIGNATURA:

                                                       FUNDAMENTOS DE SISTEMAS DE INFORMACION
                                                                        TRABAJO
IN




                                                  EC




                                                                        UNIDAD 2
 ST




                                                 EP
     IT




                                            XT




          TO
      U




               TE                           TU
                  C                     E
                      N OL O GI C O D

                                                                       ALUMNOS

                                                                Sáenz Escobedo Eric Adrian
                                                                CABRERA LÓPEZ ADRIAN
                                                                DIONICIO FELIPE RODRIGO
                                                                DÍAZ MORA LUIS CARLOS
                                                             MANZANO CRISANTO VALENTÍN

                                                                VELASCO OJEDA SERGIO


                                                                     CATEDRÁTICO

                                                         L.I. MARIA DE LOS ANGELES MARTINEZ M.




                                                         TUXTEPEC OAXACA, SEPTIEMBRE DE 2012
FINALIDAD.


Como finalidad sobre el trabajo del enfoque en la ingeniería dentro de
la informática damos a conocer este trabajo para explicar
detalladamente sus puntos más importantes y para tener un mayor
conocimiento sobre la informática.

La ingeniería informática es la profesión que consiste en la aplicación
de los fundamentos de la ciencia de la computación, la electrónica y la
ingeniería de software, para el desarrollo de soluciones integrales de
cómputo y comunicaciones, capaces de procesar información de
manera automática. Por lo que se refiere al soporte físico.
¿QUÉ SON LOS SISTEMAS INFORMÁTICOS?


Un sistema informático utiliza ordenadores para almacenar datos,
procesarlos y ponerlos a disposición de quien se considere oportuno.
Un sistema puede ser tan simple como: una persona tiene un
microordenador y le introduce datos tan elementales, como por
ejemplo las ventas diarias de una pequeña empresa, se produce una
entrada por cada venta y en ella se declara el elemento vendido, por
ejemplo un yogur, la cantidad de elementos vendidos, por ejemplo
cuatro y el precio de venta unitario, por ejemplo 0.15 euros. Cada
entrada se almacena como un registro de un fichero en el disco. Al
finalizar el día se puede obtener un informe de las ventas y las
tendencias. El usuario puede utilizar esta información para la gestión
de almacén o planificar campañas publicitarias. Habitualmente una
empresa tiene más de un ordenador, por ejemplo uno para la gestión
de ventas y otro para la contabilidad y procesos asociados. Sin
embargo la mayor parte de los sistemas son más complejos.

Los sistemas de información tienen muchas cosas en común, la
mayoría de ellos están formados por:

- Personas son un componente esencial
en cualquier sistema de información,
producen y utilizan la información de sus
actividades diarias para decidir lo que se
debe hacer. Las decisiones pueden ser
rutinarias          o           complejas.

- Procedimientos, los sistemas de
información deben soportar diversas clases de actividades del usuario,
por eso han de establecerse procedimientos que aseguren que los
datos correctos llegan a las personas adecuadas en su momento
justo.
- Equipo, es decir los ordenadores y todos los dispositivos necesarios.



1.2 INGENIERÍA DEL SOFTWARE


Según la definición del IEEE, "software es la suma total de los
programas de ordenador, procedimientos, reglas, la documentación
asociada y los datos que pertenecen a un sistema de cómputo" y "un
producto de software es un producto diseñado para un usuario". En
este contexto, la Ingeniería de Software (SE del inglés "Software
Engineering") es un enfoque sistemático del desarrollo, operación,
mantenimiento          y         retiro        del       software.

Su origen se debe a que el entorno actual de desarrollo de sistemas
software viene adoleciendo de:

Retrasos considerables en la planificación

Poca productividad

Elevadas cargas de mantenimiento

Demandas cada vez más desfasadas con las ofertas

Baja calidad y fiabilidad del producto

Dependencia de los realizadores

esto es lo que se ha denominado comunmente "crisis del software",
que se ha originado históricamente en los siguientes pasos:

-      Primera        Fase.        Los       albores       (1945-1955)

Programar no es una tarea diferenciada del diseño de una máquina
Uso      de      lenguaje       máquina        y     ensamblador
-      Segunda          Fase.        El          florecimiento          (1955-1965)

Aparecen                  multitud                    de                  lenguajes
Era             posible               hacer                     casi           todo

-       Tercera           Fase.            La              crisis       (1965-1970)

Desarrollo        inacabable              de           grandes           programas
Ineficiencia,          errores,                     coste              impredecible
Nada                                  es                                    posible

-     Cuarta      Fase.         Innovación           conceptual         (1970-1980)

Fundamentos                           de                               programación
Verificación                          de                                  programas
Metodologías                                de                                diseño

-   Quinta      Fase.     El     diseño        es     el       problema    (1980-?)

Entornos                             de                                programación
Especificación                                                                formal
Programación automática

Ello ha venido originado por una falta de:

Formalismo y metodología

Herramientas de soporte

Administración eficaz

Actualmente está surgiendo una gran expectativa ante la evolución de
la Ingeniería del Software, al ir apareciendo nuevos métodos y
herramientas formales que van a permitir en el futuro un planteamiento
de ingeniería en el proceso de elaboración de software. Dicho
planteamiento vendrá a paliar la demanda creciente por parte de los
usuarios, permitiendo dar respuesta a los problemas de:
Administración

Calidad

Productividad

Fácil mantenimiento

Este último es uno de los grandes problemas, pues puede llegar a
suponer un importe superior al 60% del total del coste del software.

Las nuevas metodologías suponen un enfoque integral del problema,
abarcando todas las fases, que en su mayoría no se consideraba en
los desarrollos tradicionales. En particular son fundamentales la
reducción de costes y plazos, así como la calidad del producto final.
Estas tecnologías constituyen la denominada "Ingeniería del
Software", que se puede definir como "el tratamiento sistemático de
todas las fases del ciclo de vida del software". Hay otras definiciones,
pero todas inciden en la importancia de una disciplina de ingeniería
para el desarrollo de software.



Seguidamente se dan algunas definiciones ampliamente aceptadas
dentro de la informática:



DEFINICIONES                          DE                      BOEHM

- Software es el conjunto de programas, procedimientos y
documentación asociados a un sistema, y particularmente a un
sistema                                         computacional.

- Ingeniería es la aplicación de la ciencia y las matemáticas mediante
lo cual las propiedades de la materia y las fuentes de energía de la
naturaleza se hacen útiles al hombre en estructuras, máquinas,
productos,               sistemas               y            procesos.
- Ingeniería de software es la aplicación de la ciencia y las
matemáticas mediante la cual la capacidad de los equipos
computacionales se hacen útiles al hombre a través de programas de
computador, procedimientos y la documentación asociada.



DEFINICION                           DE                        BAUER

Ingeniería del Software es el establecimiento y uso de firmes principios
y métodos de ingeniería para la obtención económica de software
fiable y que funcione en máquinas reales.

Durante los primeros años de la informática, el software se
consideraba como un añadido. La programación era un "arte", para el
que no existían metodologías, era un proceso que se realizaba sin
ninguna planificación. En esta época toda la programación se
desarrollaba a medida para cada aplicación, y en consecuencia tenía
muy poca difusión, habitualmente quien lo escribía era porque lo
necesitaba,       y       era       quien        lo      mantenía.

En una segunda época (a partir de mitad de la década de 1960) se
estableció el software como producto y aparecieron las empresas
dedicadas al desarrollo y distribución masiva del mismo. El origen del
término Ingeniería del Software, se atribuye a dos conferencias
organizadas     por      la      OTAN     en      1967     y     1968

La tercera era comenzó a mediados de la década de 1970, época en
la que los sistemas informáticos aumentaron mucho en su
complejidad, y nacieron las redes de ordenadores. Esto supuso mucha
presión para los desarrolladores, aunque los ordenadores para uso
personal, apenas estaban difundidos. Esta época acabó con la
aparición            de             los           microprocesadores.

La cuarta era de la evolución de los sistemas informáticos, comienza
hacia 1990 y se dirige al impacto colectivo de los ordenadores y el
software, en todos los entornos. La industria del software tiene un gran
peso en la economía mundial. Aparecen las técnicas de redes
neuronales,        junto       con         la       lógica        difusa.

Hoy en día el software tiene un doble papel. Es un producto, pero
simultáneamente es el vehículo para hacer entrega de un producto.
Como producto permite el uso del hardware, ya sea, por ejemplo, un
ordenador personal, un teléfono móvil. Como vehículo utilizado para
hacer entrega del producto, actúa como base de control, por ejemplo
un sistema operativo, o un sistema gestor de redes. El software hace
entrega de lo que se considera como el producto más importante del
siglo veintiuno, la información. El software transforma datos
personales para que sean más útiles en un entorno local, gestiona
información comercial para mejorar la competitividad, proporciona el
acceso a redes a nivel mundial, y ofrece el medio de adquirir
información          en          todas          sus          formas.

Actualmente se considera la Ingeniería del Software como una nueva
área de la ingeniería, y la profesión de ingeniero informático es una de
las más demandadas. La palabra ingeniería tiene una connotación de
prestigio que provoca que muchas ramas del conocimiento tiendan a
autodenominarse                                                      así.

La ingeniería del software trata áreas muy diversas de la informática y
de las ciencias de la computación, aplicables a un amplio espectro de
campos, tales como negocios, investigación científica, medicina,
producción, logística, banca, meteorología, derecho, redes, entre otras
muchas.

Sin embargo, es frecuente que en la práctica diaria profesional no se
incluya prácticamente ninguna de las recomendaciones más
elementales de la ingeniería del software. Es habitual que el desarrollo
de software se parezca más al descontrol del cuento de «si los
programadores fueran albañiles...» que a una idílica y bien organizada
"factoría de software" (concepto de gran vigencia a finales de los
ochenta).

De hecho, las evaluaciones de los procesos productivos de software
realizadas a raíz de los modelos de procesos de software confirman
que el desarrollo de software suele estar básicamente en estado
caótico. Y no sólo en pequeñas empresas de países como España,
sino en grandes proyectos en naciones como EE UU y Japón.

Como ejemplo de que la ingeniería del software es en la actualidad
imprescindible, la revista satírica inglesa Private Eye dio detalles sobre
importantes proyectos de software que han dado resultados malos.
Entre ellos destacan los del servicio de ambulancias Asinfor de
Londres, el servicio de sanidad regional de Wessex, la Sociedad para
los derechos de autor y el sistema de manejo de equipajes del
aeropuerto                             de                          Denver.

De una forma humorística se hace la siguiente comparación con otras
ingenierías:

- Ingeniería mecánica como buscar un gato negro en una habitación
iluminada.

- Ingeniería química como buscar un gato negro en una habitación
oscura.

- Ingeniería software como buscar un gato negro en una habitación
oscura         donde       no       hay        ningún       gato.

- Ingeniería de sistemas como buscar un gato negro en una habitación
oscura donde no hay gato y alguien dice !!!lo encontré!!!.

Ciclo de desarrollo

El software es un elemento lógico, por lo que tiene unas
características muy diferentes a las del hardware:
El software se desarrolla, no se fabrica en el sentido clásico de la
palabra. Ambas actividades se dirigen a la construcción de un
"producto", pero los métodos son diferentes. Los costes del software
se encuentran en la ingeniería, esto implica que los proyectos no se
pueden gestionar como si lo fueran de fabricación. A mediados de la
década de 1980, se introdujo el concepto de "fábrica de software", que
recomienda el uso de herramientas para el desarrollo automático del
software.

Si se representa gráficamente la proporción de fallos en función del
tiempo, para el hardware se tiene la figura conocida como "curva de
bañera". Al principio de su vida hay bastantes fallos (normalmente por
defectos de diseño y/o fabricación), una vez corregidos se llega a un
nivel estacionario (bastante bajo). Sin embargo conforme pasa el
tiempo, aparecen de nuevo, por efecto de: mala calidad, suciedad,
malos tratos, temperaturas extremas y otras causas. El hardware
empieza                           a                        estropearse.

El software no se estropea. La gráfica de fallos en función del tiempo,
tendría forma de caída desde el principio, hasta mantenerse estable
por tiempo casi indefinido. El software no es susceptible a los males
del entorno que provocan el deterioro del hardware. Los efectos no
detectados harán que falle el programa durante las primeras etapas de
su vida, sin embargo una vez corregidas, no se producen nuevos
errores. Aunque no se estropea, si puede deteriorarse. Esto sucede
debido a los cambios que se efectúan durante su vida.

Cuando un componente hardware se estropea, se cambia por otro que
actúa como una "pieza de repuesto", mientras que para el software, no
es habitual este proceso, lo cual significa que el mantenimiento de los
programas                es                 muy              complejo.

La mayoría del software se construye a medida, en vez de ensamblar
componentes previamente creados. Por contra en el hardware se
dispone de todo tipo de circuítos integrados, para fabricar de manera
rápida un equipo completo. Los ingenieros de software no disponen de
esta comodidad, aunque ya se están dando los primeros pasos en
esta dirección, que facilitaria tanto el desarrollo de aplicaciones
informáticas.

La formalización del proceso de desarrollo se define como un marco
de referencia denominado ciclo de desarrollo del software o ciclo de
vida del desarrollo del software o ciclo de vida del desarrollo. Se puede
describir como, "el período de tiempo que comienza con la decisión de
desarrollar un producto software y finaliza cuando se ha entregado
éste". Este ciclo, por lo general incluye las fases:

Requisitos
diseño
implantación
prueba
instalación
aceptación



El ciclo de desarrollo software se utiliza para estructurar las
actividades que se llevan a cabo en el desarrollo de un producto
software. A pesar de que no hay acuerdo acerca del uso y la forma del
modelo, este sigue siendo útil para la comprensión y el control del
proceso.

Seguidamente se exponen las distintas aproximaciones de desarrollo
de software, en función del tipo de ciclo de vida:

A)                      Aproximación                        convencional

Se introdujo por Winston Royce en la década de 1970, como una
técnica rígida para mejorar la calidad y reducir los costos del desarrollo
de software. Tradicionalmente es conocido como "modelo en
cascada", porque su filosofía es completar cada paso con un alto
grado      de    exactitud,    antes     de    iniciar    el    siguiente.
Esquemáticamente se puede representar de la siguiente forma:




Donde:

FACTIBILIDAD: Definir un concepto preferente para el producto de
software y determinar su factibilidad de ciclo de vida y superioridad
frente              a                 otros               conceptos.

REQUERIMIENTOS: Elaborar una especificación completa y validada
de las funciones requeridas, sus interfaces y el rendimiento del
producto                      de                        software.

DISEÑO: Elaborar una especificación completa y validada de la
arquitectura global hardware-software, de la estructura de control y de
la estructura de datos del producto, así como un esquema de los
manuales        de      usuarios      y      planes       de       test.
DISEÑO DETALLADO: Elaborar una especificación completa y
verificada de la estructura de control, de la estructura de datos, de las
interfaces de relación, dimensionamiento y algoritmos claves de cada
componente de programa (rutina con un máximo de 100 instrucciones
fuentes).

CODIFICACION: Construir un conjunto completo y verificado de
componentes                  de                  programas.

INTEGRACION: Hacer funcionar el producto de software compuesto
de           componentes              de              programa.

IMPLEMENTACION: Hacer funcionar el sistema global hardware-
software incluyendo conversión de programas y datos, instalación y
capacitación.

OPERACION Y MANTENCION: Hacer funcionar una nueva versión
del                 sistema                        global.

TRANSICION: Realizar una sucesión limpia de este a otros eventuales
productos.

En cada caso, "verificación" tienen la acepción: establecer la verdad
de la correspondencia entre un producto de software y su
especificación.  Es      decir:    ¿ESTAMOS       CONSTRUYENDO
CORRECTAMENTE EL PRODUCTO?




Los principales problemas que se han detectado en esta aproximación
son debidos a que se comienza estableciendo todos los requisitos del
sistema:

En muchas ocasiones no es posible disponer de unas especificaciones
correctas desde el primer momento, porque puede ser difícil para el
usuario establecer al inicio todos los requisitos.
En otras hay cambio de parecer de los usuarios sobre las necesidades
reales cuando ya se ha comenzado el proyecto, siendo probables los
verdaderos requisitos no se reflejen en el producto final

Otro de los problemas de esta aproximación es que los resultados no
se ven hasta muy avanzado el proyecto, por lo tanto la realización de
modificaciones, si ha habido un error, es muy costosa.

Esta aproximación es la más empleada por los ingenieros
informáticos, aunque ha sido muy criticada, y de hecho se ha puesto
en duda su eficacia. Entre los problemas que se pueden encontrar con
este modelo, se tienen:

Los proyectos raras veces siguen el modelo secuencial que se
supone. Los cambios pueden causar confusión.

Es difícil disponer en principio de todos los requisitos. Este modelo
presenta dificultades en el momento de acomodar estas
incertidumbres.

La versión operativa de los programas no está disponible hasta que el
proyecto está muy avanzado. Un error importante puede ser
desastroso, si se descubre al final del proceso.

Los    responsables     del   desarrollo    siempre  se   retrasan
innecesariamente. Algunos integrantes del equipo de desarrollo han
de esperar a otros para completar tareas pendientes.

B)                       Aproximación                         prototipo

Es habitual que en un proyecto software no se identifiquen los
requisitos detallados de entrada, procesamiento o salida. En otros
casos no se está seguro de la eficiencia de un algoritmo, o de la forma
en que se ha de implantar la interface hombre-máquina.

En casos así, lo habitual es construir un prototipo, que idealmente
sirviera como mecanismo para identificar los requisitos del software.
Esta aproximación consiste en realizar la fase de definición de
requisitos del sistema en base a estos tres factores:

Un alto grado de iteración

Un muy alto grado de participación del usuario

Un uso extensivo de prototipos

Las premisas clave de esta aproximación son:

Que los prototipos constituyen un medio mejor de comunicación que
los modelos en papel

Que la iteración es necesaria para canalizar, en la dirección correcta,
el proceso de aprendizaje. Esta aproximación se enfoca a mejorar la
efectividad del proceso de desarrollo y no a mejorar la eficacia de ese
proceso.

El problema, es que los usuarios finales, ven lo que parece ser una
versión de trabajo del software, sin considerar que no es la versión
definitiva y por lo tanto no se han considerado aspectos de calidad o
facilidad de mantenimiento. Cuando se les dice, que el producto es a
partir de entonces cuando se debe de empezar a "fabricar", no lo
entiende y empieza de nuevo con ajustes, lo cual hace este proceso
muy lento.

C)                       Aproximación                          evolutiva

En esta aproximación el énfasis está en lograr un sistema flexible y
que se pueda expandir de forma que se pueda realizar muy
rápidamente una versión modificada del sistema cuando los requisitos
cambien.

Se diferencia de la aproximación anterior, en que en esta los requisitos
cambian continuamente, lo cual implicaría en el caso previo que las
iteraciones no tendrían fin.
D)                     Aproximación                      incremental

Es un concepto muy parecido al de desarrollo evolutivo, y
frecuentemente comprendido en la aproximación del desarrollo
evolutivo. Se comienza el desarrollo del sistema para satisfacer un
subconjunto de requisitos especificados. Las últimas versiones prevén
los requisitos que faltan. De esta forma se logra una rápida
disponibilidad del sistema, que aunque incompleto, es utilizable y
satisface algunas de las necesidades básicas de información.

La diferencia con la aproximación anterior es que en este caso cada
versión parte de una previa sin cambios pero con nuevas funciones,
mientras que la aproximación evolutiva cada vez se desarrolla una
nueva         versión       de         todo        el       sistema.

Un ejemplo de este paradigma se tiene en el desarrollo de una
aplicación sencilla, como es un editor de textos. En el primer
incremento se podría desarrollar con un reducido conjunto de
funciones, como las funciones básicas de gestión de archivos. En un
segundo incremento, se puede incluir la gestión avanzada de textos. Y
en un tercer incremento se pondría la corrección ortográfica.

E)                       Aproximación                         espiral

      Nace con el objetivo de captar lo mejor de la aproximación
      convencional y de la de prototipo, añadiendo un nuevo
componente, el análisis de riesgos. Esquemáticamente se puede
ilustrar mediante una espiral, con cuatro cuadrantes que definen
actividades.

En la primera vuelta de la espiral se definen los objetivos, las
alternativas y las restricciones y se analizan y se identifican los
riesgos. Si como consecuencia del análisis de riesgo se observa que
hay incertidumbre sobre el problema entonces en la actividad
correspondiente a la ingeniería se aplicará la aproximación prototipo
cuyo beneficio principal es el de reducir la incertidumbre de la
naturaleza del problema de información y los requerimientos que los
usuarios establecen para la solución a ese problema.

Al final de esta primera vuelta alrededor de la espiral el usuario evalúa
los productos obtenidos y puede sugerir modificaciones. Se
comenzaría avanzando alrededor del camino de la espiral realizando
las cuatro actividades indicadas a continuación. En cada vuelta de la
espiral, la actividad de ingeniería se desarrolla mediante la
aproximación convencional o ciclo de desarrollo en cascada o
mediante la aproximación de prototipos.




Actividades

Acciones

Planificación Determinación de alternativas, identificación y resolución
de riesgos

Ingeniería

Desarrollo y verificación del producto de siguiente nivel

Evaluación del cliente

Valoración de los resultados del proceso de desarrollo

F)         Aproximación       basada         en        transformaciones

Con la aparición de las herramientas CASE junto con los generadores
de código, el ciclo de desarrollo software en cascada ha cambiado a
un     ciclo     de     vida      basado     en     transformaciones.

CASE (Computer Aided Software Engineering), en castellano
"Ingeniería de software Asistida por Computadora", es un conjunto de
métodos, utilidades y técnicas que facilitan la automatización del ciclo
de    vida    del    desarrollo      de   sistemas   de    información.

La utilización de herramientas CASE afecta a todas las fases del ciclo
de vida del software. Este ciclo de vida se puede considerar como una
serie de transformaciones. Primero se definen los requisitos del
sistema, seguidamente existe un proceso de transformación que hace
que la especificación se convierta en un diseño lógico del sistema.
Posteriormente, este sufre otro proceso de transformación para lograr
un diseño físico, es decir que responda a la tecnología destino.

La tecnología CASE propone que estos procesos de transformación
sean lo más automatizables posible. Sus ventajas son:

Posibilidad de comprobación de errores en etapas iniciales de
desarrollo

Posibilidad de realizar el mantenimiento en el ámbito de especificación

Soporte de rastreabilidad de los requisitos

Soporte de reusabilidad

Potencia la especificación orientada al problema

G)                        Programación                         extrema

La Programación Extrema (PX), mejor conocida por su nombre en
inglés "Extreme Programming" (XP), es una de las llamadas
Metodologias Agiles de desarrollo de software más exitosas de los
tiempos recientes. Cada día se genera incontable información sobre el
tema, generalmente en inglés; fue formulada por Kent Beck, autor del
primer libro sobre la materia,"Extreme Programming Explained:
Embrace                                                     Chang".

Las fundamentales del método son:

Desarrollo iterativo e incremental

Pruebas unitarias continuas,
Programación por parejas de personas

Frecuente interacción del equipo de programación con el cliente

Corrección de todos los errores antes de añadir nueva funcionalidad.

Refactorización del código

Propiedad del código compartida

Simplicidad en el código

Un ejemplo de un caso en el que se aplicó esta metodología fue en
la identificación mediante el ADN de las víctimas del atentado del 11
de septiembre de 2001 en Nueva York (EE.UU.)
APLICACIÓN



LA APLICACIÓN PRÁCTICA DEL CONOCIMIENTO CIENTÍFICO AL
DISEÑO Y CONSTRUCCIÓN DE PROGRAMAS DE COMPUTADORA
Y A LA DOCUMENTACIÓN ASOCIADA REQUERIDA PARA
DESARROLLAR, OPERAR Y MANTENERLOS. SE CONOCE
TAMBIÉN COMO DESARROLLO DE SOFTWARE O PRODUCCIÓN
DE SOFTWARE.

Weitere ähnliche Inhalte

Ähnlich wie 4 vias sobres la ingienieria en informatica dentro de la informatica

Sistemas de informacion
Sistemas de informacionSistemas de informacion
Sistemas de informacionDr.Ing. Uriel
 
monogrfia de Software en Ing. Civil
monogrfia de Software en Ing. Civilmonogrfia de Software en Ing. Civil
monogrfia de Software en Ing. Civileduard soriano
 
PresentacióN De La Exposicion De Ingenieria
PresentacióN De La Exposicion De IngenieriaPresentacióN De La Exposicion De Ingenieria
PresentacióN De La Exposicion De Ingenieriabrian yamanue baloa gota
 
Desarrollo ofimatica para blog final
Desarrollo ofimatica para blog finalDesarrollo ofimatica para blog final
Desarrollo ofimatica para blog finalLarry Steven Escobar
 
Actividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesActividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesAndres Paredes
 
Introducción
IntroducciónIntroducción
Introducciónelias055
 
Informatica y etica informatica
Informatica y etica informaticaInformatica y etica informatica
Informatica y etica informaticadarks19
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de informaciónJimmy Campo
 
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...Software y su proceso de creación, procesos productivos, y ejemplos de los qu...
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...fabiany20
 
Trabajo 1 historia de la inf. johana gutierrez
Trabajo 1 historia de la inf. johana gutierrezTrabajo 1 historia de la inf. johana gutierrez
Trabajo 1 historia de la inf. johana gutierrezJOHANA GUTIERREZ
 
La informática
La informática La informática
La informática julieth2121
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872blanquita918
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872blanquita918
 

Ähnlich wie 4 vias sobres la ingienieria en informatica dentro de la informatica (20)

Sistemas de informacion
Sistemas de informacionSistemas de informacion
Sistemas de informacion
 
monogrfia de Software en Ing. Civil
monogrfia de Software en Ing. Civilmonogrfia de Software en Ing. Civil
monogrfia de Software en Ing. Civil
 
PresentacióN De La Exposicion De Ingenieria
PresentacióN De La Exposicion De IngenieriaPresentacióN De La Exposicion De Ingenieria
PresentacióN De La Exposicion De Ingenieria
 
Desarrollo ofimatica para blog final
Desarrollo ofimatica para blog finalDesarrollo ofimatica para blog final
Desarrollo ofimatica para blog final
 
Actividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredesActividad i 131_90006_andres_paredes
Actividad i 131_90006_andres_paredes
 
TERCERA PATE - Resumen ingenieria-del-software
TERCERA PATE - Resumen ingenieria-del-softwareTERCERA PATE - Resumen ingenieria-del-software
TERCERA PATE - Resumen ingenieria-del-software
 
Introducción
IntroducciónIntroducción
Introducción
 
Informatica y etica informatica
Informatica y etica informaticaInformatica y etica informatica
Informatica y etica informatica
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
Clase 6 semana8
Clase 6 semana8Clase 6 semana8
Clase 6 semana8
 
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...Software y su proceso de creación, procesos productivos, y ejemplos de los qu...
Software y su proceso de creación, procesos productivos, y ejemplos de los qu...
 
Ada 3 prince 1_e
Ada 3 prince 1_eAda 3 prince 1_e
Ada 3 prince 1_e
 
Trabajo 1 historia de la inf. johana gutierrez
Trabajo 1 historia de la inf. johana gutierrezTrabajo 1 historia de la inf. johana gutierrez
Trabajo 1 historia de la inf. johana gutierrez
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
 
Tema ntic
Tema nticTema ntic
Tema ntic
 
La informática
La informática La informática
La informática
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872
 
INFORMÁTICA
INFORMÁTICAINFORMÁTICA
INFORMÁTICA
 

Mehr von Rodrigo Dionicio Felipe (20)

Expo.library
Expo.libraryExpo.library
Expo.library
 
Mapa conceptual sistemas de informacion
Mapa conceptual sistemas de informacionMapa conceptual sistemas de informacion
Mapa conceptual sistemas de informacion
 
Mapa conceptual de los sistemas de informacion
Mapa conceptual de los sistemas de informacionMapa conceptual de los sistemas de informacion
Mapa conceptual de los sistemas de informacion
 
ENSAYO
ENSAYOENSAYO
ENSAYO
 
Ensayo libreta
Ensayo libretaEnsayo libreta
Ensayo libreta
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Infraestructurasdelatecnologadeinformacin 141015194509-conversion-gate02
Infraestructurasdelatecnologadeinformacin 141015194509-conversion-gate02Infraestructurasdelatecnologadeinformacin 141015194509-conversion-gate02
Infraestructurasdelatecnologadeinformacin 141015194509-conversion-gate02
 
Infraestructuras de la tecnología de información
Infraestructuras de la tecnología de informaciónInfraestructuras de la tecnología de información
Infraestructuras de la tecnología de información
 
Tipos de estándares
Tipos de estándaresTipos de estándares
Tipos de estándares
 
Analisis
AnalisisAnalisis
Analisis
 
Analisis
AnalisisAnalisis
Analisis
 
Analisis
AnalisisAnalisis
Analisis
 
Fundamento de telecomunicacion
Fundamento de telecomunicacionFundamento de telecomunicacion
Fundamento de telecomunicacion
 
Resumen (1)
Resumen (1)Resumen (1)
Resumen (1)
 
Rodrigo
RodrigoRodrigo
Rodrigo
 
Autoevaluación del equipo
Autoevaluación del equipoAutoevaluación del equipo
Autoevaluación del equipo
 
Investigacion documental
Investigacion documentalInvestigacion documental
Investigacion documental
 

4 vias sobres la ingienieria en informatica dentro de la informatica

  • 1. S.E.P. D.G.E.S.T. S.E.I.T. ASIGNATURA: FUNDAMENTOS DE SISTEMAS DE INFORMACION TRABAJO IN EC UNIDAD 2 ST EP IT XT TO U TE TU C E N OL O GI C O D ALUMNOS Sáenz Escobedo Eric Adrian CABRERA LÓPEZ ADRIAN DIONICIO FELIPE RODRIGO DÍAZ MORA LUIS CARLOS MANZANO CRISANTO VALENTÍN VELASCO OJEDA SERGIO CATEDRÁTICO L.I. MARIA DE LOS ANGELES MARTINEZ M. TUXTEPEC OAXACA, SEPTIEMBRE DE 2012
  • 2. FINALIDAD. Como finalidad sobre el trabajo del enfoque en la ingeniería dentro de la informática damos a conocer este trabajo para explicar detalladamente sus puntos más importantes y para tener un mayor conocimiento sobre la informática. La ingeniería informática es la profesión que consiste en la aplicación de los fundamentos de la ciencia de la computación, la electrónica y la ingeniería de software, para el desarrollo de soluciones integrales de cómputo y comunicaciones, capaces de procesar información de manera automática. Por lo que se refiere al soporte físico.
  • 3. ¿QUÉ SON LOS SISTEMAS INFORMÁTICOS? Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien se considere oportuno. Un sistema puede ser tan simple como: una persona tiene un microordenador y le introduce datos tan elementales, como por ejemplo las ventas diarias de una pequeña empresa, se produce una entrada por cada venta y en ella se declara el elemento vendido, por ejemplo un yogur, la cantidad de elementos vendidos, por ejemplo cuatro y el precio de venta unitario, por ejemplo 0.15 euros. Cada entrada se almacena como un registro de un fichero en el disco. Al finalizar el día se puede obtener un informe de las ventas y las tendencias. El usuario puede utilizar esta información para la gestión de almacén o planificar campañas publicitarias. Habitualmente una empresa tiene más de un ordenador, por ejemplo uno para la gestión de ventas y otro para la contabilidad y procesos asociados. Sin embargo la mayor parte de los sistemas son más complejos. Los sistemas de información tienen muchas cosas en común, la mayoría de ellos están formados por: - Personas son un componente esencial en cualquier sistema de información, producen y utilizan la información de sus actividades diarias para decidir lo que se debe hacer. Las decisiones pueden ser rutinarias o complejas. - Procedimientos, los sistemas de información deben soportar diversas clases de actividades del usuario, por eso han de establecerse procedimientos que aseguren que los datos correctos llegan a las personas adecuadas en su momento justo.
  • 4. - Equipo, es decir los ordenadores y todos los dispositivos necesarios. 1.2 INGENIERÍA DEL SOFTWARE Según la definición del IEEE, "software es la suma total de los programas de ordenador, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo" y "un producto de software es un producto diseñado para un usuario". En este contexto, la Ingeniería de Software (SE del inglés "Software Engineering") es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software. Su origen se debe a que el entorno actual de desarrollo de sistemas software viene adoleciendo de: Retrasos considerables en la planificación Poca productividad Elevadas cargas de mantenimiento Demandas cada vez más desfasadas con las ofertas Baja calidad y fiabilidad del producto Dependencia de los realizadores esto es lo que se ha denominado comunmente "crisis del software", que se ha originado históricamente en los siguientes pasos: - Primera Fase. Los albores (1945-1955) Programar no es una tarea diferenciada del diseño de una máquina Uso de lenguaje máquina y ensamblador
  • 5. - Segunda Fase. El florecimiento (1955-1965) Aparecen multitud de lenguajes Era posible hacer casi todo - Tercera Fase. La crisis (1965-1970) Desarrollo inacabable de grandes programas Ineficiencia, errores, coste impredecible Nada es posible - Cuarta Fase. Innovación conceptual (1970-1980) Fundamentos de programación Verificación de programas Metodologías de diseño - Quinta Fase. El diseño es el problema (1980-?) Entornos de programación Especificación formal Programación automática Ello ha venido originado por una falta de: Formalismo y metodología Herramientas de soporte Administración eficaz Actualmente está surgiendo una gran expectativa ante la evolución de la Ingeniería del Software, al ir apareciendo nuevos métodos y herramientas formales que van a permitir en el futuro un planteamiento de ingeniería en el proceso de elaboración de software. Dicho planteamiento vendrá a paliar la demanda creciente por parte de los usuarios, permitiendo dar respuesta a los problemas de:
  • 6. Administración Calidad Productividad Fácil mantenimiento Este último es uno de los grandes problemas, pues puede llegar a suponer un importe superior al 60% del total del coste del software. Las nuevas metodologías suponen un enfoque integral del problema, abarcando todas las fases, que en su mayoría no se consideraba en los desarrollos tradicionales. En particular son fundamentales la reducción de costes y plazos, así como la calidad del producto final. Estas tecnologías constituyen la denominada "Ingeniería del Software", que se puede definir como "el tratamiento sistemático de todas las fases del ciclo de vida del software". Hay otras definiciones, pero todas inciden en la importancia de una disciplina de ingeniería para el desarrollo de software. Seguidamente se dan algunas definiciones ampliamente aceptadas dentro de la informática: DEFINICIONES DE BOEHM - Software es el conjunto de programas, procedimientos y documentación asociados a un sistema, y particularmente a un sistema computacional. - Ingeniería es la aplicación de la ciencia y las matemáticas mediante lo cual las propiedades de la materia y las fuentes de energía de la naturaleza se hacen útiles al hombre en estructuras, máquinas, productos, sistemas y procesos.
  • 7. - Ingeniería de software es la aplicación de la ciencia y las matemáticas mediante la cual la capacidad de los equipos computacionales se hacen útiles al hombre a través de programas de computador, procedimientos y la documentación asociada. DEFINICION DE BAUER Ingeniería del Software es el establecimiento y uso de firmes principios y métodos de ingeniería para la obtención económica de software fiable y que funcione en máquinas reales. Durante los primeros años de la informática, el software se consideraba como un añadido. La programación era un "arte", para el que no existían metodologías, era un proceso que se realizaba sin ninguna planificación. En esta época toda la programación se desarrollaba a medida para cada aplicación, y en consecuencia tenía muy poca difusión, habitualmente quien lo escribía era porque lo necesitaba, y era quien lo mantenía. En una segunda época (a partir de mitad de la década de 1960) se estableció el software como producto y aparecieron las empresas dedicadas al desarrollo y distribución masiva del mismo. El origen del término Ingeniería del Software, se atribuye a dos conferencias organizadas por la OTAN en 1967 y 1968 La tercera era comenzó a mediados de la década de 1970, época en la que los sistemas informáticos aumentaron mucho en su complejidad, y nacieron las redes de ordenadores. Esto supuso mucha presión para los desarrolladores, aunque los ordenadores para uso personal, apenas estaban difundidos. Esta época acabó con la aparición de los microprocesadores. La cuarta era de la evolución de los sistemas informáticos, comienza hacia 1990 y se dirige al impacto colectivo de los ordenadores y el
  • 8. software, en todos los entornos. La industria del software tiene un gran peso en la economía mundial. Aparecen las técnicas de redes neuronales, junto con la lógica difusa. Hoy en día el software tiene un doble papel. Es un producto, pero simultáneamente es el vehículo para hacer entrega de un producto. Como producto permite el uso del hardware, ya sea, por ejemplo, un ordenador personal, un teléfono móvil. Como vehículo utilizado para hacer entrega del producto, actúa como base de control, por ejemplo un sistema operativo, o un sistema gestor de redes. El software hace entrega de lo que se considera como el producto más importante del siglo veintiuno, la información. El software transforma datos personales para que sean más útiles en un entorno local, gestiona información comercial para mejorar la competitividad, proporciona el acceso a redes a nivel mundial, y ofrece el medio de adquirir información en todas sus formas. Actualmente se considera la Ingeniería del Software como una nueva área de la ingeniería, y la profesión de ingeniero informático es una de las más demandadas. La palabra ingeniería tiene una connotación de prestigio que provoca que muchas ramas del conocimiento tiendan a autodenominarse así. La ingeniería del software trata áreas muy diversas de la informática y de las ciencias de la computación, aplicables a un amplio espectro de campos, tales como negocios, investigación científica, medicina, producción, logística, banca, meteorología, derecho, redes, entre otras muchas. Sin embargo, es frecuente que en la práctica diaria profesional no se incluya prácticamente ninguna de las recomendaciones más elementales de la ingeniería del software. Es habitual que el desarrollo de software se parezca más al descontrol del cuento de «si los programadores fueran albañiles...» que a una idílica y bien organizada "factoría de software" (concepto de gran vigencia a finales de los
  • 9. ochenta). De hecho, las evaluaciones de los procesos productivos de software realizadas a raíz de los modelos de procesos de software confirman que el desarrollo de software suele estar básicamente en estado caótico. Y no sólo en pequeñas empresas de países como España, sino en grandes proyectos en naciones como EE UU y Japón. Como ejemplo de que la ingeniería del software es en la actualidad imprescindible, la revista satírica inglesa Private Eye dio detalles sobre importantes proyectos de software que han dado resultados malos. Entre ellos destacan los del servicio de ambulancias Asinfor de Londres, el servicio de sanidad regional de Wessex, la Sociedad para los derechos de autor y el sistema de manejo de equipajes del aeropuerto de Denver. De una forma humorística se hace la siguiente comparación con otras ingenierías: - Ingeniería mecánica como buscar un gato negro en una habitación iluminada. - Ingeniería química como buscar un gato negro en una habitación oscura. - Ingeniería software como buscar un gato negro en una habitación oscura donde no hay ningún gato. - Ingeniería de sistemas como buscar un gato negro en una habitación oscura donde no hay gato y alguien dice !!!lo encontré!!!. Ciclo de desarrollo El software es un elemento lógico, por lo que tiene unas características muy diferentes a las del hardware:
  • 10. El software se desarrolla, no se fabrica en el sentido clásico de la palabra. Ambas actividades se dirigen a la construcción de un "producto", pero los métodos son diferentes. Los costes del software se encuentran en la ingeniería, esto implica que los proyectos no se pueden gestionar como si lo fueran de fabricación. A mediados de la década de 1980, se introdujo el concepto de "fábrica de software", que recomienda el uso de herramientas para el desarrollo automático del software. Si se representa gráficamente la proporción de fallos en función del tiempo, para el hardware se tiene la figura conocida como "curva de bañera". Al principio de su vida hay bastantes fallos (normalmente por defectos de diseño y/o fabricación), una vez corregidos se llega a un nivel estacionario (bastante bajo). Sin embargo conforme pasa el tiempo, aparecen de nuevo, por efecto de: mala calidad, suciedad, malos tratos, temperaturas extremas y otras causas. El hardware empieza a estropearse. El software no se estropea. La gráfica de fallos en función del tiempo, tendría forma de caída desde el principio, hasta mantenerse estable por tiempo casi indefinido. El software no es susceptible a los males del entorno que provocan el deterioro del hardware. Los efectos no detectados harán que falle el programa durante las primeras etapas de su vida, sin embargo una vez corregidas, no se producen nuevos errores. Aunque no se estropea, si puede deteriorarse. Esto sucede debido a los cambios que se efectúan durante su vida. Cuando un componente hardware se estropea, se cambia por otro que actúa como una "pieza de repuesto", mientras que para el software, no es habitual este proceso, lo cual significa que el mantenimiento de los programas es muy complejo. La mayoría del software se construye a medida, en vez de ensamblar componentes previamente creados. Por contra en el hardware se dispone de todo tipo de circuítos integrados, para fabricar de manera
  • 11. rápida un equipo completo. Los ingenieros de software no disponen de esta comodidad, aunque ya se están dando los primeros pasos en esta dirección, que facilitaria tanto el desarrollo de aplicaciones informáticas. La formalización del proceso de desarrollo se define como un marco de referencia denominado ciclo de desarrollo del software o ciclo de vida del desarrollo del software o ciclo de vida del desarrollo. Se puede describir como, "el período de tiempo que comienza con la decisión de desarrollar un producto software y finaliza cuando se ha entregado éste". Este ciclo, por lo general incluye las fases: Requisitos diseño implantación prueba instalación aceptación El ciclo de desarrollo software se utiliza para estructurar las actividades que se llevan a cabo en el desarrollo de un producto software. A pesar de que no hay acuerdo acerca del uso y la forma del modelo, este sigue siendo útil para la comprensión y el control del proceso. Seguidamente se exponen las distintas aproximaciones de desarrollo de software, en función del tipo de ciclo de vida: A) Aproximación convencional Se introdujo por Winston Royce en la década de 1970, como una técnica rígida para mejorar la calidad y reducir los costos del desarrollo de software. Tradicionalmente es conocido como "modelo en cascada", porque su filosofía es completar cada paso con un alto grado de exactitud, antes de iniciar el siguiente.
  • 12. Esquemáticamente se puede representar de la siguiente forma: Donde: FACTIBILIDAD: Definir un concepto preferente para el producto de software y determinar su factibilidad de ciclo de vida y superioridad frente a otros conceptos. REQUERIMIENTOS: Elaborar una especificación completa y validada de las funciones requeridas, sus interfaces y el rendimiento del producto de software. DISEÑO: Elaborar una especificación completa y validada de la arquitectura global hardware-software, de la estructura de control y de la estructura de datos del producto, así como un esquema de los manuales de usuarios y planes de test.
  • 13. DISEÑO DETALLADO: Elaborar una especificación completa y verificada de la estructura de control, de la estructura de datos, de las interfaces de relación, dimensionamiento y algoritmos claves de cada componente de programa (rutina con un máximo de 100 instrucciones fuentes). CODIFICACION: Construir un conjunto completo y verificado de componentes de programas. INTEGRACION: Hacer funcionar el producto de software compuesto de componentes de programa. IMPLEMENTACION: Hacer funcionar el sistema global hardware- software incluyendo conversión de programas y datos, instalación y capacitación. OPERACION Y MANTENCION: Hacer funcionar una nueva versión del sistema global. TRANSICION: Realizar una sucesión limpia de este a otros eventuales productos. En cada caso, "verificación" tienen la acepción: establecer la verdad de la correspondencia entre un producto de software y su especificación. Es decir: ¿ESTAMOS CONSTRUYENDO CORRECTAMENTE EL PRODUCTO? Los principales problemas que se han detectado en esta aproximación son debidos a que se comienza estableciendo todos los requisitos del sistema: En muchas ocasiones no es posible disponer de unas especificaciones correctas desde el primer momento, porque puede ser difícil para el usuario establecer al inicio todos los requisitos.
  • 14. En otras hay cambio de parecer de los usuarios sobre las necesidades reales cuando ya se ha comenzado el proyecto, siendo probables los verdaderos requisitos no se reflejen en el producto final Otro de los problemas de esta aproximación es que los resultados no se ven hasta muy avanzado el proyecto, por lo tanto la realización de modificaciones, si ha habido un error, es muy costosa. Esta aproximación es la más empleada por los ingenieros informáticos, aunque ha sido muy criticada, y de hecho se ha puesto en duda su eficacia. Entre los problemas que se pueden encontrar con este modelo, se tienen: Los proyectos raras veces siguen el modelo secuencial que se supone. Los cambios pueden causar confusión. Es difícil disponer en principio de todos los requisitos. Este modelo presenta dificultades en el momento de acomodar estas incertidumbres. La versión operativa de los programas no está disponible hasta que el proyecto está muy avanzado. Un error importante puede ser desastroso, si se descubre al final del proceso. Los responsables del desarrollo siempre se retrasan innecesariamente. Algunos integrantes del equipo de desarrollo han de esperar a otros para completar tareas pendientes. B) Aproximación prototipo Es habitual que en un proyecto software no se identifiquen los requisitos detallados de entrada, procesamiento o salida. En otros casos no se está seguro de la eficiencia de un algoritmo, o de la forma en que se ha de implantar la interface hombre-máquina. En casos así, lo habitual es construir un prototipo, que idealmente sirviera como mecanismo para identificar los requisitos del software.
  • 15. Esta aproximación consiste en realizar la fase de definición de requisitos del sistema en base a estos tres factores: Un alto grado de iteración Un muy alto grado de participación del usuario Un uso extensivo de prototipos Las premisas clave de esta aproximación son: Que los prototipos constituyen un medio mejor de comunicación que los modelos en papel Que la iteración es necesaria para canalizar, en la dirección correcta, el proceso de aprendizaje. Esta aproximación se enfoca a mejorar la efectividad del proceso de desarrollo y no a mejorar la eficacia de ese proceso. El problema, es que los usuarios finales, ven lo que parece ser una versión de trabajo del software, sin considerar que no es la versión definitiva y por lo tanto no se han considerado aspectos de calidad o facilidad de mantenimiento. Cuando se les dice, que el producto es a partir de entonces cuando se debe de empezar a "fabricar", no lo entiende y empieza de nuevo con ajustes, lo cual hace este proceso muy lento. C) Aproximación evolutiva En esta aproximación el énfasis está en lograr un sistema flexible y que se pueda expandir de forma que se pueda realizar muy rápidamente una versión modificada del sistema cuando los requisitos cambien. Se diferencia de la aproximación anterior, en que en esta los requisitos cambian continuamente, lo cual implicaría en el caso previo que las iteraciones no tendrían fin.
  • 16. D) Aproximación incremental Es un concepto muy parecido al de desarrollo evolutivo, y frecuentemente comprendido en la aproximación del desarrollo evolutivo. Se comienza el desarrollo del sistema para satisfacer un subconjunto de requisitos especificados. Las últimas versiones prevén los requisitos que faltan. De esta forma se logra una rápida disponibilidad del sistema, que aunque incompleto, es utilizable y satisface algunas de las necesidades básicas de información. La diferencia con la aproximación anterior es que en este caso cada versión parte de una previa sin cambios pero con nuevas funciones, mientras que la aproximación evolutiva cada vez se desarrolla una nueva versión de todo el sistema. Un ejemplo de este paradigma se tiene en el desarrollo de una aplicación sencilla, como es un editor de textos. En el primer incremento se podría desarrollar con un reducido conjunto de funciones, como las funciones básicas de gestión de archivos. En un segundo incremento, se puede incluir la gestión avanzada de textos. Y en un tercer incremento se pondría la corrección ortográfica. E) Aproximación espiral Nace con el objetivo de captar lo mejor de la aproximación convencional y de la de prototipo, añadiendo un nuevo componente, el análisis de riesgos. Esquemáticamente se puede ilustrar mediante una espiral, con cuatro cuadrantes que definen actividades. En la primera vuelta de la espiral se definen los objetivos, las alternativas y las restricciones y se analizan y se identifican los riesgos. Si como consecuencia del análisis de riesgo se observa que hay incertidumbre sobre el problema entonces en la actividad correspondiente a la ingeniería se aplicará la aproximación prototipo
  • 17. cuyo beneficio principal es el de reducir la incertidumbre de la naturaleza del problema de información y los requerimientos que los usuarios establecen para la solución a ese problema. Al final de esta primera vuelta alrededor de la espiral el usuario evalúa los productos obtenidos y puede sugerir modificaciones. Se comenzaría avanzando alrededor del camino de la espiral realizando las cuatro actividades indicadas a continuación. En cada vuelta de la espiral, la actividad de ingeniería se desarrolla mediante la aproximación convencional o ciclo de desarrollo en cascada o mediante la aproximación de prototipos. Actividades Acciones Planificación Determinación de alternativas, identificación y resolución de riesgos Ingeniería Desarrollo y verificación del producto de siguiente nivel Evaluación del cliente Valoración de los resultados del proceso de desarrollo F) Aproximación basada en transformaciones Con la aparición de las herramientas CASE junto con los generadores de código, el ciclo de desarrollo software en cascada ha cambiado a un ciclo de vida basado en transformaciones. CASE (Computer Aided Software Engineering), en castellano "Ingeniería de software Asistida por Computadora", es un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo
  • 18. de vida del desarrollo de sistemas de información. La utilización de herramientas CASE afecta a todas las fases del ciclo de vida del software. Este ciclo de vida se puede considerar como una serie de transformaciones. Primero se definen los requisitos del sistema, seguidamente existe un proceso de transformación que hace que la especificación se convierta en un diseño lógico del sistema. Posteriormente, este sufre otro proceso de transformación para lograr un diseño físico, es decir que responda a la tecnología destino. La tecnología CASE propone que estos procesos de transformación sean lo más automatizables posible. Sus ventajas son: Posibilidad de comprobación de errores en etapas iniciales de desarrollo Posibilidad de realizar el mantenimiento en el ámbito de especificación Soporte de rastreabilidad de los requisitos Soporte de reusabilidad Potencia la especificación orientada al problema G) Programación extrema La Programación Extrema (PX), mejor conocida por su nombre en inglés "Extreme Programming" (XP), es una de las llamadas Metodologias Agiles de desarrollo de software más exitosas de los tiempos recientes. Cada día se genera incontable información sobre el tema, generalmente en inglés; fue formulada por Kent Beck, autor del primer libro sobre la materia,"Extreme Programming Explained: Embrace Chang". Las fundamentales del método son: Desarrollo iterativo e incremental Pruebas unitarias continuas,
  • 19. Programación por parejas de personas Frecuente interacción del equipo de programación con el cliente Corrección de todos los errores antes de añadir nueva funcionalidad. Refactorización del código Propiedad del código compartida Simplicidad en el código Un ejemplo de un caso en el que se aplicó esta metodología fue en la identificación mediante el ADN de las víctimas del atentado del 11 de septiembre de 2001 en Nueva York (EE.UU.)
  • 20. APLICACIÓN LA APLICACIÓN PRÁCTICA DEL CONOCIMIENTO CIENTÍFICO AL DISEÑO Y CONSTRUCCIÓN DE PROGRAMAS DE COMPUTADORA Y A LA DOCUMENTACIÓN ASOCIADA REQUERIDA PARA DESARROLLAR, OPERAR Y MANTENERLOS. SE CONOCE TAMBIÉN COMO DESARROLLO DE SOFTWARE O PRODUCCIÓN DE SOFTWARE.