Está en la página 1de 20

Indicaciones para la siguiente sesión

Revise el material compartido


en el aula virtual de la
asignatura Construcción de
Software.
Construcción de software
Ingeniería de Sistemas e Informática

•4
•1
Propósito y contenido de la sesión

Propósito de la sesión
• Implementar el proyecto MiniCalc
aplicando la metodología de desarrollo
guiado por pruebas de software (Test-
driven development, TDD) y el lenguaje
de programación C#.

Contenido de la sesión
• Desarrollo guiado por pruebas de
software.
Ciclo de desarrollo guiado por
pruebas
Test Driven Development (TDD)
Ciclo de desarrollo guiado por pruebas
En primer lugar se debe definir
una lista de requisitos y después
se ejecuta el siguiente ciclo:
• Elegir un requisito.
• Escribir una prueba.
• Verificar que la prueba falla.
• Escribir la implementación.
• Ejecutar las pruebas automatizadas.
• Eliminación de duplicación.
• Actualización de la lista de requisitos.
1. Elegir un requisito

Se elige el requerimiento que se cree que


nos dará mayor conocimiento del
problema y que a la vez sea fácil de
implementar.
• Lo expresamos en forma de código.
• Pensar primero en cómo queremos que sea la API,
es decir, tenemos que trazar antes de implementar.
• Imaginar cómo seria el código implementado y
cómo probarlo.
2. Escribir una prueba

Se escribe una prueba para el requisito seleccionado.

El programador debe entender las especificaciones y


los requisitos de la funcionalidad que va a
implementar.

El programador asumirá la perspectiva del cliente,


considerando el código a partir de las interfaces.
3. Verificar que la prueba falla

Si la prueba no
falla es porque el
requerimiento ya
estaba
implementado o
porque la prueba
es errónea.
4. Escribir la implementación
Escribir código simple que haga que la prueba
funcione. Se usa la metáfora "Déjelo simple" o “Keep
It Simple, Stupid” (KISS).

Codificamos lo mínimo necesario para que pase la


prueba, lo necesario para cumplir la especificación
actual.

Las dudas que se presenten se anotan para


convertirlas especificaciones en las siguientes
iteraciones si son pertinentes.
5. Ejecutar las pruebas automatizadas

Verificar si todo
el conjunto de
pruebas
funciona
correctamente.
6. Eliminación de duplicación

El paso final es la refactorización, que se utilizará


principalmente para eliminar código duplicado.

Se hacen pequeños cambios por vez y se corren las pruebas


hasta que pasen. Luego se procede con el siguiente cambio.

Según Martín Fowler, refactorizar es "modificar el diseño sin


alterar su comportamiento“
• Rastrear el código (y la prueba) en busca de líneas duplicadas para
eliminarlas.
• Revisar que el código este alineado a los principios de diseño S.O.L.I.D,
sino refactorizarlo.
SOLID
Inicial Acrónimo Concepto
Principio de responsabilidad única (Single responsibility principle)
S SRP
Un objeto solo debería tener una única responsabilidad.
Principio de abierto/cerrado (Open/closed principle)
Las “entidades de software … deben estar abiertas para su extensión, pero
O OCP
cerradas para su modificación”. Se puede extender su comportamiento, pero sin
modificar su código fuente. Está basado en la herencia.
Principio de sustitución de Liskov (Liskov substitution principle)
L LSP Los “objetos de un programa deberían ser reemplazables por instancias de sus
subtipos sin alterar el correcto funcionamiento del programa”.
Principio de segregación de la interfaz (Interface segregation principle)
I ISP Muchas interfaces cliente específicas son mejores que una interfaz de propósito
general.
Principio de inversión de la dependencia (Dependency inversion principle)
D DIP Depender de abstracciones, no depender de implementaciones. La inyección de
dependencias es uno de los métodos que siguen este principio.
7. Actualización de la lista de requisitos

Se actualiza la lista de requisitos tachando el


requisito implementado.

Se realimenta con nuevos requisitos y se


agregan los requerimientos de diseño; por
ejemplo: que una funcionalidad esté
desacoplada de otra.
Desarrollo guiado por
pruebas de software (TDD)
Construcción de software
Actividades

Desarrolle los ejercicios del proyecto


MiniCalc. Entregable 1.

Elabore un mapa mental del procedimiento


utilizado para implementar el proyecto
MiniCalc. Entregable 2..

Realice un comentario sobre el


procedimiento utilizado para implementar
el proyecto MiniCalc. Entregable 3.
Indicaciones para entregar las actividades

Un integrante del equipo crea un directorio en Google


Drive; con el siguiente nombre: Prac01-XX, reemplace
las XX por el código de matricula de uno de los
integrantes.

Comparta el directorio, como puede ver únicamente, a


la cuenta dgamarra@continental.edu.pe.

Copie la lista de integrantes y los entregables al


directorio.
Preguntas

También podría gustarte