Características Del Software

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

CARACTERÍSTICAS DEL SOFTWARE:

 Fiable
Capacidad de ofrecer los mismos resultados bajo las mismas condiciones
 Eficiente
Utilización óptima de los recursos de la máquina
 Robusto
No poseer un comportamiento catastrófico ante situaciones excepcionales
(Tolerante a fallos)
 Correcto
Se ajusta a las especificaciones dadas por el usuario
 Portable
Capaz de integrarse en entornos distintos con el mismo esfuerzo
 Adaptable (extensibilidad
Modificar alguna función sin que afecte a sus actividades
 Inteligible
Diseño claro, bien estructurado y documentado
 No Erróneo
No exista diferencia entre los valores reales y los calculados
 Reutilizable (reusabilidad)
 Mantenibilidad
 Confiabilidad
 fiabilidad
 seguridad
 protección
 Eficiencia
 Usabilidad
 Elemento lógico, no físico
 Desarrollado, no ‘fabricado’
 No se ‘estropea’, ¡se deteriora! (Deterioro por ‘cambios’)
 Mayoritariamente cerrado
 Medido
 La mayoría del software se hace a la medida.
 No se ensambla de componentes
 Útil (al cliente)
 Integridad
 Resultados correctos con alto grado de exactitud
 Consistencia de función
 Accesible (al usuario)
 Buena ingeniería humana
 Fácil de aprender y usar

pág. 1
MITOS DEL SOFTWARE:

El costo de computadores es menos que él de dispositivos analógicos o


electromecánicos.

La verdad es que el hardware es barato. Pero el costo de escribir y certificar


software muy confiable y seguro, más el costo de la manutención sin poner
en peligro la confiabilidad y la seguridad, puede ser enorme. Por ejemplo, el
software del trasbordador espacial (400.000 palabras) cuesta más de
US$100.00.000 por año a mantener. Un sistema electromecánico es
frecuentemente más barato, particularmente si se pueden usar diseños
estándares.
Es fácil cambiar el software.

Los cambios son fáciles, pero hacer cambios sin introducir errores es muy
difícil. Hay que verificar el software de nuevo con cada cambio. También,
con cambios el software se pone frágil.

Los computadores proveen más confiabilidad que los dispositivos que


reemplazan.

Es verdad que el software no falla como dispositivos normales, pero hay


poca evidencia que indica que el comportamiento erróneo de software no
es un problema significativo.

Estudios de sistemas muy críticos a la seguridad han mostrado que hasta 10%
de los módulos se desviaron de la especificación en un modo o más de
operación. Muchos errores eran pequeños, pero aproximadamente 1 en 20
producía efectos directos y observables en el sistema controlado.
Parece que la solución es sencillamente implementar el software
correctamente. Pero esto es mucho más difícil que esperado.

Por ejemplo, el software del trasbordador espacial ha sido usado desde 1980
y NASA ha invertido recursos enormes en la verificación y manutención de
este software. Sin embargo, desde la operación del trasbordador se han
encontrado 16 errores de grado de severidad 1 (pueden producir una
pérdida del trasbordador y su tripulación) en software liberado, de que ocho
estaban en código usado en vuelos. Otros errores de menor severidad han
ocurrido durante misiones (tres amenazaron el cumplimiento de la misión) a

pág. 2
pesar que NASA tiene uno de los procesos de desarrollo y verificación de
software más completos existentes.
No existen técnicas coma la redundancia para aumentar sencillamente la
confiabilidad del software. Y aun cuando sea posible escribir software sin
errores, las condiciones ideales para desarrollar software (dinero y tiempo sin
límites) nunca existen.
Mayor confiabilidad de software aumenta la seguridad.

Se puede mejorar la confiabilidad de software eliminando errores sin


relación a la seguridad del sistema, así aumentando la confiabilidad sin
aumentar la seguridad.
También, la confiabilidad de software se define como conformidad con los
requerimientos, mientras que la mayoría de los errores de software crítico a
la seguridad son debidos a errores en los requerimientos. El software puede
ser correcto y todavía causar accidentes graves.

La prueba o verificación formal del software puede eliminar todos los errores.

Las limitaciones de la prueba de software son bien conocidas. Básicamente


hay demasiados estados en software real para probarlo completamente.
En el futuro la verificación puede chequear la consistencia entre las
especificaciones y la implementación, pero esto requiere que las
especificaciones (escritas en notación formal) son libres de errores.
También, muchos errores importantes son debidos a cosas que no están en
el código. Por ejemplo, muchos accidentes relacionados a software han
involucrado sobrecarga. Un sistema para los servicios de emergencia dejó
de funcionar cuando recibió demasiadas llamadas.
El rehúso de software aumenta la seguridad.

Aunque el reuso puede aumentar la confiabilidad, puede disminuir la


seguridad. La razón es porque engendra el falso sentido de seguridad y
porque no se consideraron los peligros específicos del sistema nuevo
cuando el software fue diseñado originalmente. Ejemplos:

1. El Therac-20, partes de lo cual se usaban en el Therac-25, contenía el


mismo error que causó dos muertes en el Therac-25. El error no causó

pág. 3
problemas en el Therac-20 porque resultó solamente en un plomo
fundido en vez de un sobredosis masivo de radiación.
2. Software de control del tráfico aéreo usado muchos años en los
Estados Unidos no se pudo reutilizar en Gran Bretaña. Los
desarrolladores norteamericanos han ignorado el problema de cero
grados de longitud.
3. Software de aviación escrito para uso en el hemisferio boreal
frecuentemente crea problemas cuando usado en el hemisferio
austral. También software para cazas F-16 ha causado accidentes
cuando usado en Israel en aviones volados sobre el Mar Muerto,
donde la altitud es menor que el nivel del mar.

La seguridad no es una propiedad del software, sino es una combinación


del diseño del software y del ambiente en que es usado.

Los computadores disminuyen el riesgo por contraste con los sistemas


mecánicos.

Los computadores tienen esta potencial y pueden automatizar tareas


peligrosas como el pintar de espray. Pero otros argumentos son discutibles:

Los computadores permiten un control más fino ya que pueden revisar


parámetros más frecuentemente, hacer calculaciones en tiempo real, y
tomar acción rápidamente. Es verdad, pero control más fino permite que el
proceso se pueda operar más cerca a su óptimo, y se pueden reducir los
margines de seguridad.

Los sistemas que resultan tienen beneficios económicos, porque en teoría se


cerrarán menos y la productividad se puede aumentar con control más
óptimo. Pero la disminución en los margines pueden negar los beneficios
posibles, quizás sin la capacidad de alcanzar la confiabilidad usado como
el argumento para reducir los margines.

Los sistemas automatizados permiten los operadores trabajar más lejos de


áreas peligrosas.
Debido a una carencia de conocimiento con los peligros, más accidentes
ocurren cuando los operadores tienen que entrar en las áreas peligrosas. Por
ejemplo, un robot mató a un trabajador en una planta que los diseñadores
asumían requería poca intervención--no incluyeron pasarelas ni avisos
audibles de movimiento. La suposición original era que se cerraría la planta
para la manutención, pero la realidad era que los trabajadores tenían que

pág. 4
rescatar los robots 15 a 20 veces por día.

Con la eliminación de operadores se eliminan los errores humanos.


Los errores de operadores se reemplazan con errores de diseño y
manutención; los diseñadores hacen los mismos tipos de errores como los
operadores. También, cuando se elimina el contacto directo con el sistema,
los humanos pierden la información necesaria para hacer decisiones.
Los computadores pueden proveer mejor información a los operadores.
En teoría es verdad, pero esto es muy difícil lograr. Básicamente los
computadores permiten que se provee demasiada información y en una
forma menos útil para algunos propósitos que la instrumentación tradicional.
El software no falla.

Es verdad solamente para una definición estrecha de "falla." Un resultado


del reemplazo de dispositivos mecánicos por computadores es la
incapacidad de predecir modos de falla. La mayoría de los sistemas
mecánicos tienen un número limitado de modos de falla, y se los pueden
diseñar para fallar en una manera segura. Esto normalmente no es posible
con el software.

http://pcval-ace.blogspot.com/2007/09/introduccion-hoy-en-
da-el-software_27.html

Capas de la Ingeniería del Software


La Ingeniería del software es una tecnología multicapa. Cualquier enfoque
de ingeniería (incluida ingeniería del software) debe apoyarse sobre un
compromiso de organización de calidad.

pág. 5
PROCESO: El fundamento de la ingeniería del software es la capa de
proceso. El proceso de la ingeniería del software es la unión que mantiene
juntas las capas de tecnología y que permite un desarrollo racional y
oportuno de la ingeniería del software. El proceso define un marco de
trabajo para un conjunto de Áreas clave de proceso (ACPs) que se deben
establecer para la entrega efectiva de la tecnología de la ingeniería del
software. Las áreas claves del proceso forman la base del control de gestión
de proyectos del software y establecen el contexto en el que se aplican los
métodos técnicos, se obtienen productos del trabajo (modelos,
documentos, datos, informes, formularios, etc.), se establecen hitos, se
asegura la calidad y el cambio se gestiona adecuadamente.

MÉTODOS: Los métodos de la ingeniería del software indican «cómo»


construir técnicamente el software. Los métodos abarcan una gran gama
de tareas que incluyen análisis de requisitos, diseño, construcción de
programas, pruebas y mantenimiento. Los métodos de la ingeniería del
software dependen de un conjunto de principios básicos que gobiernan
cada área de la tecnología e incluyen actividades de modelado y otras
técnicas descriptivas.

HERRAMIENTAS: Las herramientas de la Ingeniería del software proporcionan


un enfoque automático o semi-automático para el proceso y para los
métodos. Cuando se integran herramientas para que la información creada
por una herramienta la pueda utilizar otra, se establece un sistema de
soporte para el desarrollo del software llamado ingeniería del software
asistida por computadora (CASE).

http://ing-software3.blogspot.com/2012/10/capas-de-la-
ingenieria-del-software.html

pág. 6

También podría gustarte