460 likes | 590 Views
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.
E N D
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.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.
Grandes Componentes de IT Ingenieria de software Sistemas Grandes = Desarrolladores Interfaces de Usuarios Usuarios Operacionales Arquitecturas y metodos de diseño IHM & Colaboracion Aplicaciones de suaurio Procesos de Especificacion Desarrollo, Evaluacion y Evolucion del Sistema Aplicaciones de usuario AI, Agentes Tecnologias de Calidad de Servicio Administracion Del sistema OS, DBMS, Middleware Conectividad & Acceso a la informacion Redes Modeacion y analisis Prueba y verificacion Evaluacion del uso 2.1. Rol de la Ingenieria de Software en IT + +
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 Participantes
3.2. Aspectos y perspectivas que afectan al software comercial Facilitadores
3.3. Aspectos y perspectivas que afectan al software comercial Observadores
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 de software ? • 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 de especificaciones bien documentadas de un proceso, producto o 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 el Software: • 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 Desarollo
6.3. Fases de la cadena de trabajo del administrador del software Provisionamiento
6.4. Fases de la cadena de trabajo del administrador del software Operacion
6.5. Fases de la cadena de trabajo del administrador del software 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 ReIngenieria de Procesos del Negocio Reuso de recursos Eliminar Tareas Generacion de aplicaciones. Planificacion Optima. Herramientas y Automatizacion. Reduccion de tiempo por tareas Organizacin de la linea del producto y del trabajo. Incremento del paralelismo. Reduccion de riesgos de fallos Reducccion de fallas - RESL Reducccion de sus efectos -RESL Eliminacion temprana de errores Reduccion del Backtracking Puntos clave de los procesos Mejora de la madurez del proceso Tecnologia de Colaboracion Minimizacion de dependencias entre tareas Red de Actividades Evitar cuellos de botella Reduccion de la varianza en el desarrollo Remover tareas de la ruta critica Incremento en la productividad Mejor personal e incentivos Manejode transiciones en el aprendisaje en la organizacion
6.8. Arbol de Oprtunidades Seccion de personal Obten lo mejor de la gente Laboratorios, herramientas Generacion de aplicaciones Herramientas y Automatizacion Mas tareas mas eficientemente Work Streaming Tecnologia de Colaboracion Procesos de ReIngenieria Elimina Tareas Documentacion Automatizada Reuso, Generacion de Aplicaciones Mejora la Productivudad Eliminacion pronta de errores Puntos de cuellos de botella Elimina Trabajar Doble Information Hiding Desarrollo Incremental Madurez del proceso Prototipado Construye productos mas simples Analisis de Negocios Cost del Proceso Ingenieria de Dominios y Arquitectura Reusa Componentes Librerias de compoentes y productos COTS Lenguajes de alto nivel Generacion de aplicaciones
6.9. Problemas de la Administracion de Software En tiempo, en presupuesto Descontinuados 16 31 53 • Promedios • 189% del presupesto original • 221% del tiempo original • 61% de la funcionalidad original En sobre-tiempo, y fuera del presupuesto
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.1Demanda 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.2Oferta 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.