4 vias sobres la ingienieria en informatica dentro de la informatica
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
448
On Slideshare
404
From Embeds
44
Number of Embeds
2

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 44

http://losestudiantesdeltec.blogspot.mx 42
http://losestudiantesdeltec.blogspot.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. S.E.P. D.G.E.S.T. S.E.I.T. ASIGNATURA: FUNDAMENTOS DE SISTEMAS DE INFORMACION TRABAJOIN 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 dela informática damos a conocer este trabajo para explicardetalladamente sus puntos más importantes y para tener un mayorconocimiento sobre la informática.La ingeniería informática es la profesión que consiste en la aplicaciónde los fundamentos de la ciencia de la computación, la electrónica y laingeniería de software, para el desarrollo de soluciones integrales decómputo y comunicaciones, capaces de procesar información demanera 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 unmicroordenador y le introduce datos tan elementales, como porejemplo las ventas diarias de una pequeña empresa, se produce unaentrada por cada venta y en ella se declara el elemento vendido, porejemplo un yogur, la cantidad de elementos vendidos, por ejemplocuatro y el precio de venta unitario, por ejemplo 0.15 euros. Cadaentrada se almacena como un registro de un fichero en el disco. Alfinalizar el día se puede obtener un informe de las ventas y lastendencias. El usuario puede utilizar esta información para la gestiónde almacén o planificar campañas publicitarias. Habitualmente unaempresa tiene más de un ordenador, por ejemplo uno para la gestiónde ventas y otro para la contabilidad y procesos asociados. Sinembargo la mayor parte de los sistemas son más complejos.Los sistemas de información tienen muchas cosas en común, lamayoría de ellos están formados por:- Personas son un componente esencialen cualquier sistema de información,producen y utilizan la información de susactividades diarias para decidir lo que sedebe hacer. Las decisiones pueden serrutinarias o complejas.- Procedimientos, los sistemas deinformación deben soportar diversas clases de actividades del usuario,por eso han de establecerse procedimientos que aseguren que losdatos correctos llegan a las personas adecuadas en su momentojusto.
  • 4. - Equipo, es decir los ordenadores y todos los dispositivos necesarios.1.2 INGENIERÍA DEL SOFTWARESegún la definición del IEEE, "software es la suma total de losprogramas de ordenador, procedimientos, reglas, la documentaciónasociada y los datos que pertenecen a un sistema de cómputo" y "unproducto de software es un producto diseñado para un usuario". Eneste contexto, la Ingeniería de Software (SE del inglés "SoftwareEngineering") 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 sistemassoftware viene adoleciendo de:Retrasos considerables en la planificaciónPoca productividadElevadas cargas de mantenimientoDemandas cada vez más desfasadas con las ofertasBaja calidad y fiabilidad del productoDependencia de los realizadoresesto 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áquinaUso de lenguaje máquina y ensamblador
  • 5. - Segunda Fase. El florecimiento (1955-1965)Aparecen multitud de lenguajesEra posible hacer casi todo- Tercera Fase. La crisis (1965-1970)Desarrollo inacabable de grandes programasIneficiencia, errores, coste impredecibleNada es posible- Cuarta Fase. Innovación conceptual (1970-1980)Fundamentos de programaciónVerificación de programasMetodologías de diseño- Quinta Fase. El diseño es el problema (1980-?)Entornos de programaciónEspecificación formalProgramación automáticaEllo ha venido originado por una falta de:Formalismo y metodologíaHerramientas de soporteAdministración eficazActualmente está surgiendo una gran expectativa ante la evolución dela Ingeniería del Software, al ir apareciendo nuevos métodos yherramientas formales que van a permitir en el futuro un planteamientode ingeniería en el proceso de elaboración de software. Dichoplanteamiento vendrá a paliar la demanda creciente por parte de losusuarios, permitiendo dar respuesta a los problemas de:
  • 6. AdministraciónCalidadProductividadFácil mantenimientoEste último es uno de los grandes problemas, pues puede llegar asuponer 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 enlos desarrollos tradicionales. En particular son fundamentales lareducción de costes y plazos, así como la calidad del producto final.Estas tecnologías constituyen la denominada "Ingeniería delSoftware", que se puede definir como "el tratamiento sistemático detodas las fases del ciclo de vida del software". Hay otras definiciones,pero todas inciden en la importancia de una disciplina de ingenieríapara el desarrollo de software.Seguidamente se dan algunas definiciones ampliamente aceptadasdentro de la informática:DEFINICIONES DE BOEHM- Software es el conjunto de programas, procedimientos ydocumentación asociados a un sistema, y particularmente a unsistema computacional.- Ingeniería es la aplicación de la ciencia y las matemáticas mediantelo cual las propiedades de la materia y las fuentes de energía de lanaturaleza 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 lasmatemáticas mediante la cual la capacidad de los equiposcomputacionales se hacen útiles al hombre a través de programas decomputador, procedimientos y la documentación asociada.DEFINICION DE BAUERIngeniería del Software es el establecimiento y uso de firmes principiosy métodos de ingeniería para la obtención económica de softwarefiable y que funcione en máquinas reales.Durante los primeros años de la informática, el software seconsideraba como un añadido. La programación era un "arte", para elque no existían metodologías, era un proceso que se realizaba sinninguna planificación. En esta época toda la programación sedesarrollaba a medida para cada aplicación, y en consecuencia teníamuy poca difusión, habitualmente quien lo escribía era porque lonecesitaba, y era quien lo mantenía.En una segunda época (a partir de mitad de la década de 1960) seestableció el software como producto y aparecieron las empresasdedicadas al desarrollo y distribución masiva del mismo. El origen deltérmino Ingeniería del Software, se atribuye a dos conferenciasorganizadas por la OTAN en 1967 y 1968La tercera era comenzó a mediados de la década de 1970, época enla que los sistemas informáticos aumentaron mucho en sucomplejidad, y nacieron las redes de ordenadores. Esto supuso muchapresión para los desarrolladores, aunque los ordenadores para usopersonal, apenas estaban difundidos. Esta época acabó con laaparición de los microprocesadores.La cuarta era de la evolución de los sistemas informáticos, comienzahacia 1990 y se dirige al impacto colectivo de los ordenadores y el
  • 8. software, en todos los entornos. La industria del software tiene un granpeso en la economía mundial. Aparecen las técnicas de redesneuronales, junto con la lógica difusa.Hoy en día el software tiene un doble papel. Es un producto, perosimultáneamente es el vehículo para hacer entrega de un producto.Como producto permite el uso del hardware, ya sea, por ejemplo, unordenador personal, un teléfono móvil. Como vehículo utilizado parahacer entrega del producto, actúa como base de control, por ejemploun sistema operativo, o un sistema gestor de redes. El software haceentrega de lo que se considera como el producto más importante delsiglo veintiuno, la información. El software transforma datospersonales para que sean más útiles en un entorno local, gestionainformación comercial para mejorar la competitividad, proporciona elacceso a redes a nivel mundial, y ofrece el medio de adquiririnformació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 delas más demandadas. La palabra ingeniería tiene una connotación deprestigio que provoca que muchas ramas del conocimiento tiendan aautodenominarse así.La ingeniería del software trata áreas muy diversas de la informática yde las ciencias de la computación, aplicables a un amplio espectro decampos, tales como negocios, investigación científica, medicina,producción, logística, banca, meteorología, derecho, redes, entre otrasmuchas.Sin embargo, es frecuente que en la práctica diaria profesional no seincluya prácticamente ninguna de las recomendaciones máselementales de la ingeniería del software. Es habitual que el desarrollode software se parezca más al descontrol del cuento de «si losprogramadores 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 softwarerealizadas a raíz de los modelos de procesos de software confirmanque el desarrollo de software suele estar básicamente en estadocaó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 actualidadimprescindible, la revista satírica inglesa Private Eye dio detalles sobreimportantes proyectos de software que han dado resultados malos.Entre ellos destacan los del servicio de ambulancias Asinfor deLondres, el servicio de sanidad regional de Wessex, la Sociedad paralos derechos de autor y el sistema de manejo de equipajes delaeropuerto de Denver.De una forma humorística se hace la siguiente comparación con otrasingenierías:- Ingeniería mecánica como buscar un gato negro en una habitacióniluminada.- Ingeniería química como buscar un gato negro en una habitaciónoscura.- Ingeniería software como buscar un gato negro en una habitaciónoscura donde no hay ningún gato.- Ingeniería de sistemas como buscar un gato negro en una habitaciónoscura donde no hay gato y alguien dice !!!lo encontré!!!.Ciclo de desarrolloEl software es un elemento lógico, por lo que tiene unascaracterísticas muy diferentes a las del hardware:
  • 10. El software se desarrolla, no se fabrica en el sentido clásico de lapalabra. Ambas actividades se dirigen a la construcción de un"producto", pero los métodos son diferentes. Los costes del softwarese encuentran en la ingeniería, esto implica que los proyectos no sepueden gestionar como si lo fueran de fabricación. A mediados de ladécada de 1980, se introdujo el concepto de "fábrica de software", querecomienda el uso de herramientas para el desarrollo automático delsoftware.Si se representa gráficamente la proporción de fallos en función deltiempo, para el hardware se tiene la figura conocida como "curva debañera". Al principio de su vida hay bastantes fallos (normalmente pordefectos de diseño y/o fabricación), una vez corregidos se llega a unnivel estacionario (bastante bajo). Sin embargo conforme pasa eltiempo, aparecen de nuevo, por efecto de: mala calidad, suciedad,malos tratos, temperaturas extremas y otras causas. El hardwareempieza 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 establepor tiempo casi indefinido. El software no es susceptible a los malesdel entorno que provocan el deterioro del hardware. Los efectos nodetectados harán que falle el programa durante las primeras etapas desu vida, sin embargo una vez corregidas, no se producen nuevoserrores. Aunque no se estropea, si puede deteriorarse. Esto sucededebido a los cambios que se efectúan durante su vida.Cuando un componente hardware se estropea, se cambia por otro queactúa como una "pieza de repuesto", mientras que para el software, noes habitual este proceso, lo cual significa que el mantenimiento de losprogramas es muy complejo.La mayoría del software se construye a medida, en vez de ensamblarcomponentes previamente creados. Por contra en el hardware sedispone de todo tipo de circuítos integrados, para fabricar de manera
  • 11. rápida un equipo completo. Los ingenieros de software no disponen deesta comodidad, aunque ya se están dando los primeros pasos enesta dirección, que facilitaria tanto el desarrollo de aplicacionesinformáticas.La formalización del proceso de desarrollo se define como un marcode referencia denominado ciclo de desarrollo del software o ciclo devida del desarrollo del software o ciclo de vida del desarrollo. Se puededescribir como, "el período de tiempo que comienza con la decisión dedesarrollar un producto software y finaliza cuando se ha entregadoéste". Este ciclo, por lo general incluye las fases:RequisitosdiseñoimplantaciónpruebainstalaciónaceptaciónEl ciclo de desarrollo software se utiliza para estructurar lasactividades que se llevan a cabo en el desarrollo de un productosoftware. A pesar de que no hay acuerdo acerca del uso y la forma delmodelo, este sigue siendo útil para la comprensión y el control delproceso.Seguidamente se exponen las distintas aproximaciones de desarrollode software, en función del tipo de ciclo de vida:A) Aproximación convencionalSe introdujo por Winston Royce en la década de 1970, como unatécnica rígida para mejorar la calidad y reducir los costos del desarrollode software. Tradicionalmente es conocido como "modelo encascada", porque su filosofía es completar cada paso con un altogrado 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 desoftware y determinar su factibilidad de ciclo de vida y superioridadfrente a otros conceptos.REQUERIMIENTOS: Elaborar una especificación completa y validadade las funciones requeridas, sus interfaces y el rendimiento delproducto de software.DISEÑO: Elaborar una especificación completa y validada de laarquitectura global hardware-software, de la estructura de control y dela estructura de datos del producto, así como un esquema de losmanuales de usuarios y planes de test.
  • 13. DISEÑO DETALLADO: Elaborar una especificación completa yverificada de la estructura de control, de la estructura de datos, de lasinterfaces de relación, dimensionamiento y algoritmos claves de cadacomponente de programa (rutina con un máximo de 100 instruccionesfuentes).CODIFICACION: Construir un conjunto completo y verificado decomponentes de programas.INTEGRACION: Hacer funcionar el producto de software compuestode componentes de programa.IMPLEMENTACION: Hacer funcionar el sistema global hardware-software incluyendo conversión de programas y datos, instalación ycapacitación.OPERACION Y MANTENCION: Hacer funcionar una nueva versióndel sistema global.TRANSICION: Realizar una sucesión limpia de este a otros eventualesproductos.En cada caso, "verificación" tienen la acepción: establecer la verdadde la correspondencia entre un producto de software y suespecificación. Es decir: ¿ESTAMOS CONSTRUYENDOCORRECTAMENTE EL PRODUCTO?Los principales problemas que se han detectado en esta aproximaciónson debidos a que se comienza estableciendo todos los requisitos delsistema:En muchas ocasiones no es posible disponer de unas especificacionescorrectas desde el primer momento, porque puede ser difícil para elusuario establecer al inicio todos los requisitos.
  • 14. En otras hay cambio de parecer de los usuarios sobre las necesidadesreales cuando ya se ha comenzado el proyecto, siendo probables losverdaderos requisitos no se reflejen en el producto finalOtro de los problemas de esta aproximación es que los resultados nose ven hasta muy avanzado el proyecto, por lo tanto la realización demodificaciones, si ha habido un error, es muy costosa.Esta aproximación es la más empleada por los ingenierosinformáticos, aunque ha sido muy criticada, y de hecho se ha puestoen duda su eficacia. Entre los problemas que se pueden encontrar coneste modelo, se tienen:Los proyectos raras veces siguen el modelo secuencial que sesupone. Los cambios pueden causar confusión.Es difícil disponer en principio de todos los requisitos. Este modelopresenta dificultades en el momento de acomodar estasincertidumbres.La versión operativa de los programas no está disponible hasta que elproyecto está muy avanzado. Un error importante puede serdesastroso, si se descubre al final del proceso.Los responsables del desarrollo siempre se retrasaninnecesariamente. Algunos integrantes del equipo de desarrollo hande esperar a otros para completar tareas pendientes.B) Aproximación prototipoEs habitual que en un proyecto software no se identifiquen losrequisitos detallados de entrada, procesamiento o salida. En otroscasos no se está seguro de la eficiencia de un algoritmo, o de la formaen que se ha de implantar la interface hombre-máquina.En casos así, lo habitual es construir un prototipo, que idealmentesirviera como mecanismo para identificar los requisitos del software.
  • 15. Esta aproximación consiste en realizar la fase de definición derequisitos del sistema en base a estos tres factores:Un alto grado de iteraciónUn muy alto grado de participación del usuarioUn uso extensivo de prototiposLas premisas clave de esta aproximación son:Que los prototipos constituyen un medio mejor de comunicación quelos modelos en papelQue la iteración es necesaria para canalizar, en la dirección correcta,el proceso de aprendizaje. Esta aproximación se enfoca a mejorar laefectividad del proceso de desarrollo y no a mejorar la eficacia de eseproceso.El problema, es que los usuarios finales, ven lo que parece ser unaversión de trabajo del software, sin considerar que no es la versióndefinitiva y por lo tanto no se han considerado aspectos de calidad ofacilidad de mantenimiento. Cuando se les dice, que el producto es apartir de entonces cuando se debe de empezar a "fabricar", no loentiende y empieza de nuevo con ajustes, lo cual hace este procesomuy lento.C) Aproximación evolutivaEn esta aproximación el énfasis está en lograr un sistema flexible yque se pueda expandir de forma que se pueda realizar muyrápidamente una versión modificada del sistema cuando los requisitoscambien.Se diferencia de la aproximación anterior, en que en esta los requisitoscambian continuamente, lo cual implicaría en el caso previo que lasiteraciones no tendrían fin.
  • 16. D) Aproximación incrementalEs un concepto muy parecido al de desarrollo evolutivo, yfrecuentemente comprendido en la aproximación del desarrolloevolutivo. Se comienza el desarrollo del sistema para satisfacer unsubconjunto de requisitos especificados. Las últimas versiones prevénlos requisitos que faltan. De esta forma se logra una rápidadisponibilidad del sistema, que aunque incompleto, es utilizable ysatisface algunas de las necesidades básicas de información.La diferencia con la aproximación anterior es que en este caso cadaversión parte de una previa sin cambios pero con nuevas funciones,mientras que la aproximación evolutiva cada vez se desarrolla unanueva versión de todo el sistema.Un ejemplo de este paradigma se tiene en el desarrollo de unaaplicación sencilla, como es un editor de textos. En el primerincremento se podría desarrollar con un reducido conjunto defunciones, como las funciones básicas de gestión de archivos. En unsegundo incremento, se puede incluir la gestión avanzada de textos. Yen 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 nuevocomponente, el análisis de riesgos. Esquemáticamente se puedeilustrar mediante una espiral, con cuatro cuadrantes que definenactividades.En la primera vuelta de la espiral se definen los objetivos, lasalternativas y las restricciones y se analizan y se identifican losriesgos. Si como consecuencia del análisis de riesgo se observa quehay incertidumbre sobre el problema entonces en la actividadcorrespondiente a la ingeniería se aplicará la aproximación prototipo
  • 17. cuyo beneficio principal es el de reducir la incertidumbre de lanaturaleza del problema de información y los requerimientos que losusuarios establecen para la solución a ese problema.Al final de esta primera vuelta alrededor de la espiral el usuario evalúalos productos obtenidos y puede sugerir modificaciones. Secomenzaría avanzando alrededor del camino de la espiral realizandolas cuatro actividades indicadas a continuación. En cada vuelta de laespiral, la actividad de ingeniería se desarrolla mediante laaproximación convencional o ciclo de desarrollo en cascada omediante la aproximación de prototipos.ActividadesAccionesPlanificación Determinación de alternativas, identificación y resoluciónde riesgosIngenieríaDesarrollo y verificación del producto de siguiente nivelEvaluación del clienteValoración de los resultados del proceso de desarrolloF) Aproximación basada en transformacionesCon la aparición de las herramientas CASE junto con los generadoresde código, el ciclo de desarrollo software en cascada ha cambiado aun ciclo de vida basado en transformaciones.CASE (Computer Aided Software Engineering), en castellano"Ingeniería de software Asistida por Computadora", es un conjunto demé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 ciclode vida del software. Este ciclo de vida se puede considerar como unaserie de transformaciones. Primero se definen los requisitos delsistema, seguidamente existe un proceso de transformación que haceque la especificación se convierta en un diseño lógico del sistema.Posteriormente, este sufre otro proceso de transformación para lograrun diseño físico, es decir que responda a la tecnología destino.La tecnología CASE propone que estos procesos de transformaciónsean lo más automatizables posible. Sus ventajas son:Posibilidad de comprobación de errores en etapas iniciales dedesarrolloPosibilidad de realizar el mantenimiento en el ámbito de especificaciónSoporte de rastreabilidad de los requisitosSoporte de reusabilidadPotencia la especificación orientada al problemaG) Programación extremaLa Programación Extrema (PX), mejor conocida por su nombre eninglés "Extreme Programming" (XP), es una de las llamadasMetodologias Agiles de desarrollo de software más exitosas de lostiempos recientes. Cada día se genera incontable información sobre eltema, generalmente en inglés; fue formulada por Kent Beck, autor delprimer libro sobre la materia,"Extreme Programming Explained:Embrace Chang".Las fundamentales del método son:Desarrollo iterativo e incrementalPruebas unitarias continuas,
  • 19. Programación por parejas de personasFrecuente interacción del equipo de programación con el clienteCorrección de todos los errores antes de añadir nueva funcionalidad.Refactorización del códigoPropiedad del código compartidaSimplicidad en el códigoUn ejemplo de un caso en el que se aplicó esta metodología fue enla identificación mediante el ADN de las víctimas del atentado del 11de septiembre de 2001 en Nueva York (EE.UU.)
  • 20. APLICACIÓNLA APLICACIÓN PRÁCTICA DEL CONOCIMIENTO CIENTÍFICO ALDISEÑO Y CONSTRUCCIÓN DE PROGRAMAS DE COMPUTADORAY A LA DOCUMENTACIÓN ASOCIADA REQUERIDA PARADESARROLLAR, OPERAR Y MANTENERLOS. SE CONOCETAMBIÉN COMO DESARROLLO DE SOFTWARE O PRODUCCIÓNDE SOFTWARE.