Aspectos de Economia en la Computacion Dr. Pedro Mejia Alvarez. CINVESTAV-IPN, Mexico.

Post on 23-Jan-2016

222 views 0 download

Transcript of Aspectos de Economia en la Computacion Dr. Pedro Mejia Alvarez. CINVESTAV-IPN, Mexico.

Aspectos de Economia en la Computacion

Dr. Pedro Mejia Alvarez.

CINVESTAV-IPN, Mexico.

1. Introduccion

• Como se ve afectada la economia por la Industria de la Computacion ?

• Que tipos de Industrias de Software hay cual es su influencia en la Economia de algun pais.

• Economia del proceso de Desarrollo de Software.

• Casos Tipicos: Comercio Electronico, Software de Telecomunicaciones, Software de Entretenimiento.

• Grandes Industrias de Desarrollo de Software: Microsoft, IBM, Netscape, Sun, Akamai, etc.

1.1. Software: un bien unico

• El software, asi como la informacion no es un bien material. Este hecho lo hace dificil de cuantificar.

• Requiere de un medio de almacenamiento y acceso.• Requiere de continuo mantenimiento.• El software requiere siempre de un medio de ejecucion. Una

computadora o un dispositivo que incluya un microprocesador.• Requiere de un gran costo de desarrollo y mantenimiento, pero de un

costo pequeño de almacenamiento y reproduccion.• Se mide y se paga por el, por los servicios que provee y por como se ve,

y no por su peso o tamaño.• Puede ser utilizado para sustituir algunos servicios que anteriormente

realizaban personas.• No solo se ejecuta sobre PC’s, estaciones de trabajo o super-

computadoras.

1.2. Ejemplos de Sistemas de Computo

Sistema de oficina y equipo mobiles

Sistemas en Edificios Fabricacion y control de procesos

Maquinas contestadoras

Copiadoras

Faxes

Laptops y notebooks

Telefonos moviles

PDAs, Organizadores personales

Still and video cameras

Sistemas de Telefonia

Grabacion de tiempo

Impresoras

Hornos de Microondas

Aire acondicionado

Respaldo y generadores de luz

Administracion de edificios

Television por cable

Controladores de Fuego

Calefaccion y Ventilacion

Elevadores, Escaleras

Iluminacion

Seguridad

Camaras de Seguridad

Extintores

Fabricas automatizadas

Plantas embotelladoras

Sist. Control de energia

Plantas de manufactura

Estaciones nucleares

Refinerias y almacenes relacionados

Sistemas de Energia

Estaciones de Poder

Robots

Sistemas de switching

Sist. Agua y alcantarillado

1.2. Ejemplos de Sistemas de Computo

Transporte Comunicaciones Otros equipos

Aereoplanos

Trenes

Autobuses

Barcos

Muelles

Automobiles

Cntr.de Trafico aereo

Sist. de senalizacion

Radares

Luces de Trafico

Maquinas de boletos

Camaras de velocidad

Detects.de velocidad

Telefonia

Cable

Switches de telefonos

Satelites

Posicionamiento Global

Maquinas contestadoras

Sist. Tarjetas de credito

Equipos de Imagenes Medicas

Ctrl. De calefaccion domestica

VCRs

1.3. Software: una Industria unica

• Los productos de software nacen de alguna necesidad de la sociedad.

• La Industria del Software es distinta a otras industrias. Su cadena de produccion es unica. La cadena de produccion de software esta poco entendida, y carece de estandares.

• El software se compone de diversos modulos desarrollados por distintas empresas.

• Es facil crear una Industria de Software, pero es dificil mantenerla en operación.

• Monopolios del Software: Por que fueron creados, y por que siguen operando ?.

• Startups: Fabricas de Software de Alta Tecnologia.

1.4. Clasificacion de Industrias de Software

De desarrollo de Productos de Software: Se venden en cualquier parte– Herramientas: bases de datos, compiladores, web-browsers, hojas de calculo

y procesamiento de texto.– Software de Entretenimiento.

De desarrollo de aplicaciones a la medida: se realizan bajo contrato.– Administrativas, bancarias, comerciales y legales.– Telecomunicaciones: telefonia, satelites, aeropuertos.– Medicas.– Criticas: avionica, trenes, industrias nucleares.– Embebidas

De desarrollo de productos de acceso masivo: se accesan en el web.– Comercio electronico, internet y busqueda de informacion. – Software de Libre distribucion

2. Tecnologias de la Informacion

• El software consiste de instrucción que ejecutan sobre una computadora (hardware) para realizar algun servicio a un usuario.

• La tecnologia de la Informacion se creo con el fin de adquirir, manipular, y obobtener informacion.

• La informacion puede ser: texto, imágenes, audio, etc).

• IT: procesamiento, almacenamiento, y comunicación.

• El tener acceso a las tecnologias de la informacion permite mejorar la economia.

2.1. Rol de la Ingenieria de Software en IT

Arquitecturas y metodos de diseño

GrandesComponentes de IT

Ingenieria de software Sistemas Grandes=

Redes

OS, DBMS,Middleware

AI, Agentes

Aplicaciones de suaurio

Interfaces de Usuarios Desarrolladores Usuarios Operacionales

Procesos deEspecificacionDesarrollo,Evaluaciony Evoluciondel Sistema

Modeacion y analisis

IHM & Colaboracion

Aplicaciones de usuario

AdministracionDel sistema

Conectividad &Acceso a la informacion

Tecnologiasde Calidadde Servicio

Prueba y verificacionEvaluacion del uso

++

3. Aspectos y perspectivas que afectan al software comercial

Perspectivas:

• Usuarios, desarrolladores, administradores, abogados, dueños, economistas.

Aspectos:

• Tecnologia: caracteristicas tecnicas del software y su ambiente de ejecucion.

• Procesos: pasos requeridos para el desarrollo, entrega, y uso del software.

• Valor: valor agregado del software.

3.1. Aspectos y perspectivas que afectan al software comercial

Tecnologia Processos Valor

Necesidades (usuarios)

Diseño(Ingenieros de software)

Flexibilidad

Representacion, languajes, execucion, portabilidad, modularidad

Seguridad y privacidad

Arquitectura, composicion vs. decomposicion, estandardizacion

Funcionalidad Impacto

Requerimientos, funcionalidad, calidad, desempeño P

arti

cip

ante

s

3.2. Aspectos y perspectivas que afectan al software comercial

Tecnologia Procesos Valor

Roles (administradores)

Aspectos legales y de normas (abogados y reguladores)

Organizacion Industrial (propietarios)

Infraestructura

Propiedad Intelectual (papentes, copyright, convenios)

Componentes. Portabilidad

Desarrollo

Provisionamiento

Operacion

Licensiacion,

Patentes de procesos,

“antitrust”

Licenciar vs susbribir,

Outsourcing

Usos

Propiedad,

Marcas registradas (trademark)

Entrega de software, desarrollo tipo outsourcing, integracion de sistema, provicion de servicio

Fac

ilita

dor

es

3.3. Aspectos y perspectivas que afectan al software comercial

Tecnologia Procesos Valor

Economia (economistas)

Costos

Relaciones de negocios, terminos y condiciones

Oferta,

Demanda,

precios

Ob

serv

ador

es

4. El Software desde la Perspectiva del Usuario

• A mi como usuario que me podria proporcionar el software ?.

• El proposito principal del software es servir a las necesidades del usuario final, asi sea un individuo, grupos, organizaciones, al comercio en general, o a la sociedad en general.

• Para el usuario, el impacto del uso de la tecnologia de software, consiste en la necesidad de adquirir, operar y utilizar el software para una aplicacion especifica que satisfaga sus demandas y necesidades.

• Ventajas del uso del software: Ahorra trabajo el software, automatiza procesos, agiliza el trabajo, distribuye el trabajo,

• Desventajas del uso del software: sustituye personal, requiere altos conocimientos tecnicos para desarrollarlo y (tal vez para) operarlo, dificultad en la compra del software (no se sabe si es barato o caro).

4. El Software desde la Perspectiva del Usuario

• Productividad e Impacto.

• Efectos de Red.

• Usabilidad.

• Calidad y Desempeno

• Seguridad y Privacia

• Composabilidad.

4.1. Productividad e Impacto

• Una forma de evaluar una aplicación de software en una Industria es mediante el impacto que ha tenido en la organización (o usuarios individuales), en su desempeño o su valor agregado.

• El software puede mejorar la productividad de la organización.

• El software puede permitir una mayor colaboracion entre los miembros de la organizacion.

• El software puede lograr llevar una mejor administracion de los conocimientos de la empresa.

• Software puede lograr cosas dentro de la organización que por ningun otro medio se podrian lograr.

4.2. Efectos de Red

El contar con una red de computo puede ayudarme a:• incrementar el numero de usuarios que colaboran entre si.• acceso de varios usuarios a una sola fuente de informacion• Acceso de un usuario a varias fuentes de informacion.

Efecto de red directa:• La aplicación de software soporta la interaccion directa entre distintos

usuarios, y su valor se incrementa cuando mas usuario la utilizan. El primer usuario no introduce ningun valor:

• Ejemplo: aplicación de video conferencias. Efectos secundarios de la red:• Contenido de la informacion en la red, o de los servicios que son

posibles accesar, asistencia tecnica necesaria.

4.3. Uso del Software

El uso del software tiene mas valor entre mas usuarios existan

El uso tiene dos factores:

• Numero de usuarios

• Cantidad de tiempo que cada usuario gasta en dicha aplicación de software.

• Tiempo que lleva en aprender a utilizar la aplicación de software.

4.4. Calidad y Desempeño.

La calidad del software podria medirse de acuerdo a:

• La funcionalidad del software.

• La severidad de sus defectos.

• El grado de dificultad para utilizar el software.

El desempeño podria medirse de acuerdo a:

• Volumen de trabajo realizado (p.ej numero de paginas de web servidas

por unidad de tiempo).

• Rapidez de acceso a la informacion yo a los servicios de la aplicación.

• Grado de interactividad.

• Grado de mantenimiento y mejoras.

4.5. Seguridad y Privacia

• La seguridad consiste en evitar ataques externos que revelen secretos

organizacionales o produzcan daños al sistema, al software o a la

informacion.

• La privacia consiste en eliminar la posible injerencia de usuarios externos en las actividades de la empresa o en las actividades de algun individuo en particular.

• Existen politicas para crear uan seguridad y privacia en las Industrias.

• Estas politicas definen que acciones son posibles y cuales no en el acceso a la informacion o el sistema de una Industria.

• La seguridad implica tambien, el acceso ordenado a los datos que derive en una consistencia de los mismos.

4.6. Flexibilidad y Extensibilidad

• En aplicaciones de software de negocios es importante la flexibilidad debido a que las aplicaciones cambian constantemente.

• Existen cambios frecuentes de usuarios del software, re-organizacion del negocio o de la empresa, o cambios a productos existentes o a nuevos productos o servicios.

• Las organizaciones que son usuarios finales del software, por lo general hacen grandes inversiones cuando adoptan nuevas tecnologias de software o de informacion. Especialmente en la re-organización del negocio o de los procesos de la empresa.

4.7. Composabilidad.

• Una solucion de software cerrada ofrece mas valor si se combina con otras soluciones de software que proporcionen mayor funcionalidad.

• Ejemplo: Aplicaciones de MS-Office, como Word, Excel, en donde es posible compartir informacion entre estas aplicaciones.

• Se obtiene un mayor valor si se consigue conjuntar diversas aplicaciones de negocios para realizar aplicaciones conjuntas o acceso compartido.

5. Perspectiva del Ingeniero de Software.

La funcion principal de un Ingeniero de Software es el desarrollo de software de aplicaciones(que incluye diseno, implementacion, mantenimiento, pruebas, mantenimiento y mejoras).

• Tecnologia avanzada• Ejecucion de programas• Proceso de Desarrollo de Software• Construccion de Software.• Impacto de la red.• Estandarizacion.

5.1. Teconologia Avanzada.

• El procesamiento, almacenamiento y las comunicaciones se encuentran en una etapa de muy rapido crecimiento en terminos de costo por unidad y desempeno.

• El desempeño de las computadoras ha crecido al doble cada 1.5 o 2 años, y mas rapido para los dispositivos de almacenamiento y comunicaciones.

• Los proveedores de tecnologia hacen inversiones de nuevas tecnologias de acuerdo a las ganacias que se preveen con nuevos productos o servicios, nuevos mercados, tiempos de desarrollo y riesgos esperados.

• Los avances en tecnologia tienen un impacto considerable en la industria del software.

5.2. Ejecucion de Programas.

• Un programa de software conlleva las acciones requeridas para procesar,almacenar, y comunicar informacion. • El software solo no es util, debe ser ejecutado por lo cual

se requiere de un procesador . El procesador contiene un numero finito de instrucciones, y un programa consiste de una secuencia ordenada de estas instrucciones.

• Existe distintos procesadores con distintos conjuntos de instrucciones.

5.2. Ejecucion de Programas.

• En la ejecucion de programas se debe de tener en cuenta:

• Plataforma y ambiente.• Portabilidad.• Compilacion e interpretacion.• Confiabilidad.• Sistema Operativo.

5.3. Proceso de Desarrollo de Software.

• El interes primario de un ingeniero de software es el desarrollo.

• Los programas han alcanzado actualmente un gran tamaño y complejidad que requiere de un especial cuidado para su desarrollo.

• Las limitaciones fisicas (capacidad de procesamiento o de memoria) no son una limitate en la actualidad.

• La mayor limitante consiste en el manejo de la complejidad, el proceso de desarrollo y los recursos financieros disponibles.

5.3. Proceso de Desarrollo de Software.

En el proceso de desarrollo de software es necesario considerar:

• Modelo de Desarrollo: cascada, incremental, espiral, prototipos, etc.

• Metodo de Desarrollo: Funcional, OO, Formal, Reuso, etc.• Herramientas de Desarrollo.• Arquitectura: descomposicion, funcionalidad, interaccion.• Interfaces y API's.• Composabilidad.• Ambiente de Aplicacion: Uniprocesador, Distribuido, Web

5.4. Construccion de Software.

Por que es tan dificil construir software ?Por que no existen estandares o normas en el desarrollo desoftware ?

• Similaridades entre el software y otros bienes de consumo.• Factores que distinguen el software y a su proceso de

desarrollo de otros bienes (p.ej. automobiles).• Existen Fabricas de Software ?• Fabrica de Software vs Fabrica de Automobiles

5.5. Estandarizacion.

Un estandard industrial abierto es un conjunto deespecificaciones bien documentadas de un proceso, productoo servicio, sin restricciones de propiedad intelectual

Estandares conocidos:Productos: Compiladores, SO's (UNIX, DOS, POSIX), MPEG (video), lenguajes (Ansi C, Cobol, Fortran, Pascal,JAVA), Internet (FTP, TELNET, HTML, XML, VDRL)Procesos o Modelos: OO, UML, GUI's, CASE.Redes: TCP/IP, OSI.Calidad: ISO, SPICE, CMM,

5.6. Impacto de las Redes.

Impacto de la Internet (o de las redes de computadoras) en elSoftware:

• Conectividad, • Interactividad, • Portabilidad (ambientes heterogeneos), • Interoperabilidad (incremento en capacidad y en

memoria),• Transportabilidad (codigo mobil),

6. Perspectiva del Administrador del Sistema.

Administracion del Software

• Son las actividades que permiten asegurar que el software se lleva a cabo a tiempo y de acuerdo a la planificación así como de acuerdo a los requerimientos del software.

• Ademas, la administracion se encarga de la planeacion, organizacion de la empresa de software, de las finanzas, y de la venta del producto o sistema y del soporte tecnico.

• Actividades: Desarrollo, provisionamiento, operacion y uso.

• Costos totales del sistema.

6.1. Perspectiva del Administrador del Sistema.

Administracion del Software

• La Ingeniería de software es una actividad económica importante, que esta sujeta a restricciones económicas y a restricciones no técnicas.

• Los proyectos bien administrados a veces fallan. Los proyectos mal administrados siempre fallan.

• Un buen producto no siempre se vende, pero un mal producto nunca se vende.

6.2. Fases de la cadena de trabajo del administrador del software

Planeacion Construccion Procuracion Mantenimiento Evolucion

Requerimientos

funcionales y de

desempeño

Construccion del Sistema

Soporte de Herramientas de Software

Reparacion de defectos, mejora del desempeño

Evaluacion de requerimientos,

y mejoras

Des

arol

lo

6.3. Fases de la cadena de trabajo del administrador del software

Planeacion Construccion Procuracion Mantenimiento Evolucion

Diseño organizacional,

requerimientos

de desempeño

Instalacion, integracion, configuracion y pruebas

Procuracion de software y hardware, finanzas.

Instalacion, integracion, configuracion y pruebas

Pro

visi

onam

ien

to

6.4. Fases de la cadena de trabajo del administrador del software

Planeacion Construccion Procuracion Mantenimiento Evolucion

Administracion del sistema

Seguimiento

Op

erac

ion

6.5. Fases de la cadena de trabajo del administrador del software

Planeacion Construccion Procuracion Mantenimiento Evolucion

Organizacion Ajustes organizacionales y entrenamiento

Soporte tecnico y consultoria

Organizacion y entrenamiento

Uso

6.6. Retos del Administrador de Software• Que software diseñar ?, por que ?, con que calidad ?• - necesidades de usuarios vs necesidades del negocio• con quien asociarse para diseñar ? en donde ?

- personal, organizacion, outsourcing;• Como disenar el software ? cuando; en que orden?

-Procesos, metodos, herramientas, componentes, software y hardware de soporte

• Como adaptarse al cambio ?-necesidades de los usuarios, tecnologia, necesidades del mercado, riesgos

• Que tanto es suficiente ?-Funcionalidad, calidad, especificacion, prototipado, pruebas, finanzas, soporte tecnico

6.7. Arbol de oportunidades en Aplicaciones de Desarrollo Rapido

Eliminar Tareas

Reduccion de tiempo por tareas

Reduccion de riesgos de fallos

Reduccion del Backtracking

Red de Actividades

Incremento en la productividad

Mejor personal e incentivosManejode transiciones en el aprendisajeen la organizacion

ReIngenieria de Procesos del Negocio

Reuso de recursos

Generacion de aplicaciones.

Planificacion Optima.

Herramientas y Automatizacion.

Organizacin de la linea del producto y del trabajo.Incremento del paralelismo.

Reducccion de fallas - RESL

Reducccion de sus efectos -RESL

Eliminacion temprana de errores

Puntos clave de los procesos

Mejora de la madurez del proceso

Tecnologia de Colaboracion

Minimizacion de dependencias entre tareas

Evitar cuellos de botella

Reduccion de la varianza en el desarrollo

Remover tareas de la ruta critica

Lenguajes de alto nivel

Elimina Tareas

Elimina Trabajar Doble

Seccion de personal

Generacion de aplicaciones

Work Streaming

Tecnologia de Colaboracion

Eliminacion pronta de errores

Information Hiding

Desarrollo Incremental

Prototipado

Analisis de Negocios

Cost del Proceso

Librerias de compoentes y productos COTS

Mejora la

Productivudad

Obten lo mejor de la gente

Mas tareas mas eficientemente

Construye productos mas simples

Reusa Componentes

Laboratorios, herramientas

Herramientas y Automatizacion

Procesos de ReIngenieria

Puntos de cuellos de botella

Ingenieria de Dominios y Arquitectura

Documentacion AutomatizadaReuso, Generacion de Aplicaciones

Madurez del proceso

Generacion de aplicaciones

6.8. Arbol de Oprtunidades

6.9. Problemas de la Administracion de Software

53

16 31

En tiempo,en presupuesto

En sobre-tiempo,y fuera del presupuesto

Descontinuados

Promedios• 189% del presupesto original• 221% del tiempo original • 61% de la funcionalidad original

7. Perspectiva Economica del Software

• El éxito comercial del software se basa en su alto valor agregado y la facilidad en que puede distribuirse.

• Oferta y Demanda.• Precios (valor y versiones, precios variables,

componentes).• Tipos de software (producto comercial, producto

complementario, producto de infraestructura, producto de acceso multiple, producto bajo contrato especifico)

• Evolucion del Software.• Riesgos y Fallas en los Proyectos.

7.1 Demanda de Software

• Por que se demanda tanto el software ?.• Cual es la influencia del software en la mejora de

los procesos Industriales, de negocios y en la sociedad en general.

• Demanda de mejor acceso a la informacion: Internet.

• Mejora de procesos (cambio de software en la industria).

7.2 Oferta del Software

• Como debe de comercializarse (distribuirse) el software ?.

• Como llegar a mas mercados ?.• Como proveer productos siempre competitivos ?.• Como hacer que el producto siempre proporcione

un valor agregado y que proporcione utilizdades ?.

8. Organizacion de la Industria del Software• La organización de una Industria de Software depende de

la tecnologia, de los procesos y del mercado. • La Industria del Software es altamente competetiva y su

sobrevivencia dependera de el valor agregado de su producto.

• Si el producto es “bueno”, lo que falta es tener un buen proceso.

• Aspectos a considerar:– Distribucion del software.– Precios del software.– Tipos del clientes.– Adquisicion de aplicaciones e infraestructura.– Soporte.

8.1. Organizacion de la Industria del Software