Subido por Ismael Ochoa Zamorano

IS05 Lectura-Lenguajes para el desarrollo

Anuncio
INGENIERÍA DEL SOFTWARE
INGENIERÍA DEL SOFTWARE
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.
1
INGENIERÍA DEL SOFTWARE
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.
2
INGENIERÍA DEL SOFTWARE
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
3
INGENIERÍA DEL SOFTWARE
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.
4
INGENIERÍA DEL SOFTWARE
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
5
INGENIERÍA DEL SOFTWARE
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-objetosconcepto.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.
6
INGENIERÍA DEL SOFTWARE
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.
7
INGENIERÍA DEL SOFTWARE
Figura 4.Pressman, R. (2002).Ingeniería de software un enfoque práctico [Desarrollo basado en
componentes.] (p.28). Madrid: McGraw-Hill
8
INGENIERÍA DEL SOFTWARE
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.
9
INGENIERÍA DEL SOFTWARE
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/tesisgayoso.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
10
INGENIERÍA DEL SOFTWARE
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
11
INGENIERÍA DEL SOFTWARE
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/eses/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.
12
Descargar