Vous êtes sur la page 1sur 60

UNIVERSIDAD CENTRAL DE CHILE FACULTAD DE INGENIERIA ESCUELA DE INDUSTRIAS

GESTION DE TECNOLOGIAS DE LA INFORMACION


Alejandro Sanhueza Olave Alejandro.sanhueza@ucentral.cl

2014

Unidades
Unidad I: Introduccin. Unidad II: Paradigmas de la Ingeniera Informtica. Unidad III: Metodologas Orientadas a Objetos Unidad IV: Gestin de la Calidad en Tecnologas de

Informacin.
Unidad V: Gestin de Calidad de Servicios provistos por Tecnologas de la Informacin.

Metodologa
Clases interactivas, anlisis de casos, simulaciones y ejercicios de aplicacin.

Evaluaciones
Parcial 1 [Grupal Max. 2] 30 % Parcial 2 (*) 30 % Controles / Talleres / Casos Proyectos (Promedio) 40 % [Individual]

(*)La Prueba 2 es acumulativa; es decir, considera las unidades previas.

Bibliografa
Ingeniera de Software un Enfoque Prctico, Roger Pressman, 6ta E.D. Mac Graw Hill A Method for Your Object-Oriented Project, Ari Jaaksi vol10 No 9, January 1998, pp 17 - 25. Tried & True Object Development with UML, Ari Jaaksi Juha Aalto Ari Aalto Kimmo Vatto, ED Cambridge University Press - Sigs Book El Proceso Unificado de Desarrollo de Software, Ivar Jacobson Grady Booch James Rumbaugh, ED. Addison Wesley Estndar ESA

UNIVERSIDAD CENTRAL DE CHILE FACULTAD DE INGENIERIA ESCUELA DE INDUSTRIAS

Unidad I: Introduccin.

Conceptos
Computador:
Es una mquina electromecnica que permite resolver problemas.

Hardware:
Es el conjunto de elementos tangibles de un computador.

Software:
El software es la parte intangible de un computador. Es el producto que disean y construyen los Ingenieros de Software y/o Analistas de Sistemas.

Programa de Computadora:
Es un conjunto de instrucciones o sentencias escritas en Lenguaje de Programacin que son interpretados por un computador y permiten resolver un problema. Es un tipo de software.
2014

Evolucin del Software


Nueva Revolucin Industrial.[Osborne]. Tercera Ola [Toffler] Sociedad de la Informacin .[Feigenbaum y McCorduck] Internet se masifica. Resurreccin del Programador .

1970

1980

1990

2000

Cambio de poder. Democratizacin del Conocimiento.[Toffler] Caida de las viejas instituciones de Poder.

Computacin Omnipresente

Evolucin del Hardware

Un algoritmode la vida real


Se cuece el arroz en el doble de agua de su cantidad con un poquito de sal y aceite por espacio de unos 20 minutos. En una sartn se calienta el aceite se dora la cebolla y el ajo, se echa el tomate, el laurel y el organo. Se completa con vino blanco, se retira el laurel, se le suma el camarn, el caldo, el pimiento cuando haya cocido un poco para que se evapore el vino se le echa el arroz ya cocido, el cilantro y la sal. Mezclar bien.

Concepto de Algoritmo e Importancia


Algoritmos Es un conjunto de pasos lgicos y estructurados que nos permiten dar solucin a un problema. La importancia de un algoritmo radica en desarrollar un razonamiento lgico matemtico a travs de la comprensin y aplicacin de metodologas para la resolucin de problemticas.

No podemos apartar nuestra vida cotidiana los algoritmos, ya que al realizar cualquier actividad diaria los algoritmos estn presentes aunque pasan desapercibidos, por ejemplo: Al levantarnos cada da para hacer nuestras labores hacemos una serie de pasos una y otra vez; eso es aplicar un algoritmo.

Caractersticas de los algoritmos

Precisin: Los pasos a seguir del algoritmo se deben precisar claramente. Determinsticos: El algoritmo dado un conjunto de datos de entrada idntico, siempre debe arrojar los mismos resultados. Finitud: El algoritmo independiente de la complejidad del mismo debe tener longitud finita.

Mdulos de un Algoritmo

Entrada

Proceso

Salida

Entrada: Es la introduccin de datos para ser transformados. Proceso: Es el conjunto de operaciones a realizar para dar solucin al problema. Salida: Son los resultados obtenidos a travs del proceso..

Metodologa para la Resolucin de Problemas por medio de un Algoritmo


Definicin del Problema. Anlisis. Diseo. Codificacin. Prueba. Documentacin. Mantencin.

Metodologa para la Resolucin de Problemas por medio de un Algoritmo


Definicin del problema: En esta etapa se deben establecer los resultados y objetivos que se desea para poder saber si los datos que se tienen son suficientes para lograr los fines propuestos. Anlisis: Una vez definido el problema se debern organizar los datos de tal manera que sean susceptibles de usar en los clculos siguientes. Diseo: En esta etapa se proponen soluciones a los problemas a resolver, por lo que se realiza una toma de decisiones aplicando los conocimientos adquiridos y utilizando los datos existentes.

Metodologa para la Resolucin de Problemas por medio de un Algoritmo


Codificacin: Consiste en construir el algoritmo en algn lenguaje de programacin: Java, C, C++,C#, Visual Basic, Python, etc. Verificacin o prueba de escritorio: Se consideran resultados previstos para datos conocidos a fin de que al probar cada una de sus partes y podamos ir comprobando que el algoritmo sirve o requiere modificarse. Documentacin: Registro escrito del proceso de resolver el problema y cmo se enfrent la solucin. Mantencin: Cambios o modificaciones que se realizan al algoritmo por diversas razones: Corregir Errores, Actualizacin, Cambio externo(Nueva Ley), etc.

Conceptos
Software:
1) 2) El software es un elemento del sistema que es lgico, en lugar de fsico. El software de computadora es el producto que disean y construyen los Ingenieros de Software.

Ingeniera de Software:
1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin(funcionamiento) y mantenimiento del software; es decir, la aplicacin de ingeniera al software. 2) Es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar (funcionar) y mantenerlos. Se conoce tambin como desarrollo de software o produccin de software

Caractersticas del Software 1/3


Roger S. Pressman plantea en su libro Ingeniera de Software: Un Enfoque Prctico las siguientes caractersticas del software. El software se desarrolla, no se fabrica en un sentido clsico. Aunque existen similitudes entre el desarrollo del software y la construccin del hardware, ambas actividades son diferentes. En ambas actividades la buena calidad se adquiere mediante un buen diseo, pero la fase de construccin del hardware puede introducir problemas de calidad que no existen (o son fcilmente corregibles) en el software. Ambas actividades dependen de las personas. Ambas actividades requieren la construccin de un "producto" pero los enfoques son diferentes. Durante su vida, el software sufre cambios (mantenimiento). Conforme se hacen los cambios, es bastante probable que se introduzcan nuevos defectos. Cuando un componente de hardware se estropea se sustituye por una pieza de repuesto. No hay piezas de repuesto para el software.
2013

Caractersticas del Software 2/3


El software no se "estropea o hecha a perder. El software no es susceptible a los males del entorno que hacen que el hardware se estropee o falle. Por tanto, en teora, la curva de fallos para el software tendra la forma
Software Hardware
Indice de fallas

Caractersticas del Software 3/3


Aunque la industria tiende a ensamblar componentes, la mayora del software se construye a medida. Los componentes reutilizables se han creado para que el ingeniero pueda concentrarse en elementos verdaderamente innovadores de un diseo. En el mundo del hardware, la reutilizacin de componentes es una parte natural del proceso de ingeniera. En el mundo del software es algo que slo ha comenzado a lograrse en una escala amplia.

Empresa / Organizacin
Organizacin:
Es un sistema de actividades o grupo social que est compuesto por un conjunto heterogneo de personas organizados para satisfacer una necesidad determinada por medio de la gestin de recursos humanos y materiales.

Empresa:
Es un tipo de organizacin que persigue la consecucin de un determinado objeto que puede o no estar relacionado con la obtencin de utilidades.

Pirmide de la empresa y las TI


Estratgico: Gerentes, Miembros del Directorio, Vicepresidentes, Presidentes , etc. Tctica: Sub-Gerentes, Jefes de rea o Departamento. Etc. Operaciones: Cajeros, Secretarias, Recepcionistas, contador, etc.

Tecnologas de la Informacin

Concepto de Administracin
Ciencia social o Tecnologa Social y Tcnica encargada de la planificacin, organizacin, direccin y control de los recursos (humanos, financieros, materiales, tecnolgicos, el conocimiento, etc) de la organizacin, con el fin de obtener el mximo beneficio posible; este beneficio puede ser econmico o social, dependiendo esto de los fines perseguidos por la organizacin.

Concepto de Administracin

La Administracin y los nuevos Sistemas de Informacin


La aplicacin de la tecnologa de la computacin para la administracin de la informacin y sistemas de apoyo a las decisiones ciertamente ha tenido un efecto en la manera en que los administradores desempean sus labores y en como se comportan las organizaciones. Uno de los primeros estudios del impacto de la computarizacin sugiri que podra haber una estructuracin cada vez mayor de la administracin de mandos medios a un nivel ms alto para algunas posiciones de la administracin de mandos medios, ms diferencias entre la alta y la administracin de mandos medios, y una recentralizacin de la organizacin.

La Administracin y los nuevos Sistemas de Informacin


El principal efecto de la computarizacin en las organizaciones ha sido: 1) La capacidad para automatizar y realizar procesos con precisin y velocidad inusitada.

El reto para la administracin es explotar estas nuevas tecnologas, para cuestionar el status quo de la organizacin, y para controlar el cambio; ms que trabajar para prevenir o limitarlo, con un enfoque de mejora continua.

La Administracin y los Nuevos Sistemas de Informacin


SISTEMA 1) Un sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo en comn. 2) Conjunto de partes o elementos organizadas y relacionadas que interactan entre s para lograr un objetivo. SISTEMA DE INFORMACION (SI) 1) El conjunto sistemtico y formal de componentes, capaz de realizar operaciones de procesamiento de datos 2) Es una combinacin de personas, tecnologa y procesos que permiten capturar, transmitir, retornar y desplegar informacin.

La Administracin y los Nuevos Sistemas de Informacin


Competidor 1

Diagrama Genrico de un SI

ENTRADAS

SALIDAS

PROCESOS

DATOS

INFORMACIN

Retroalimentacin

Competidor 2

Componentes de un Sistema de Informacin (SI)


Entradas: Conjunto de datos que alimentan el sistema. Salidas: Conjunto de datos que entrega como resultado el sistema Medio ambiente: Es el medio con el que interacta el sistema o todo lo que rodea al sistema incluida la competencia. Todo aquello que no pertenece al sistema, pero que influye en l. Retroalimentacin: Se refiere al anlisis del resultado o salidas de un proceso para la mejora del mismo. El propsito de la retroalimentacin es el mantenimiento de la homeostasis o estado estable un sistema. Lmites: Es la regin que separa a un sistema de otro cuya funcin es filtrar o seleccionar entradas y salidas.

Sistemas Cerrados y Abiertos


Un sistema cerrado es aquel no intercambia
energa con su medio.

El sistema abierto es aquel que transa con su


medio.
En la realidad, todos los sistemas son abiertos. Los sistemas cerrados son construcciones abstractas tiles para el anlisis y diseo de sistemas a nivel terico.

Tipos de Sistemas de Informacin


Clasificacin de los Sistemas de Informacin (Senn, J.)
Sistema para el Procesamiento de Transacciones: Apoya procesos rutinarios bien estructurados (ejemplo: facturacin, depsito de cheques, etc.) Sistema de Informacin Administrativa: Apoya en procesos de decisiones administrativas en situaciones bien estructuradas (ejemplo: informacin agregada respecto a las inscripciones de cursos por carrera). Sistemas de soporte de decisiones: Apoya la toma de decisiones en circunstancias que no estn bien estructuradas
Apoyo a la toma de Decisiones NO estructurada o semiestructurada: no existen reglas claras y tampoco es posible identificar, con anticipacin, todos los factores que se deben considerar en la decisin.

Cul fue el Problema ?

UNIVERSIDAD CENTRAL DE CHILE FACULTAD DE INGENIERIA ESCUELA DE INDUSTRIAS

Unidad II: Paradigmas de la


Ingeniera de Software.

Conceptos
Ingeniera de Software:
1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable

al desarrollo, operacin(funcionamiento) y mantenimiento del software; es decir, la aplicacin de ingeniera al software. 2) Es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar (funcionar) y mantenerlos. Se conoce tambin como desarrollo de software o produccin de software

La Ingeniera de Software: Un enfoque estratificado.

Herramientas
Mtodos Procesos

Enfoque de calidad

La Ingeniera de Software: Un enfoque estratificado.


La ingeniera de software es una tecnologa multicapas. Un enfoque de calidad: Cualquier enfoque de ingeniera debe aplicarse basado en un enfoque de calidad. Procesos: El proceso define un "marco de trabajo" para un conjunto de reas claves de proceso. Las reas claves del proceso forman la base del control de gestin de proyectos del software y establecen el contexto en el que se aplican los mtodos tcnicos, se obtienen productos del trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.

La Ingeniera de Software: Un enfoque estratificado.


Mtodos: Indican cmo construir tcnicamente el software. Los mtodos abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Herramientas: Proporcionan un enfoque automtico o semiautomtico para el proceso y para los mtodos. Cuando se integran herramientas para que la informacin creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte para el desarrollo del software llamado Ingeniera del Software Asistida por Computadora (CASE).

La Ingeniera de Software: Un enfoque estratificado.

Metodologa de Desarrollo
Qu es una metodologa ? Desde el punto de vista del desarrollo de software: Es un modo sistemtico de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas probabilidades de xito.

Objetivo de una Metodologa


Lo que buscamos guindonos con una metodologa es prolijidad, correccin y control de cada etapa del desarrollo de un programa(software). Lo que nos permitir una forma sistemtica para poder obtener un producto correcto y con la menor cantidad de errores posible.

Ciclo de Vida del Producto Software

Ciclo de Vida Lineal

Ciclo de Vida Lineal


Es el ms sencillo de todos los modelos. Consiste en descomponer la actividad del proyecto en etapas separadas que son realizadas de manera lineal.

Las actividades de cada etapa son independientes entre si; es decir, es condicin primordial que no exista retroalimentacin entre ellas.

Ciclo de Vida Lineal


Ventajas:
Sencillez de su gestin. Orientado a un sector pequeo de una empresa.

Desventajas:
No es apto para desarrollos que superen mnimamente requerimientos de retroalimentacin.

Ciclo de Vida Cascada [Modificada]

Ciclo de Vida Cascada [Modificada]


Propuesto Winston Royce en 1970. Admite iteraciones. Despus de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente fase. Es un modelo rgido, poco flexible y con muchas restricciones. Sirve de base para los modelos de ciclos de vida posteriores.

Ciclo de Vida Cascada [Modificada]


Ventajas:
Planificacin sencilla. Provee un producto de elevada calidad.

Desventajas:
Se debe contar con todos los requerimientos o la mayora al inicio del proyecto. Los resultados NO los veremos hasta que estemos en las etapas finales. Si los errores NO se detectan oportunamente pueden tener un alto costo.

Ciclo de Vida por Prototipos

Ciclo de Vida por Prototipos


Ventajas:

Se puede utilizar cuando NO se tienen claros los requerimientos. Facilita el desarrollo de software cuando el cliente NO tiene claro lo qu quiere como producto. Permite validar (o no) los requerimiento obtenidos previamente y obtener otros nuevos. Permite tener una aplicacin funcional, pero que NO est terminada y menos aun lista para entrar en produccin.

Desventajas:
El cliente puede creer errneamente que el software est terminado en un 100% y listo para pasar a un ambiente productivo. Se debe complementar con otra metodologa para generar el producto final.

Ciclo de Vida En V

Ciclo de Vida En V
Diseado por Alan Davis y contiene las mismas etapas que el ciclo en cascada puro, pero se le agregan 2 subetapas de retroalimentacin entre las etapas de anlisis y mantenimiento., y entre las de diseo y debugging. Este modelo nos ofrece mayor garanta de correccin al terminar el proyecto.

Ciclo de Vida En V
Ventajas: (Igual que el ciclo de vida anterior)
Planificacin sencilla. Provee un producto de elevada calidad.

Desventajas:(Igual que el ciclo de vida anterior)


Se debe contar con todos los requerimientos o la mayora al inicio del proyecto. Los resultados NO los veremos hasta que estemos en las etapas finales. Si los errores NO se detectan oportunamente pueden tener un alto costo.

Ciclo de Vida Sashimi o Cascada con Traslape


Es parecido al cascada puro, pero con al diferencia que en ste se pueden solapar las etapas entre s. Esto aumenta la eficiencia ya que la retroalimentacin entre etapas se encuentra implcitamente en el modelo de ciclo de vida.

Ciclo de Vida Sashimi o Cascada con Traslape


Ventajas:
Ganancia en calidad respecto del producto final.

Desventajas:
Debido al solapamiento de etapas se hace difcil determinar el inicio y fin de cada una de ellas. Los problemas de comunicacin generan

Ciclo de Vida Cascada con Sub Proyectos

Ciclo de Vida Cascada con Sub Proyectos


Ventajas:
Se puede tener ms gente trabajando al mismo tiempo.

Desventajas:
Pueden surgir dependencias entre distintas subetapas que detengan el proyecto temporalmente. Se deben cuidar muy bien los tiempos.

Ciclo de Vida Iterativo

Ciclo de Vida Iterativo


Ventajas:
Permite reducir los riesgos propios del desarrollo con cascada puro. El cliente puede ver una versin previa mejorada o con mayores funciones del software. Se puede utilizar cuando NO se tienen claros los requerimientos.

Desventajas:
Se debe evaluar el esfuerzo y cantidad de iteraciones necesarias para construir cada entrega.

Ciclo de Vida en Espiral

Ciclo de Vida en Espiral


Ventajas:

Permite hacer frente a proyectos con alto grado de incertidumbre. Ideal para proyecto donde No se tienen claros los requerimientos al iniciar. Fcilmente se pueden corregir errores en las etapas siguientes del espiral

Desventajas:
Costo temporal de cada iteracin o ciclo completo.

Ciclo de Vida giles o Metodologas giles


Metodologas giles (Ver Apuntes Scrum y XP) Manifiesto gil. Scrum XP