• No se han encontrado resultados

INGENIERÍA DE SOFTWARE I. Alejandra Mercedes Colina Vargas, Ph.D. Mayo, 2019

N/A
N/A
Protected

Academic year: 2022

Share "INGENIERÍA DE SOFTWARE I. Alejandra Mercedes Colina Vargas, Ph.D. Mayo, 2019"

Copied!
47
0
0

Texto completo

(1)

INGENIERÍA DE SOFTWARE I

Alejandra Mercedes Colina Vargas, Ph.D.

Mayo, 2019

(2)

CAPÍTULO 2:

Introducción la Ingeniería del Software

Ing. Alejandra Colina V.

Mayo, 2019

(3)

• Reconocer los elementos que conforman la Ingeniería del Software y sus principales componentes de estudio.

Objetivo del capítulo

(4)

Contenido

Software: definición, características, dominios de aplicación y software

heredados.

Proceso de Ingeniería de software

Ingeniería de software:

definición y capas

Modelos de ingeniería de software

Métodos de ingeniería de software

(5)

Clase N°6

(6)

Ingeniería de Software

(7)

Es el establecimiento y uso de principios fundamentales de la ingeniería con objeto de desarrollar en forma económica software que sea confiable y que trabaje con eficiencia en máquinas reales.

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

Definición

(8)

La ingeniería de software es una tecnología multicapa, cualquier enfoque de ingeniería debe apoyarse sobre un compromiso de organización de calidad.

Capas

(9)

Capas

Herramienta Método Proceso

Enfoque de calidad

MÉTODO: cómo se debe construir técnicamente el software. Comprende varias tareas, que incluyen: Análisis de requisitos. Diseño. Construcción de programas.

Pruebas. Mantenimiento.

HERRAMIENTAS: Soporte de ayuda para construir el software, proporciona un enfoque automático o semiautomático para el proceso y para los métodos.

ENFOQUE DE CALIDAD: comprende la gestión para obtener un software de calidad, y hace revisiones para hacer mejoras al producto.

PROCESO: definen las actividades para poder realizar el software.

(10)

¿Cuáles son los elementos de un proceso de

software?

(11)

Proceso

Es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo.

Actividad

Pretende lograr un objetivo amplio y se desarrolla sin importar el dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo o grado de rigor con el que se usará la ingeniería de software.

(12)

Acción

Conjunto de tareas que producen un producto importante del trabajo.

Tarea

Centra en un objetivo pequeño pero bien que produce un resultado tangible.

(13)

En el contexto de la INGENIERÍA DE SOFTWARE un proceso NO es una prescripción rígida de cómo elaborar software de cómputo.

Es un enfoque adaptable que permite que las personas que hacen el trabajo busquen y elijan el conjunto apropiado de acciones y tareas para el trabajo.

Un proceso de software es una serie de actividades relacionadas que conduce a la elaboración de un producto de software .

(14)

Proceso de Ingeniería de software

(15)

Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad (Pressman, 2010).

(16)

ESTRUCTURA DE UN PROCESO DEL SOFTWARE

Fuente: Pressman (2010).

(17)

• Dirigidos por un plan: son aquellos donde todas las actividades del proceso se planean por anticipado y el avance se mide contra dicho plan.

• Procesos ágiles: la planeación es incremental y fácil modificar el proceso para reflejar los requerimientos cambiantes del cliente.

Los procesos de software se clasifican:

(18)

¿Cuáles son las cinco actividades

estructurales del proceso?

(19)

Comunicación

Planeación

Modelado Construcción

Despliegue

(20)

Comunicación.

• Entender los objetivos de los participantes respecto del

proyecto, y reunir los requerimientos que ayuden a definir las características y

funciones del software.

Planeación.

• Describir las tareas técnicas por realizar, los riesgos

probables, los recursos que se requieren, los

productos del trabajo que se obtendrán y una programación de las actividades.

Modelado.

• Crear modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.

(21)

• Esta actividad combina la generación de código y las pruebas que se requieren para descubrir errores en éste.

Construcción.

• El software se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.

Despliegue.

(22)

• Un flujo de proceso lineal ejecuta cada una de las cinco actividades estructurales en secuencia, comenzando por la comunicación y terminando con el despliegue.

• Un flujo de proceso iterativo repite una o más de las actividades antes de pasar a la siguiente.

(23)

• Un flujo de proceso evolutivo realiza las actividades en forma

“circular”. A través de las cinco actividades, cada circuito lleva a una versión más completa del software.

(24)

• Un flujo de proceso paralelo ejecuta una o más actividades en paralelo con otras

(25)

¿Qué acciones son apropiadas para desarrollar un proyecto de software, tomando en cuenta la naturaleza del problema por resolver, las características de las personas que hacen el trabajo y los participantes que lo patrocinan?

(26)

▪ Para un proyecto de software pequeño solicitado.

▪ Para proyecto de software grande.

Diferentes proyectos demandan diferentes conjuntos de tareas.

El equipo de software elige el conjunto de tareas con base en las características del problema y el proyecto.

(27)

¿Cuáles son las etapas generales

del proceso del software?

(28)

Planificación

Definición y análisis de requerimientos

Diseño del sistema

Codificación Pruebas

Liberación del producto

Mantenimiento

(29)

Planificación

• Permite hacer

estimaciones razonables de recursos, costos y

planificación temporal.

Definición y análisis de requerimientos

• Definición de los requerimientos del sistema.

(30)

Diseño del sistema

• Transformar el problema en una solución, es decir realizar un diseño del

sistema que satisfaga las necesidades de los

clientes.

Codificación

• Proceso creativo que traduce el diseño a un lenguaje de

programación.

(31)

Pruebas

• Demoler el producto de

software con el propósito de

detectar defectos

Liberación del producto

• Es más que solo la entrega del producto, sino que es el

momento del

desarrollo en que se ayuda a los usuarios a comprender el

producto entregado y a sentirse cómodos con él.

Mantenimiento

• Mantener un sistema que evoluciona

constantemente.

(32)

Modelos de ingeniería de software

(33)

Representación simplificada. Cada modelo del proceso representa a otro desde una particular perspectiva y, por lo tanto, ofrece sólo información parcial acerca de dicho proceso (Sommerville, 2011).

(34)

“Es una representación abstracta de un proceso de software. Cada modelo de proceso representa un proceso desde una perspectiva particular por lo que sólo provee información parcial acerca de ese proceso”.

(35)

• Muestra la secuencia de actividades en el proceso junto con sus entradas, salidas y dependencias (Acciones humanas).

Modelo de flujo de trabajo

• Representa el proceso como un conjunto de actividades, cada una de las cuales realiza alguna transformación en los datos (Personas o computadoras).

Modelo de flujo de datos o de actividad

• Representa los roles de las personas

involucrada en el proceso del software y las actividades de las que son responsables.

Modelo de rol/acción

(36)

Tipos de modelos

(37)

Modelos de procesos prescriptivos

Definen un conjunto prescrito de elementos del proceso: actividades estructurales, acciones de ingeniería de software, tareas, productos del trabajo, aseguramiento de la calidad y mecanismos de control del cambio para cada proyecto.

Cada modelo del proceso indica un flujo del proceso, la manera en la que los elementos del proceso se relacionan entre sí.

Este realiza de manera secuencia.

(38)

Modelos de procesos prescriptivos

Ciclo de vida clásico

Construcción por prototipo

Desarrollo Rápido de Aplicaciones

Métodos

Iterativos como el incremental y

espiral.

(39)

Modelos de proceso especializado

Los modelos de proceso especializado tienen muchas de las características de uno o más de los modelos tradicionales.

Pueden caracterizarse como un conjunto de técnicas o

“metodología” para alcanzar una meta específica de desarrollo de software. No obstante, implican un proceso.

(40)

Modelos de procesos especializado Modelo de

desarrollo basado en componentes

Modelo de métodos formales (matemáticos) Desarrollo de

software orientado a

aspectos

(41)

Métodos de ingeniería de software

(42)

Método: Es un conjunto de herramientas, técnicas y procesos que brindan soporte y facilitan el logro u obtención de una meta.

Método: que hacer, a lo largo de todo el ciclo de vida del software, para construir un producto bueno, de calidad, dentro del presupuesto y a tiempo

(43)

¿Por qué es necesario un método para desarrollar software?

Por lo complejo que resulta desarrollar software

Por el costo del cambio, la naturaleza del software y otras razones

(44)

Métodos tradicionales vs Métodos ágiles

(45)

Métodos tradicionales

• Basadas en normas o prescripciones de estándares propios dl entorno de

desarrollo.

• Ofrecen ciertas resistencia al cambio.

• Impuesta externamente

• Procesos muy controlados por normas y políticas

• Existe un contrato prefijado

• El cliente interactúa mediante reuniones

• Grupos grandes.

• La arquitectura del software es esencial y representada mediante modelos

Métodos ágiles

• Basadas en heurísticas

• Preparadas para los cambios

• Impuesta internamente

• Procesos no controlados muy pocos principios

• No existen un contrato tradicional

• El cliente s parte del equipo de desarrollo

• Grupo pequeños y trabajan en el mismo sitio

• Menos énfasis en la arquitectura del software

(46)

BIBLIOGRAFÍA

Ian Sommerville, Software Engineering. 9th edition, 2011, Addison- Wesley

Roger Pressman, Ingeniería de Software: Un Enfoque Práctico.

Séptima Edición, 2010, McGraw-Hill

.

(47)

PRÓXIMA CLASE…

¿Cuáles son los Modelos de Proceso Software

Tradicionales?

Referencias

Documento similar

En un estudio clínico en niños y adolescentes de 10-24 años de edad con diabetes mellitus tipo 2, 39 pacientes fueron aleatorizados a dapagliflozina 10 mg y 33 a placebo,

• Descripción de los riesgos importantes de enfermedad pulmonar intersticial/neumonitis asociados al uso de trastuzumab deruxtecán. • Descripción de los principales signos

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

• For patients with severe asthma and who are on oral corticosteroids or for patients with severe asthma and co-morbid moderate-to-severe atopic dermatitis or adults with

García-Holgado, "Introducción a la Ingeniería del Software," Recursos docentes de la asignatura Ingeniería de Software I. Grado en

Las revisiones del software juegan un papel fundamental en el control de la calidad, son un filtro en el proceso de ingeniería de software aplicadas en varios momentos de