Unt. Ingenieria Industrial

Transcription

UNT. INGENIERIA INDUSTRIALIngeniería de SoftwareIng. Francisco Rodríguez Novoa

TEMA 1INTRODUCCION A LAINGENIERIA DE SOFTWARE

Agenda1. Que es software?2. Evolución histórica del software3. Tipos de producto software4. Definición de Ingeniería de Software.5. Crisis del software6. Malas prácticas de desarrollo y mantenim.7. Principios de la ISW8. Atributos de Calidad del SW9. Ciclo de vida del software10.Industria del Software en el Perú

1. Qué es Software (SW) ? Conjunto de programas que proporcionan unafunción y un rendimiento esperados. Conjunto de estructuras de datos que permitena los programas manipular adecuadamente lainformación. (Datos de configuración) Conjunto de documentos que describen elfuncionamiento del SI (Documentación Genéricos: Productos de uso genérico(procesadores, bases de datos, etc.). A medida: Productos específicos para un clienteparticular (manual de usuario).

1. Qué es Software (SW) ?

1. Qué es Software. Características No tiene forma física. Se desarrolla, no se fabrica. Los costes del Sw son de INGENIERÍA. No defabricación. El Sw no se rompe, se deteriora. La complejidad del mantenimiento del Sw esmucho más grande que la del Hw. Si el Hw se rompe se cambia por otro y listo. (Haypiezas de recambio). Si el Sw se deteriora, con cada cambio que serealiza se deteriore aún más. (No hay piezas derecambio).

2. Qué es Software. Características No se estropea, pero se degrada: Curva de bañera para fallos del Hw. Curva ideal de fallos del Sw. Curva real de fallos del Sw. Se construye a medidaReusabilidad

2. Evolución Histórica del Desarrollo de Sw8

2. Evolución Histórica del Desarrollo de Sw9

3. Tipos de productos software (i) Un producto software es un sistema softwareque se acompaña de la documentaciónnecesaria para su instalación y uso Tipos de mercados Productos genéricos Sistemas autónomos producidos por unaorganización para su venta en el mercado abiertoa cualquier cliente que pueda adquirirlo El desarrollador controla la especificación Productos personalizados Sistemas encargados por un cliente particular Desarrollos a medida Las especificaciones las determina el cliente

3. Tipos de productos software (ii)Áreas de aplicación [Pressman, 2010] (i) Software de sistemas Software para dar servicio a otros programas:compiladores, editores. Fuerte interacción con el hardwareUso intensivo por parte de usuarios múltiples.Recursos compartidosEjm: componentes de sistemas operativos, software de redes,procesadores de telecomunicaciones Software aplicación Programas aislados que resuelven una necesidad específicade negocios. Las aplicaciones en esta área procesan datoscomerciales o técnicos en una forma que facilita lasoperaciones de negocios o la toma de decisionesadministrativas o técnicas. Además se usa para controlarfunciones de negocios en tiempo real (por ejemploprocesamiento de transacciones en punto de venta, control deprocesos de manufactura en tiempo real etc)

3. Tipos de productos software (iii)Áreas de aplicación [Pressman, 2010] (ii) Software de ingeniería y científico Algoritmos de tratamiento numérico: simulación,estadística, CAD. Diseño de algoritmos y estructuras de datos Cálculo intensivo Las aplicaciones van de la astronomía a la vulcanología,del análisis de tensiones en automóviles a la dinámicaorbital del transbordador espacial y de la biologíamolecular a la manufactura automatizada. Software incrustado Reside dentro de un producto o sistema y se usa paraimplementar y controlar características y funciones para elusuario final y para el sistema en si. (por ejemplo control deltablero de un horno microondas, funciones digitales en unautomóvil)

3. Tipos de productos software (iv)Áreas de aplicación [Pressman, 2010] (iii) Software de línea de productos Es diseñado para proporcionar una capacidad específicapara uso de muchos consumidores diferentes . El softwarede línea de productos se centra en algún mercado limitadoy particular (por ejemplo, control de inventario de productos) ose dirige a mercados masivos de consumidores(procesamiento de textos, hojas de cálculo,entretenimiento, administración de base de datos yaplicaciones para finanzas personales o de negocios) Aplicaciones Web Llamadas “webapps”, agrupa una amplia gama deaplicaciones. En su forma mas sencilla, las webapps sonpoco mas que un conjunto de archivos hipertextovinculados que presentan información con uso de texto ygráficas limitadas. Sin embargo desde que surgió las web2.0, las webapps están evolucionando integrándose conbase de datos corporativas y aplicaciones de negocio.

3. Tipos de productos software (v)Áreas de aplicación [Pressman, 2010] (iv) Software de Inteligencia Artificial Hace uso de algoritmos no numéricos para resolverproblemas complejos que no son fáciles de tratarcomputacionalmente o con análisis directo. Las aplicaciones en esta área incluyen robótica,sistemas expertos, reconocimiento de patrones (imageny voz), redes neuronales artificiales, demostración deteoremas y juegos.

4. Qué es Ingeniería de Software? “La Ingeniería del Software es la disciplina deingeniería encargada de todos los aspectosrelacionados con la producción de softwaredesde sus etapas más tempranas de laespecificación del sistema hasta elmantenimiento del sistema tras su puesta enmarcha.” - Ingeniería del Software – IanSommerville

4. ¿Qué es Ingeniería del Software? Conjunto de métodos, técnicas y herramientasque controlan el proceso integral del desarrollode software y suministra las bases paraconstruir software de calidad de formaeficiente en los plazos adecuados.16

4. ¿Qué es Ingeniería del Software? Disciplina de ingeniería Los ingenieros de software usan las herramientas,métodos y teorías para solucionar losproblemas que aparecen. Incluso teniendo encuenta restricciones económicas y deorganización. Producción de software Planificación de proyectos. Administración de proyectos software. Procesos técnicos de desarrollo de software. Dirección de proyectos.17

¿Qué es Ingeniería del Software?Proceso Software: procedimiento formal paraproducir algún resultado18

¿Qué es Ingeniería del Software?Herramienta: instrumento para realizar algo demejor manera.19

¿Qué es Ingeniería del Software?Paradigma: Representa una filosofía para laconstrucción de software20

¿Qué es Ingeniería del Software?Quien hace la Ingeniería del software?21

¿Por qué surgió la Ingeniería SW Para superar la crisis del software yterminar con los mitos del software hastaahora existentes. Para acabar con las malas prácticas dedesarrollo y mantenimiento de softwarellevadas a cabo por las empresas. Crear software de calidad22

5. Crisis del Software Conjunto de problemas que afectan al desarrolloy mantenimiento del software derivado de losmitos y malas prácticas. Las consecuencias son: Baja Calidad del Software. Tiempo y Presupuesto Excedido. Confiabilidad Cuestionable. Altos requerimientos del personal para eldesarrollo y el mantenimiento23

6. Malas prácticas de desarrollo y mantenimiento Planificación y estimaciones imprecisas: No se recopilan datos de proyectos pasados. Se invierte más dinero en mantenimiento queen formación de los ingenieros en las nuevastecnologías de desarrollo. No se documenta lo suficiente. Se pasa directamente a la codificación24

6. Malas prácticas de desarrollo y mantenimiento Procesos software improvisados. No se siguenrigurosamente las especificaciones. No se hace planificación de riesgos. Seresuelven crisis inmediatas. Se apagan fuegos. Se sacrifica funcionalidad y calidad del productopara cumplir plazos. No se planificadebidamente. No se realizan pruebas, verificaciones orevisiones del Sw.25

6. Malas prácticas de desarrollo y mantenimiento Síntomas: Baja calidad del software desarrollado. Altogrado de desconfianza e insatisfacción en elcliente. Empresas inmaduras - En fase artesanal. Se exceden en los plazos y presupuestos previstos. 90% de los proyectos no consiguen los objetivospropuestos. 40% fracasan completamente. 29% nunca se entregan.26

¿Qué propone la IS? – Ser ingenieros ArtesanoIngeniero Para ello se debe: Aplicar métodos, técnicas y herramientas dedesarrollo. Adoptar estándares dedesarrollo. Utilizar la experiencia acumulada.Documentación.27

¿Qué propone la IS? – Ser ingenieros ¿Qué conseguimos adoptando estándares dedesarrollo? Mejorar el proceso. Reducción de costes. Reducción del tiempo de desarrollo. Reducción de riesgos. Mejora de la calidad del producto. Protección del cliente. Protección de la organización. Aumenta sucompetitividad.28

7. Algunos Principios de la Ing. del SW Entregar el producto al cliente dentro de plazos. Determinar el problema antes de escribirespecificaciones Minimizar la distancia intelectual Evaluar las alternativas de diseño La técnica es más importante que lasherramientas Hazlo bien antes de hacerlo rápido Inspeccionar el código29

7. Algunos Principios de la Ing. del SW El personal es la clave del éxito Un diseño sin documentación, NO es un diseño El código difícil de leer es difícil de mantener La encapsulación crea Sw fácil de probar ymantener. “Divide y vencerás”. No probar tu propio Sw. Los desarrolladores nodebe probar el Sw que han generado.30

8. Atributos de Calidad del softwareISO 9126 Características31

9. ¿Qué es el Ciclo de Vida del SW? Es una sucesión de etapas por las que pasa elsoftware en su desarrollo, desde que seconcibe la idea hasta que el software deja deutilizarse. Cada etapa lleva asociada una serie deactividades y tareas que se deben realizar, yuna serie de documentos que serán la salidade cada una de estas fases y que servirán deentrada a la fase siguiente.

9. ¿Qué es el Ciclo de Vida del SW? Según la norma ISO/IEC Standard12207:2008: Software life-Cycle processespropuesta por la ISO (InternationalOrganization for Standardization): “Es un marco de referencia que contiene losprocesos, las actividades y las tareasinvolucradas en el desarrollo, explotación ymantenimiento de un producto software,abarcando la vida del sistema desde ladefinición de requisitos hasta que se deja deutilizar”

9. ¿Qué es el Ciclo de Vida del SW? ¿Qué es un proceso?Un proceso es un conjunto de actividades quese suceden siguiendo una ordenacióntemporal determinada ¿Qué es una actividad?Una actividad es un conjunto de tareas ¿Qué es una tarea?Una acción que transforma unas entradas enunas salidas

9. ¿Qué es el Ciclo de Vida del SW?Fases genéricas en el ciclo de vida del SW: Fase de definición. Tareas: Ingeniería de sistemas Planificación del proyecto del SW Análisis de los requisitos Fase de desarrollo. Tareas: Diseño del SW Generación de código Prueba del SW Fase de mantenimiento. Cambios: CorrecciónAdaptaciónMejoraPrevención

10. Industria del Software en el Perú Una de las industrias que tiene inmensasoportunidades es la del software, cuyomercado mundial asciende a los 1,500billones. El Perú es un actor que tiene significativasventajas para obtener parte del consumointernacional, ya que cuenta con un activo encapital humano (30,000 programadores) ycon la presencia de aproximadamente 300empresas (90% pequeñas y microempresas),que en su mayoría no superan una década defuncionamiento.

10. Industria del Software en el PerúSector de las Tecnologías de Información cadavez cobra mas importancia, por ser:

10. Industria del Software en el Perú Países latinoamericanos han tomado la iniciativa deapoyar sus industrias informáticas, considerándolas“sector de interés nacional” En nuestro país, la industria del software tiene unexpectante potencial de crecimiento: Da empleo directo e indirecto altamente calificado a másde 6000 peruanos. Pese a lo comentado, la industria informática dista aúnde estar consolidada. “La informalidad es un cáncer paranuestra actividad porque disipa el esfuerzo de lasempresas formales”, comenta Amau. Se reclama una política gubernamental para incentivarla formalización del sector, que acelere el desarrollo delos centros informáticos

10. Industria del Software en el PerúAñoVentas(millones dedólares)IncrementoExportación(millones 0512.62820122259.836201531339.1160

10. Industria del Software en el PerúProductos software para: Sector salud Sector bancario Sector construcción Sector gobierno Sector educativo.Soluciones ERPs para pymes Antivirus

Las limitaciones del sector de TI Las principales limitaciones para el desarrollo delsector son: Carencia de fuentes de financiamiento paraproyectos tecnológicos. Insuficiente infraestructura tecnológica(hardware y conexiones a costo internacional) Presencia real y significativa de la piratería delsoftware. Según BSA es de 61%.¡ Es necesario implementar políticas de fomentopara el sector tecnológico!

Planes de la ind. del sw para los próx 5 años Programa BID de apoyo a la industria desoftware: Sostenibilidad de la Capacitación enCMMi, Ing de Software, laboratorio de testeado,estudios, eventos, etc. Fomento a las exportaciones de software. Esquema descentralizado de capacitaciónespecializada (provincias componenteimportante) Centro de arbitraje tecnológico. Centro de incubación de empresas de basetecnológica. Certificación de competencias laborales IT-CARD.

Temas Exposición de Ingeniería de Sw Tecnología Orientada a Objetos. Proceso de Software. Modelos Prescriptivos delProceso: Modelo en Cascada / Modelos Incrementales /Modelos Evolutivos Administración de Proyectos Software.(Personal, Producto, Proceso, Proyecto) Estimación para proyectos software Administración del Riesgo. Conceptos de Calidad de software Ingeniería Web.

Web del cursohttp://untingsw.weebly.com

FIN

3. Tipos de productos software (iii) Áreas de aplicación [Pressman, 2010] (ii) Software de ingeniería y científico Algoritmos de tratamiento numérico: simulación, estadística, CAD. Diseño de algoritmos y estructuras de datos Cálculo intensivo Las aplicaciones van de la astronomía a la vulcanología,