Está en la página 1de 25

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS


CARRERA DE INGENIERÍA DE SOFTWARE

Introducción

AUTOR: Ing. Héctor Lara Gavilanez, Msc.


INTRODUCCIÓN
EI término ingeniería de
Los desarrolladores de software
software fue acuñado en 1968
no fueron capaces de definir
como una respuesta al nivel de
objetivos concretos, predecir los
progreso desolador del objetivo
recursos necesarios para lograr
de desarrollar software de
esos objetivos y manejar las
calidad a tiempo y dentro del
expectativas de los clientes.
presupuesto.

Con mucha frecuencia se


prometía la luna y la
construcción de un vehículo
lunar, y se entregaba un par de
ruedas cuadradas
2
INTRODUCCIÓN
Un ingeniero es capaz de
construir un producto de alta
El énfasis de Ia ingeniería de
calidad usando componentes
software está en las dos
ya elaborados e integrándolos
palabras: ingeniería y software.
bajo restricciones de tiempo y
presupuesto.

El ingeniero se enfrenta a Los sistemas de software titiles


menudo con problemas mal son complejos. Para seguir
definidos y con soluciones siendo titiles necesitan
parciales, y tiene que apoyarse evolucionar con las
en métodos empíricos para necesidades de los usuarios
evaluar soluciones finales y el ambiente de destino
3
COMPLEJIDAD Y CAMBIO
Los sistemas de software son creaciones complejas: realizan muchas funciones, están construidos
para lograr muchos objetivos diferentes y con frecuencia conflictivos,

Comprenden muchos componentes, muchos de sus componentes son en sí mismos complejos y


hechos a la medida,

Muchos participantes de disciplinas diferentes intervienen en el desarrollo de estos componentes

Los proyectos de desarrollo de software están sujetos a cambios constantes. Debido a que los
requerimientos son complejos, necesitan ser actualizados cuando se descubren errores y cuando

los desarrolladores tienen una mejor comprensión de la aplicación.

Si el proyecto dura muchos años, la rotación de personal es alta y requiere entrenamiento


constante
4
¿Qué es la ingeniería de software?
La ingeniería de software es una actividad de modelado.
Los ingenieros de software manejan la complejidad
mediante el modelado, enfocándose siempre solo en los
detalles relevantes e ignorando todo lo demás.

En el curso del desarrollo, los ingenieros de software


construyen muchos modelos diferentes del sistema y
del dominio de aplicación
5
¿Qué es la ingeniería de software?
Los sistemas de software son
creaciones complejas: realizan Comprenden muchos componentes,
Muchos participantes de disciplinas
muchas funciones, están construidos muchos de sus componentes son en
diferentes intervienen en el
para lograr muchos objetivos sí mismos complejos y hechos a la
desarrollo de estos componentes
diferentes y con frecuencia medida,
conflictivos,

Los proyectos de desarrollo de


software están sujetos a cambios
constantes. Debido a que los
Si el proyecto dura muchos años, la
requerimientos son complejos,
rotación de personal es alta y
necesitan ser actualizados cuando se
requiere entrenamiento constante
descubren errores y cuando los
desarrolladores tienen una mejor
comprensión de la aplicación.
6
¿Qué es la ingeniería de software?
En el modelado de los
dominios de la aplicación y la
La ingeniería de software es
solución, el ingeniero de
una actividad para la
software recopila datos, los
adquisición de conocimiento.
organiza en información y los
formaliza en conocimiento.

La adquisición de
conocimiento no es lineal, ya
que un solo dato puede
invalidar modelos completos.
7
¿Qué es Modelado?
Los modelos son útiles cuando se
Un modelo es una manejan sistemas que son
representación abstracta de un demasiado grandes, demasiado
sistema que nos permite pequeños, demasiado
responder preguntas acerca del complicados o demasiado caros
sistema. para tener una experiencia de
primera mano.

Los modelos también nos


los ingenieros de software
permiten visualizar y
necesitan comprender el
comprender sistemas que ya no
ambiente en el que va a operar
existen o que solo se supone que
el sistema.
existen

8
¿Qué es Modelado?
Para un sistema de control de tráfico de trenes, los ingenieros de software necesitan
conocer los procedimientos de señalización de los trenes.

Para un sistema de comercialización de acciones, los ingenieros de software necesitan


conocer las reglas de comercio.

Los ingenieros de software no necesitan llegar a ser por completo despachadores de


trenes certificados o corredores de bolsa, sino que solo necesitan aprender los
conceptos del dominio de problema que son relevantespara el sistema

En otras palabras, necesitan construir un modelo del dominio de problema


9
¿Qué es Modelado?
Los métodos orientados a objetos combinan las actividades de
modelado de los dominios de problema y de solución en uno
solo.

Primero se modela el dominio de problema como un conjunto


de objetos y relaciones.

Luego, el sistema usa este modelo para representar los


conceptos del mundo real que manipula
10
Solución de problemas
La ingeniería es una actividad
para la solución de problemas

Los ingenieros buscan una 5.


solución adecuada, a menudo Especificar la
4. Decidir solución
mediante ensayo y error, cuál es Ia
3. Buscar solución
evaluando alternativas en soluciones
2. Analizar el adecuada
forma empírica con recursos problema
1. Formular
limitados y con conocimiento el problema
incompleto.

En su forma más simple, el


método de la ingeniería
incluye cinco pasos
11
Solución de problemas
La ingeniería de software es una actividad de ingeniería. No es algorítmica.
Requiere experimentación, la reutilización de soluciones patrón y Ia evolución
creciente del sistema hacia una solución que sea aceptable para el cliente

El desarrollo de software incluye, por lo general, cinco actividades de


desarrollo:

• Obtención de requerimientos,
• Análisis,
• Diseño del sistema,
• Diseño de objetos e
• Implementación
12
Adquisición de conocimiento
Un error común que cometen los ingenieros y gerentes de software es suponer
que la adquisición del conocimiento necesario para desarrollar un sistema es
lineal

La adquisición de conocimientos es un proceso no lineal. La adición de una nueva


parte de información puede invalidar todo el conocimiento que hemos adquirido
para la comprensión de un sistema.

Aunque ya hubiéramos documentado esta comprensión en documentos y código


("el sistema está codificado 90% y lo terminaremos la semana próxima")
debemos estar preparados mentalmente para comenzar a partir de cero

13
Sistemas y modelos
Usamos el término sistema para referirnos a la realidad
subyacente, y el término modelo para referirnos a cualquier
abstracción de la realidad.

Un distribuidor de boletos para un tren subterráneo es un


sistema. Los planos para el distribuidor de boletos, los
esquemas de su alambrado eléctrico y los modelos de
objetos de su software son modelos del distribuidor de
boletos 14
Objetivos, requerimientos y restricciones
Un objetivo es un principio de alto nivel que se usa para guiar el proyecto.

Los objetivos definen los atributos del sistema que son importantes. Proyectos
diferentes tienen objetivos diferentes

El objetivo principal del desarrollo del software de guía del transbordador espacial es
producir un sistema que sea seguro (es decir, que no ponga en peligro la vida
humana).

El objetivo principal del distribuidor de boletos es producir un sistema que sea


altamente confiable
15
Notaciones, métodos y metodologías

Una notación es un conjunto de reglas gráficas o textuales para representar un


modelo

Un método es una técnica repetible para Ia resolución de un problema especifico.


Una receta es un método para cocinar un plato especifico. Un algoritmo de
ordenamiento es un método para ordenar elementos de una lista

Una metodología es una colección de métodos para Ia resolución de una clase de


problemas. Un libro de cocina de mariscos es una metodología para la
preparación de mariscos

16
Actividades de desarrollo de ingeniería de
software

Obtención de Diseño del Diseño de


Análisis Implementación
requerimientos sistema objetos

17
Obtención de requerimientos
Durante la obtención de requerimientos, el cliente y los desarrolladores definen el propósito
del sistema.

El resultado de esta actividad es una descripción del sistema en términos de actores y casos de
uso.

Los actores representan las entidades externas que interactúan con el sistema.

Los actores incluyen papeles como los usuarios finales, otras computadoras con las que
necesite tratar el sistema (por ejemplo, un banco de computadoras central, una red) y el
ambiente (por ejemplo, un proceso químico
18
Obtención de requerimientos
Durante la obtención de requerimientos, el cliente y los desarrolladores definen el propósito
del sistema.

El resultado de esta actividad es una descripción del sistema en términos de actores y casos de
uso.

Los actores representan las entidades externas que interactúan con el sistema.

Los actores incluyen papeles como los usuarios finales, otras computadoras con las que
necesite tratar el sistema (por ejemplo, un banco de computadoras central, una red) y el
ambiente (por ejemplo, un proceso químico)
19
Obtención de requerimientos

Los casos de uso


son secuencias de
eventos generales
que describen
todas las acciones
posibles entre un
actor y el sistema
para un fragmento
de funcionalidad
dado

20
Análisis
Durante el análisis, los Los desarrolladores transforman
desarrolladores tratan de los casos de uso producidos
producir un modelo del sistema durante Ia obtención de
que sea correcto, completo, requerimientos en un modelo de
consistente, claro, realista y objeto que describa por
verificable. completo al sistema.

Durante esta actividad, los


El resultado del análisis es un
desarrolladores descubren
modelo de objeto comentado
ambigüedades e inconsistencias
con atributos, operaciones y
en el modelo de caso de uso y
asociaciones)
las resuelven con el cliente.
21
Diseño del sistema
Durante el diseño del sistema, los desarrolladores definen los objetivos de diseño del
proyecto y descomponen el sistema en subsistemas más pequeños que pueden realizar
los equipos individuales.

Los desarrolladores también seleccionan estrategias para la construcción del sistema,


como la plataforma de hardware y software en la que ejecutará el sistema, la estrategia
de almacenamiento de datos persistentes, el flujo de control global, la política de control
de acceso y el manejo de las condiciones de frontera.

El resultado de un diseño de sistema es una descripción clara de cada una de estas


estrategias, una descomposición en subsistemas y un diagrama de organización que
representa el mapeo en hardware y software del sistema
22
Diseño de objetos
Durante el diseño de objetos, los desarrolladores definen objetos personalizados para
cubrir el hueco entre el modelo de análisis y la plataforma de hardware y software
definida durante el diseño del sistema.

Esto incluye definir con precisión los objetos e interfaces de subsistemas, la selección de
componentes hechos, la reestructuración del modelo de objeto para lograr objetivos de
diseño, tales como extensibilidad o comprensión, y la optimización del modelo de
objetos para el desempeño.

El resultado de la actividad de diseño de objetos es un modelo de objetos detallado


comentado con restricciones y descripciones precisas para cada elemento.

23
Implementación

Durante la implementación, los desarrolladores traducen el modelo


de objetos en código fuente.

Esto incluye la implementación de los atributos y métodos de cada


objeto y la integración de todos los objetos de forma tal que
funcionen como un solo sistema.

La actividad de implementación cubre el hueco entre el modelo de


diseño de objetos detallado y el conjunto completo de archivos de
código fuente que pueden ser compilados juntos
24
GRACIAS!
¿Preguntas?

25

También podría gustarte