Diseño de Software, personal Software Process
FATIMA DE LA FUENTE ACOLTZIResumen3 de Noviembre de 2015
4.462 Palabras (18 Páginas)196 Visitas
Diseño de Software
Objetivos de la lectura
Después de esta lectura:
- Entenderás porque es importante el diseño
- Apreciaras como el DLD se adapta al proceso personal
- Conocerás los principios e ideas que se aplican al diseño
- Reconocerás lo que es un diseño completo
- Serás capaz de representar tus diseño en las plantillas de PSP
Temas
¿Por qué diseñar?
Consideraciones del diseño
Importancia de la representación del diseño
El rol del diseño en PSP
Las plantillas de diseño en PSP
Ejercicios de diseño de software
Alternativas en la representación del diseño
Diseñando en TSP
¿Por qué diseñar?
Preguntar a la audiencia.
Dar 5 minutos para que reflexionen la preguntar y después participen
¿Por qué diseñar?
El diseño de software inicia con un problema (expresado en requerimientos) y genera un diseño (proyecto original) para una solución de software a ser implementada.
El proceso de diseño debería generar una vista general de la solución despejada mediante un bajo nivel de detalle de implementación.
El proceso de diseño no construye la solución, pero explora el espacio potencial de solución y toma decisiones acerca de la estructura y comportamiento de la intención del producto de software.
El diseño resultante guiará el proceso de construcción subsecuente.
Un diseño efectivo minimizara los defectos que resulten desde un entendimiento inconsistente o incompleto del software a ser construido.
Diseñar es una inversión
Los programadores experimentados no necesitan hacer diseños para escribir la mayoría de sus programas.
La habilidad crítica es para el desarrollo de componente a ser usados como partes de sistemas grandes o cuando la calidad es un factor crítico.
Basados en datos de 8,100 programados usando la metodología de PSP, los programados que hicieron un diseño:
- Gastaron 53% más de tiempo que los que no lo hicieron
- Escribieron programas que fueron 46% más pequeños.
Diseñar es un principio clave para alcanzar la escalabilidad en el desarrollo de software. La inversión en el diseño pretende reducir el esfuerzo posterior en un proyecto en encontrar y corregir defectos.
Diseñar es creativo
El diseño de software en un proceso creativo.
El proceso de diseño no puede:
- Reducir a un rutina el procedimiento
- Automatizar
- De manera precisa controlar o predecir
El proceso de diseño puede ser estructurado para:
- Separar la rutina de las actividades creativas
- Asegurar que el trabajo de diseño sea ejecutado apropiadamente
- Identificar herramientas y métodos de diseño efectivas.
Diseñar es un proceso de aprendizaje
Diseñar involucra descubrir, inventar y de manera intuitiva brincar de un nivel de abstracción a otro.
Mientras el diseño debe reflejar los requerimientos, los requerimientos usualmente no son estables hasta que el producto ha sido usado, y entonces.
El trabajo de diseño es iterativo, y este debe ser direccionado a un feedback de todas partes involucradas.
El problema crítico es saber cuando congelar el diseño para producir una siguiente iteración.
Marco de trabajo del diseño
Empieza con los requerimientos iniciales→ se registran datos de los requerimientos de los usuarios → se analizan los datos de los requerimientos → la información se concibe como un diseño de alto nivel → se aclara y documenta el diseño → por último el diseño está completo. Sin embargo en todas estos pasos se valida el diseño contra los requerimientos y se obtienen las respuestas a las preguntas de los requerimientos.
Estructurando el proceso de diseño
Los buenos diseñadores de software siguen un proceso dinámico. Ellos:
- Saltan del concepto al detalle
- Simultáneamente consideran problemas a diferentes niveles de diseño
- Exploran múltiples alternativas
Un proceso de diseño estructurado puede ayudar a administrar el dinamismo del diseño.
- Capturar que se ha aprendido
- Registrar y administrar los problemas
- Seguir el estatus del diseño
Un proceso de diseño implementado apropiadamente reducirá el re-trabajo, administrada tareas de rutina y dará al diseñador la libertad de ser creativo.
Consideraciones del diseño
Durante el diseño, hay muchos problemas a considerar
- Incertidumbre en los requerimientos
- Tecnologías desconocidas
- Preocupaciones de escalabilidad y calidad
- Prototipos
Incertidumbre en los requerimientos
Para la mayoría de los nuevos sistemas de software, los requerimientos no son complemente conocidos hasta después de que los usuarios lo ha usado el producto final.
Esto crea un desafío para los diseñadores.
Analizando el impacto de cada cambio a los requerimientos es importante.
Tecnologías desconocidas
La industria de la computación está continuamente desarrollando nuevas tecnologías y actualizando las ya existentes.
Ejemplos:
- Sistemas operativos
- Lenguajes de programación
- Middleware
- Bases de datos
Un diseñador necesita:
- Satisfacer los requerimientos de los usuarios, y
- Ser eficientemente implementables en la implementación de la tecnología.
Preocupación por la escalabilidad y la calidad
Muchas propiedades deseables o esenciales que requiere un producto de software en una perspectiva global.
Ejemplos
- Fiabilidad
- Seguridad
- Escalabilidad de uso de memoria, tiempo de ejecución, requerimientos de ancho de banda.
Considerando estos problemas durante el diseño es mucho mejor que tratar de agregarlos al término pero de un producto de software insatisfactorio.
Prototipos
Desarrollar un prototipo puede ayudar a resolver muchos de estos problemas.
- Incertidumbre en los requerimientos
- Tecnologías desconocidas
- Preocupaciones de escalabilidad
Antes de desarrollar un prototipo, hay que especificar su propósito y definir las cuestiones a responder.
Comúnmente los prototipos son descartados una vez que ellos han servido para su propósito.
Si una parte de un prototipo no ha sido incluida en el producto, un esfuerzo adicional es requerido para asegurar que este cumpla con los estándares normales de desarrollo.
Calidad del diseño
Diseñar es una actividad de prevención de defectos.
Un diseño pobre de calidad es la mejor fuente de re-trabajo, mantenimiento y la insatisfacción del usuario.
Un diseño de calidad:
- Es completo y preciso
- Está suficientemente documentado para poder ser revisado
- Cumple con las necesidades del cliente
- De manera precisa guía la implementación
Usuarios de la información del diseño
Los principales usuarios del diseño son:
- Los implementadores
- Revisores y verificadores del diseño
- Testers y desarrolladores de pruebas
- Documentadores, de mantenimiento y potenciadores
Estos usuarios potencialmente necesitan una gran cantidad de material
- No toda la información es inmediatamente necesaria
- Alguna información puede ser obtenida de otras fuentes
- Es convenientemente limitar la carga de trabajo de diseño tanto como sea posible
Información esencial para el diseño
La información que los diseñadores deberían proveer incluye:
...