P. 1
Características Del Software

Características Del Software

5.0

|Views: 51.914|Likes:
Publicado porabi
Este articulo habla sobre los mitos y realidades de los proyectos de software y la ingenieria de software.
Este articulo habla sobre los mitos y realidades de los proyectos de software y la ingenieria de software.

More info:

Published by: abi on Nov 12, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

08/21/2013

pdf

text

original

Características del Software

1. El software se desarrolla - no se manufactura
2. El software no se "descompone"

La mayoría del software se hace a la medida. No se ensambla de componentes

Mitos del software Mito: Si fallamos en la planificación podemos añadir más programadores y recuperar el tiempo perdido. Realidad: Ley de Brooks: "Agregar gente a un proyecto atrasado, lo atrasa aún mas". Razón: Crear software no es una tarea particionable, como dice el Principio de Brooks: "Gestar a un bebé tarda 9 meses, no importa cuántas mujeres sean asignadas a la tarea." Mito: Una declaración general de los objetivos es suficiente para comenzar a escribir los programas; podemos dar los detalles más adelante. Realidad: Una mala definición inicial es la principal causa del trabajo en vano. Es esencial una descripción formal y detallada del ámbito de la información, funciones, rendimiento, interfaces y criterios de validación. Esto solo puede determinarse después de una exhaustiva comunicación entre el cliente y el analista. Ver siguiente mito. Mito: Los requisitos del proyecto cambian continuamente pero los cambios pueden acomodarse fácilmente. Realidad: El impacto del cambio varía según el momento en el que se introduzca: Etapa de desarrollo Definición Desarrollo Después de la entrega Costo del Cambio $X $1.5X hasta $6X $60X hasta $100X

Mito: Una vez que hicimos el programa y funciona, nuestro trabajo ha terminado. Realidad: Los datos industriales indican que entre el 50% y el 70% de todo el esfuerzo dedicado a un programa se realizará después de que se le haya entregado al cliente por primera vez.

Mito: No hay forma de comprobar la calidad del software hasta que esta corriendo. Realidad: Hay técnicas que se pueden aplicar desde el principio. Y ese es el objetivo de la ingeniería de software y del curso.
Ingeniería de Software Definición Estrategia para desarrollar software de alta calidad. ¿Software de alta calidad? 1. 2. 3. 4. 5. 6. 7. 8. 9. Util (al cliente) Portable Mantenible Confiable Tenga integridad - resultados correctos con alto grado de exactitud Eficiente Consistencia de función Accesible (al usuario) Buena ingeniería humana - fácil de aprender y usar

El término "ingeniería de software" se acuñó en 1967 por un grupo de estudio de la OTAN (Organización del Tratado del Atlántico Norte) para significar "el establecimiento y uso de principios establecidos de ingeniería con el objetivo de obtener software económico que sea confiable y trabaje eficientemente en computadoras reales". Este punto

de vista se opuso a la "magia" de la programación en un esfuerzo de cambiar el desarrollo de software de "mágico" (que sólo unos pocos escogidos pueden hacer) a "arte" (que los talentosos pueden hacer) a "ciencia" (que supuestamente cualquiera puede hacer). Esta premisa fué avalada por la Conferencia de Ingeniería de Software de la OTAN en 1968, que concluyóo que la ingeniería de software debería usar las filosofías y paradigmas de la ingeniería establecida para lo que aún entonces ya era una crisis del software ¿Por qué surgió la ingeniería de software? En pocas palabras, por la crisis del software

• •

Errores costosos por fallas en el software: o Voyager o Accidente nuclear de Chernobyl o Accidente nuclear de Three Mile Island o Tarjetas tragadas por los cajeros automáticos Problemas para estimar tiempo, esfuerzo y costos de los sistemas. Un estudio de 1979 sobre proyectos del gobierno de USA demostró que: o 2% trabajaron o 3% pudieron trabajar después de algunas correcciones o 45% fueron entregados y nunca pudieron ser usados o 20% se usaron despues de ser casi vueltos a hacer o fueron abandonados o 30% fueron pagados y nunca entregados

¿ Por qué es importante la ingeniería de software?
• • •

Altos costos en el software. Necesidad de incrementar la productividad. Los sistemas son cada vez más grandes y complejos: o NASA o Sistemas financieros o Iniciativa de defensa estratégica: "Star Wars" Cambios en la relación de costos del software y hardware. o Principios de los 60's: 80% hardware y 20% software o Mediados de los 60's: 50%-60% hardware y 50%-40% software o Finales de siglo: menos de 20% hardware y más del 80% software Importancia del mantenimiento. A veces cuesta el doble que el desarrollo.

La mayor parte del dinero gastado en software se gasta en actividades de mantenimiento. Hay una amplia variación en la práctica de la ingeniería de software. Una distribución típica de uso de tiempo en la creación de un

sistema de software, muestra que el 40% del tiempo se gasta en las pruebas, 35% en el diseño, 20% en la implementación y 5% en el desarrollo conceptual y análisis de requerimientos. Si tenemos en cuenta que la mayor parte de los errores típicos (60% a 70%) en un producto son errores de especificación o de análisis, no es raro que los sistemas cuesten el doble del costo estimado y tarden en completarse muchos años más de los planeados. Wasserman lista siete factores que según él han alterado la práctica de la ingeniería de software. 1. Tiempos reducidos y limitados para productos comerciales. 2. Decremento de los costos de hardware e incremento en los costos de desarrollo y mantenimiento. 3. Computación de escritorio. 4. Redes de área local (LANs) y ancha (WANs). 5. Tecnología de objetos. 6. Interfaces gráficas de usuario (GUIs). 7. Decremento de la viabilidad del modelo de la cascada (waterfall). Luego sugiere ocho nociones fundamentales que forman la base de lo que el cree es una disciplina efectiva de ingeniería de software. 1. 2. 3. 4. 5. 6. 7. 8. Abstracción. Métodos y notaciones de análisis y diseño. Hacer prototipos de la interface de usuario. Arquitectura del software. Proceso del software. Reutilización. Medidas de metas de mejoramiento. Herramientas y medio-ambientes integrados.

¿Cómo se construye el software? Crear el software requiere que el sistema se divida de tal forma que las partes sean compatibles. La creación de software se puede caracterizar por una serie de pasos que van desde los conceptos exploratorios hasta su retiro final; esta serie de pasos se refieren generalmente como el ciclo de vida del software. En general, independientemente del modelo de ciclo de vida, los pasos se puede agrupar en tres fases: 1. Definición. Intenta responder a la pregunta ¿Qué hace el software?. o Qué información será procesada. o Qué función y rendimiento se desea. o Qué interfaces serán establecidas. o Qué restricciones de diseño existen. o Qué criterios de validación se necesitan para definir un sistema correcto. 2. Desarrollo. Intenta responder a la pregunta ¿Como lo hace?. o Algoritmos.

Estructuras de datos. Arquitectura de software. Interface de usuario. 3. Mantenimiento. Se centra en el cambio asociado a la corrección de errores, adaptaciones y requisitos cambiantes. Hay cuatro clases de cambios: o Corrección. Corrige los errores (bugs) que se hayan colado a través del proceso. o Adaptación. Modifica el software para adaptarlo a los cambios de su medio ambiente. Por ejemplo, nuevas reglas de la empresa, nuevo CPU o sistema operativo. o Mejora. Modifica el software agregándole nuevas funciones no especificadas en los requisitos originales. o Prevención. Hace cambios en el programa para que se pueda corregir, adaptar y mejorar más fácilmente. También se le conoce como reingeniería del software.
o o o

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->