INGENIERÍA DEL SOFTWARE -...

13
INGENIERÍA DEL SOFTWARE

Transcript of INGENIERÍA DEL SOFTWARE -...

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE

1

Sesión No. 5 Nombre: Estrategias Contextualización

¿Cómo elegir el lenguaje de programación?

La importancia de elegir el lenguaje de programación adecuado no sólo es por

los recursos con los que contamos o en su caso, las licencias del producto, sino

además, debemos tener en cuenta siempre la estructura definida del programa,

puede que el software requiera cierto número de módulos pero que trabaje sólo

con dos equipos conectados en red punto a punto.

Un ejemplo puede ser una base de datos de un sistema bancario, el cual recibe

transacciones a cada momento y el software que lo maneja debe de ser capaz

de soportar la carga de información, brindar seguridad y ser transparente. Pero

como en este tipo de sistemas se usan lenguajes de bajo nivel, hacer una

adaptación es complicado, por esta razón es importante definir cuál será la

estrategia de desarrollo y de qué manera ´puede ser compatible.

INGENIERÍA DEL SOFTWARE

2

Introducción al Tema

Cuando los diseños de aplicaciones utilizan estrategias que no son compatibles

con la finalidad de lo que se desea desarrollar, pueden crear discrepancias

dentro de los elementos funcionales del software, se deben contemplar

elementos importantes, como los sistemas de arranque que utilizan los sistemas

operativos y de los cuales se pueden apoyar los nuevos programas para

optimizar su ejecución y tener un funcionamiento correcto.

Los componentes que se utilizan dentro del desarrollo de aplicaciones o para su

uso, son verificados en el diseño y estructurados de tal forma, que ninguno

interfiera entre sí para completar su ciclo de vida o ejecución para el que fue

programado.

INGENIERÍA DEL SOFTWARE

3

Explicación

Estrategias

Las estrategias dentro de la ingeniería de software se dividen en dos categorías,

estrategias de diseño y estrategias de prueba del software.

¿Cuáles son las estrategias de diseño de software?

Las estrategias de diseño de software cuentan con las características siguientes:

• Generación de un conjunto de alternativas en la estrategia de diseño

• Selección de una alternativa viable para el SI deseado, tomando en

cuenta las restricciones organizacionales y económicas que puedan

limitar el desarrollo.

Las estrategias pueden realizarse de forma general, éstas determinan el diseño

de procesos y son divididos permitiendo lograr una alta extracción de datos e

información. Sin importar el uso de las estrategias, es sabido que aun el software

más robusto podría tener fallas, no es por la mala implementación de una

estrategia de diseño o de prueba, sino por factores que no se pueden determinar

en su desarrollo por ser una gran número de variables que cambian, como el

sistema en que se utilizan, la capacidad del equipo, la antigüedad de los

componentes que tiene, etc.

¿Cuáles son las estrategias de prueba de software?

Las estrategias de prueba del software integran una serie de pasos para una

buena construcción de software, en esta estrategia se describen los pasos que

hay que ejecutar para ejecutar pruebas de rendimiento, esta prueba una

planificación, diseño, ejecución y evaluación de resultados finales.

Antes de ejecutar alguna prueba se crea una especificación de la misma, donde

se defienden los casos de uso y las tareas que tiene que realizar; cuando la

INGENIERÍA DEL SOFTWARE

4

prueba se termina se procede a crear un proceso de comparación entre la

especificación y los resultados finales.

Figura 1.Pressman, R. (2002).Ingeniería de software un enfoque práctico [Estrategia de prueba.]

(p.308). Madrid: McGraw-Hill

Estructurada

En la ingeniería de software, la “programación estructurada” es un paradigma de

programación cuya función es mejorar la claridad y calidad del material que se

desarrolla dentro de un tiempo razonable utilizando subrutinas y tres estructuras

lógicas básicas.

Tiene como objetivo desarrollar software fáciles comprender para futuras

correcciones o modificaciones.

Este tipo de programación no se limita a sólo un lenguaje, ni al tamaño de una

aplicación a realizar, por lo que puede cumplir con cualquier ciclo que se le

introduzca en las líneas de código, ya sea una pequeña calculadora, o una

aplicación para un negocio, en el cual se mantenga un registro, no importa pues

las estructuras de programación se utilizan en todo caso.

INGENIERÍA DEL SOFTWARE

5

Figura 2. 5Hertz. (2014) ¿Qué es la programación estructurada? [Estructuras de control]. Recuperado de: http://5hertz.com/tutoriales/?p=756

Orientada a objetos

En la ingeniería de software, la “programación orientada a objetos”, también

conocida como POO, este es un paradigma de programación que utiliza objetos

en sus iteraciones, es útil para diseñar aplicaciones informáticas. Estos no se

limitan a un sólo lenguaje de programación o plataforma de uso, por lo que es

útil tanto para dispositivos móviles como para fijos. Algunas de sus técnicas

principales son:

Herencia

Cohesión

Abstracción

Polimorfismo

Acoplamiento

Encapsulado

INGENIERÍA DEL SOFTWARE

6

Figura 3. Álvarez, M. (2014) Polimorfismo en Programación Orientada a Objetos [Herencia y las

clasificaciones en Programación Orientada a Objetos]. Recuperado

de: http://www.desarrolloweb.com/articulos/polimorfismo-programacion-orientada-objetos-

concepto.html

Centrada en los datos

En este aspecto, se trata de un medio más específico el que se tiene que cumplir,

es decir, dependiendo de la información con la que se cuente se desarrollará la

aplicación o el manejo del contenido que ésta tendrá, por ejemplo, algunos de

los modelos son;

Modelos de datos primitivos (orientado al fichero)

Modelo de datos clásico

Modelos de datos semánticos

Modelos de datos de propósito específico (orientado a objetos)

Dependiendo de los tipos de datos, puede que la aplicación cumpla con los

procedimientos o solamente sea de una básica ejecución, por lo que los modelos

básicos se utilizan en medios de recursos limitados para así completar el ciclo

con el que fueron programados.

INGENIERÍA DEL SOFTWARE

7

Basada en componentes

Este se refiere a la funcionalidad disponible a través de un sistema de software

dado, se puede reutilizar un sistema transmitido. Los componentes con los que

se cuentan son los principales y la razón por la cual se define la arquitectura de

software.

¿Qué es un componente de software?

Un paquete de información es un grupo de datos de un software. Los procesos

con los que cuentan los componentes funcionan de manera semántica, por lo

que este principio determina que los componentes son modulares y cohesivos.

Algunas de las ventajas de basarse en componentes son las siguientes:

Reutilización de software

Simplificado de pruebas

Simplifica el mantenimiento del sistema

Mayor claridad

Estas ventajas son utilizadas y comprendidas debido a que los programas que

actualmente se desarrollan son más complejos, por lo que deben de cumplir con

varios de los requerimientos que se estipulan en los reglamentos ISO e IEEE,

para ofrecer calidad, funcionalidad, potencia, etc.

INGENIERÍA DEL SOFTWARE

8

Figura 4.Pressman, R. (2002).Ingeniería de software un enfoque práctico [Desarrollo basado en

componentes.] (p.28). Madrid: McGraw-Hill

INGENIERÍA DEL SOFTWARE

9

Conclusión

Importancia de las estrategias de desarrollo de software.

Las estrategias son medios de conocimiento y aplicación que se utilizan para

determinar la información que se ha conseguido y lograr estructurarla, de tal

forma que se pueda realizar la codificación de un software que cumpla con los

requisitos que solicita el comprador y con los que se ha diseñado la aplicación.

Basarse en los componentes es algo básico, pues cuando estos no están al

alcance de la mayoría de los usuarios para los cuales está dirigida la aplicación,

pasaría lo mismo que omitir un análisis de los productos, ocasionando grandes

pérdidas de dinero y tiempo al trata de solucionar los conflictos que se tengan,

como la incompatibilidad con el hardware o la falta de memoria para la ejecución

de comandos especiales, determinar la versión del sistema operativo en el que

se ejecutará o la capacidad de memoria de la que dependerá la aplicación para

tener éxito en correr el código y lanzar la aplicación.

INGENIERÍA DEL SOFTWARE

10

Para aprender más

Desarrollo basado en componentes.

• Gayoso, M. (2002). Desarrollo basado en componentes para sistemas de

gestión empresarial. (Tesis de maestría inédita) Instituto de Computación.

Facultad de Ingeniería. Universidad de la Republica. Sitio Web:

https://www.colibri.udelar.edu.uy/bitstream/123456789/3126/1/tesis-

gayoso.pdf

Análisis orientado a objetos en dominio aeronáutico.

• Monserrat, D. (2005). Modelos de análisis orientado a objetos aplicados

en el dominio aeronáutico. Modelos y patrones de diseño. (Tesis de

maestría inédita). Facultad de Informática. Universidad Nacional de la

Plata. Sitio Web:

http://sedici.unlp.edu.ar/bitstream/handle/10915/4080/Documento_complet

o__.pdf?sequence=1

Aplicaciones sensibles al contexto

• Bazzoco, J. (2005). Arquitectura Orientada a Objetos para Aplicaciones

Sensibles al Contexto. (Tesis de maestría inédita). Facultad de

Informática. Universidad Nacional de la Plata. Sitio Web:

http://sedici.unlp.edu.ar/bitstream/handle/10915/4085/Documento_complet

o.pdf?sequence=1

INGENIERÍA DEL SOFTWARE

11

Actividad de Aprendizaje

Instrucciones:

Para que reafirmes los conocimientos que has adquirido en esta sesión, tendrás

que realizar una actividad la cual consiste en realizar un mapa mental grafico

donde detalles las estrategias en la ingeniería de software y los tipos de

programación vistos en esta sesión.

Deberás guardarlo en formato JPG, para subirlo a la plataforma de la asignatura.

Es muy importante que tengas claros los conceptos de esta sesión, ya que más

adelante harás uso de ellos de manera práctica.

Para esta actividad se tomará en cuenta lo siguiente:

Título

Datos personales

Ortografía y redacción

Mapa mental gráfico

Bibliografía

INGENIERÍA DEL SOFTWARE

12

Bibliografía

• Budd T., (2010) Programación orientada a objetos. Sitio

web: http://www.fdi.ucm.es/profesor/jpavon/poo/01ejemplos.pdf

• Casal J. (2013), Desarrollo de software basado en componentes. De

Microsoft Developer Network. Sitio web: https://msdn.microsoft.com/es-

es/library/bb972268.aspx

• González, V. & Ortiz, M. Estrategias para el diseño y desarrollo de

software educativo. de Departamento de Tecnología Educativa de la

Secretaria de Educación Pública y Cultura del Estado de Sinaloa. Sitio

web: http://bibliotecadigital.conevyt.org.mx/colecciones/documentos/some

ce/11.pdf

• Pressman, R. (2002). Ingeniería de software .Un enfoque práctico. Madrid:

McGraw-Hill.