49
©Ian Sommerville 2002 Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1 Diapositiva 1 Ingeniería de Software Diseño, construcción y mantenimiento de sistemas de software grandes. Diapositivas Traducidas por: Dr. Pedro Mejía Alvarez. CINVESTAV-IPN, México Septiembre 2003.

©Ian Sommerville 2002Ingeniería de Software, 5a. Y 6a. edición. Capitulo 1Diapositiva1 Ingeniería de Software u Diseño, construcción y mantenimiento de

Embed Size (px)

Citation preview

  • Diapositiva 1
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Ingeniera de Software u Diseo, construccin y mantenimiento de sistemas de software grandes. Diapositivas Traducidas por: Dr. Pedro Meja Alvarez. CINVESTAV-IPN, Mxico Septiembre 2003.
  • Diapositiva 2
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Objetivos u Definir la Ingeniera de Software y explicar su importancia. u Discutir los conceptos de producto de software y proceso de software. u Explicar la importancia de la visibilidad delos procesos. u Introducir la nocin de responsabilidad profesional.
  • Diapositiva 3
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Tpicos u Productos de Software. u El proceso de Software. u El modelo de Espiral de Boehm. u La visibilidad de los procesos. u Responsabilidad profesional.
  • Diapositiva 4
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Ingeniera de Software u Las economas de los pases desarrollados dependen en gran parte del software. u Mas y ms sistemas son actualmente controlados por software. u La Ingeniera de Software concierne a teoras, mtodos y herramientas para el desarrollo profesional de software. u El gasto en La Ingeniera de Software, representa un alto porcentaje del PIB de los pases desarrollados.
  • Diapositiva 5
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Ingenieria de Software: Conceptos Basicos u Que es la Ingenieria de Software ? u Cual es la diferencia entre un programador y un Ingeniero de Software? u Cual es la diferencia entre un Ingeniero de Software y un Ingeniero de Sistemas? u Cual es la diferencia entre la Ingenieria de Software y la Computacion ? u Que es el software ? u Que es un proceso de software ? u Que es un modelo de software?
  • Diapositiva 6
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que es la Ingeniera de Software u La Ingeniera de Software es una diciplina de la Ingeniera que concierne a todos los aspectos de la produccin de software u Los Ingenieros de Software adoptan un enfoque sistematico para llevar a cabo su trabajo y utilizan las herramientas y tecnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.
  • Diapositiva 7
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Diferencia entre Ingenieria de Software y Computacion u La computacion concierne a la teoria y fundamentos de cualquier sistema de computo, sea de hardware o de software. u La Ingenieria de software concierne solo al desarollo de sisetmas o productos de software u La Ingeniria de Sofware todavia esta lejos de ser una ciencia como los son la Quimica, la Ingenieria Civil o la Electronica.
  • Diapositiva 8
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Ingenieria de Sistemas e Ingenieria de Software u La Ingeniera de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cmputo, que incluyen hardware, software y el proceso de Ingeniera. La Ingeniera de Software es solo parte de este proceso.
  • Diapositiva 9
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que es el Software ? Programas de cmputo y su documentacion asociada u Sistemas o Productos de software grandes y complejos. u Que contiene el software. u Que tipos de software hay ? u Cual es el costo del software. u Como se desarrolla el software ? u Como saber si un software tiene calidad.
  • Diapositiva 10
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Productos de Software u Productos genricos. l Productos que son producidos por una organizacin para ser vendidos al mercado. u Productos hechos a medida. l Sistemas que son desarrollados bajo pedido a un desarrollador especfico. u La mayor parte del gasto del software es en productos genricos, pero hay ms esfuerzo en el desarrollo de los sistemas hechos a medida.
  • Diapositiva 11
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Caractersticas de los Productos de Software u Mantenibles. l Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. u Confiabilidad. l El software no debe causar danos fsicos o econmicos en el caso de fallos. u Eficiencia. l El software no debe desperdiciar los recursos del sistema. u Utilizacin adecuada. l El software debe contar con una interfaz de usuario adecuada y su documentacin.
  • Diapositiva 12
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Importancia de las caractersticas del producto u La importancia relativa de las caractersticas depende en el tipo de producto y en el ambiente en el que ser utilizado. u En algunos casos, algunos atributos pueden dominar. l En sistemas de seguridad crticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia. u Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna caracterstica.
  • Diapositiva 13
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que contiene el software ? u El software contiene: Lneas de cdigo de algn lenguaje ? Instrucciones de computadora. Descripcin de las estructuras de datos. Algoritmos. Procedimientos y funciones. Componentes de software.
  • Diapositiva 14
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que tipos de software hay ? u Por su estructura: Funcionales. Orientados a objetos. Orientados a listas. Orientados a componentes. u Por su funcion: Programas o Sistemas de Usuario Interfaces Hombre-Maquina. Herramientas de Software. Librerias. Sistemas de uso generico: Compiladores, S.Os, Procesadores de Texto, etc. Bases de Datos. Sistemas basados en Web.
  • Diapositiva 15
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que tipos de software hay ? u Por su plataforma de computo: Sistemas embebidos. Sistemas de computo distribuido. Sistemas de computo paralelo. Sistemas de tiempo real. Sistemas basados en Chips. Wearable computing systems. Sistemas de computo ubiquos.
  • Diapositiva 16
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Costos del Software u Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC. u Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica. u La Ingeniera de Software concierne a un desarrollo efectivo en cuanto a costes del software.
  • Diapositiva 17
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Costes de Eficiencia. Costos Eficiencia
  • Diapositiva 18
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 El Proceso de Software u Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. l Especificacin- que debe hacer el software y cuales son sus especificaciones de desarrollo. l Desarrollo produccion del sistema de software. l Validacin verificar que el software hace lo que el cliente pide. l Evolucin cambiar/adaptar el software a las demandas. u Las actividades varan dependiendo de la organizacin y del tipo de sistema a desarrollarse. u Debe estar explcitamente modelado si va a ser bien administrado.
  • Diapositiva 19
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Proceso Genrico de Software u Especificacin - establecer los requerimientos y restricciones del sistema u Diseo - Producir un modelo en papel del sistema u Manufactura - construir el sistema u Prueba - verificar que el sistema cumpla con las especificaciones requeridas u Instalacin - entregar el sistema al usuario y asegurar su operacionalidad u Mantenimiento - reparar fallos en el sistema cundo sea descubiertos
  • Diapositiva 20
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Caractersticas del proceso u Entendible l Se encuentra el proceso bien definido y es entendible ?. u Visible l El proceso es visible al exterior ?. u Soportable l Puede el proceso ser soportado por herramientas CASE ?. u Aceptable l El proceso es aceptado por aquellos involucrados en el ?.
  • Diapositiva 21
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Caractersticas del proceso u Confiable l Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?. u Robusto l Puede continuar el proceso a pesar de problemas inesperados ?. u Mantenible l Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?. u Rapidez l Que tan rpido puede producirse el sistema ?.
  • Diapositiva 22
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Problemas en el Modelo del Proceso u Normalmente, las especificaciones son incompletas o anmalas u No existe una distincin precisa entre la especificacin, el diseo y la manufactura u Solo hasta que el sistema se ha producido se puede probar u El software no se puede remplazar siempre durante el mantenimiento
  • Diapositiva 23
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Modelos de Desarrollo de Software u Representacion formal o simplificada de processo de software. u Modelos Genericos: Modelo de Cascada u Separar en distintas fases de especificacin y desarrollo. Desarrollo Evolutivo u La especificacin y el desarrollo estn intercalados. Prototipado u Un modelo sirve de prototipo para la construccin del sistema final. Transformacin Formal u Un modelo matemtico del sistema se transforma formalmente en la implementacin. Desarrollo basado en Reutilizacin u El sistema es ensamblado a partir de componentes existentes.
  • Diapositiva 24
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Modelo de Cascada (grfica) Definicin de Requerimientos Diseo del Software y del Sistema Implementacin y Prueba de unidades Integracin y Prueba del Sistema Operacin y Mantenimiento
  • Diapositiva 25
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Fases del Modelo de Cascada u Anlisis de requerimientos y definicin. u Diseo del sistema y del software. u Implementacin y prueba de unidades u Integracin y prueba del sistema. u Operacin y mantenimiento. u La dificultad en esta modelo reside, en la dificultad de hacer cambios entre etapas.
  • Diapositiva 26
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Desarrollo Evolutivo Descripcin del sistema Versin Inicial Versin Final Versiones Intermedias Especificacin Desarrollo Validacin Actividades Concurrentes
  • Diapositiva 27
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Desarrollo Evolutivo u Problemas l Poca visibilidad en el proceso l Los sistemas estn pobremente especificados l Se requieren habilidades especiales. u Aplicabilidad l Para sistemas interactivos pequeos o medianos. l Para partes de sistemas grandes (p.ej. la interfaz de usuario). l Para sistemas de corta vida.
  • Diapositiva 28
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Prototipado u Prototipado exploratorio l El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificacin inicial. Se debe comenzar con unas especificaciones bien entendidas. u Prototipado de throw-away. l El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas.
  • Diapositiva 29
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Problemas y Riesgos con los Modelos. u Cascada. l Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseo. l Bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida. u Prototipado. l Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseo se llevan a cabo paso a paso. l Alto riesgo debido a falta de visibilidad u Evolutivo. l Alto riesgo debido a la necesidad de tecnologa avanzada y habilidades del grupo desarrollador.
  • Diapositiva 30
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Manejo de Riesgos u La tarea principal del administrador consiste en minimizar riesgos. u El riesgo inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad. u Las actividades con alto riesgo causan sobre-costes en cuanto a planeacin y costos u El riesgo es proporcional al monto de la calidad de la informacin disponible. Cuanto menos informacin, mayor el riesgo.
  • Diapositiva 31
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Modelos de Procesos Hbridos u Los sistemas grandes estn hechos usualmente de varios subsistemas. u No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. u El prototipado es recomendado cuando existen especificaciones de alto riesgo. u El modelo de cascada es utilizado en desarrollos bien comprendidos.
  • Diapositiva 32
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Modelo de Proceso de Espiral Determine objetivos alternativas y restricciones Evale alternativas, identifique y resuelva riesgos Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Planea la siguiente fase Desarrolla y verifica el siguiente nivel del producto Prototipo Operacional Prototipo 3 Prototipo 2 Proto tipo 3 Plan de requerimientos Plan del ciclo de vida REVISIN Plan de Desarrollo Plan de Integracin y Prueba Concepto de Operacin Simulaciones, modelos y benchmarks Requeri mientos de SW Validacin de Requerimientos Diseo V &V Servicio Prueba de Aceptacin Prueba de Integracin Prueba de Unidades Codificacin Diseo Detallado Diseo del Producto
  • Diapositiva 33
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Fases del Modelo de Espiral u Planteamiento de Objetivos l Se identifican los objetivos especficos para cada fase del proyecto. u Identificacin y reduccin de riesgos. l Los riesgos clave se identifican y analizan, y la informacin sirve para minimizar los riesgos. u Desarrollo y Validacin. l Se elige un modelo apropiado para la siguiente fase del desarrollo. u Planeacin. l Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.
  • Diapositiva 34
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Plantilla para una ronda del espiral u Objetivos. u Restricciones. u Alternativas. u Riesgos. u Resolucin de riesgos. u Resultados. u Planes. u Garantas (commitments).
  • Diapositiva 35
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Ventajas del Modelo de Espiral u Centra su atencin en la reutilizacin de componentes y eliminacin de errores en informacin descubierta en fases iniciales. u Los objetivos de calidad son el primer objetivo. u Integra desarrollo con mantenimiento. u Provee un marco de desarrollo de hardware/software.
  • Diapositiva 36
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Problemas con el Modelo de Espiral u El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado. u Requiere de experiencia en la identificacin de riesgos. u Requiere refinamiento para uso generalizado.
  • Diapositiva 37
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Que modelo utilizar ? u Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de anlisis de riesgos es relativamente fcil. u Con requerimientos estables y sistemas de seguridad crticos, utiliza modelos formales. u Con especificaciones incompletas, utiliza el modelo de prototipado. u Pueden utilizarse modelos hbridos en distintas partes del desarrollo.
  • Diapositiva 38
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Visibilidad de Procesos u Los sistemas de software son intangibles por lo que los administradores necesitan documentacin para identificar el progreso en el desarrollo. u Esto puede causar problemas.. l El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. l La necesidad de producir documentos restringe la iteracin entre procesos. l.El tiempo para revisar y aprobar documentos es significativo. u El modelo de cascada es an el modelo basado en resultados mas utilizado.
  • Diapositiva 39
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Documentos del Modelo de Cascada ActividadDocumentos Producidos Anlisis de RequerimientosDocumento de Requerimientos Definicin de RequerimientosDocumento de Requerimientos. Especificacin del Sistema.Especificacin Funcional, Plan de Pruebas de Aceptacin. Diseo ArquitecturalEspecificacin de la Arquitectura, y Plan de Pruebas del Sistema Diseo de InterfacesEspecificacin de la Interfaces y Plan de pruebas de Integracin. Diseo DetalladoEspecificacin del diseo y Plan de prueba de Unidades. CodificacinCdigo de Programa Prueba de UnidadesReporte de prueba de unidades Prueba de MdulosReporte de prueba de mdulos Prueba de IntegracinReporte de prueba de integracin y Manual de usuario final Prueba del SistemaReporte de prueba del sistema Prueba de AceptacinSistema final mas la documentacin.
  • Diapositiva 40
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Visibilidad del Modelo Modelo de ProcesoVisibilidad del Proceso Modelo de CascadaBuena visibilidad, cada actividad produce un documento o resultado Desarrollo EvolutivoVisibilidad pobre, muy caro al producir docuementos en cada iteracin. Modelos FormalesBuena visibilidad, en cada fase deben producirse documentos. Desarrollo orientado a la reutilizacinVisibilidad moderada. Importante contar con documentacin de componentes reutilizables. Modelo de EspiralBuena visibilidad, cada segmento y cada anillo del espiral debe producir un documento.
  • Diapositiva 41
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Retos de la Ingenieria de Software u Mantener y tratar con sistemas legados. Tratar con una mayor diversidad de sistemas con mayores demandas de computo, y menores tiempos de entrega u Sistemas Legados Sistemas entiguos que deben ser mantenidos y mejorados. u Hetereogenidad Sistemas que incluyen una mezcla de software y hardware. u Entrega Existe una presion incremental por una entrega a tiempo de los productos de software. u Formalidad. Existe una gran demanda de que exista formalidad en el proceso de desarrollo de software
  • Diapositiva 42
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Retos de la Ingenieria de Software u Por que no podemos desarrollar sistemas de software con tecnicas formales como lo hacen los Ingenieros en Electronica, los Ing. Quimicos o los Ingenieros Civiles. ?
  • Diapositiva 43
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Demanda de Ingenieros de Software Over the last few decades, information technology has grown dramatically, with significant impact to both the global economy and everyday life. Computing power has increased rapidly while the costs of hardware and communications have dropped, making it increasingly more economical to implement systems in software rather than hardware. Mechanical devices in automobiles, airplanes, and power plants are being replaced by software components because software is more adaptable, can provide more functionality, and can be upgraded more easily to accommodate future needs.
  • Diapositiva 44
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Demanda de Ingenieros de Software Software is used in medical devices, transportation systems, and financial systems to automate repetitive but critical tasks. Scientists and business researchers use software to sift through data warehouses and to identify pertinent facts and trends. Banking, insurance, telecommunications, and other service industries use software to automate and personalize the services they offer to their customers. As software applications have grown more complex, there has been a surge in the demand for software engineers who have the knowledge and expertise to develop high-quality software systems.
  • Diapositiva 45
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Responsabilidad profesional u Los Ingenieros de software no solo deben considerar aspectos tcnicos. Deben tener una visin mas amplia, en lo tico, social y profesional. u No existe estatutos para ninguno de estos aspectos. l Desarrollo de sistemas militares. l Piratera. l Que es mejor para la profesin de Ingeniero de Software.
  • Diapositiva 46
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Aspectos ticos u Confidencialidad. u Competencia. u Derechos de propiedad intelectual. u Mal uso de la computadora.
  • Diapositiva 47
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Una Profesion Madura de la Ingenieria de Software Consultar: A Mature Profession of Software Engineering. Gary Ford Norman Gibbs Technical Report: CMU/SEI-96-TR-004 www.sei.cmu.edu
  • Diapositiva 48
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Resumen u La Ingeniera de software concierne a las teoras, mtodos y herramientas para el desarrollo, administracin y evolucin de productos de software. u Los productos de software consisten de programas y documentacin. Los atributos de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad. u El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software.
  • Diapositiva 49
  • Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin. Capitulo 1Diapositiva1 Resumen u El modelo de cascada considera cada actividad del proceso como una actividad discreta. u El modelo de desarrollo evolutivo considera actividades del proceso en forma concurrente. u El modelo de espiral se basa en anlisis de riesgos. u La visibilidad del proceso involucra la creacin de documentos o resultados de las actividades. u Los Ingenieros de software deben tener responsabilidades ticas, sociales y profesionales.