Apuntes Ingeniería de Software

Page 1

Notas de Clase: Osberto A. Pineda Curso: IngenierĂ­a de Software Agosto 2018


¿Qué es la ingeniería de Software? “El establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre maquinas reales.” (Sommerville, 2011) Con respecto a esto se puede decir que la ingeniería de This Photo by Unknown Author is licensed under CC BY-ND software se refiere a todo el proceso necesario para poder construirlo. No simplemente realizarlo desde una perspectiva empírica, sino siguiendo principios y métodos que puedan ayudar a que se realice de una manera ordenada y eficiente. Todas las ciencias han pasado por un proceso de maduración, la ciencia de la ingeniería de software es una ciencia que tiene apenas unos 50 o 60 años desde la década de los 1960’s. Si esto lo comparamos contra ciencias como la medicina, la química, la biología, la matemática, etc; es sumamente joven. Como ciencia joven que es, ha sido sumamente dinámica y con muchos cambios en estos años, pasando desde los métodos más antiguos como la metodología en cascada hasta el día de hoy con las nuevas tendencias de las metodologías ágiles. Es más, en estos días se libra el debate entre las metodologías formales que privilegian la documentación versus las metodologías ágiles que


están orientadas a resultados. Antes de ello fue RUP y UML como el estándar de facto, antes de ello los modelos incrementales. Siempre muchos cambios, siempre muchas metodologías que nos hacen reflexionar cuál será la mejor para llevar a cabo el proceso de software. A propósito de ello se presenta la siguiente historia contenida en el cuento de Alicia en el País de las Maravillas - "¿Podría decirme, por favor, qué camino debo tomar desde aquí?". - "Eso depende, en gran medida, de a dónde quieras ir", dijo el Gato. "Eso no importa mucho", dijo Alicia. - "Entonces no tienes problema con el camino que cojas", dijo el Gato. - "...con tal de que llegue a alguna parte...", añadió Alicia como justificación. - "Oh, seguro que lo harás", dijo el Gato, "con tal de que camines lo bastante". Conversación con el Gato "Alicia en el País de las Maravillas"

de

Cheshire

en

Preguntas para Discusión: ¿Qué relación tiene el párrafo anterior con la ingeniería de software? ¿Será que siempre que el camino que resolvamos para resolver un problema es el mejor? ¿Será posible que cualquier metodología para elaborar software sirve para cualquier software? Al final de cuentas podríamos decir que la ingeniería de software se rige bajo las siguientes capas:


A continuación, se definen las características de cada una de las capas: Herramientas Las Herramientas son el “Con que” Existe una herramienta para cada método. CASE Ingeniería de Software Asistida por Computadora

Métodos Los Métodos, Indican “COMO” Planificación, estimación de proyectos, análisis de requisitos, Diseño de estructuras de datos, procedimientos algorítmicos, codificación, etc.

Procesos Los procesos relacionan los Métodos y las Herramientas. A la forma de relacionar los Métodos y las Herramientas se le llama “Paradigma”

Todo lo anterior debe de ir realizado bajo un enfoque de calidad, el cual no debe de perderse en todo el proceso, para poder ir haciendo un producto de software que realmente cumpla con las expectativas.


Otro aspecto importante es la palabra paradigma. Esta palabra paradigma tienen varias acepciones, pero en general se ha tomado como la forma normal de cómo se realiza una actividad. Un ejemplo simple de lo que es un paradigma podría ser las cosas que se hacen desde el momento de Paradigma: Forma levantarse en la mañana hasta salir de hacer las cosas a trabajar y/o estudiar. Normalmente siempre se hacen las mismas cosas y de la misma forma, si esa rutina cambia puede ser que se sienta incomodidad. Eso es un paradigma.

Paradigmas en la Ingeniería de Software Son las formas en las que se puede realizar un software de acuerdo con un proceso, métodos y herramientas y conforme a un enfoque de calidad adecuado. Algunos de las formas de realizar software bajo este paradigma son: • • • • • • •

Modelo tradicional o de cascada Modelo por prototipos (desechable o evolutivo) Modelo en Espiral Modelo Incremental Rational Unified Process Programación Extrema (XP) Scrum


Por qué es necesaria la Ingeniería de Software Puesto que se responden las siguientes preguntas una vez se lleva dicho proceso de una manera correcta y ordenada • ¿Por qué tarda tanto la obtención del Software terminado? • ¿Por qué son tan altos los costos de desarrollo de software? • ¿Por qué es imposible encontrar todos los errores en el software antes de entregarlo? • ¿Por qué se gastan tanto tiempo y esfuerzo en el mantenimiento de los programas existentes?

¿Qué es el Software? Es un elemento lógico que se forma con instrucciones que al ejecutarse proporcionan las características, funciones y el grado de desempeño deseados; las estructuras de datos que permiten que los programas manipulen información de manera adecuada y los documentos que describen la operación y el uso de los programas.


Es el elemento lógico que está presente en toda pieza de hardware y que hace que el mismo funcione. Tienen una relación estrecha de tal manera de que si uno no existiría o no podría funcionar el otro. El hardware siempre va a ir más adelantado en su concepción que el software, puesto que primero debe existir lo físico para luego poder hacer el elemento lógico que le saque provecho.

Diferencias entre el Hardware y el Software

Software

Hardware

• No se desgasta con el uso • Se desarrolla o construye, no se manufactura • La mayoría de software es implementado por expertos

• Se desgasta • Se manufactura

Tipos de Software De acuerdo con su funcionalidad el software puede ser clasificado de la siguiente forma: • De Sistemas • De Aplicación


• • • • •

Científico y de Ingeniería Empotrado Líneas de Productos Basado en Web. B2B Inteligencia Artificial

Actividad: Proceder a describir cuál es la función de cada uno de los tipos de software mencionados anteriormente y enumerar dos ejemplos de cada uno de ellos

Práctica de la Ingeniería de Software En el libro “How to solve it” de George Polya describe la esencia de la resolución de problemas y en consecuencia la esencia de la práctica de la ingeniería de software


• • • •

Entender el problema (Comunicación y Análisis) Planear la solución (Modelado y Diseño del software) Ejecutar el plan (Generación del código) Examinar la exactitud del resultado (probar y asegurar la calidad)

Principios Generales de la Ingeniería de Software David Hooker propuso siete principios que se centran en la práctica de la ingeniería de software como un todo • • • • • • •

La razón de que exista todo MSE (Mantenlo sencillo …) Mantener la visión Otros consumirán lo que usted produce Abrace al futuro Planee por anticipado la reutilización ¡Piense!


Bibliografía • Sommerville, Ian (2011). Ingeniería de Software. México, D.F.: Addison Wesley • Pressman, Roger (2010). Ingeniería de Software un Enfoque Práctico. México, D.F.: Mc Graw Hill


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.