Presentaci - PowerPoint PPT Presentation

About This Presentation
Title:

Presentaci

Description:

... Perspectiva de roles/acciones Modelos gen ricos de proceso de software Cascada Desarrollo evolutivo Desarrollo de Prototipos ... La revisi n del Software ... – PowerPoint PPT presentation

Number of Views:86
Avg rating:3.0/5.0
Slides: 26
Provided by: Angel314
Category:

less

Transcript and Presenter's Notes

Title: Presentaci


1
Mitos y Realidades de la Ingeniería de Software
Jesús Angel Ovando Téllez División de Estudios de
Posgrado e Investigación INSTITUTO TECNOLÓGICO DE
ORIZABA
2
INTRODUCCION Al desarrollar productos de
software, deben determinarse las necesidades y
limitaciones del usuario y deben establecerse
explícitamente. El producto debe diseñarse
considerando tanto a los programadores como a los
usuarios, y a quienes les den mantenimiento. El
código fuente debe desarrollarse con mucho
cuidado y probarse constantemente. Así mismo, se
debe preparar la documentación de apoyo, manuales
de usuario, manuales de documentación, etc.
Actualmente, todavía muchas empresas
particulares y varias compañías desarrollan
software de una manera muy arriesgada. Tanto los
profesionistas como los estudiantes, siguen sin
usar los métodos modernos de desarrollo, dando
como resultado que el software que se desarrolla,
algunas veces funciona y otras veces no.
3
LA CRISIS DEL SOFTWARE Muchos estudiosos han
caracterizado los problemas asociados con el
desarrollo del software como una "crisis". Esta
palabra se define en el diccionario como "un
punto decisivo en el curso de algo". Sin embargo,
en las cuestiones relativas al software no ha
habido un punto decisivo sino una lenta
evolución. En ese sentido, en la industria del
software se ha vivido una "crisis" que ha
permanecido cerca de 30 años por lo que, esa
situación es más un padecimiento crónico, que una
crisis. Así pues, aquí se hablará de algunas
formas de como enfrentar ese padecimiento crónico
del software, para hacer más ligero el
padecimiento mientras se logra descubrir la
solución final.
4
  • IMPORTANCIA DE LA INGENIERÍA DE SOFTWARE
  • Las economías de todas las naciones desarrolladas
    son dependientes del software.
  • Cada vez más sistemas son controlados por
    software.
  • La ingeniería de software trata de teorías,
    métodos, técnicas y herramientas para el
    desarrollo profesional de software.
  • Los gastos en la ingeniería de software
    representan una fracción importante del PNB, en
    todos los países desarrollados.

5
  • CUÁLES SON LOS COSTOS DEL SOFTWARE?
  • Con frecuencia, los costos de software son
    mayores que los costos de hardware, como en una
    PC.
  • Cuesta más mantener software que desarrollarlo.
    Para sistemas con vidas largas, los costos de
    mantenimiento pueden ser, algunas veces, mayores
    que los costos de desarrollo
  • La ingeniería de software trata con el desarrollo
    de software, de manera que se minimizen los
    costos

6
  • PRODUCTOS DE SOFTWARE?
  • Son sistemas de cómputo, junto con su
    documentación asociada
  • Los productos de software pueden ser
    desarrollados para un mercado general o para un
    cliente en particular
  • Genéricos. Se desarrollan para ser vendidos a una
    variedad de clientes diferentes
  • Propietarios. Se desarrollan para un cliente
    conforme a sus especificaciones.
  • La mayor parte del gasto del software es en
    productos genéricos, pero hay más esfuerzo en el
    desarrollo de los sistemas hechos a medida.

7
QUÉ ES LA INGENIERÍA DE SOFTWARE? La Ingeniería
de Software es una disciplina de las Ciencias de
la Computación que trata con todos los aspectos
de la producción de software. El establecimiento
y uso de principios de ingeniería robustos,
orientados a obtener software económico que sea
fiable y funcione de manera eficiente sobre
máquinas reales (Bauer)
8
LA INGENIERÍA DE SOFTWARE Y SU RELACIÓN CON
OTRAS DISCIPLINAS Las Ciencias Computacionales
clásicas tratan de la teoría y los fundamentos de
la programación (entre otras cosa). La
Ingeniería de Software trata de los aspectos
prácticos del desarrollo y entrega de software
útil. La Ingeniería de Sistemas trata de todos
los aspectos de desarrollo de sistemas basado en
computadoras. La Ingeniería de Requerimientos,
trata con los aspectos del análisis de la
situación organizacional. Los ingenieros de
software están involucrados en la especificación
del sistema, diseño arquitectónico, integración,
implantación y mantenimiento.
9
  • QUÉ ES EL PROCESO DE SOFTWARE?
  • Un conjunto estructurado de actividades,
    requeridas para desarrollar un sistema de
    software o para hacer que evolucione.
  • Elementos genéricos de todos los procesos de
    software son
  • Especificación. Lo que debe hacer el sistema y
    las restricciones de desarrollo
  • Diseño. La producción del sistema de software
  • Validación. Asegura que el software es lo que el
    cliente desea
  • Evolución. Los cambios que debe tener el
    software como respuesta a las demandas cambiantes
    del entorno

10
CARACTERÍSTICAS DEL PROCESO
  • Entendible
  • Se encuentra el proceso bien definido y es
    entendible?
  • Visible
  • El proceso es visible al exterior?
  • Soportable
  • Puede el proceso ser soportado por herramientas
    CASE?
  • Aceptable
  • El proceso es aceptado por aquellos involucrados
    en él?

11
CARACTERÍSTICAS DEL PROCESO
  • Confiable
  • Los errores del proceso son descubiertos antes
    de que se conviertan en errores del producto ?.
  • Robusto
  • Puede continuar el proceso a pesar de problemas
    inesperados ?.
  • Mantenible
  • Puede el proceso evolucionar para cumplir con los
    objetivos organizacionales ?.
  • Rapidez
  • Que tan rápido puede producirse el sistema ?.

12
  • QUÉ ES UN MODELO DE PROCESO DE SOFTWARE?
  • Es una representación simplificada de un proceso
    de software, presentada desde una perspectiva
    específica.
  • Perspectiva de flujo de trabajo
  • Perspectiva de flujo de datos
  • Perspectiva de roles/acciones
  • Modelos genéricos de proceso de software
  • Cascada
  • Desarrollo evolutivo
  • Desarrollo de Prototipos
  • Transformación formal
  • Integración de componentes reutilizables

13
COSTOS DE INGENIERÍA DE SOFTWARE Aproximadamente
60 de los costos son para el desarrollo y 40
son para probar el software. Para software
particularizado, los costos de evolución a menudo
exceden los de desarrollo Los costos varían
dependiendo del tipo de sistema que se esté
desarrollando y de los requerimientos de los
atributos del sistema como rendimiento y
confiabilidad La distribución de los costos
depende del modelo de desarrollo utilizado
14
LOS MÉTODOS DE LA INGENIERÍA DE SOFTWARE Los
métodos describen cómo modelar y construir
sistemas de programación para obtener resultados
confiables y reproducibles. Los métodos definen
también una representación (a menudo gráfica),
que permite, por una parte, manipular fácilmente
los modelos y, por otra, comunicarse e
intercambiar la información entre los diferentes
interlocutores. Un método define reglas de
implementación que describen la articulación de
los diferentes puntos de vista, el encadenamiento
de las acciones, la ordenación de las tareas y el
reparto de las responsabilidades.
15
CASE (Computer Aided Software Engineering) Sistema
s de software cuya finalidad es proveer soporte
automatizado a las actividades de procesos de
software Upper CASE Las herramientas para
soportar las actividades primeras de
requerimientos y diseño Lower CASE Las
herramientas para soportar las actividades
siguientes como programación, depuración y
verificación
16
  • ATRIBUTOS DEL BUEN SOFTWARE
  • El software debe entregar al usuario la
    funcionalidad y rendimiento requeridos, y debe
    ser mantenible, confiable y utilizable.
  • Mantenible. El software debe evolucionar para
    satisfacer los cambios del entorno.
  • Confiable. El cliente necesita tener confianza
    en el software.
  • Rendimiento. El software no debe desperdiciar
    los recursos del sistema.
  • Utilidad. El software debe ser útil para los
    usuarios para quienes fue diseñado.

17
  • RETOS A LOS QUE SE ENFRENTA LA INGENIERÍA DE
    SOFTWARE
  • Hacer frente a los sistemas heredados, a la
    diversidad creciente y a las demandas por tiempo
    reducido de entrega
  • Sistemas heredados. Los sistemas viejos y de
    valor tienen que ser mantenidos y actualizados
  • Heterogenidad. Los sistemas son distribuidos e
    incluyen una mezcla de hardware y software
  • Entrega. Hay presión creciente para la entrega
    más rápida de software

18
MITOS DE GESTIÓN (1) Mito Tenemos ya un libro que
está lleno de estándares y procedimientos para
construir software. No le proporciona ya a mi
gente todo lo que necesita saber?. Realidad Está
muy bien que el libro exista, pero Se usa?
Conocen los trabajadores su existencia? Refleja
las prácticas modernas de desarrollo de software?
Es completo? En muchos casos, la respuesta a
todas estas preguntas es "no"?. Mito Nuestra
gente dispone de las herramientas de desarrollo
de software más avanzadas después de todo, les
compramos las computadoras más nuevas. Realidad Se
necesita mucho más que el último modelo de
computadora grande (o de PC) para hacer
desarrollo de software de gran calidad. Las
herramientas de ingeniería del software asistida
por computadora (CASE), aunque no se usen la
mayoría, son tan importantes como el hardware
para conseguir buena calidad y productividad.
19
MITOS DE GESTIÓN (2) Mito Si fallamos en la
planificación, podemos añadir más programadores y
adelantar el tiempo perdido. Realidad El
desarrollo de software no es un proceso mecánico
como la fabricación. Brooks dice "Añadir gente a
un proyecto de software retrasado, lo retrasa aún
más". Ya que cuando se añaden nuevas personas, la
necesidad de aprender y comunicarse con el equipo
puede y hace que se reduzca la cantidad de tiempo
gastado en el desarrollo productivo. Puede
añadirse gente, pero de una manera planificada y
bien coordinada.
20
MITOS DEL CLIENTE Mito Una declaración general de
los objetivos es suficiente para comenzar a
escribir los programas. (podemos detallar más
adelante). Realidad Una mala definición inicial
es la causa principal del desperdicio del trabajo
en software. Es esencial una descripción formal y
detallada del ámbito de la información,
funciones, rendimiento, etc. Y todas estas
características sólo se pueden determinar después
de una exhaustiva comunicación entre cliente y
analista. Mito Los requisitos del proyecto
cambian continuamente, pero los cambios pueden
acomodarse fácilmente, ya que el software es
flexible. Realidad Es verdad que los requisitos
del software cambian pero el impacto del cambio
varía según el momento en que se introduzca.
Entre más temprano se realicen mejor.
21
MITOS DE LOS DESARROLLADORES (1) Mito Una vez que
escribimos el programa y hacemos que funcione,
nuestro trabajo ha terminado. Realidad Alguien
dijo una vez "Cuando más pronto se comience a
escribir código, más se tardará en terminarlo".
Datos industriales indican que entre el 50 y el
70 por ciento de todo el esfuerzo dedicado a un
programa se realizará después de que se le haya
entregado al cliente por primera vez. Mito Hasta
que no tengo el programa ejecutándose realmente
no tengo forma de comprobar su calidad. Realidad D
esde el principio del proyecto se puede aplicar
uno de los mecanismos más efectivos para
garantizar la calidad del software (Revisión de
Técnica formal). La revisión del Software es un
"filtro de calidad" que se ha comprobado que es
más efectivo que la prueba, para encontrar
ciertas clases de defectos en el software.
22
MITOS DE LOS DESARROLLADORES (2) Mito Lo único
que se entrega al terminar es el programa
funcionando. Realidad Un programa que funciona es
sólo una parte de una configuración del software
que incluye todos los elementos tales como el
Análisis, Diseño, Documentación del sistema, etc.
23
REFLEXIÓN FINAL El software no siempre se
desarrolla de forma controlada, y en la
actualidad existen sistemas que presentan grandes
dificultades para su mantenimiento. Si no se
procede con responsabilidad esto seguirá
ocurriendo y no se detendrá. El organismo ISO ha
publicado directrices específicas para aplicar la
norma 9001 al desarrollo de software (ISO
9000-3). Una organización que ponga en práctica
un sistema de gestión de calidad según esa norma
puede ser auditada y recibir una certificación
formal de su proceso de desarrollo, pero para
lograr esto es necesario aplicar la Ingeniería de
Software
24
REFLEXIÓN FINAL Por qué es tan importante
certificar con ISO?, la respuesta es simple,
porque ahora para crecer es necesario competir en
los mercados internacionales y para eso la
certificación es un primer paso. Por lo que ahora
resulta claro que los métodos, herramientas y
procedimientos de la Ingeniería de Software
ayudan a garantizar que los sistemas resultantes
sean confiables, funcionen del modo requerido y
tengan la calidad esperada. El recurso humano es
la otra parte.
25
GRACIAS POR SU ATENCIÓN!
Write a Comment
User Comments (0)
About PowerShow.com