Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 39

FUNDAMENTOS DE INGENIERÍA DE

SOFTWARE

TEMA 1. FUNDAMENTOS DE INGENIERÍA DE


SOFTWARE
COMPETENCIA ESPECÌFICA

Identifica y comprende el entorno de aplicación de


la ingeniería de software.
ACTIVIDADES DE LA
UNIDAD

FIRMAS 10%
CUADRO
GLOSARIO EXPOSICIÓN -
SINÓPTICO
10% REPORTE 20% EVALUACIÓN
20%
ESCRITA 40%
SUBTEMAS
1.1. Conceptos básicos
1.2. Fases de la Ingeniería de software.
1.3 Metodologías de desarrollo de software
1.3.1 Clásicas
1.3.2 Ágiles
.3.3 Otras filosofías
1.4. Importancia de las herramientas CASE en la
Ingeniería de software
1.1 CONCEPTOS BÁSICOS

Ingeniería
Es la profesión en la que el conocimiento de las ciencias naturales y
matemáticas obtenidas con el estudio, la práctica y la experiencia se
aplica con juicio para desarrollar formas de utilizar de modo
económico, los materiales y fuerzas de la naturaleza para beneficio de
la humanidad
1.1 CONCEPTOS BÁSICOS...

Software
Es el conjunto de todos los programas que existen dentro de una
computadora.
Es el producto del desarrollo que realizan los ingenieros de
software resultado de requerimientos de información.
1.1 CONCEPTOS BÁSICOS...

Ingeniería de software
Es una disciplina de la Ingeniería que comprende todos los aspectos
de la producción del software desde las etapas iniciales de la
especificación del sistema hasta el mantenimiento de éste después de
que se libera.
1.1 CONCEPTOS BÁSICOS...

Conjunto de métodos,
herramientas y
procedimentos para
producir software de
gran calidad.
[Roger Pressman].
1.1 CONCEPTOS BÁSICOS...

OBJETIVOS DE
LA
INGENIERÍA
DE SOFTWARE
1.1 CONCEPTOS BÁSICOS...

La Ingeniería de Software incluye:


Personas (quién lo hace)
Proceso (la manera en que se
hace)
Proyecto (la realización)
Producto (la aplicación de
artefactos)
EL PAPEL EVOLUTIVO DEL
SOFTWARE
El término fue introducido a fines del 60 y comienzo del 70, tras la crisis
del software que se caracterizó por:
Imprecisión en la planificación del proyecto y estimación de los costos.
Baja calidad del Software.
Dificultad de mantenimiento de programas con un diseño poco estructurado, etc. En
las décadas de 1980 y 1990 dos tendencias dominaron la ingeniería de software:
El florecimiento explosivo de aplicaciones, incluyendo las de Internet.
El Nacimiento de nuevas herramientas y paradigmas (formas de pensamiento, como
la orientación a objetos).
GLOSARIO 10%

1. Ingeniería
2. Software
3. Ingeniero de software
4. Ingeniería de software
5. Método de ingeniería de software
6. Metodología de software
7. Proceso de software
8. Herramientas CASE
1.2 FASES DE LA INGENIERÍA DE SOFTWARE

Investigación preliminar
1 Parte de una solicitud de requerimiento de un
sistema de información, tiene tres partes:

a) Aclaración de la Solicitud
b) Estudio de Factibilidad: Técnica, Económica,
Operacional
c) Aprobación de la Solicitud
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..
Análisis de requerimientos
2 Comprender todas las facetas importantes de la parte
de la empresa bajo estudio:

a) ¿Qué es lo que hace?


b) ¿Cómo se hace?
c) ¿Con qué frecuencia se presenta?
d) Volumen de transacciones o decisiones
e) Grado de eficiencia de las tareas
f) ¿Existe algún problema?
g) ¿Qué tan serio y causa que lo origina?
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..

Diseño del sistema: •


3 Antes de lanzarse a la codificación , el desarrollador
o el equipo de desarrolladores deben diseñar
cuidadosamente su producto de software. Esto es
importante para optimizar la fase siguiente.
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..
Durante la fase de diseño, tendrá que precisar lo

3 siguiente:
Interfaz de usuario: cómo interactuará el usuario
con la plataforma;
Programación: qué enfoque adoptará
Comunicación: cómo interactuará el software
con otros activos.
Plataformas: qué plataformas van a alojar el
software.
Seguridad: qué medidas vas a desplegar para
proteger el software.
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..
Desarrollo:
4 Plasma en un modelo los detalles que establecen
la forma en la que el sistema cumplirá con los
requerimientos identificados durante la fase de
análisis.

La fase de codificación es donde los


desarrolladores de software empiezan realmente
a crear software. Si han elegido el enfoque más
tradicional, aquí es donde empiezan a escribir
código.
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..
Pruebas:
5 El software proporcionado en la fase de desarrollo anterior
debe probarse ahora en la fase de pruebas. Las pruebas
las puede realizar el mismo equipo que ha trabajado en el
software o un equipo de pruebas independiente.

¿Cuándo es preferible separar un equipo de pruebas del


equipo principal de desarrollo?
Siempre que se aplique el enfoque tradicional de
codificación manual, la fase de pruebas es más compleja y
larga, y suele requerir ojos nuevos: en este caso, es
preferible un equipo de pruebas independiente.
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..
Despliegue (implementación)
6 La fase de despliegue es cuando el software se
implementa en las plataformas seleccionadas.

Por ejemplo, si se desarrolla software para los


procesos internos de una empresa, aquí es cuando
se entrega el proyecto de software a empleados de
la empresa y se puede empezar a utilizarlo. Si se
desarrolla una aplicación móvil, se lanza en las
tiendas de aplicaciones seleccionadas
1.2 FASES DE LA INGENIERÍA DE SOFTWARE..

7 Mantenimiento
El proceso de desarrollo no termina cuando el
software se publica o despliega. Como ya se sabe,
todo software requiere mantenimiento. Este es un
hecho que se prolonga mientras se siga utilizando el
software: es necesario actualizarlo constantemente,
solucionar los posibles problemas que puedan surgir
y mantenerlo al máximo de sus posibilidades.
1.3 METODOLOGÍAS DE DESARROLLO DE SOFTWARE

1 Conjunto de técnicas y métodos que se utilizan para


diseñar una solución de software.

Marco de trabajo (framework) utilizado para estructurar,


2
planificar y controlar el proceso de desarrollo de un
software.
Objetivo: establecer un enfoque sistemático en el
desarrollo informático.
METODOLOGÍAS CLÁSICAS

Las metodologías tradicionales se rigen bajo una


estructura secuencial inalterable basada en etapas. Dichas
etapas son: el análisis de requerimientos, diseño,
programación, pruebas y mantenimiento. Se le da gran
importancia a los requerimientos del proyecto. Dado que se
precisa de un amplio estudio para su definición, y una vez
establecidos, no pueden alterarse de ninguna manera.
Espiral
Esta metodología permite un control preciso
de los costos, recursos y potenciales riesgos
del proyecto. Es permisiva con los cambios
dado su carácter iterativo. Además, el
cliente puede participar activamente en el
proceso.

Su proceso iterativo puede prolongar la


duración del proyecto. Por su parte, requiere
de expertos en el ámbito del control de
riesgos. No es aconsejable utilizarlo en
proyectos de menor escala.
Cascada
Se caracteriza por ofrecer un proyecto bien
estructurado y de robusta documentación.
Permite una definición precisa de los
requerimientos del proyecto. También, es
ideal para proyectos pequeños y con
objetivos simples.

Los proyectos complejos son imposibles de


fragmentar. Es estricta frente a cualquier
tipo de cambio o modificación. Los errores
en el proyecto suelen detectarse hasta el
final del proceso.
Prototipo
Destaca por no precisar de requerimientos
robustos o estables para iniciar el proyecto.
Facilita la presentación de los resultados del
proyecto a los clientes. Promueve un mayor
acercamiento directo a las necesidades del
cliente.

El prototipo generado suele confundirse con


el producto final, aun cuando no está
finalizado. Se requiere de expertos en el
ámbito de diseño de interfaces de usuario.
Además, se precisa de la participación del
cliente en el proceso.
Incremental
En esta metodología el cliente puede cambiar los requerimientos del proyecto en cada iteración. Así
mismo, este último puede usar el producto mucho antes de su entrega definitiva. El proceso de
desarrollo es mucho más acelerado.

Una planeación exhaustiva es indispensable para que el proyecto funcione. Es fundamental que los
requerimientos del proyecto estén bien definidos. Por otro lado, sus costos suelen ser más elevados
que en otros modelos de desarrollo.
DRA (Desarrrollo Rápido de Aplicaciones)
Destaca por su flexibilidad y adaptabilidad a los
cambios. El producto es fácil de trasladar a
otros entornos. Además, cada etapa del
proyecto prioriza las necesidades de los
clientes.

La metodología requiere de tiempos de


entrega precisos para funcionar. No se
aconseja utilizar en proyectos de menor
escala. Así mismo, es indispensable la
participación de expertos tanto de diseño
como de programación.
METODOLOGÍAS ÁGILES

La metodología ágil es un enfoque para la planificación y


gestión de proyectos de software que se caracteriza por su
flexibilidad y adaptabilidad a cambios. Se basa en el
principio de que es mejor entregar un producto funcional y
evolutivo en lugar de esperar a tener todas las
especificaciones detalladas al inicio del proyecto
Programación Extrema (XP)
Las constantes pruebas al producto
garantizan un código de mayor calidad. El
cliente puede participar activamente en el
proceso. Así mismo, cualquier error
emergente es resuelto en el acto.

Al enfocarse meramente en la programación,


el proceso es mucho más complicado. Posee
una fuerte dependencia al equipo de trabajo
del proyecto. La velocidad con la que se
trabaja dentro de dicha metodología complica
la generación de documentación.
Kanban
Al implementar esta metodología se garantiza una
constante supervisión del rendimiento tanto del
equipo como del producto. Se mantienen los
tiempos de producción estables, evitando los
excesos. Por lo tanto, es fácil detectar elementos
problemáticos en el proyecto.

Una mala gestión del modelo puede provocar


incongruencias en los tiempos de trabajo. Su
amplio almacenamiento implica mayores costos.
Por otro lado, trabajar con recursos limitados
puede provocar problemas con necesidades
emergentes.
Scrum
Constante retroalimentación por parte del
equipo de trabajo y los clientes. Posee
calendarios de entrega y supervisión bien
definidos. Además, las actividades se
clasifican de acuerdo a su importancia.

En esta metodología es precisa una


planificación exhaustiva de las tareas y
fechas de entrega del proyecto. Los
expertos participantes deben estar sobre
calificados en sus respectivos ámbitos.
No es aconsejable utilizarlo en proyectos
a gran escala.
Lean
Con ayuda de esta metodología se optimizan
los costos de producción y la velocidad de
entrega del proyecto. Cualquier elemento sin
valor para el cliente es eliminado. Así mismo,
sobresale por su equipo motivado y ambiente
de trabajo colaborativo.

Se requiere de expertos en todos los ámbitos


que el proyecto dicte necesitar. Los costos de
desarrollo del proyecto son muy elevados. Por
su parte, la metodología posee una fuerte
dependencia al equipo de trabajo del proyecto.
Desarrollo basado en características (FDD)
En esta metodología, cualquier elemento sin
valor para el cliente es eliminado. Cada
elemento incorporado dentro del proyecto
cumple con sus requerimientos. Además, se
garantiza un eficiente control del tiempo y la
calidad del producto.

Similar a otras metodologías, se tiene una


fuerte dependencia al equipo de trabajo del
proyecto. Se precisa de un experto en
programación que cumpla el papel de líder
del proyecto. Por su parte, la documentación
del proyecto es casi inexistente.
1.4 IMPORTANCIA DE LAS HERRAMIENTAS CASE EN
LA INGENIERÍA DE SOFTWARE.
CASE:
Las siglas 'CASE' se refieren a Computer Aided Software
Engineering (Ingeniería de Software Asistida por Computadora). Por
tanto se refiere al desarrollo y mantenimiento de proyectos de
Software con la ayuda de varias herramientas automatizadas.

HERRAMIENTAS CASE:
Las herramientas CASE son un conjunto de aplicaciones
informáticas, usadas para automatizar actividades de el ciclo de
vida de desarrollo de sistemas (SDLC). Las herramientas CASE son
usadas por los Directores de proyectos de software, analistas e
Ingenieros para desarrollar sistemas de software.
1.4 IMPORTANCIA DE LAS HERRAMIENTAS CASE EN
LA INGENIERÍA DE SOFTWARE.

El uso de Herramientas CASE acelera el


desarrollo del proyecto con tal de
producir los resultados deseados y ayuda
a encontrar imperfecciones antes de
proseguir con la siguiente etapa del
desarrollo de Software.
1.4 IMPORTANCIA DE LAS HERRAMIENTAS CASE EN
LA INGENIERÍA DE SOFTWARE. . .

ÓN
CI
CA
FI
SI
LA
C
ALGUNAS REFERENCIAS

HTTPS://ITSQMET.EDU.EC/LOS-8-TIPOS-DE-METODOLOGIA-DE-DESARROLLO-DE-SOFTWARE/

HTTPS://GOOAPPS.ES/2022/10/2
7/LAS-5-MEJORES-METODOLOGIAS-DE-DESARROLLO-DE-SOFTWARE/

HTTPS://BLOG.GITNUX.COM/ES/METODOLOGIAS-DE-DESARROLLO-DE-SOFTWARE/

HTTPS://WWW.TUTORIALSPOINT.COM/ES/SOFTWARE_ENGINEERING/CASE_TOOLS_OVERVIEW.HTM

También podría gustarte