Introduccion a la Ingeniería de Software

49
Capítulo 1- Introducción Lección 1

description

Introducción a la Ingeniería de Software.Traducción: Marco A. IbarraAutor Original: Ian Sommerville

Transcript of Introduccion a la Ingeniería de Software

Page 1: Introduccion a la Ingeniería de Software

Capítulo 1- Introducción

Lección 1

Page 2: Introduccion a la Ingeniería de Software

2

Tópicos a cubrir

Desarrollo de Software profesional ¿A qué nos referimos con “Ingeniería de Software”?

Ética en la Ingeniería de Software Una breve introducción a problemas éticos que afectan a la

software engineering.

Casos de Estudio Una introducción a 3 ejemplos que posteriormente estaremos

revisando.

2

Page 3: Introduccion a la Ingeniería de Software

Ingeniería de Software

La economía de TODAS las naciones DESARROLLADAS dependen de software.

Cada vez más procesos son controlados por softwareLa Ingeniería de software se apoya en teorías, métodos y

herramientas para el desarrollo de software profesional.El gasto en software representa una fracción significativa

del PIB en todos los países desarrollados.

Page 4: Introduccion a la Ingeniería de Software

Costos de Software

Los costos del software a menudo dominan los costos del sistema informático.Los costes de software en un PC suelen ser mayores que el costo de hardware.

Cuesta más mantener el Software que desarrollarlo. Para los sistemas de larga duración, los costos de mantenimiento pueden llegar a ser del tamaño de “x” veces el costo del desarrollo.

La IS está relacionada con la rentabilidad del desarrollo de software.

Page 5: Introduccion a la Ingeniería de Software

5

Productos de Software

Productos genéricos Sistemas autónomos que son comercializados para cualquier

cliente que desee comprarlos. Ejemplos – software de PC como programas para gráficos,

herramientas de administración de proyectos; software CAD; software para mercados específicos como sistemas de citas para dentistas.

Productos a la medida Software comisionado por un cliente específico para satisfacer

sus necesidades. Ejemplos – sistemas de control integrado, software de control de

tráfico aéreo, sistemas de monitoreo de tráfico.

5

Page 6: Introduccion a la Ingeniería de Software

6

Especificación de Producto

Productos Genéricos La especificación de lo que el software debería hacer es

propiedad del desarrollador de software y las decisiones de cambios en éste son hechas por el mismo desarrollador.

Productos a la medida La especificación de lo que el software debería hacer es

propiedad del cliente y ellos toman decisiones en cuanto a los cambios de software requeridos.

6

Page 7: Introduccion a la Ingeniería de Software

7

Preguntas frecuentes sobre Ingeniería de Software (FAQ)

Pregunta Respuesta

¿Qué es software? Programas computacionales y su documentación asociada. Los productos de Software pueden ser desarrollados para un cliente particular ó un mercado en general.

¿Cuáles son los atributos del buen software? El buen software debería ofrecer la funcionalidad y el rendimiento requeridos por el usuario y debería ser mantenible, confiable y usable.

¿Qué es Ingeniería de Software? Ingeniería de software es la disciplina o área de la Ingeniería que ofrece métodos y técnicas para desarrollar y mantener software.

¿Cuales son las actividades fundamentales de la Ingeniería de Software?

Especificación de Software, Desarrollo de software, validación de software y evolución del software.

¿Cuál es la diferencia principal entre la Ingeniería de Software y las Ciencias de la Computación?

Las Ciencias de la computación se centra en la teoría y los fundamentos; La Ingeniería de software tiene que ver con los aspectos prácticos de desarrollo y distribución de software útil.

¿Cuál es la diferencia entre la Ingeniería de Software y la Ingeniería en Sistemas?

Ingeniería de sistemas se refiere a todos los aspectos del equipo de desarrollo basado en sistemas, incluyendo la ingeniería de hardware, software y procesos.Ingeniería de software es parte de este proceso más general.

Page 8: Introduccion a la Ingeniería de Software

8

Preguntas frecuentes sobre Ingeniería de Software (FAQ)

Pregunta Respuesta

¿Cuáles son los principales retos que enfrenta la Ingeniería de Software?

Hacer frente a la creciente diversidad, las demandas de los tiempos de entrega reducidos y el desarrollo de software de confianza.

¿Cuáles son los costos de la Ingeniería de Software?

Aproximadamente el 60% de los costos de software son los costos de desarrollo, el 40% son costes de las pruebas. Para el software a la medida, los costos de evolución a menudo exceden los costos de desarrollo.

¿Cuáles son las mejores técnicas de ingeniería de software y métodos?

Mientras que todos los proyectos de software tienen que ser gestionadas y desarrolladas de forma profesional, las diferentes técnicas son adecuadas para diferentes tipos de sistemas. Por ejemplo, los juegos siempre deben ser desarrollado con una serie de prototipos, mientras que los sistemas de control de seguridad críticos requieren una especificación completa y analizable para desarrollarlos. Por tanto, no se puede decir que un método es mejor que otro.

¿Qué variaciones ha causado la web a la ingeniería de software?

La web nos ha llevado a la disponibilidad de servicios de software y la posibilidad de desarrollar sistemas altamente distribuídos basados en servicios. El Desarrollo de sistemas basado en la Web ha dado lugar a importantes avances en los lenguajes de programación y la reutilización de software. 8

Page 9: Introduccion a la Ingeniería de Software

9

Atributos esenciales del buen software

Característica de Producto

Descripción

Mantenibilidad El software debe ser escrito de tal manera que pueda evolucionar para satisfacer las necesidades cambiantes de los clientes. Este es un atributo esencial, porque el cambio de software es un requisito inevitable de un entorno empresarial cambiante.

Fiabilidad y Seguridad El Software fiable y seguro no debe causar daños físicos o económicos en caso de fallo del sistema. Los usuarios malintencionados no deben ser capaces de tener acceso o dañar el sistema.

Eficiencia El software no debe hacer un uso despilfarrador de los recursos del sistema como la memoria y ciclos del procesador. Eficiencia por lo tanto incluye la capacidad de respuesta, el tiempo de procesamiento, utilización de memoria, etc.

Aceptabilidad El software debe ser aceptable para el tipo de usuarios para los que fue diseñado. Esto significa que debe ser comprensible, utilizable y compatible con otros sistemas que utilice.

Page 10: Introduccion a la Ingeniería de Software

10

Ingeniería de Software

Ingeniería de software es la disciplina de ingeniería que se ocupa de todos los aspectos de producción de software desde las etapas tempranas de la especificación del sistema hasta mantener el sistema después de haber entrado en uso.

Disciplina de Ingeniería Usando las teorías y métodos adecuados para resolver los

problemas teniendo en cuenta las limitaciones organizacionales y financieras.

Todos los aspectos de la producción de Software No sólo el proceso técnico de desarrollo. También la

administración de proyectos y el desarrollo de herramientas, métodos, etc. para apoyar la producción de software.

10

Page 11: Introduccion a la Ingeniería de Software

11

Importancia de la Ingeniería de Software

Cada vez más, los individuos y la sociedad en general confían en sistemas de software avanzados. Necesitamos ser capaces de producir sistemas confiables y dignos de confianza de manera económica y rápida.

Normalmente es más barato, en el largo plazo, el uso de métodos de ingeniería de software y técnicas para los sistemas de software en lugar de escribir los programas como si fuera un proyecto de programación personal. Para la mayoría de los tipos de sistema, la mayoría de los costos son los de cambiar el software después de que haya entrado en uso.

11

Page 12: Introduccion a la Ingeniería de Software

12

Actividades del Proceso de Software

Especificación de software: Los clientes y los ingenieros de definen el software que se va a producir y las limitaciones en su funcionamiento.

Desarrollo de software: Es cuando se diseña el software y se programa.

La validación del software: Cuando se verifica para asegurarse de que el software es lo que el cliente requiere.

La evolución del software: Se modifica el software para reflejar las necesidades cambiantes de los clientes y el mercado.

12

Page 13: Introduccion a la Ingeniería de Software

13

Problemas generales que afectan a la mayoría del software

Heterogeneidad Cada vez más, se requiere que los sistemas operen distribuídos

a través de redes que incluyen diferentes tipos de computadoras y dispositivos móviles.

Negocios y Cambios Sociales La Empresa y la sociedad están cambiando muy rápidamente al

momento que las economías emergentes desarrollan y nuevas tecnologías están disponibles. Éstas deben ser capaces de cambiar su software existente y desarrollar rápidamente nuevos programas.

Seguridad y Confianza Como el software se entrelaza con todos los aspectos de

nuestras vidas, es esencial que podemos confiar en el mismo.

13

Page 14: Introduccion a la Ingeniería de Software

14

Diversidad en la Ingeniería de Software

Hay varios tipos de sistemas de software y no hay un conjunto universal de técnicas de software aplicable a todas ellas.

Los métodos y herramientas de IS utilizadas dependen del tipo de aplicación siendo desarrollada, los requerimientos del cliente y los antecedentes del equipo de desarrolladores.

14

Page 15: Introduccion a la Ingeniería de Software

15

Tipos de Aplicación

Aplicaciones Autónomas (Stand-Alone) Éstos son sistemas de aplicaciones que corren en una

computadora local, como las PC. Incluyen toda la funcionalidad necesaria y no necesitan estar conectadas a una red.

Aplicaciones interactivas basadas en interacción. Las aplicaciones que se ejecutan en un equipo remoto y son

accedidas por usuarios desde sus propias PC o terminales. Éstas incluyen aplicaciones web como aplicaciones de comercio electrónico.

Sistemas integrados de control Estos son sistemas de control de software que manejan

dispositivos de hardware. Numéricamente, probablemente hay más sistemas integrados que otro tipo de sistema.

15

Page 16: Introduccion a la Ingeniería de Software

16

Tipos de Aplicación

Sistemas de procesamiento por lotes Éstos son sistemas de negocios que están diseñados para

procesar datos en lotes extensos. Procesan grandes cantidades de entradas individuales para crear sus salidas correspondientes

Sistemas de entretenimiento Se trata de sistemas que son principalmente para uso personal y

que están destinados a entretener al usuario.

Sistemas para el modelado y la simulación Estos son sistemas que son desarrollados por científicos e

ingenieros modelar procesos físicos o situaciones que incluyen varios objetos independientes que interactúan entre sí.

16

Page 17: Introduccion a la Ingeniería de Software

17

Tipos de Aplicación

Sistemas de recopilación de datos Estos son sistemas que recogen datos de su entorno utilizando

un conjunto de sensores y envían los mismos a otros sistemas para su procesamiento.

Sistemas de sistemas Estos son sistemas que se componen de una serie de otros

sistemas de software.

17

Page 18: Introduccion a la Ingeniería de Software

18

Fundamentos de Ingeniería de Software

Algunos principios fundamentales se aplican a todo tipo de sistema de software,independientemente de las técnicas de desarrollo utilizado: Los sistemas deben ser desarrollados mediante un proceso de

desarrollo controlado y comprendido. Por supuesto, diferentes procesos se utilizan para diferentes tipos de software.

La fiabilidad y el rendimiento son importantes para todo tipo de sistema.

La comprensión y la gestión de la especificación de requisitos de software y (lo que el software debe hacer) son importantes.

Llegado el caso, se debe volver a utilizar el software que ya se ha desarrollado en lugar de escribir un nuevo software.

18

Page 19: Introduccion a la Ingeniería de Software

19

Ingeniería de Software y la Web

La Web ahora es una plataforma para correr aplicaciones y las organizaciones están cada vez más el desarrollando sistemas basados en web en lugar de los sistemas locales.

Los servicios Web (Web Services) que se acceda a las funciones de una aplicación a través de la web

La computación en la nube es un enfoque para la prestación de servicios informáticos, donde las aplicaciones se ejecutan de forma remota en la web. Los usuarios no compran el software, pero, dado el caso, pagan

de acuerdo a su uso.

19

Page 20: Introduccion a la Ingeniería de Software

20

Ingeniería de Software Web

La reutilización de Software es el enfoque dominante para la construcción de sistemas basados en web. Cuando se construyen estos sistemas, uno piensa sobre cómo uno

puede ensamblarlos desde componentes de software pre-existentes.

Los sistemas basados en web deben ser desarrollados y entregados incrementalmente Hoy en día, se reconoce que no es práctico especificar todos los

requerimientos para dichos sistemas con antelación.

Las interfaces de usuario están limitadas por las capacidades de los navegadores web Tecnologías como AJAX permiten que se creen interfaces de usuario

completas dentro de un navegador web, pero aún son difíciles de usar. Los formularios web con scripting local son lo más comúnmente utilizado- 2

0

Page 21: Introduccion a la Ingeniería de Software

21

Ingeniería de Software basada en Web

Los sistemas basados en web son sistemas distribuídos complejos, pero los principios fundamentales de la IS anteriormente vistos son tan aplicables a ellos como lo son a cualquier otro tipo de sistema.

Las ideas fundamentales de la IS discutidas anteriormente, aplican a software basado en web de la misma manera que aplican ao otros tipos de sistemas de software.

21

Page 22: Introduccion a la Ingeniería de Software

22

Puntos clave

La ingeniería de software es un principio de ingeniería que se ocupa de todos los aspectos involucrados en la producción de software.

Los atributos esenciales de un producto de software son: mantenibilidad, fiabilidad y seguridad, eficiencia y aceptabilidad

Las actividades de alto nivel como la especificación, desarrollo, validación y evolución son parte de todos los procesos de software

Las nociones fundamental es de IS son universalmente aplicables a todo tipo de desarrollo de sistemas

22

Page 23: Introduccion a la Ingeniería de Software

23

Puntos clave

Hay varios tipos diferentes de sistema y cada uno requiere herramientas de IS apropiadas y técnicas para su desarrollo

Las ideas fundamentales de la IS son aplicables a todos los tipos de sistemas de software

23

Page 24: Introduccion a la Ingeniería de Software

Chapter 1- Introduction

Lección 2

Page 25: Introduccion a la Ingeniería de Software

Ética en la Ingeniería de Software

La Ingeniería de software involucra responsabilidades más amplias que la simple aplicación de habilidades técnicas

Los Ingenieros de Software deben comportarse de manera honesta y ética si desean ser respetados como profesionales del área.

El comporamiento ético es más que simplemente cumplir las leyes. Involucra un conjunto de principios moralmente correctos

Page 26: Introduccion a la Ingeniería de Software

Problemas de responsabilidad profesional

Confidencialidad Los ingenieros normalmente deben respetar la confidencialidad

de sus empleadores o clientes independientemente de si hubo o no un acuerdo de confidencialidad formal firmado

Competencia Los ingenieros no deben malinterpretar su nivel de competencia.

No deben aceptar trabajos a sabiendas de que se encuentre fuera de su competencia.

Page 27: Introduccion a la Ingeniería de Software

Problemas de responsabilidad profesional

Derechos de Propiedad Intelectual Los ingenieros deben estar al tanto de las leyes que gobiernan el

uso de la propiedad intelectual, como las patentes, los derechos de autor, etc. Deben ser cuidadosos de asegurar que la propiedad intelectual de empleadores y clientes sea protegida.

Mal uso de equipo Los ingenieros de software no deben utilizar sus habilidades

técnicas para el mal uso de computadores pertenecientes a otras personas. El mal uso de equipo abarca desde lo relativamente trivial (ejecución de juegos en equipos de cómputo del empleador, por ejemplo) hasta lo extremadamente serio (diseminación de virus).

Page 28: Introduccion a la Ingeniería de Software

Código de Ética de la ACM/IEEE

Las sociedades profesionales en los EUA han cooperado para producir un código de prácticas éticas.

Miembros de éstas organizaciones firman el código de prácticas cuando se unen

El Código contiene 8 principios relacionados con el comportamiento y las decisiones tomadas por ingenieros de software profesionales, incluyendo practicantes, educadores, administradores, supervisores y legisladores, al igual que estudiantes y aprendices de la profesión

Page 29: Introduccion a la Ingeniería de Software

29

Base lógica para el Código de ética.

Las computadoras tienen un papel central y en crecimiento en el comercio, la industria, gobierno, medicina, educación, entretenimiento y en la sociedad en general. Los ingenieros de software son aquellos que contribuyen con participación directa o enseñando el análisis, especificación , diseño, desarrollo, certificación, mantenimiento y pruebas de sistemas de software

Debido a sus roles en el desarrollo de sistemas de software, los Ingenieros de Software tienen oportunidades significativas de hacer el bien, o causar daños, permitir a otros a hacer bien o causar daño, o influenciar a otros para los mismos fines. Para asegurar en la medida de lo posible que sus esfuerzos serán utilizados para el bien, los ingenieros de software deben comprometerse a hacer de la IS una profesion beneficiosa y respetada.

29

Page 30: Introduccion a la Ingeniería de Software

30

El Código de Ética de la ACM/IEEE

Código de Ética y Práctica Profesional de la Ingeniería de SoftwareACM/IEEE-CS Fuerza de Tarea Conjunta de Ética de Ingeniería del Software y Prácticas Profesionales PREÁMBULOLa versión corta del código resume las aspiraciones a un alto nivel de la abstracción, las cláusulas que se incluyen en la versión completa dan ejemplos y detalles de cómo estas aspiraciones cambian la forma en que actuamos como profesionales de la ingeniería de software. Sin las aspiraciones, los detalles pueden ser legalistas y tediosos, sin los detalles, las aspiraciones pueden convertirse en altisonantes pero vacías; en conjunto, las aspiraciones y los detalles forman un código cohesivo.

Los ingenieros de software deberán comprometerse a hacer el análisis, especificación, diseño, desarrollo, pruebas y mantenimiento de software una profesión benéfica y respetada. De acuerdo con su compromiso con la salud, la seguridad y el bienestar de la población, los ingenieros de software deberán adherirse a los siguientes ocho principios: 

Page 31: Introduccion a la Ingeniería de Software

31

Principios Éticos

 

1. PÚBLICO - Los ingenieros de software actuarán en consonancia con el interés público.2. CLIENTE Y EMPLEADOR - Los ingenieros de software actuarán en el mejor interés de sus clientes y empresarios en consonancia con el interés público.3. PRODUCTO - Los ingenieros de software asegurarán que sus productos y modificaciones correspondientes cumplen los estándares profesionales más altos posibles.4. JUICIO - Los ingenieros de software mantendrán integridad e independencia en su juicio profesional.5. ADMINISTRACIÓN - Los gerentes y líderes de ingeniería de software se suscribirán y promoverán un enfoque ético en la gestión del desarrollo y mantenimiento de software.6. PROFESIÓN - Los Ingenieros de Software promoverán la integridad y reputación de la profesión congruentemente con el interés público.7. COLEGAS - Los ingenieros de software serán justos y apoyarán a sus colegas.8. AUTO - Los ingenieros de software participarán en el aprendizaje permanente en relación con el ejercicio de su profesión y promoverán un enfoque ético de la práctica de la profesión.

Page 32: Introduccion a la Ingeniería de Software

Dilemas Éticos

Desacuerdo en principio con las políticas de la alta dirección

Tu empleador actúa de una manera anti-ética y libera un sistema un sistema de seguridad crítico sin terminar las pruebas correspondientes.

Participación en el desarrollo de sistemas de armas militares, ó sistemas nucleares.

Page 33: Introduccion a la Ingeniería de Software

33

Casos de Estudio

Una bomba de insulina personal Un sistema integrado en una bomba de insulina que usan los

diabéticos para mantener el control de glucosa en sangre.

Un sistema de administración de pacientes en casos de salud mental Un sistema utilizado para mantener registros de personas

recibiendo tratamiento médico para problemas de salud mental

Una estación meteorológica desértica Un sistema de recolección de datos que recopila información

acerca de las condiciones climáticas en áreas remotas.

33

Page 34: Introduccion a la Ingeniería de Software

34

Sistema de control para bomba de insulina personal

Recopila datos de un sensor de azúcar en la sangre y calcula la cantidad de insulina que se requiere inyectar.

Realiza cálculos basados en la tasa de cambio de los niveles de azúcar en la sangre.

Envía señales a una micro-bomba para enviar la dosis correcta de insulina.

Es un sistema de seguridad crítica ya que las bajas de azúcar pueden llevar a un mal funcionamiento cerebral, coma y hasta muerte. Niveles altos de azúcar tienen consecuencias a largo plazo como daños en el ojo y los riñones.

34

Page 35: Introduccion a la Ingeniería de Software

35

Arquitectura de Hardware de la bomba de insulina

Page 36: Introduccion a la Ingeniería de Software

36

Modelo de actividad de la bomba de insulina

Page 37: Introduccion a la Ingeniería de Software

37

Requerimientos esenciales de alto nivel

El sistema debe estar disponible para enviar insulina cuando sea necesario.

El sistema deberá desempeñarse fiablemente y entregar la cantidad correcta de insulina para contrarrestar el nivel actual de azúcar en la sangre.

Por lo tanto el sistema debe ser diseñado e implementado para asegurar que el sistema siempre cumpla estos requisitos.

37

Page 38: Introduccion a la Ingeniería de Software

38

Un sistema de información de pacientes para cuidado de salud mental

Es un sistema de información médica que mantiene datos sobre pacientes sufriendo problemas de salud mental y los tratamientos que han recibido

La mayoría de los pacientes de salud mental no requieren tratamiento dedicado de un hospital, pero necesitan atender clínicas especialistas con regularidad donde puedan encontrar a un doctor que tenga conocimiento detallado de sus problemas.

Para facilitar la asistencia de los pacientes, éstas clínicas no solo son desplegadas por los hospitales, también pueden ser facilitadas por consultorios médicos o centros comunitarios.

38

Page 39: Introduccion a la Ingeniería de Software

39

MHC-PMS

El MHC-PMS ( Sistema Gestor de Pacientes para el Cuidado de la salud mental, por sus siglas en inglés, Mental Health Care-Patient Management System) es un sistema de información destinado al uso en clínicas.

Hace uso una base de datos centralizada de información de pacientes, pero también ha sido diseñada para correr en una PC para que pueda ser accedida utilizada por sitios que no tienen una conectividad de red segura.

Cuando sistemas locales tienen acceso de red seguro, usan información de pacientes en la base de datos, pero ellos pueden descargar y utilizar copias de registros de pacientes cuando están desconectados.

39

Page 40: Introduccion a la Ingeniería de Software

40

Metas del MHC-PMS

Generar Información administrativa que permita a los gestores de servicios de salud para evaluar desempeño contra metas locales y de gobierno

Proporcionar al personal médico con información oportuna para apoyar el tratamiento de los pacientes.

40

Page 41: Introduccion a la Ingeniería de Software

41

La organización del MHC-PMS

Page 42: Introduccion a la Ingeniería de Software

42

Características clave del MHC-PMS

Gestión del cuidado individual Los médicos pueden crear registros de los pacientes, editar la

información en el sistema, ver el historial del paciente, etc El sistema es compatible con los resúmenes de datos para que los médicos pueden aprender rápidamente acerca de los problemas clave y los tratamientos que se han prescrito.

Monitoreo de pacientes El sistema monitorea los registros de pacientes que están

involucrados en tratamientos y emite advertencias si se detectan problemas posibles.

Reportes Administrativos El sistema genera reportes administrativos mensuales mostrando el

número de pacientes con tratamiento en cada clínica,el número de pacientes que han entrado y salido del sistema de cuidado, número de pacientes seccionados,los medicamentos prescritosy sus costos, etc.

42

Page 43: Introduccion a la Ingeniería de Software

43

Preocupaciones del MHC-PMS

Privacidad Es esencial que la información del paciente sea confidencial y

nunca revelada a nadie además de personal médico autorizado y el paciente mismo.

Seguridad Algunas enfermedades mentales causan que pacientes se

vuelvan suicidas o un peligro para otras personas. Cuando sea posible, el sistema debe advertir sobre pacientes potencialmente suicidas o peligrosos.

El sistema debe estar disponible cuando sea necesario, de otra manera la seguridad puede ser comprometida y puede que sea posible prescribir los medicamentos correctos a pacientes.

43

Page 44: Introduccion a la Ingeniería de Software

44

Estación climática desértica

El gobierno de un país con grandes áreas de desierto decide desplegar varios cientos de estaciones meteorológicas en zonas remotas.

Estaciones meteorológicas recogen datos de un conjunto de instrumentos que miden la temperatura y la presión, sol, lluvia, velocidad y dirección del viento. La estación meteorológica incluye una serie de instrumentos que

mide los parámetros del clima tales como la velocidad y dirección del viento, la tierra y la temperatura del aire, la presión barométrica y la precipitación en un periodo de 24 horas. Cada uno de estos instrumentos es controlado por un sistema de software que toma lecturas de parámetros periódicamente y gestiona los datos recogidos de los instrumentos.

44

Page 45: Introduccion a la Ingeniería de Software

45

El entorno de la estación meteorológica

Page 46: Introduccion a la Ingeniería de Software

46

Sistema de Información Climatológica

El sistema de la estación climatológica Este se encarga de recopilar los datos del clima, llevando a cabo un

poco de procesamiento de datos iniciales y su transmisión al sistema de gestión de datos.

El sistema de archivo y administración de datos Este sistema colecciona los datos de todas las estaciones climáticas

desérticas. Lleva a cabo procesamiento, análisis y archiva los datos.

El sistema de mantenimiento de la estación Éste sistema puede comunicarse por satélite con todas las

estaciones climáticas desérticas para monitorear el estado de estos sistemas y proveer reportes de problemas.

46

Page 47: Introduccion a la Ingeniería de Software

47

Funciones adicionales del software

Monitorear los instrumentos, hardware de energía y comunicación y reportar fallas al sistema de gestión.

Administrar la energía del sistema, asegurando que las baterías sean cargadas cada vez que las condiciones ambientales lo permitan, pero, también cuando los generadores sean apagados en condiciones climáticas potencialmente dañinas, como vientos fuertes.

Soporte de re-configuración dinámica, en la que partes del software sean reemplazadas con nuevas versiones y donde instrumentos de reserva sean cambiados dentro del sistema en el evento de una falla generalizada.

47

Page 48: Introduccion a la Ingeniería de Software

Puntos clave

Los ingenieros de software tienen responsabilidades con la profesión y la sociedad. No sólo deben ocuparse con cuestiones técnicas.

Las sociedades profesionales publican lineamientos de conducta que establecen los estándares de comportamiento que se esperan de sus miembros.

3 casos de estudio fueron los vistos: Un sistema integrado de control para una bomba de insulina Un sistema de administración de pacientes para cuidado de salud

mental Una estación climática desértica

Page 49: Introduccion a la Ingeniería de Software

49

Referencias

http://www.slideshare.net/SE9/ch1software-engineering-9

49