1. investigue: 1) cuáles son las etapas de la metodología de solución de problemas por medio de...

39
Metodología de la programación L.I. Gustavo Soriano Jiménez 1

Upload: jose-angel-poblete-araya

Post on 03-Feb-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

1

Metodología de la

programación

L.I. Gustavo Soriano Jiménez

2

Tarea

Investigue:1) Cuáles son las etapas de la

metodología de solución de problemas por medio de computadoras.

2) ¿Qué es la ingeniería de software?3) ¿Cuáles son las etapas del ciclo de

vida del software? ¿En qué consiste cada etapa?

4) ¿En qué consiste el modelo de cascada (o secuencial)? ¿Cuáles son sus etapas?

3

Sesión 6Objetivos:

1.5 Identificar las etapas de la metodología de solución de problemas por medio de computadoras.

Ejercicios complementarios.

4

Etapas de la metodología de solución

de problemas

5

Metodología

1) Concepción del problema. Clarificación del objetivo. Algoritmo. Prueba de escritorio.

2) Técnicas de representación.Diagramas de flujo.Pseudocódigo.

3) Transcripción o codificación.

6

1) Concepción del problema

Es muy importante que cuando tengamos un enunciado podamos tener de él una concepción acertada de manera que podamos alcanzar un objetivo y que ése objetivo sea el que realmente necesita ser solucionado.

La concepción del problema es el camino para tener la certeza de que lo hemos entendido correctamente y que lo que buscamos solucionar coincide con lo que se busca solucionar en el problema.

7

3 etapas internasa) Clarificación del objetivo.

Es muy importante que a través de un razonamiento teórico y textual nos sentemos a reflexionar en cuanto a los alcances de nuestro objetivo (enunciado como un problema) ya que con eso tendremos muy claro no solo hacia donde debemos ir sino hasta donde debemos llegar.

8

3 etapas internasb) Algoritmo.

el conjunto de pasos que nos permiten llegar (ojalá de la mejor de las formas) a alcanzar el objetivo propuesto. Debe ser organizado y, ante todo, ordenado para que sea absolutamente entendible.

9

3 etapas internasc) Prueba de escritorio.

Es la prueba reina de un algoritmo. Nos permite saber si realmente está bien o no. ¿Cuándo un algoritmo está bien? Solamente cuando realmente alcanza el objetivo propuesto. Si un algoritmo no alcanza el objetivo que inicialmente se propuso estará mal así haga maravillas en su desarrollo.

10

2) Técnicas de representación

Es importante conocer y dominar las técnicas de representación porque con ello, podrá evaluar ventajas y desventajas reales (y para usted) y podrá determinar cuál es la técnica más apropiada para la representación de sus algoritmos.

No está de mas decir que cuando se quiere representar un algoritmo solamente se utiliza una de las técnicas.

11

Diagramas de flujo

Serie de pasos ordenados, representados por signos (elementos gráficos), en donde el hilo conductor de la lógica se representa por flechas que van a significar la dirección del flujo de la idea.

12

Pseudocódigo

Texto basado en unas normas técnicas que lo hace muy entendible y sobre todo muy fácil de codificar y que representa, obviamente, la solución que hayamos planteado a través de un algoritmo.

13

3) Transcripción o codificación

Es la representación de un algoritmo a través de un Lenguaje de Programación.

Es importante que usted sepa que cuando vaya a desarrollar realmente programas aplicativos solo va a tener que codificar en un solo lenguaje de programación.

14

Ingeniería de Software

15

Ingeniería de softwareEs la disciplina o área de la Ingeniería

que ofrece métodos y técnicas para desarrollar y mantener software.

La creación del software es un proceso intrínsecamente creativo y la Ingeniería del Software trata de sistematizar este proceso con el fin de acotar el riesgo del fracaso en la consecución del objetivo creativo por medio de diversas técnicas que se han demostrado adecuadas en base a la experiencia previa.

16

Ingeniería de softwareEsta ingeniería trata con áreas muy

diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistema de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.

17

Algunas definiciones de IS

Es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978).

Es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software (Bohem, 1976).

18

Algunas definiciones de IS

Trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).

19

Ciclo de vida del software

20

Introducción INecesariamente la producción del

Software lleva un proceso de desarrollo y en dicho proceso deben incluirse diversas fases y en cada fase, actividades que garanticen la producción del software, a ese proceso se le conoce comúnmente como Ciclo de Vida del Software.

Todos los ciclos de vida tienen como meta la producción de software, existen en este sentido diversos enfoques de ciclos, que tienen ventajas y desventajas según el tipo de proyecto que se pretende desarrollar y la tecnología que se usara para producirlo.

21

Introducción IILos ciclos de vida atiende al viejo adagio

de “Divide y vencerás”, de esta manera el desarrollo del proyecto de software se divide en fases de tal manera que permitan mejorar el control del tiempo, el control del trabajo y el control de la calidad del proyecto.

Actualmente existen metodologías de desarrollo de software que no usan un ciclo particular para el desarrollo, sino que los combinan para obtener mejores resultados y aprovechar las ventajas que ofrece cada uno de ellos.

22

Introducción IIIExisten metodologías independientes del

ciclo de vida, esto es debido a que los ciclos de vida no definen aspectos importantes y necesarios para grupos de trabajo, como lo son los equipos de desarrollo de software y no determina explícitamente como llevar a cabo cada una de las fases que indica y las actividades que establece. Las metodologías, además de adoptar un ciclo de vida o una combinación de estos, tiene generalmente una guía metodológica que explica paso a paso la manera en como se debe llevar a cabo cada actividad, además contiene templates, scripts, roles y herramientas que la soportan.

23

Definición de ciclo de vida

“Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software”. (IEEE 1074).

“Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso” (ISO 12207-1).

24

Elementos del ciclo de vida

Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas planificables. Según el modelo de ciclo de vida, la sucesión de fases puede ampliarse con bucles (ciclos) de realimentación, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar más de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecución aportaciones de los resultados intermedios que se van produciendo (realimentación).

25

FasesCada fase viene definida por un

conjunto de elementos observables externamente, como son las actividades con las que se relaciona, los datos de entrada (resultados de la fase anterior, documentos o productos requeridos para la fase, experiencias de proyectos anteriores), los datos de salida (resultados a utilizar por la fase posterior, experiencia acumulada, pruebas o resultados efectuados) y la estructura interna de la fase.

26

Esquema general de operación de una fase

27

Entregables (deliverables)

Son los productos intermedios que generan las fases. Pueden ser materiales (componentes, equipos) o inmateriales (documentos, software).

Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuación o no a los requisitos funcionales y de condiciones de realización previamente establecidos. Cada una de estas evaluaciones puede servir, además, para la toma de decisiones a lo largo del desarrollo del proyecto.

28

Etapas del ciclo de vida

La primera etapa es un reconocimiento del problema por resolver. En un entorno corporativo, esta determinación podría provenir de investigación de mercados.

La segunda etapa, que puede omitirse del proceso formal, es un estudio de si el proyecto es factible. Por ejemplo, ¿existen las herramientas de desarrollo para producir el software?

En la tercera etapa, se produce un documento que típicamente especifica con precisión lo que el software debe hacer. Este documento de requisitos, debería tener suficientes detalles para ser utilizado como un estándar cuando el software completo es probado.

29

Etapas del ciclo de vida

En la cuarta etapa, un análisis en profundidad se realiza antes de cualquier esfuerzo, así no se gastan los recursos en el diseño y la implementación del proyecto. Esto podría incluir un estudio de software comparable y un análisis de costo-beneficio del valor de los gastos sobre los recursos previstos.

Una vez que ha tomado la decisión de proceder, en la quinta etapa el equipo de diseño de software trabaja desde el documento de requerimientos para diseñar el software. Esto incluye la especificación de todos los componentes de software y sus interrelaciones. También podrá exigir la especificación de algoritmos especializados que puedan desarrollarse en el software.

30

Etapas del ciclo de vida

En la sexta etapa, la implementación consiste en que los programadores codifiquen el diseño para producir el software.

En la séptima etapa, el equipo de pruebas garantiza que los resultados del software satisfacen el documento de requerimientos. El fracaso en este punto puede requerir un rediseño o incluso algunos ajustes de los requisitos. Estas eventualidades están representadas por los dos ciclos de retroalimentación mostrados en la figura. Las pruebas ocurren en varios niveles. Los módulos individuales y sus métodos tienen que ser probados por separado, y luego su éxito en el trabajo conjunto debe ser verificado. Por último, el producto en su conjunto se prueba contra el documento de requerimientos.

31

Etapas del ciclo de vida

Un último aspecto del desarrollo de software que no se muestra en la figura es el proceso de mantenimiento. Después de que el software ha sido entregado, sus desarrolladores siguen estando obligados a mantenerlo con versiones corregidas, paquetes de servicios, e incluso revisiones mayores. Cualquier revisión importante en sí seguiría los mismos pasos del ciclo de vida.

32

Modelo de cascada o secuencial

33

Introducción ISe le conoce como el primer ciclo de

vida del software, es el más básico de todos los modelos y se le atribuye su definición a Winston Royce a fines de los 70s. Desde entonces muchos equipos de desarrollo han seguido este modelo. Sin embargo, ya desde 10 a 15 años atrás, el modelo cascada ha sido sujeto a numerosas críticas, debido a que es restrictivo y rígido, lo cual dificulta el desarrollo de proyectos de software moderno..

34

Introducción IIDebido a la cascada de una fase a otra, este modelo se

conoce como “Modelo de Cascada (o Secuencial)“ o como ciclo de vida del software. Incluye las siguientes actividades de desarrollo.

35

Actividades o Fases1) Análisis y Definición de

Requerimientos: Los servicios, restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Entonces se definen en detalle y sirven como una especificación del sistema.

2) Diseño del Sistema y del Software: Establece una arquitectura completa del sistema, el diseño de software identifica y describe las abstracciones fundamentales del sistema de software sus relaciones.

36

Actividades o Fases3) Implementación y Pruebas de

Unidades: En esta etapa, el diseño de software se lleva a cabo como un conjunto de unidades de programas. Las pruebas de unidad implican que cada una cumpla su especificación.

4) Integración y Pruebas del Sistema: Los programas o las unidades individuales del programa se integran y se prueban como un sistema completo para asegurar que se cumplan los requerimientos de software. Después de las pruebas el sistema de Software se entrega al usuario.

37

Actividades o Fases5) Operación y Mantenimiento: El

sistema se instala y pone en uso práctico. El mantenimiento implica corregir errores no descubiertos en las etapas anteriores del ciclo de vida.

Cada fase tiene como resultado documentos que deben ser aprobados por el usuario. Una fase comienza hasta que termine la fase anterior.

38

Características No incluye análisis de riesgos. Se debe utilizar cuando los

requerimientos se comprenden del todo.

Alto riesgo en sistemas nuevos debido a problemas con las especificaciones y en el diseño.

Bajo riesgo para desarrollos bien conocidos y utilizando tecnología conocida.

Se administra fácilmente. La separación de las fases de diseño e

implementación conduce a sistemas robustos susceptibles al cambio.

39

NotaCabe señalar que algunos

consideran al modelo de cascada como obsoleto y fuera de todo contexto en sistemas reales debido a la naturaleza cambiante de los requisitos; sin embargo, se ha demostrado que la aplicación del modelo de cascada en iteraciones pequeñas es necesario y otorga muchos beneficios, es una aplicación que le dan muchas de las metodologías actuales de desarrollo.