Arquitectura de Software (1)

November 22, 2017 | Author: Nelson Centenaro | Category: Software, Software Engineering, Quality (Business), Usability, Design
Share Embed Donate


Short Description

Download Arquitectura de Software (1)...

Description

77nS

DA ARQUITECTURADE SOFWARE, ( Versión 2-2012)

"un poco de ciencia aleja de Di9s, pero mucha ciencia devuelve a Elto. ( Louis Pasteur)

ING. JOSUE OBED VETZAGA GONZALES

UNIVBRSIDAD AUTONOMA GABRIEL RENE MORENO tA COMPUTACION Y TELECOMUNICACIONE' CARRERA INGENIERIA INF'ORMATICA/SISTEMAS/REDES

FACULTAD DE INGENIERIA EN CIENCTA' DE

Nota: Observaciones al texto de este documento, favor hacer llegar a [email protected]. El objetivo es mejorar y su aporte será de gran ayuda. Gracias

Introducción Las necesidades actuales que tienen las organización para el logro de sus objetivos, demandan la construcción de grandes y complejos sistemas de software que requierén de la combinación de diferentes tecnologías y plataformas de hardware y software para alcanzar un funcionamiento acorde con dichas necesidades. Lo anterior, exige de los profesionales dedicados al desarrollo de software poner especial atención y cuidado al diseño de la arquitectura, bajo la cual estará soportado el funcionamiento de sus sistemas.

Si una arquitectura de software se encuentra deficiente en su concepto o diseño, o en el peor de lo casos, no contamos con la del sistema que desarrollamos, tendremos grandes posibilidades de construir un sistema que no alcanzará el total de los requerimientos establecidos. Esto, indudablemente, nos generará un re-trabajo complicado o, peor aún, nos podrá llevar al fracaso del sistema de software cuando se encuentre en operación. De esta manera, es necesario conocer y comprender los elementos que deben atacarse al diseñar una arquitectura de software, entendida como un término que se ha venido perfilando en los últimos años por los profesionales de la industria, a pesar de que es un tópico que ha sido desarrollado por los expertos del campo de la ingeniería de software desde hace muchos años atrás. Son pocos los profesionales que conocen lo que en realidad abarca este tema y cómo debe diseñarse la arquitectura de un sistema de software, lo cual se debe al desconocimiento generalizado de esta importante etapa del ciclo de vida de un sistema. Regularmente, se pasa de la especificación de requerimientos a un diseño somero y a la codificación del sistema. Fnres

Ftujar

*r frrrhnj*

El*1¡nrarlúrr

fur¡i:Í*rnr,u¡f¡e&es

| {-.*n*{ru*:ri*n i Tl,:*llvirió,u it l. ¡r¡¡ if*r¡eiótz snln

f¡+qr l;lc' *:l* fu *r.:*q:*&n

T{cqni'xit**

Ar¡¡ilinir &iseÉ* nruple:m**rt

rciiin $K..,%* I

i

F¡'ne$rs

iler. I ri;r

Texto en revisión

Í

-#,** {ai:i!-

-

|

!rer. ;"a

Versión 2 -2012

ll{:sa:"

rttz*

[tr*r.

|

Ing. Josué O. Y eizaga Gonzales

En el flujo de trabajo de diseño aparte de realizar el diseño de la interfaz y el diseño de la base de datos, se realiza el diseño arquitectónico (también conocido como diseño de alto

nivel) y diseño detallado. El diseño de la arquitectura de software ocurre inmediatamente después de la especificación de los requerimientos de software y considera como elementos principales los siguientes: componentes de software, propiedades de dichos componentes y la comunicación entre ellos. El diseño detallado se lleva a cabo justo antes de la codificación, y forma parte de las primeras tareas del desarrollador; describe la lógica, el control jerárquico, estructura de datos, empacado de componentes, etcétera.

El desarrollo de la arquitectura de software es una de las etapas fundamentales y, en muchos casos, la más importante en el desarrollo de software, pues es aquí donde los profesionales aportan todos sus conocimientos, creatividad y experiencia para crear la mejor propuesta de solución que se dará al cliente que cumpla con los requerimientos funcionales y no funcionales establecidos para el sistema en desarrollo, así como sus preocupaciones principales de lo que esperan del sistema.

Texto en revisión

-

Versión 2 -2012

Ing. Josué O.Yeizaga Gonzales

TEMA I INTRODUCCION A LA ARQUITECTURA DE SOFTWARE

Presentación: En este tema se presenta conceptos básicos sobre que es arquitectura de software , que es 1o que hace un ingeniero de software en relación a un arquitecto. Como ve como producto y proceso el ingeniero y el arquitecto de software. También es importante mencionar en que parte del proceso de desarrollo de software se especifica la arquitectura. Finalizando la descripción de los requisitos funcionales, de calidad y los de restricción.

Contenido:

a o a

Definiciones de arquitectura de software Requisitos Funcionales Requisitos de calidad Requisitos de restricción

Texto en revisión

-

Versión 2 -

2012 3

Ins. Josué o.Yeizasa Gonzales

TEMA 1 Introducción a la Arquitectura de softwa re : conceptos Ing. Josué Obed Veizaga Gonzales MSc Universidad Autónoma Gabriel René Moreno Ing. Informática- Ing, De sistemas

o" -.et..ffi

rq u itectu ra... de q ué? o De Software. Involucra al diseño estructural

del software (únicamente) que forma parte de un sistema.

o

De Sistemas

Software. Involucra al diseño estructural de todo el sistema, entiéndase: Software, Datos, Usuarios, el Ambiente Operacional y de

Procedimientos.

Esto se debe a que muchas veces se utiliza la palabra software, como sinónimo de sistema de software.

softwa re? o

La arquitectura del software define el sistema en términos de sus componentes computacionales y de las relaciones entre ellos (Shaw &

Garlan, 1996)

¡

"Estructura o estructuras del sistema que comprende componentes de software, propiedades visibles de esos componentes y las relaciones entre ellos."

tectu ra o Ingeniero de software:

. . .

prgogupa de la parte estructural, y le preocupa poco .Se la estetlca. Se

preocupa de los costos, a corto y a largo plazo.

Sigueprocedimientos bien definidos, lo suyo es más lngenlerla que arte.

o Interactúa poco con el cliente, las revisiones apuntan más hacia él interior del equipo de trabajo.

. .

Trabaja en equipo.

Utiliza ciclos de trabajo medianos a largos.

o Construye en base a los requisitos funcionales.

ü

.

itectu ra dE

Arquitecto de software:

. .

Se

preocupa de la parte estéticay funcional (usabilidad).

No se preocupa de los costos asociados, ni de la parte estructural qüe no esté directamente relacionadá con su

trabaio.

.

No sigue procedimientos rígidos, lo suyo está más cerca del arte que qe la lngenlena.

¡ Interactúa mucho con el cliente. . Por lo general trabaja sólo o en grupos muy reducidos. . Utiliza ciclos de trabajo cortos. ¡ Construve en base a lo que al cliente/usuario le gusta....(requisitos no füncionales)

'i

Arquitectura de Software o La_división entre-el ingeliero y el arquitecto de software, es una línea'difusa. ' o Ambos roles son necesarios y son complementarios.... El problema es que l.ray que éer consciéntes de que un bgen lngenlero puecle no ser un buen arqurtecto, y

vlceversa.

o Debido a estas diferencias, la arquitectura como proceso o como producto,'puedé verse desde estos dos puntos cle vlsta.

o ... El desarrollo de software tradicional está más orientado al trabajo del ingeniero de software.

o

... El desarrollo de aplicaciones para Web está más orientado al trabajo tlel arquitecto de software.

.l

Qué es Arquitectura de Software

?

Como producto (según el ingeniero):

.

Un diseño de alto nivel.

o La estructura del sistema.

.

Los componentes de un.programa o sistema, sus relacionés, y los principiós que gobiernan su diseño y su evoluclon en el tlempo.

. Descomposición de la funcionalidad en grandes bloques. . Componentes, conectores, configuración y restricciones. . Selección entre distintas alternativas de arquitectura. . Es la clave del éxito a largo plazo.

Qué es Arquitectura de Software

?

Como Producto (según el Arquitecto):

. . . . . .

conjunto de patrones de: interfaz, estructura, navegación, y funcionalidad de un software. Interfaces y links. Un diseño que busca obtener una comprensión intuitiva del sistema a través de su interfaz. Es el

Páginas Web relacionadas.

Lo que el cliente/usuario desea. Es la clave del éxito a

corto plazo.

Qué es Arquitectura de Software

?

Como Proceso (según el Ingeniero):

. .

Es el proceso de diseño de los macrocomponentes del sistema y de sus relaciones. Es el proceso de diseño de la

funcionalidad básica del

sistema.

.

un proceso de diseño ingenieríl (paso a paso), basado en los requisitos. Es

. Es la entrada y la base para el diseño detallado. . Es el medio para probar las soluciones propuestas

para

alcanzar algunos de los requisitos.

Qué es Arquitectura de Software Como Proceso (según el Arquitecto)

?

:

. Es el proceso de definición de la imagen corporativa. . Es el proceso de diseño de la apariencia y usabilidad de un . .

. .

software. Es el proceso de captura/validación de las necesidades del

cliente/usuario. Es una forma de estructurar la informacióny la funcionalidad que ofrece un software. Es una forma de reduci¡ la ansiedad del cliente/usuario. Es una forma de que el cliente/usuario se sienta considerado dentro de un desarrollo.

ijencias de los partici

Funcionalidad Rendimiento otrgur rudu Seguridad

usabilidad

Bajo costl Rendimiento

(

.r'

,,/

.

soporte aPlicativo

--/.

"', -/^ooificab¡|idad

líder

de

Corto tiempo en mercado

mercadeo Bajo costo; ventajas con productos sim¡lares

tiempo

urrcr r(v Bajo costo y de entrega, que no camb¡e muy a menudo

*..-t..ffi:

Arq u itectu ra Vs. Diseño

La arquitéctura y el diseño difieren en tres áreas: Arquitectura Nivel de

Alto nivel

Bajo nivel. Enfoque específico en detalles

Planear subsistemas, interfaces con sistemas efernos.

Diseño detallado componentes.

servicios horizontales, frameworks, componentes reutilizables, prototipo arquitectónico

Especificaciones de codificación

Abstracción Entregables

Areas de Enfoque

Diseño

Selección de tecnologías, Requerimientos no funcionales

(aoS), Manejo de riesgos

Requerimientos

funcionales

uitectura Requisitos

AnáIisis Diseño

Codificación

-

Diseño de la Base de datos Diseño de la

Prueba

Intefaz

Diseño de la Arquitectura de Software

ManténimiéntC

Diseño de detalle orocedimental

ncia de_le_€9€glcagi! a rq u Mejora la comunicación entre las personas involucradas. Brinda documentación temprana acerca de las decisiones de diseño. Brinda restricciones a la implementación. Premite la validación temprana del sistema,

¡tectu

ra-

Permite predecir las cualidades del sistema. Facilita la administración de la evolución. Podría derivar en las líneas de

productos compaften arquitectura. Establece una base para el entrenamiento de nuevo personal.

-H Distribución del Costo Oel Soffiraié

Programación

Mantenimiento

o ... diseñar buenas aquitecturas no sólo es rentable, también ayuda a mejorar la calidad del software obtenido. o Qué es calidad de software? e Qué significa la calidad de software, para el desarrollador, para el cliente y para el usuario? o Qué tiene que ver la arquitectura de software en este asunto? o Hay otras maneras de obtener calidad de software?

Aio-uite de Software o La mayoría de los requisitos de calidad pueden ser alcanzados, sólo si son considerados desde la Funcionalidad:

Usabilidad: Entendibilidad, Aprendibilidad,

Pertinencia, Precisión, Interoperabi lidad, Adherencia,

Operabilidad, Aceptación de Uso

Seguridad

Mantenibilidad:

Portabilidad:

Analizabilidad, Cambiabilidad,

Adaptabilidad, Instanciabilidad,

Estabilidad, Demostrabilidad

Adecuación, Reemplazabilidad

Eficiencia:

Confiabilidad:

Rendim¡ento,

Madurez, Tolerancia a Fallas,

Uso de Recursos

Recuperabilidad

La arquitectura de software define: . componentes - lugar de almacenamiento o cómputo: . filtros, bases de datos, objetos, TDAs, o conectores - mediadores entre componentes:

.

.

llamadas a procedimientos, pipes, broadcast,

propiedades - información para construcción y análisis del soffware:

.

pre/post condiciones, invariantes.

Un estilo o Datrón de arquitecturas una solución general a un problem'a recurre_nte, a partir del cual se obteñdrán arqüitecturas específicas pára los distintos problemas. Un estilo o patrón de arquitecturas define una familia, compuesta cle:

. componentes y conectores, . configuraciones, ¡

semántica de las restricciones.

i:

::

¿PaaaqHé Softwa re? o Las personas necesitan pensar, diseñar, codificar, y comunicarse en términos de grandes bloques. o Es necesario diseñar sistemas de larga vida. o Es necesario diseñar sistemas flexibles, extendibles, adaptables y ojalá de bajo costo de mantención. o En el caso de los sistemas para Web, deben soportar una velocidad de evolución altísima.

ra que o Reutilización de alto nivel: actualmente solamente se reutiliza el código y las estructuras de datos. o Atacar problemas del ciclo de vida del software: . modificabilidad, portabilidad, escalabilidad, eficiencia del proceso de desarrollo, seguridad. . A medida que el tamaño del sistema crece, las soluciones a estos problemas radican más en la arquitectura. o Tener un lenguaje común para diseñadores, desarrolladores y usuarios.... aunque aveces esto es sólo una expresión de deseo, mas que una realidad. o ..... Pero fundamentalmente, para poder cumplir con los "requisitos de calidad".

10

pleto

ámos el dibúo

Patrones

Arquitect - B.D. - Seguridad - Transaccionales - Web - Usuarios - etc.

... ala arquitectura del escenario

de trabajo,

también se la conoce como Arquitectura Física

¡.

^ LOnCtUSrOneS o Arquitectura de software y arquitectura de sistemas de software, son dos cosas distintas.

o No hay un concenso acerca de qué es y qué involucra la arquitectura de software. o ... Algunos sostienen que es complementaria a la ingeniería de software. o La arquitectura de software plantea desafíos que no han sido muy bien manejados por la ingeniería de software tradicional. o Diseñar una buena arquitectura no sólo es necesario, sino que además es una actividad rentable !!! o El ingeniero de software tradicional y el arquitecto de software, son dos roles complementarios y necesarios.

t1

TEMA 1 Introducción a la Arquitectura de SOftWa

fe : calidad, Requisitos funcionales y no funcionales

Ing. Josué Obed Yeizaga Gonzales MSc Universidad Autónoma Gabriel René Moreno Ing. Informática- Ing. De sistemas

Aspectos Relevantes en Calidad de Software Cuando se habla de "calidad de software", hay 2 aspectos que es necesario considerar:

-

Especificación de Requisitos: Trata toda la problemática asociada a la especificación de especificación de requisitos completos, sin ambigüedades, y verificables.

-

Procesos de Supervisión: Trata la problemática asociada al proceso de supervisión de procesos y productos.

En esta presentación nos abocaremos al primero de estos aspectos.

Ideas Relevantes..... La calidad es la clave del éxito en el negocio del software. Para mejorar la productividad del software construido, hay que mejorar su calidad. Para mejorar la calidad del producto, hay que mejorar la calidad del proceso.

-

La gestión es tanto o más impoftante que la tecnología.

Generalmente, lo que la gente entiende como calidad de software, tiene mucho que ver con diseño arquitectónico de sistemas.

eQué es Calidad

?

La calidad: "La totalidad de características y atributos de un producto o seruiciq que están relactonados con satisfacer necesídades expresas o implícitas'l

Calidad = Satisfacción La calidad depende de la expectativas...

"La calidad del software depende en gran medida del diseño arquitectónico realizado" .... Y el diseño arquitectónico depende de los requisitos de calidad.

aQué es Calidad

o

?

En esta presentación veremos qué es calidad desde el

punto de vista de los requisitos.

o o

Veremos qué significan los requisitos de calidad, para el proceso de diseño arquitectónico. Y cuál es la relación entre ellos.

ZPor qué Necesito Calidad ? La calidad:

-

Es un asunto de competitividad Es esencial para sobrevivir Es esencial para expoftar Es rentable

Retiene clientes y aumenta las utilidades

Fuentes de Baja Calidad Requisitos imprecisos, mal entendidos o incompletos. Defectos en el software construido.

Arquitecturas de sistema pobres o mal diseñadas. Defectos en el sopofte prestado. Falta de monitoreo del proceso y del producto. Etc.

Problemas de la Ing.de Soft. El principal problema pafte con la: " falta de claridad en los requisitos". Si queremos tener éxito debemos definir, debemos definir éxito en función de:

-

Costos Plazos Recursos

Satisfacción de Requisitos Etc.

objetivos no son claros, no los alcanzaremos claramente".

"Si los

Requisitos Vagos.... Ejemplos: "La funcionalidad del nuevo sistema debe ser mejor que la del sistema anterior". "El nuevo sistema debe tener una interfaz en Visual Basic que lo haga más fácil de usar, en pafticular sin las dificultades de uso del sistema actual". "El sistema brindará mejores repoÉes de modo que se pueda aprovechar al máximo la Base de Datos". "El sistema asegurará que los datos sean correctos".

Requisitos Vagos.... Consecuenc¡as:

- No podemos demostrar que hemos logrado los objetivos - No podemos demostrar que no los hemos logrado - No podemos diseñar la arquitectura sonbre requisitos incompletos o mal definidos.

- No podemos evaluar alternativas

de diseño

-

y no fines

Se termina especiflcando medios

Si hay más de una forma de expresar un objetivo, tal vez no es un objetivo, sino un medio para lograr algo. Por ej. la interfaz en VisualBasic

Tipos de Requisitos

o

Requistos de Usuario:

Expresan las necesidades del

usuario.

o

Requisitos de Software: Expresan las capacidades que debe tener el software, para poder satisfacer los requisitos del usuarios.

Por otra parte también están:

- Requistos Funcionales - Requisitos de Calidad - Requisitos de Restricción

Tipos de Requisitos

o Requisitos Funcionales:

indican éQué?.

Deben ser alcanzados si o sí.

o Requisitos de Calidad: indican écuán bien?. La calidad final dependerá del logro de estos objetivos

.

Requisitos de Restricción:

¡ndican éCuánto?.

En función de costos, tiempos, personal, etc.

- Los requisitos más difíciles de especificar son los req. de calidad.

- Los requisitos funcionales y los de restricción, se suelen especificar bien.

6

Tipos de Requisitos o de Usuario o o

de Funcionalidad de Restricción

de Software (o mas bien, de sistema) o

de Funcionalidad

o de Calidad o de Restricción

Requisitos ->Atributos del Soft. "todos los requísitos de calidad pueden y deben ser especificados sin a m big üedades" "/os requisitos determinan los atributos

del

software"

o Si un requisito está claramente expresado (por ej. terminar antes del31512001), se le da prioridad por sobre otros requisitos no tan claros ("más fácil", "mejor", "consistente", "amigableJ

o Si queremos que los datos sean consistentes (por ej.), debemos indicar a que le llamamos "consistente".

o Veamos el siguiente ejemplo...

7

Ejemplos de Requisitos de Calidad

o o

Estos atributos deberían ser revisados a la hora de especificar un sistema. Debido a que aparecen en Ia mayoría de ellos.

Entre los Requisitos de Calidad Trpicos figuran:

Funcionalidad: Peftinencia

Precisión

| | Usabilidad: | | Entendibilidad

I I ||

I Interoperabilidad I

Adherencia

Aprendibilidad Operabilidad Aceptación de Uso

Seguridad

Ejemplos de Requisitos de Calidad

(cont...)

o

Entre los Requisitos de Calidad Trpicos figuran: Mantenibilidad:

Poftabilidad:

Analizabilidad

Adaptabilidad

Cambiabilidad

Instanciabilidad

Estabilidad

Adecuación

Demostrabilidad

Reemplazabilidad

Eficiencia:

Confiabilidad:

Rendimiento

Madurez

Uso de Recursos

Tolerancia a Fallas Recuperabilidad

Requisitos Usuales Importantes Los requisitos de calidad antes mostrados, casi siempre deben ser especificados. Esa lista de requisitos debería formar parte de

la plantilla estándar.

- Asíse disminuye el riesgo de no especificar requisitos obvios

- Es más fácil acordarse de qué preguntar, o de

negociar con el cliente en caso de ser necesario.

- Los nuevos empleados pueden aprender de cómo hacemos las cosas aquí.

Requisitos Usuales Importantes

(cont...)

- Funcionalidad -Confiabilidad

- Usabilidad - Eficiencia - Mantenibilidad - Portabilidad o Estos requisitos son conocidos como las " ilidadel'de un software.

Funcionalidad

o Conjunto de requisitos referidos a la existencia las capacidades de un software.

o Las capacidades que satisfacen necesidades expresas o implícitas de los usuarios.

o Sus sub-requisitos Peftinencia:

son:

la existencia de funciones apropiadas para

las tareas especificadas.

Precisión:

la capacidad de entregar resultados correctos o con un grado de error acotado.

Funcionalidad (cont...) Interoperabilidad:

la habilidad de interactuar con determinados sistemas (No confundir con reemplazabilidad).

Adherencia:

la compatibilidad con estándares, convenciones o regulaciones.

Seguridad:

la habilidad de prevenir uso no autorizado, tanto intencional como accidental, de programas y datos.

t0

Confiabilidad La capacidad de mantener un nivel adecuado

de servicio, bajo cieftas condiciones y por cierto tiempo. Sus sub-requisitos son :

Madurez: atributos relacionados con la frecuencia de fallas por errores del software

Tolerancia a Fallas: habilidad de funcionar aún después de cieftas fallas

Recuperabilidad: capacidad, tiempo y costo para reestablecer un nivel de servicio, y recuperar datos después de una fallas

Usabilidad Atributos (o requisitos) relacionados con el esfuerzo de uso, y la evaluación del uso, realizada por los usuarios. Entre sus sub-requisitos están: Entendibilidad: posibilidad de que los usuarios reconozcan los conceptos y su aplicabilidad

Aprendibilidad: esfuerzo necesario para adquirir un determinado nivel de destreza

Operabilidad: esfuerzo necesario para operar y controlar la operación del software

Agrado de uso: evaluación subjetiva (encuesta) hecha por los usuarios

11

Mantenibilidad Atributos (o requisitos) relacionados con el esfuerzo de hacer modificaciones. Entre sus sub-requisitos están: Analizabilidad: esfuerzo de diagnosticar deficiencias o causas de fallas, o de identificar las partes modificar

a

Cambiabilidad: esfuerzo de hacer un cambio Estabilidad: riesgo de efectos inesperados por realizar un cambio

Demostrabilidad: esfuerzo de comprobar o validar la corrección

Portabilidad Habilidad de ser transferido de un ambiente a otro. Entre sus sub-requisitos están: Adaptabilidad: capacidad de adaptarse a otros ambientes usando los medios del software

Instalabilidad: esfuerzo de instalación en un determinado ambiente

Adecuación: adherencia a estándares o convenciones de poftabilidad

I2

Portabilidad (cont...) Reemplazabilidad: posibilidad de ser usado en lugar de otro software, en el ambiente del otro. NOTAS:

1- No debe confundirse con interoperabilidad (algunos llaman a ambos "compatibilidadJ 2- La reemplazabilidad está relacionada con la instalabilidad y la adaptabilidad. Debido a su impoftancia, se poner por separado.

Eficiencia

.

Relación entre el nivel de rendimiento, y la cantidad de recursos usados, bajo ciertas condiciones. Uso del Tiempo: requisitos relacionados con tiempos de respuesta, tiempos de procesamiento, o tasas de seruicio (throughput) Uso del Recursos: requisitos relacionados con el uso de recursos o Cantidad de recursos o Duración del uso

I3

Requisitos Críticos Muchas veces hay atributos tan impoftantes y conocidos, gu€ por obvios nadie los dice.

Principio de lo obvio: "Las cosas obvias, que todos saben, no se pueden dejar que se cuiden solas..."

Un atributo crítico es aquel que si está fuera de control, amenaza la viabilidad de la solución.

-

El olvidarse

de 1 sólo atributo crítico puede ser suficiente

para un desastre.

Un requisito crítico puede ser de calidad, funcional, o de restricción.

¿Qué Requisitos Especificamos? o Todos.... especialmente los críticos o A veces "los atributos dependen mucho del

problema" Normalmente debemos hacer una lista de atributos relevantes para cada proyecto Es importante revisar proyectos similares,

que hayamos hecho, para chequear si nos falta algo importante.

I4

Ventajas de Especificar Requisitos La utilización de métricas es engorrosa, pero tiene varias ventajas: Para los Clientes: Cefteza: Tiene más probabilidad de obtener lo que quiere

Comparación: Las ofeftas de distintos proveedores son comparables Clarificación: Se promueve una discusión temprana de los temas Demostrabilidad: Será más fácil determinar si los requisitos fueron o no cumplidos

Ventajas de Especificar Requisitos (cont. . . ) Para la Fuerza de Ventas: Cefteza: Menor probalibidad de perder una propuesta por no entender los requisitos

Sabremos antes que la competencia que es lo que se necesita

Imagen:

Se nos percibirá como realmente interesados en saber qué es lo que se necesita Riesgo: Sabemos qué ? y cuánto? se necesita

Control de Cambios: Podemos demostrar que nuevas solicitudes, deben ser tratada como cambios Claridad; Podemos hablar sin ambigüedades y sin doble sentido, sobre: - Las fortalezas de nuestra propuesta - Los resultados esperados, en lugar de promesas vagas.

15

Ventajas de Especificar Requisitos (cont...) Para Desarrolladores y Subcontratistasl

- Podemos basar las estimaciones en un -

entendimiento firme de los requisitos El cliente no nos puede sorprender con requisitos más exigentes, sin estar dispuesto a pagar/negociar la diferencia Podemos diseñar por objetivos, lo cual tiene más posibilidades de éxito, que hacer algo y ver si sirve.

- Puedo ejercer un "control de cambios". o Nosotros debemos

tener la sartén por el mango, no el cliente.

Conclusiones "Especificar la calidad" no significa que mi software (o mi sistema) será de "buena calidad". 'tEspecificar la calidad" significa que conozco lo que debo entregar al cliente. "Especificar Ia calidad" significa que el cliente sabe lo que debo entregar. "Especificar la calidad" significa que conozco mis limitaciones, por lo tanto puedo trabajar para superarlas. "Especificar la calidad" me ayuda a presentar presupuestos realistas, y a no perder dinero.

L6

Conclusiones No existe la posibilidad de desarrollar o comprar'tun software de calidad".

Siempre hay que especificar la calidad.... pero que eso no sea el centro de mi proyecto. a

No caer en una "parálisis por análisis".

o

Revisar los requisitos usuales, y preguntar por ellos !!!, siempre antes de entregar un presupuesto. No se permitan ambigüedades... el cliente puede ser más vivo que ustedes...

Un buen cumplimiento de los requisitos de calidad, generalmente está asociado a un buen diseño arquitectónico del sistema.

l7

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF