Sie sind auf Seite 1von 28

Ingeniera de Software I

Panorama general de la
ingeniera de software

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 1

Contenido

Introduccin
Preguntas frecuentes acerca de la
ingeniera de software
Proceso de desarrollo de Software
Modelos de procesos de software

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 2

Introduccin
Un sistema informtico
est
compuesto
por
hardware y software. En
cuanto al hardware, su
produccin
se
realiza
sistemticamente y la base
de conocimiento para el
desarrollo
de
dicha
actividad est claramente
definida.
Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 3

Introduccin
La fiabilidad del hardware es, en principio, equiparable a
la de cualquier otra mquina construida por el hombre.
Sin
embargo,
respecto del software,
su construccin y
resultados han sido
histricamente
cuestionados debido
a
los
problemas
asociados desde su
concepcin hasta su
implementacin.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 4

Qu es Software?

Software no slo son programas, sino todos los


documentos asociados y la configuracin de datos
que se necesitan para hacer que estos programas
operen de manera correcta.
Los productos de Software se pueden desarrollar para
algn cliente en particular o para un mercado en
general.
Tipos de productos de Software:

Genricos, desarrollados para un mercado abierto a


cualquier cliente.
Personalizados, software desarrollado para un cliente en
particular, la especificacin es controlada por la empresa
contratista.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 5

Qu es la Ingeniera de Software?

La ingeniera de software es una disciplina que


comprende todos los aspectos de la produccin de
software desde su etapa inicial, hasta el
mantenimiento de ste despus de que se utiliza.

La ingeniera de software adopta un enfoque


sistemtico y organizado en su trabajo, ya que es la
forma ms efectiva de producir software de alta
calidad, utilizando teoras, mtodos y herramientas
para brindar soluciones viables en las organizaciones.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 6

Las cuatro P de la ingeniera de software


Unified Process Matrix
Jacobson et al: USDP

Inception Elaboration

Prelim.
iterations

Iter.
#1

.. Iter.
#n

Construction
Iter.
#n+1

..

Iter.
#m

Transition
Iter.
#m+1

..

Iter.
#k

Requirements

Analysis
Design

Personas

Implementation

(quin lo hace)

Procesos
(la manera en que se hace)

Proyecto

Producto

(la realizacin)

(la aplicacin de artefactos)

Ing. Edgar Muante Villafuerte

Test

Ingeniera de Software I

Slide 7

Cul es la diferencia entre ingeniera de


software e ingeniera de sistemas?

La ingeniera de sistemas se
refiere a todos los aspectos del
desarrollo y de la evolucin de
sistemas complejos donde el
software
juega
un
papel
principal.

Ingeniera de
sistemas
Hardware

La ingeniera de sistemas
comprende, el desarrollo de
hardware, polticas y procesos
de diseo y distribucin de
sistemas, as como la ingeniera
de software.

Ing. Edgar Muante Villafuerte

Polticas
Ing. de
Software

Procesos

Arquitectura
del sistema

Ingeniera de Software I

Distribucin
de sistemas

Slide 8

Qu es un proceso de software?

Proceso de software, es un conjunto de actividades cuya meta es


el desarrollo o evolucin del software.

Actividades
del proceso
de software

Ing. Edgar Muante Villafuerte

Especificacin del software

Desarrollo del software

Validacin del software

Evolucin del software


Ingeniera de Software I

Slide 9

Qu es un modelo de proceso del software?

Es una representacin simplificada de un proceso del software,


representada desde una perspectiva especfica o particular.
Un modelo de proceso de software es una abstraccin de un
proceso real. Ejemplos de estos tipos de modelos.
Un modelo de flujo de
trabajo

Muestra la secuencia de actividades (entrada,


salidas y dependencias)

Un modelo de flujo de
datos o de actividad

Representa el proceso como un conjunto de


actividades, cada una de las cuales lleva a alguna
transformacin en los datos.

Un modelo de rol/accin

Representa los roles de la gente involucrada en e


proceso de software y las actividades de las que
son responsables.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 10

Qu son los mtodos de la ingeniera


software?

Es un enfoque estructurado para el desarrollo de software cuyo


propsito es facilitar la produccin de software de alta calidad,
que incluye: modelos de sistemas, reglas, recomendaciones y
guas de procesos.

Modelos de sistemas
Descripcin de modelos del sistema y la notacin utilizada para definir estos modelos.

Reglas
Restricciones que siempre aplican a los modelos de sistemas

Recomendaciones
Buenas practicas de diseo en el modelo, utilizando recomendaciones antes descritas
para dar como resultado un sistema bien organizado.

Guas del proceso


Descripciones de las actividades que deben de seguirse.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 11

Cules son los atributos de un buen


software?

El software debe de tener la funcionalidad y el rendimiento


requerido por los usuarios, adems debe ser:
Atributos

Descripcin

El software debe escribirse de tal forma que pueda


Mantenibilidad evolucionar para cumplir las necesidades de cambio de los
clientes
Confiabilidad

La confiabilidad incluye la fiabilidad, seguridad y proteccin.

Eficiencia

El software no debe hacer que se malgasten los recursos del


sistema, como la memoria y los ciclos de procesamiento.

Usabilidad

El software debe de ser fcil de utilizar, sin esfuerzo


adicional por el usuario.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 12

Proceso de desarrollo de Software


Un proceso de desarrollo de software tiene como
propsito la produccin eficaz y eficiente de un
producto llamado software que rena los requisitos
del cliente.
Un producto software es intangible y por lo general
muy abstracto, esto dificulta la definicin del producto
y sus requisitos, sobre todo cuando no se tiene
precedentes en productos software similares.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 13

El proceso de desarrollo del software


El proceso indicado, en trminos globales se muestra a
continuacin.
Requisitos nuevos
o modificados

Proceso de Desarrollo
de Software

Sistema nuevo
o modificado

El proceso de desarrollo de software no es nico. No existe


un proceso de software universal que sea efectivo para todos
los contextos de proyectos de desarrollo. Debido a esta
diversidad, es difcil automatizar todo un proceso de
desarrollo de software.
Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 14

El proceso de desarrollo del software


En un proyecto de desarrollo de software la metodologa define Quin debe
hacer Qu, Cundo y Cmo debe hacerlo.

Actividades
Herramientas

Personas

Proceso
SW

Roles

Ing. Edgar Muante Villafuerte

Artefactos

Ingeniera de Software I

Notacin

Slide 15

Modelos de procesos de software


Es una representacin simplificada de un proceso del software,
representada desde una perspectiva especfica o particular.
Un modelo de proceso de software es una representacin simplificada de
un proceso de software que conlleva a una estrategia global para abordar
el desarrollo de software
Los modelos de proceso ms comunes son los siguientes:
El modelo en cascada
Desarrollo evolutivo
Desarrollo formal de sistemas
Desarrollo basado en reutilizacin
Desarrollo incremental
Desarrollo en espiral
Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 16

Modelos de procesos de software


Modelo en cascada
El primer modelo de desarrollo de software que se
public se deriv de otros procesos de ingeniera.
ste toma las actividades fundamentales del
proceso de especificacin, desarrollo, validacin y
evolucin y las representa como fases separadas
del proceso (algunas veces llamado ciclo de vida
clsico).

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 17

Modelos de procesos de software


Modelo en cascada

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 18

Modelos de procesos de software


Desarrollo evolutivo
La idea detrs de este modelo es el desarrollo
de una implantacin del sistema inicial,
exponerla a los comentarios del usuario,
refinarla en N versiones hasta que se desarrolle
el sistema adecuado.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 19

Modelos de procesos de software


Desarrollo evolutivo

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 20

Modelos de procesos de software


Desarrollo evolutivo

Este modelo es efectivo en proyectos pequeos (menos de 100.000


lneas de cdigo) o medianos (hasta 500.000 lneas de cdigo) con
poco tiempo para su desarrollo y sin generar documentacin para
cada versin.
Para proyectos largos es mejor combinar lo mejor del modelo de
cascada y evolutivo: se puede hacer un prototipo global del sistema
y posteriormente implementarlo con un acercamiento ms
estructurado.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 21

Modelos de procesos de software


Desarrollo formal de sistemas

Este modelo se basa en transformaciones formales de los requisitos


hasta llegar a un programa ejecutable.
Desiciones

Desarrollo
Formal

Especificacin
Informal
Especificacin
Especificacin
de alto nivel
(prototipo)

Tranformacin
Interactiva

Especificacin
de bajo nivel

Transformacin
Automtica

Cdigo
Fuente

Optimizacin
Validacin de
Especificacin

Mantenimiento

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 22

Modelos de procesos de software


Desarrollo basado en reutilizacin
Como su nombre lo indica, es un modelo fuertemente orientado a la
reutilizacin.
Las ventajas de este modelo son:

Disminuye el costo y esfuerzo de desarrollo.

Reduce el tiempo de entrega.

Disminuye los riesgos durante el desarrollo.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 23

Modelos de procesos de software


Desarrollo incremental
Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o
evolutivo, dependiendo del conocimiento que se tenga sobre los requisitos a
implementar. Si se tiene un buen conocimiento, se puede optar por cascada, si es
dudoso, evolutivo.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 24

Modelos de procesos de software


Desarrollo en espiral
El ciclo de desarrollo se representa como una
espiral, en lugar de una serie de actividades
sucesivas con retrospectiva de una actividad a
otra.

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 25

Modelos de procesos de software


Desarrollo en espiral
Cada ciclo de desarrollo se divide en cuatro fases:

Definicin de objetivos: Se definen los objetivos. Se definen las


restricciones del proceso y del producto. Se realiza un diseo
detallado del plan administrativo. Se identifican los riesgos y se
elaboran estrategias alternativas dependiendo de estos.

Evaluacin y reduccin de riesgos: Se realiza un anlisis


detallado de cada riesgo identificado. Pueden desarrollarse
prototipos para disminuir el riesgo de requisitos dudosos. Se
definen pasos para reducir los riesgos.

Desarrollo y validacin: Se escoge el modelo de desarrollo


despus de la evaluacin del riesgo. El modelo que se utilizar
(cascada, sistemas formales, evolutivo, etc.) depende del riesgo
identificado para esa fase.

Planificacin: Se determina si continuar con otro ciclo. Se planea


la siguiente fase del proyecto.
Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 26

Modelos de procesos de software

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 27

Modelos de procesos de software


Cul es el modelo de proceso ms adecuado?
Cada proyecto de software requiere de una forma
particular de abordar el problema. Las propuestas
comerciales y acadmicas actuales promueven
procesos iterativos, donde en cada iteracin puede
utilizarse uno u otro modelo de proceso, considerando
un conjunto de criterios (Por ejemplo: grado de
definicin de requisitos, tamao del proyecto, riesgos
identificados, entre otros).

Ing. Edgar Muante Villafuerte

Ingeniera de Software I

Slide 28

Das könnte Ihnen auch gefallen