Está en la página 1de 10

UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA

“FEDERICO BRITO FIGUEROA”


LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

INGENIERIA DE SOFTWARE

1.- Que es la Ingeniería?

La ingeniería es el conjunto de conocimientos y técnicas científicas aplicadas a la


invención, perfeccionamiento y utilización de técnicas para la resolución de problemas
que afectan directamente a los seres humanos en su actividad cotidiana

2.- Funciones del ingeniero

1. Investigación: Búsqueda de nuevos conocimientos y técnicas, de estudio y en el


campo laboral.
2. Desarrollo: Empleo de nuevos conocimientos y técnicas.
3. Diseño: Especificar las soluciones.
4. Producción: Transformación de materias primas en productos.
5. Construcción: Llevar a la realidad la solución de diseño.
6. Operación: Proceso de manutención y administración para optimizar
productividad.
7. Ventas: Ofrecer servicios, herramientas y productos.
8. Administración: Participar en la resolución de problemas. Planificar, organizar,
programar, dirigir y controlar la construcción y montaje industrial de todo tipo
de obras de ingeniería.

3.- Ética profesional

Los ingenieros deben reconocer que la vida, la seguridad, la salud y el bienestar


de la población dependen de su juicio.
No se deben aprobar planos o especificaciones que no tengan un diseño seguro.
Se deben realizar revisiones periódicas de seguridad y confiabilidad.
Prestar servicios productivos a la comunidad.
Comprometerse a mejorar el ambiente.
Los ingenieros deben prestar servicios en sus áreas de competencia.
Deben emitir informes públicos. Se debe expresar la información en forma clara
y honesta.
Deben crear su reputación profesional sobre el mérito de sus servicios.
No usar equipamiento fiscal o privado para uso personal.
Acrecentar honor, integridad y dignidad de la profesión.
Debe continuar con el desarrollo profesional (Continuar la educación).
Apoyar a sociedades profesionales.
Utilizar el Ingenio para resolver problemas.
Ser consciente de su responsabilidad en su trabajo.
Debe conocer las teorías científicas para explicar los hechos y actuar sobre ellos.

4.- La “crisis” del software:


 Este término fue introducido a finales de los 60 a raíz de la crisis del software.

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

 Esta crisis fue el resultado de la introducción de la tercera generación del


hardware.
 El hardware dejo de ser un impedimento para el desarrollo de la informática;
redujo los costos y mejoro la calidad y eficiencia en el software producido
 La crisis se caracterizo por los siguientes problemas:
o Imprecisión en la planificación del proyecto y estimación de los
costos.
o Baja calidad del software.
o Dificultad de mantenimiento de programas con un diseño poco
estructurado, etc

Este problema se identificó por primera vez en 1968, año en el que la organización
NATO desarrolló la primera conferencia sobre desarrollo de software, y en la que se
acuñaron los términos “crisis del software” para definir a los problemas que
surgían en el desarrollo de sistemas de software, e “ingeniería del software” para
describir el conjunto de conocimientos que existían en aquel estado inicial.

Problemas que aparecen en el desarrollo del software al desarrollar, mantener y


atender la demanda de nuevas aplicaciones.

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

5.- Ingeniería de Software

Es la disciplina o área de la Ingeniería que ofrece métodos y técnicas para


desarrollar y mantener software. La creación del software es un proceso
intrínsecamente creativo y la Ingeniería del Software trata de sistematizar
este proceso con el fin de acotar el riesgo del fracaso en la consecución del
objetivo creativo por medio de diversas técnicas que se han demostrado
adecuadas en base a la experiencia previa.

actividad de

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

modelado
solución de problemas
adquisición de conocimiento
dirigida por una fundamentación

Objetivos de la ingeniería de software

En la construcción y desarrollo de proyectos se aplican métodos y técnicas


para resolver los problemas, la informática aporta herramientas y
procedimientos sobre los que se apoya la ingeniería de software.

- mejorar la calidad de los productos de software


- aumentar la productividad y trabajo de los ingenieros del software.
- Facilitar el control del proceso de desarrollo de software.
- Suministrar a los desarrolladores las bases para construir software de alta
calidad en una forma eficiente.
- Definir una disciplina que garantice la producción y el mantenimiento de los
productos software desarrollados en el plazo fijado y dentro del costo
estimado.

Principios de la Ingeniería del Software

Abstracción Localización
Permite parcelar la complejidad. Por Deben estar agrupados todos
ello se olvidan aspectos irrelevantes aquellos elementos que están
del sistema y se potencian los afectados por un mismo hecho.
fundamentales
Encapsulamiento u Uniformidad
Ocultación de la información Todos los módulos deben tener una
Esconder todos los detalles que no notación similar.
afecten a otros módulos, definiendo
interfaces estrictos que sirvan de Completitud
interacción entre los distintos Deben estar desarrollados todos los
modelos. aspectos del sistema.

Modularidad Validación y Verificabilidad


Sirve para parcelar la solución en El producto final debe ser fácilmente
módulos independientes con fuerte validable y verificable:
cohesión interna. ¿Estamos desarrollando el
programa correcto?
¿Estamos desarrollando
correctamente el programa?

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

. Retos de la Ingeniería de Software


 Desarrollar técnicas para construir software que pueda hacer frente a
plataformas y ambientes de ejecución heterogéneos (diferentes tipos
de Hardware y Software)
 Desarrollar técnicas que permitan reducir los tiempos de entrega del
software sin comprometer la calidad
 Desarrollar técnicas que permitan que los usuarios confíen
plenamente en el software

6.- Proceso de Ingeniería de Software

El proceso de ingeniería de software se define como "un conjunto de etapas


parcialmente ordenadas con la intención de logra un objetivo, en este caso, la
obtención de un producto de software de calidad" [Jacobson 1998].

El proceso de desarrollo de software "es aquel en que las necesidades del


usuario son traducidas en requerimientos de software, estos requerimientos
transformados en diseño y el diseño implementado en código, el código es
probado, documentado y certificado para su uso operativo". Concretamente
"define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto
objetivo" [Jacobson 1998].

 Conjunto estructurado de actividades requeridas para desarrollar o


evoluciònun sistema de software.

Algunas actividades genéricas en todos los procesos de software son:


Especificación: qué debe hacer el software y cuáles son sus
especificaciones de desarrollo (requerimientos y restricciones del
sistema).
Diseño: producción del modelo del sistema de software
Desarrollo: construcción del sistema de software
Validación: verificar que el software cumple con lo solicitado por el
cliente (especificaciones requeridas)
Evolución: cambiar/adaptar el software a las nuevas demandas
Instalación: entregar el sistema al usuario y asegurar su
operacionalidad
Mantenimiento: reparar fallos en el sistema cuando sea
descubiertos
.
 Las actividades varían dependiendo de la organización y del tipo de
sistema a desarrollarse.
 Debe estar explícitamente modelado si va a ser bien administrado.

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

Visión general del proceso/etapas de ISw

Con independencia del área de aplicación, tamaño o complejidad del proyecto,


cualquier sistema se encontrará al menos en una de las siguientes fases
genéricas:

Ø Definición ~ Análisis (del sistema, del sw.)


Ø desarrollo ~ Diseño, codificación, prueba
Ø mantenimiento.

Fase de definición/Análisis

 Se centra en el QUÉ
¿Qué debe hacer el sistema?
 Información que ha de manejar el sistema
 Necesidades de rendimiento
 Restricciones de diseño
 Interfaces del sistema con los usuarios y con otros sistemas
 Criterios de validación
 Se elaboran los documentos de requisitos del Sistema (SyRS) y del
software (SRS).

Fase de Desarrollo

Se centra en el CÓMO
¿Cómo construir el sistema?
 Se diseñan e implementan las estructuras de los datos y los programas
 Cómo se caracterizan las interfaces,
 Cómo realizar el paso de traducción del diseño al lenguaje de
programación,
 Cómo ha de realizarse la prueba,
Se escriben y documentan los programas, y se prueba el software construido.

Fase de Mantenimiento

 Comienza una vez construido el sistema, cuando se empieza a utilizar.


 Se centra en los cambio asociados a:
o La corrección de errores
o Adaptaciones requeridas por la evolución del entorno
o Mejoras producidas por los requerimientos del cliente
 El software es sometido a reparaciones y modificaciones cada vez que
se detecta un fallo o se necesita cubrir una nueva necesidad de los
usuarios.
 En esta fase recae el mayor porcentaje del coste de un sistema.

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

7.- Elementos de la ingeniería del software

Tres elementos claves:


 Métodos
 Herramientas
 Procedimientos

Los Métodos: Indican cómo construir técnicamente el software. Abarcan una


gran cantidad de tareas
 Indican “como” construir el software
 Abarcan un amplio espectro:
o Planificación y estimación de proyectos
o Análisis de los requisitos del sistema y del software
o Diseño de estructuras de datos
o Arquitectura de programas y procedimientos algorítmicos
o Codificación, prueba y mantenimiento

Las herramientas proporcionan un soporte automático o semiautomático para


la aplicación de los procedimientos y los métodos
 Suministran un soporte automático para los métodos
 Existen herramientas para soportar cada uno de los métodos
mencionados anteriormente
 Un entorno con integración de diferentes herramientas. Se denomina un
sistema CASE (Ingenieria del Software Asistida por Ordenador

Los procedimientos Un procedimiento software se puede caracterizar por un


conjunto de actividades que se pueden aplicar en el desarrollo de cualquier
proyecto software así como la forma de abarcarlas durante el desarrollo del
mismo

 “Pegamento” que junta los métodos y las herramientas


 Definen:
o La secuencia en la que se aplican los métodos
o Las entregas (documentos, informes, etc..) requeridas
o Los controles: ayudan a asegurar la calidad y coordinar los
cambios
o Directrices: ayudan a los gestores del software a evaluar el
progreso

* Herramientas CASE (Computer-Aided Software Engineering) Conjunto de


herramientas para soportar las tareas de Ingeniería del software y diseñadas
de manera que la información generada por una de ellas sirva de entrada a
otras
* Metodologías de Diseño
- Diseño funcional descendente. El sistema se observa en términos de
las funciones que suministra

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

- Diseño orientado a objetos. El sistema se observa como una


sociedad de objetos, donde cada elemento del sistema (objeto),
encapsula datos y operaciones

Ciclo de vida del software

El término ciclo de vida del software describe el desarrollo de software, desde


la fase inicial hasta la fase final. El propósito de este programa es definir las
distintas fases intermedias que se requieren para validar el desarrollo de la
aplicación, es decir, para garantizar que el software cumpla los requisitos para
la aplicación y verificación de los procedimientos de desarrollo: se asegura de
que los métodos utilizados son apropiados.

Estos programas se originan en el hecho de que es muy costoso rectificar los


errores que se detectan tarde dentro de la fase de implementación. El ciclo de
vida permite que los errores se detecten lo antes posible y por lo tanto, permite
a los desarrolladores concentrarse en la calidad del software, en los plazos de
implementación y en los costos asociados.

El ciclo de vida básico de un software consta de los siguientes procedimientos:

Definición de objetivos: definir el resultado del proyecto y su papel en


la estrategia global.
Análisis de los requisitos y su viabilidad: recopilar, examinar y
formular los requisitos del cliente y examinar cualquier restricción que se
pueda aplicar.
Diseño general: requisitos generales de la arquitectura de la aplicación.
Diseño en detalle: definición precisa de cada subconjunto de la
aplicación.
Programación (programación e implementación): es la implementación
de un lenguaje de programación para crear las funciones definidas
durante la etapa de diseño.
Prueba de unidad: prueba individual de cada subconjunto de la
aplicación para garantizar que se implementaron de acuerdo con las
especificaciones.
Integración: para garantizar que los diferentes módulos se integren con
la aplicación. Éste es el propósito de la prueba de integración que está
cuidadosamente documentada.
Prueba beta (o validación), para garantizar que el software cumple con
las especificaciones originales.
Documentación: sirve para documentar información necesaria para los
usuarios del software y para desarrollos futuros.
Implementación
Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del
software (mantenimiento continuo).

Otra clasificación

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

INGENIERÍA DE SISTEMAS: En esta etapa el analista luego de unminucioso y


detallado estudio de los sistemas de una organización, detecta un problema o
una necesidad que para su solución y/o satisfacción es necesario realizar un
desarrollo de software.

- ANÁLISIS: En esta etapa se debe entender y comprender de forma detallada


cual es la problemática a resolver, verificando el entorno en el cual se
encuentra dicho problema, de tal manera que se obtenga la información
necesaria y suficiente para afrontar su respectiva solución. Esta etapa es
conocida como la del QUÉ se va a solucionar.

- DISEÑO: Una vez que se tiene la suficiente información del problema a


solucionar, es importante determinar la estrategia que se va a utilizar para
resolver el problema. Esta etapa es conocida bajo el CÓMO se va a solucionar.

- IMPLEMENTACIÓN: partiendo del análisis y diseño de la solución, en esta


etapa se procede a desarrollar el correspondiente programa que solucione el
problema mediante el uso de una herramienta computacional determinada.

- PRUEBAS: Los errores humanos dentro de la programación de los


computadores son muchos y aumentan considerablemente con la complejidad
del problema. Cuando se termina de escribir un programa de computador, es
necesario realizar las debidas pruebas que garanticen el correcto
funcionamiento de dicho programa bajo el mayor número de situaciones
posibles a las que se pueda enfrentar.

- DOCUMENTACIÓN: Es la guía o comunicación escrita en sus diferentes


formas, ya sea en enunciados, procedimientos, dibujos o diagramas que se
hace sobre el desarrollo de un programa. La importancia de la documentación
radica en que a menudo un programa escrito por una persona, es modificado
por otra. Por ello la documentación sirve para ayudar a comprender o usar un
programa o para facilitar futuras modificaciones (mantenimiento).

La documentación se compone de tres partes:

a. Documentación Interna: Son los comentarios o mensajes que se añaden al


código fuente para hacer más claro el entendimiento de los procesos que lo
conforman, incluyendo las precondiciones y las poscondiciones de cada
función.

b. Documentación Externa: Se define en un documento escrito con los


siguientes puntos:

Descripción del Problema

Datos del Autor

Algoritmo (diagrama de flujo o Pseudocódigo)

Elaborado por: Prof. Omar Rosales


UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO ARAGUA
“FEDERICO BRITO FIGUEROA”
LA VICTORIA, ESTADO ARAGUA
DEPARTAMENTO DE INFORMÁTICA

Diccionario de Datos

Código Fuente (programa)

c. Manual de Usuario: Describe paso a paso la manera como funciona el


programa, con el fin de que el usuario lo pueda manejar para que obtenga el
resultado deseado.

- MANTENIMIENTO: una vez instalado un programa y puesto en marcha para


realizar la solución del problema previamente planteado o satisfacer una
determinada necesidad, es importante mantener una estructura de
actualización, verificación y validación que permitan a dicho programa ser útil y
mantenerse actualizado según las necesidades o requerimientos planteados
durante su vida útil. Para realizar un adecuado mantenimiento, es necesario
contar con una buena documentación del mismo.

El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida


de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre
el cliente y el equipo de desarrolladores.

Elaborado por: Prof. Omar Rosales

También podría gustarte