Está en la página 1de 21

Ingeniería del Software

UNIDAD 2. FUNDAMENTOS DE LA INGENIERÍA DEL


SOFTWARE

Prof. Dianela Dávila


Programa Nacional de Formación en Informática
El software
¿Qué es el software?:
Según la RAE: “Conjunto de programas, instrucciones y
reglas informáticas para ejecutar ciertas tareas en una
computadora.”

Según Pressman, el software es:


1) instrucciones (programas de cómputo) que cuando se
ejecutan proporcionan las características, función y
desempeño buscados
2) estructuras de datos que permiten que los programas
manipulen en forma adecuada la información
3) información descriptiva tanto en papel como en formas
virtuales que describen la operación y uso de los
programas.

ING. DIANELA DÁVILA UNIDAD 2 2


Características del software
El software es elemento de un sistema lógico y no de uno físico. Por tanto, tiene
características que difieren considerablemente de las del hardware:

El software se desarrolla o modifica con intelecto; no se fabrica en un sentido clásico: la fabricación de hardware
introduce problemas de calidad que no existen (o que se corrigen con facilidad) en el software.

El software no se “desgasta”: ¡pero sí se deteriora!, durante su vida el software sufrirá cambios que incluyen tareas de
mantenimiento.

La mayor parte del software se construye a medida, en lugar de ensamblar componentes existentes: Un componente
de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes.

ING. DIANELA DÁVILA UNIDAD 2 3


Dominios de aplicación del software
Control del
Procesamiento de inventario de
datos y control de Control del tablero productos Software de
Conjunto de funciones de de un inteligencia
programas escritos negocios en horno microondas Aplicaciones artificial
para dar servicio a tiempo real web
Software de
otros programas. línea de Hace uso de algoritmos
Software productos no numéricos para
Funciones de cómputo y
incrustado contenido para el usuario resolver
Software de problemas complejos
final, e integradas con
aplicación bases de datos que no son fáciles de
Software de Proporcionar una
tratar
Reside dentro de un capacidad específica corporativas y
sistemas Procesamiento producto o sistema y se para uso de muchos aplicaciones de negocios. computacionalmente.
de transacciones usa para implementar y consumidores Robótica, reconocimiento
Compiladores y en punto de controlar características y diferentes. de patrones (imagen y
editores funciones para el usuario voz), redes neuronales
venta artificiales, demostración
final y para el sistema en
sí. de teoremas y juegos.

ING. DIANELA DÁVILA UNIDAD 2 4


Factores de calidad del software
La calidad del software desarrollado, así como la productividad del programador son factores de
difícil pero no imposible medida.

Competencia del individuo y su familiaridad con el área de la aplicación, así


La capacidad individual como la comunicación entre los miembros del equipo.

La complejidad del producto Tipo de aplicación a desarrollar.

Realizar una buena planificación del trabajo y una buena asignación de


Utilización de una notación adecuada recursos a los distintos miembros del equipo.

Técnicas que sean de amplio consenso y bien conocidas por los integrantes
Empleo de métodos sistemáticos del equipo.

Tiempo que puede aportar cada miembro del equipo y en que plazos, sobre
Conocer el tiempo disponible. todo en función de las tareas a realizar.

Existencia de facilidades y recursos Conocer productos o herramientas que faciliten las labores de desarrollo e
externos integración de la aplicación.

ING. DIANELA DÁVILA UNIDAD 2 5


Realidades del software
Con objeto de elaborar software listo para enfrentar los retos del siglo XXI, se debe aceptar
algunas realidades sencillas:
1. Debe hacerse un esfuerzo concertado para entender el problema antes de desarrollar una
aplicación de software, con el fin de determinar cuáles características y funciones debiera
tener el software.
2. El diseño del software se ha vuelto una actividad crucial, con la intención de prestar atención
cuidadosa a las interacciones de todos los elementos del sistema.
3. El software debe tener alta calidad que le permita la toma de decisiones estratégicas y
tácticas, así como para sus operaciones y control cotidianos.
4. El software debe tener facilidad para recibir mantenimiento, ya que conforme se extienda su
base de usuarios y el tiempo de uso, las demandas de adaptación y mejora también crecerán.

ING. DIANELA DÁVILA UNIDAD 2 6


Ingeniería del software

Según Fritz Bauer: “el El IEEE define la IS como:


establecimiento y uso de “La aplicación de un
principios fundamentales enfoque sistemático,
de la ingeniería con objeto disciplinado y cuantificable
de desarrollar en forma al desarrollo, operación y
económica software que mantenimiento de
sea confiable y que trabaje software; es decir, la
con eficiencia en máquinas aplicación de la ingeniería
reales”. al software”.

IEEE: Instituto de Ingeniería Eléctrica y Electrónica

ING. DIANELA DÁVILA UNIDAD 2 7


Capas de la ingeniería del software
La ingeniería de
software es una Her Proporcionan un apoyo automatizado o semi-automatizado para
tecnología con ram el proceso y los métodos.
varias capas. ient
as Incluyen un conjunto amplio de tareas, como comunicación,
análisis de los requerimientos, modelación del diseño,
Métodos construcción del programa, pruebas y apoyo

El proceso de software forma la base para el control de la


administración de proyectos de software, aplicación de métodos
Proceso técnicos, se generan productos del trabajo (modelos, documentos,
datos, reportes, formatos, etc.)

La administración total de la calidad alimentan la cultura de


Compromiso con la calidad
mejora continua

ING. DIANELA DÁVILA UNIDAD 2 8


Proceso de desarrollo de software
Un proceso de software es el conjunto de actividades, métodos, prácticas y tecnologías
aplicables a todos los proyectos de software.

La estructura del proceso


establece el fundamento
para el proceso completo
Además, la estructura del
de la ingeniería de
proceso incluye un
software por medio de la
conjunto de actividades
identificación de un
sombrilla que son
número pequeño de
aplicables a través de todo
actividades estructurales
el proceso del software.
que sean aplicables a
todos los proyectos de
software.

ING. DIANELA DÁVILA UNIDAD 2 9


Proceso de desarrollo de software
Una estructura de proceso general para la ingeniería de software consta de cinco actividades:
Se busca entender los objetivos de los
participantes respecto del proyecto, y reunir los
Comunicación requerimientos que ayuden a definir las
características y funciones del software.

El software se entrega al Describir las tareas técnicas por


realizar, los riesgos probables, los
consumidor que lo evalúa y Despliegue Planeación recursos que se requieren, los
le da retroalimentación,
basada en la evaluación productos del trabajo que se
obtendrán y una programación de
las actividades.

Cree un “bosquejo” del objeto por


Generación de código (ya sea manual o hacer a fin de entender el panorama
general. Cree modelos a fin de
automatizada) y las pruebas que se Construcción Modelado entender mejor los requerimientos
requieren para descubrir errores en éste
del software y el diseño que los
satisfará.

ING. DIANELA DÁVILA UNIDAD 2 10


Proceso de desarrollo de software
Las actividades estructurales del proceso de ingeniería de software son complementadas por
cierto número de actividades sombrilla. En general, las actividades sombrilla se aplican a lo
largo de un proyecto de software y ayudan al equipo que lo lleva a cabo a administrar y
controlar el avance, la calidad, el cambio y el riesgo.
Es común que las actividades sombrilla sean las siguientes:
◦ Seguimiento y control del proyecto de software
◦ Administración del riesgo
◦ Aseguramiento de la calidad del software
◦ Revisiones técnicas
◦ Medición
◦ Administración de la configuración del software
◦ Preparación y producción del producto del trabajo

ING. DIANELA DÁVILA UNIDAD 2 11


Ciclo de vida del software
Identificación de
Pruebas y Implementación y
problemas,
mantenimiento del evaluación del
Según Kendall y Kendall: oportunidades y
sistema sistema
objetivos
Es un enfoque por fases para
el análisis y el diseño cuya
premisa principal consiste en Determinación de Desarrollo y
que los sistemas se los requerimientos documentación del
desarrollan mejor utilizando de la información software
un ciclo específico de
actividades del analista y el
usuario.
Análisis de las
Diseño del sistema
necesidades del
recomendado
sistema

ING. DIANELA DÁVILA UNIDAD 2 12


Ciclo de vida del software
IDENTIFICACIÓN DE PROBLEMAS, DETERMINACIÓN DE LOS REQUERIMIENTOS
OPORTUNIDADES Y OBJETIVOS DE LA INFORMACIÓN
◦ Determinar con precisión cuáles son los ◦ Se encuentran los métodos interactivos como las
problemas. entrevistas, los muestreos, la investigación de
◦ Las oportunidades son situaciones que el analista datos impresos y la aplicación de cuestionarios
considera susceptibles de mejorar utilizando ◦ Se necesita conocer los detalles de las funciones
sistemas de información computarizados. del sistema actual: el quién (la gente involucrada),
◦ Las actividades de esta fase consisten en el qué (la actividad del negocio), el dónde (el
entrevistar a los encargados de coordinar a los entorno donde se desarrollan las actividades), el
usuarios, sintetizar el conocimiento obtenido, cuándo (el momento oportuno) y el cómo (la
estimar el alcance del proyecto y documentar los manera en que se realizan los procedimientos
resultados. El resultado de esta fase incluye una actuales) del negocio que se estudia.
definición del problema y un resumen de los ◦ Al finalizar, se debe conocer el funcionamiento del
objetivos. negocio y poseer información muy completa
acerca de la gente, los objetivos, los datos y los
procedimientos implicados.

ING. DIANELA DÁVILA UNIDAD 2 13


Ciclo de vida del software
ANÁLISIS DE LAS NECESIDADES DEL SISTEMA DISEÑO DEL SISTEMA RECOMENDADO
◦ Uso de diagramas de flujo de datos para ◦ Se diseña procedimientos precisos para la
graficar las entradas, los procesos y las captura de datos que aseguran que los datos que
salidas de las funciones del negocio en una ingresen al sistema de información sean
correctos, mediante técnicas adecuadas de
forma gráfica estructurada. diseño de formularios y pantallas.
◦ Se prepara una propuesta de sistemas que ◦ La concepción de la interfaz de usuario forma
sintetiza sus hallazgos, proporciona un parte del diseño lógico del sistema. Entre los
análisis de costo/beneficio de las ejemplos de interfaces de usuario se encuentran
alternativas y ofrece, en su caso, los menús en pantalla y diversas interfaces
recomendaciones sobre lo que se debe gráficas de usuario
hacer. ◦ También incluye el diseño de archivos o bases de
datos, controles y procedimientos de respaldo
que protejan al sistema y a los datos, y producir
paquetes de especificaciones de programa para
los programadores.

ING. DIANELA DÁVILA UNIDAD 2 14


Ciclo de vida del software
DESARROLLO Y DOCUMENTACIÓN DEL
PRUEBAS Y MANTENIMIENTO DEL SISTEMA
SOFTWARE
◦ Entre las técnicas estructuradas para ◦ Se realiza una serie de pruebas con datos
diseñar y documentar software se de muestra para determinar con precisión
encuentran los diagramas de estructura y el cuáles son los problemas y posteriormente
pseudocódigo. se realiza otra con datos reales del sistema
◦ Desarrollar documentación efectiva para el actual.
software, como manuales de ◦ El mantenimiento del sistema de información
procedimientos, ayuda en línea y sitios Web y su documentación empiezan en esta fase
que incluyan respuestas a preguntas y se llevan a cabo de manera rutinaria
frecuentes en archivos "Léame" que se durante toda su vida útil.
integrarán en el nuevo software.
◦ diseñan, codifican y eliminan errores
sintácticos de los programas de cómputo

ING. DIANELA DÁVILA UNIDAD 2 15


Ciclo de vida del software
IMPLEMENTACIÓN Y EVALUACIÓN DEL
CONCLUSIÓN
SISTEMA
◦ Se capacita a los usuarios en el manejo del
sistema. Todo proyecto de software se
◦ La evaluación se lleva a cabo durante cada desencadena por alguna necesidad de
una de las fases. Un criterio clave que se negocios: la de corregir un defecto en una
debe cumplir es si los usuarios a quienes va aplicación existente, la de adaptar un
dirigido el sistema lo están utilizando “sistema heredado” a un ambiente de
realmente. negocios cambiante, la de ampliar las
funciones y características de una
aplicación ya existente o la necesidad de
crear un producto, servicio o sistema
nuevo.

ING. DIANELA DÁVILA UNIDAD 2 16


Investigar:
Fundamentos teóricos:
1. Paradigmas de programación.
2. Métodos de desarrollo de software.
3. Metodologías o procesos de desarrollo de software.
4. Modelado de sistema.
5. Técnicas y herramientas en el proceso de desarrollo de software.

ING. DIANELA DÁVILA UNIDAD 2 17


Actividad Evaluada (10% Unidad 2)
De acuerdo a lo visto en clase y los equipos de trabajo de Proyecto Socio tecnológico II,
determine de acuerdo a la propuesta de su proyecto lo siguiente:
Parte 1. Entender el problema: Claro, sí, entiendo, resolvamos esto. Desafortunadamente,
entender no siempre es fácil. Es conveniente dedicar un poco de tiempo a responder algunas
preguntas sencillas:

◦ ¿Quiénes son los participantes?


◦ ¿Cuáles datos, funciones y características se requieren para resolver el problema en forma
apropiada?
◦ ¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas más pequeños
que sean más fáciles de entender?
◦ ¿Es posible representar gráficamente el problema? ¿Puede crearse un modelo de análisis?

ING. DIANELA DÁVILA UNIDAD 2 18


Actividad Evaluada (10% Unidad 2)
Parte 2. Planear la solución: Ahora entiende el problema (o es lo que piensa) y no puede
esperar para escribir el código. Antes de hacerlo, cálmese un poco y haga un pequeño diseño:

◦ ¿Ha visto antes problemas similares?


◦ ¿Ha resuelto un problema similar? Si es así, ¿son reutilizables los elementos de la solución?
◦ ¿Pueden definirse problemas más pequeños? Si así fuera, ¿hay soluciones evidentes para
éstos?
◦ ¿Es capaz de representar una solución en una forma que lleve a su implementación eficaz?
¿Es posible crear un modelo del diseño?

ING. DIANELA DÁVILA UNIDAD 2 19


Actividad Evaluada (10% Unidad 2)
Parte 3. Ejecutar el plan: El diseño que creó sirve como un mapa de carreteras para el sistema
que quiere construir. Puede haber desviaciones inesperadas y es posible que descubra un
camino mejor a medida que avanza, pero el “plan” le permitirá proceder sin que se pierda.

◦ ¿Qué tipos de lenguajes necesita conocer? ¿Cuáles utilizará para el desarrollo del código
fuente?
◦ ¿El código fuente puede apegarse al modelo del diseño?

ING. DIANELA DÁVILA UNIDAD 2 20


“No hay computadora que
tenga sentido común.”
MARVIN MINSKY

ING. DIANELA DÁVILA UNIDAD 2 21

También podría gustarte