TDA 01 Software-Antecedentes

Post on 04-Aug-2015

36 views 0 download

Transcript of TDA 01 Software-Antecedentes

TÉCNICAS DE DOCUMENTACIÓN Y

ARCHIVO

Ing. MSc. CELEDONIO MENDEZ VALDIVIA

UNIVERSIDAD NACIONAL DE INGENIERÍA

1

Contenido

1. Conceptos fundamentales

2. Consideraciones de software y hardware

3. Factores de calidad y productividad

4. Técnicas de Documentación

5. Problemas y soluciones en la

administración de software

1

CONCEPTOS

FUNDAMENTALES

¿Qué es el Software?

“Es el conjunto de los

programas de cómputo,

procedimientos, reglas,

documentación y datos

asociados que forman

parte de las operaciones

de un sistema de

computación”

Fuente: estándar 729 del IEEE

Aplicaciones de Software

Software de Sistema

Software de Tiempo Real

Software de Negocios

Software de Ingeniería/Científico

Software Incrustrado

Software de PC

Software de IA

Aplicaciones Web

Perspectiva histórica del

desarrollo de software

Década 50-60: “Software como un añadido”.

Desarrollo artesanal, a medida.

Lenguajes de bajo nivel.

Década 60-70: Software como producto.

Década lenguajes y compilación.

“Crisis del software”.

Perspectiva histórica del

desarrollo de software

Década 70-80: Programación estructurada.

Ingeniería del Software.

Primeros métodos estructurados.

Década 80-90:

Nuevos paradigmas de programación y de

producción de programas:

• OO

• C/S

Perspectiva histórica del

desarrollo de software

90’s - actualidad:

Análisis/Diseño OO.

Tecnología CASE

Componentes y reutilización

Interoperabilidad (CORBA, .NET...)

Internet

• ISw. distribuida

• repositorios de componentes reutilizables

• e-business; e-commerce

2

CONSIDERACIONES DEL

HARDWARE Y SOFTWARE

Consideraciones del

hardware y software

• El software es un elemento del sistema que

es lógico, en lugar de físico.

• El software se desarrolla no se fabrica en

un sentido clásico.

• La mayoría del software se construye a

medida.

• Se usa en forma integral (todo o nada)

Factores de calidad y

productividad

Basili y Zelkowitz definen cinco factores importantes

que inciden en la productividad del software:

• Factores humanos: El tamaño y la

experiencia de la organización de desarrollo.

• Factores del problema: La complejidad del

problema que se debe resolver y el número de

cambios en las restricciones o los requisitos del

diseño.

• Factores del proceso: Técnicas del

análisis y diseño qué se utilizan, lenguajes y

herramientas CASE y técnicas de revisión.

• Factores del producto: Fiabilidad y

rendimiento del sistema basado en computadora.

Factores de calidad y

productividad

• Factores del recurso: Disponibilidad de

herramientas CASE, y recursos (hardware y

software).

Factores de calidad y

productividad

Fiable

Capacidad de ofrecer los mismos resultados

bajo las mismas condiciones.

Eficiente

Utilización óptima de los recursos de la

máquina.

Atributos de calidad del software:

Robusto

No poseer un comportamiento catastrófico

ante situaciones excepcionales

(Tolerante a fallos).

Correcto

Se ajusta a las especificaciones dadas por el

usuario.

Atributos de calidad del software:

PortableCapaz de integrarse en entornos distintos con el

mismo esfuerzo.

Adaptable (extensibilidad)Modificar alguna función sin que afecte a sus

actividades.

Atributos de calidad del software:

Inteligible

Diseño claro, bien estructurado y documentado.

No Erróneo

No exista diferencia entre los valores reales y

los calculados

Reutilizable (reusabilidad)

Atributos de calidad del software:

3

FACTORES DE CALIDAD DEL

SOFTWARE

Factores para la calidad del

software:

El objetivo primordial de la ingeniería del software es:

“Producir un sistema, aplicación o producto de alta calidad”

Para lograr este objetivo, los

ingenieros de software

deben aplicar métodos

efectivos junto con

herramientas modernas

dentro del contexto de un

proceso maduro de

desarrollo del software.

Factores para la calidad del

software:

La calidad de un sistema, aplicación o producto

es tan bueno como:

Los requisitos que describen el problema,

El diseño que modela la solución

El código que conduce a un programa

ejecutable, y

Las pruebas de los programas para detectar

errores.

Factores para la calidad del

software:

Un buen ingeniero del software utiliza mediciones

que evalúan la calidad del análisis y los modelos

de diseño, el código fuente y los casos de prueba

que se han creado al aplicar ingeniería del

software.

Para lograr esta evaluación de la calidad, el

ingeniero debe utilizar medidas técnicas que

evalúan la calidad con objetividad, no con

subjetividad.

Factores para la calidad del

software:

El gestor de proyectos también debe evaluar la

calidad objetivamente, y no subjetivamente.

A medida que el proyecto progresa el gestor del

proyecto también debe evaluar la calidad.

Las métricas privadas recopiladas por ingenieros

del software se asimilan para proporcionar

resultados en los proyectos.

Factores para la calidad del

software:

Aunque se pueden recopilar muchas medidas de

calidad, el primer objetivo en el proyecto es medir

errores y defectos.

Las métricas que provienen de estas medidas

proporcionan una indicación de la efectividad de

las actividades de control y de la garantía de

calidad del conjunto o de alguna de las partes

Factores para la calidad del

software:

Los errores detectados por hora de revisión y los

errores detectados por hora de prueba proporcionan

una visión profunda de la eficacia de cada una de

las actividades implicadas en la métrica.

Factores para la calidad del software:

Visión general de los factores que afectan a la

calidad:

En las dos décadas pasadas, McCall y Cavano

definieron un juego de factores de calidad como los

primeros pasos hacia el desarrollo de métricas de

la calidad del software.

Estos factores evalúan el software desde tres

puntos de vista distintos:

Factores para la calidad del software:

• Operación del producto (utilizándolo).

• Revisión del producto (cambiándolo).

• Transición del producto (modificándolo para

que funcione en un entorno diferente, por

ejemplo «portándolo».

La relación entre estos factores de calidad es lo

que se llama un «marco de trabajo».

Factores para la calidad del

software:

El marco de trabajo proporciona un mecanismo para

que el gestor del proyecto identifique lo que

considera importante.

Estas cualidades son atributos del software, además

de su corrección y rendimiento funcional, que tiene

implicaciones en el ciclo de vida.

En otros factores, como son facilidad de

mantenimiento y transportabilidad, se ha demostrado

que tienen un impacto significativo en el costo del

ciclo de vida...

Factores de calidad del software

MARCO DE TRABAJO

En segundo lugar, el marco

de trabajo proporciona un

medio de evaluar

cuantitativamente lo bien

que va progresando el

desarrollo en relación con

los objetivos de calidad

establecidos.

Factores de calidad del software

MARCO DE TRABAJO

En tercer lugar, el marco de trabajo proporciona

más interacción del personal de calidad en el

esfuerzo de desarrollo.

Factores de calidad del software

MARCO DE TRABAJO

Por último, el personal de garantía de calidad

puede utilizar indicaciones de calidad pobre

para ayudar a identificar estándares

[mejores] a contrastar en el futuro.

Factores para la calidad del

software:

Aunque hay muchas medidas

de la calidad de software, la

corrección, facilidad de

mantenimiento integral y

facilidad de uso proporcionan

indicadores útiles para el

equipo del proyecto.

Gilb sugiere definiciones y

medidas para cada uno de

ellos.

Factores para la calidad del software

Medida de la calidad:

Corrección:

Un programa debe operar

correctamente o

proporcionará poco valor a

sus usuarios.

La corrección es el grado en

el que el software lleva a

cabo su función requerida.

Factores para la calidad del

software:

Facilidad de mantenimiento:

El mantenimiento del software cuenta con más

esfuerzo que cualquier otra actividad de ingeniería

del software.

La facilidad de mantenimiento es la facilidad con la

que se puede corregir un programa si se encuentra

un error, se puede adaptar si su entorno cambia, o

mejorar si el cliente desea un cambio de requisitos.

Factores para la calidad del

software:

No hay forma de medir

directamente la facilidad

de mantenimiento; por

consiguiente, se deben

utilizar medidas indirectas.

Factores para la calidad del

software:

Integridad:

En esta época de intrusos informáticos y de virus,

la integridad del software ha llegado a tener mucha

importancia.

Este atributo mide la habilidad de un sistema para

resistir ataques (tanto accidentales como

intencionados) contra su seguridad.

El ataque se puede realizar en cualquiera de los

tres componentes del software: programas, datos y

documentos.

Factores para la calidad del software:

Para medir la integridad, se tienen que definir dos

atributos adicionales: amenaza y seguridad.

Amenaza es la probabilidad (que se puede estimar

o deducir de la evidencia empírica) de que un

ataque de un tipo determinado ocurra en un tiempo

determinado.

La seguridad es la probabilidad (que se puede

estimar o deducir de la evidencia empírica) de que

se pueda repeler el ataque de un tipo determinado.

Factores para la calidad del software:

Facilidad de uso:

El calificativo «amigable con el usuario» se ha

convertido en omnipresente en las discusiones

sobre productos de software.

Si un programa no es «amigable con el usuario»,

frecuentemente está abocado al fracaso, incluso

aunque las funciones que realice sean valiosas.

La facilidad de uso es un intento de cuantificar «lo

amigable que puede ser con el usuario»

Factores para la calidad del software:

4

DOCUMENTACIÓN DEL

SOFTWARE

Documentación de

software

• Recomendaciones para documentar

• Ejemplos de documentación

• Recomendaciones para documentación de

capacitación

En cuanto al Contenido

• Desde los procesos

– Definir los procesos, las actividades y las tareas.

– Elaborar diagramas

• Explicación del funcionamiento del software

Recomendaciones

respecto al Idioma

• Escribir en tercera persona

• Siempre debe estar identificado quién realiza

la acción, por ejemplo: el sistema, la opción,

el módulo, la pantalla, la ventana, el botón….

• No utilizar gerundios

• Verbos en presente

• No utilizar muletillas (de que, cual, etc.)

Capacitación

• Idioma sencillo

• Material complementario eficiente

• Definir claramente el objetivo de la

capacitación e identificar los logros a obtener

• Ejercicios o parte práctica

Herramientas de apoyo

• Las herramientas de apoyo documental le

permiten asegurar la integridad de la

información.

• Ayudas en línea, demos, manuales impresos,

guías rápidas, entre otras

5

PROBLEMAS Y SOLUCIONES

EN LA ADMINISTRACIÓN DE

SOFTWARE

Problemas y soluciones en la

administración de software

Thayer, Pyster y Wood sugirieron 20 áreas

potenciales, y pidieron a 294 individuos su

opinión respecto a la importancia de los

problemas, la naturaleza de éstos, ya fuera

técnica, gerencial o ambas, y sobre su

posible solución.

Problemas y soluciones en la

administración de software

problemas importantes en la administración fueron:

• La planeación de proyectos de programación es

generalmente pobre.

• Los procedimientos y las técnicas para la selección

de los gerentes de proyecto son pobres.

• La contabilidad en proyectos de programación es

pobre, cuestionando sobre quién es el responsable

de las diversas funciones del proyecto.

Problemas y soluciones en la

administración de software

• La capacidad para estimar correctamente los

recursos requeridos para completar un proyecto

de programación es pobre.

• Los criterios de éxito en el desarrollo de

proyectos son, con frecuencia, inapropiados;

esto repercute en productos de programación no

confiables, difíciles de usar y de mantener .

• No existen reglas de decisión para ayudar a la

selección de la adecuada organización

estructural.

• No existen reglas de decisión para ayudar a la

selección de las técnicas gerenciales más

correctas para los proyectos de programación.

• No siempre existen procedimientos, métodos y

técnicas para el diseño de un sistema de control

del proyecto que permita a los gerentes controlar

con éxito sus proyectos.

Problemas y soluciones en la

administración de software

• No siempre existen procedimientos, técnicas,

estrategias y ayuda que permitan vigilar el

avance real de un proyecto.

• No existen estándares y técnicas para medir la

calidad del desempeño y la cantidad de

producción esperada de los programadores y

analistas de procesamiento de datos.

Problemas y soluciones en la

administración de software