Slide 1

Slide 1 text

Desarrollo de Software Rogelio Castillo A. [email protected] Rogelio Castillo A. [email protected]

Slide 2

Slide 2 text

Software Rogelio Castillo A. [email protected]

Slide 3

Slide 3 text

Software IEEE Std. 610 define el software como “programas, procedimientos y documentación y datos asociados, relacionados con la operación de un sistema informático” Según el Webster’s New Collegiate Dictionary (1975), “software es un conjunto de programas, procedimientos y documentación relacionada asociados con un sistema, especialmente un sistema informático”.

Slide 4

Slide 4 text

Componentes del Software

Slide 5

Slide 5 text

Componentes del Software Software Programas Datos Documentación

Slide 6

Slide 6 text

Tipos de Software

Slide 7

Slide 7 text

Tipos de Software Software de Aplicaciones (Sistemas de Inventario, Sistemas de Venta, etc) Software de Sistemas (Sistemas Operativos, Compiladores, etc)

Slide 8

Slide 8 text

Ingeniería del Software

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Ingeniería del Software La definición de IEEE describe la ingeniería del software como un enfoque sistemático cubriendo los aspectos del desarrollo, operación y mantenimiento. Este enfoque es disciplinado y cuantificable.

Slide 11

Slide 11 text

Ingeniería del Software Etapas

Slide 12

Slide 12 text

Etapas Análisis de Requisitos Espcificación Diseño y Arquitectura Programación Prueba Manatenimiento

Slide 13

Slide 13 text

Ingeniería del Software Objetivo

Slide 14

Slide 14 text

Objetivo El objetivo primario de la ingeniería del software es construir un producto de alta calidad de una manera oportuna. Trata de conseguir este objetivo primario usando un enfoque de ingeniería. La ingeniería implica un conjunto de principios fundamentales que deberían seguirse siempre. Incluyen actividades explícitas para el entendimiento del problema y la comunicación con el cliente, métodos definidos para representar un diseño, mejores prácticas para la implementación de la solución y estrategias y tácticas sólidas para las pruebas.

Slide 15

Slide 15 text

Ciclos de Vida de Desarrollo de Software (SDLC)

Slide 16

Slide 16 text

Ciclos de Vida de Desarrollo de Software (SDLC)

Slide 17

Slide 17 text

Determinar el orden de las fases del proceso de software Establecer los criterios de transición para pasar de una fase a la siguiente Definir las entradas y salidas de cada fase Describir los estados por los que pasa el producto Describir las actividades a realizar para transformar el producto Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar... SDLC: Funciones

Slide 18

Slide 18 text

FUNCIONES Determinar el orden de las fases del proceso de software Establecer los criterios de transición para pasar de una fase a la siguiente Definir las entradas y salidas de cada fase Describir los estados por los que pasa el producto Describir las actividades a realizar para transformar el producto Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar... SDLC

Slide 19

Slide 19 text

FASES Una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto. Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. La agrupación temporal de tareas impone requisitos temporales correspondientes a la asignación de recursos (humanos, financieros o materiales) SDLC

Slide 20

Slide 20 text

ENTREGABLES Son los productos intermedios que generan las fases. Pueden ser materiales 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. SDLC

Slide 21

Slide 21 text

MODELO DE CICLO DE VIDA DE SOFTWARE Describe las fases principales de desarrollo de software Define las fases primarias esperadas de ser ejecutadas durante esas fases Ayuda a administrar el progreso del desarrollo Provee un espacio de trabajo para la definición de un proceso detallado de desarrollo de software SDLC

Slide 22

Slide 22 text

Modelo en Cascada

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Modelo en V

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Modelo Iterativo

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Modelo de Desarrollo Incremental

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Modelo en Espiral

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Modelo de Prototipos

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Metodologías de Desarrollo de Software

Slide 35

Slide 35 text

Ágiles Tradicionales Basadas en heurísticas provenientes de prácticas de producción de código Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo Especialmente preparados para cambios durante el proyecto Cierta resistencia a los cambios Impuestas internamente (por el equipo) Impuestas externamente Proceso menos controlado, con pocos principios Proceso mucho más controlado, con numerosas políticas/normas No existe contrato tradicional o al menos es bastante flexible Existe un contrato prefijado

Slide 36

Slide 36 text

Ágiles Tradicionales El cliente es parte del equipo de desarrollo El cliente interactúa con el equipo de desarrollo mediante reuniones Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio Grupos grandes y posiblemente distribuidos Pocos artefactos Más artefactos Pocos roles Más roles Menos énfasis en la arquitectura del software La arquitectura del software es esencial y se expresa mediante modelos