SlideShare una empresa de Scribd logo
1 de 70
Ingeniería de
Requerimientos I
prof. Pablo Macón
http://pablomacon.wixsite.com/home/
profemacon@gmail.com
Programación Orientada a Objetos
• Una técnica o estilo de programación que utiliza objetos
como bloque esencial de construcción de software.
• Los lenguajes de programación Orientados a Objetos
pretenden construir programas basándose en los
objetos presentes en la realidad correspondiente al
programa que se desea construir.
• Por esa razón es que permiten crear en la computadora
representaciones de esos objetos de la realidad.
¿Qué es un objeto?
• Un Objeto es una "cosa", real o imaginaria, física o
intangible, viva o inerte que existe enmarcado en
alguna realidad.
• Estamos rodeados por objetos, las personas que nos
rodean son objetos, los muebles de nuestra casa son
objetos e incluso en alguna realidad emocional
podemos decir que cosas como los pensamientos o
los sentimientos son objetos.
¿Qué es un objeto?
• Un objeto puede, por tanto, ser algo conceptual o
algo físico.
• La idea fundamental es que un objeto es una entidad
(o noción) única.
• Cada objeto es una individualidad, que puede estar
relacionado o constituido por otros objetos.
¿Qué es un objeto?
• Dentro del paradigma de la Orientación a Objetos, se
entiende que los objetos se componen de dos
elementos denominados atributos y métodos.
• Los primeros son aquellos datos del objeto con los
cuales interese trabajar dentro de una determinada
realidad
• Los segundos son las acciones u operaciones que
trabajan sobre el objeto.
¿Qué es un objeto?
• Por ejemplo, si consideramos a una cuenta bancaria
como un objeto, sus atributos de interés podrían ser
su número, la cédula de su dueño y el monto de
dinero que almacena, mientras que sus métodos
podrían ser las operaciones de depósito, retiro y
consulta.
¿Qué es un objeto?
• Desde un punto de vista más formal, un objeto es en
realidad un elemento perteneciente a un determinado
Tipo.
• Así como tenemos elementos que son enteros o
Cadenas de Texto (int o String) podemos crear
nuestros tipos particulares
Clases de Objetos
• Desde un punto de vista conceptual, diremos que
una Clase es una plantilla o molde imaginario que
sirve para definir objetos.
• Decimos que los objetos de una clase son instancias
de la misma.
Clases de Objetos
• Podemos hacer la siguiente analogía:
• La clase es como el plano de un edificio
• los objetos son todos los edificios concretos que
yo puedo construir con ese plano.
Clases y Objetos
• Por otra parte, no podemos dejar de mencionar una
característica muy importante de los objetos: poseen
identidad.
• Si bien los objetos de una clase tienen todos las
mismas características, cada uno de ellos es una
entidad única y diferenciable de los demás.
Clases y Objetos
• Por ejemplo, la clase persona define tres atributos:
cédula, nombre y domicilio
• Todos los objetos de la clase tendrán una cédula, un
nombre y un domicilio.
• No obstante, cada objeto de la clase persona será
único, porque los valores que tomen esos datos para
cada objeto en concreto nunca serán todos los
mismos.
Clases y Objetos
• La existencia de clases de objetos es una
característica sumamente útil y necesaria a la hora
de escribir programas Orientados a Objetos.
• Nos permite manipular con facilidad grandes grupos
de Objetos.
• Sería muy difícil tener que programar cada Objeto
por separado.
Clases y Objetos
• Una clase es pues, un tipo de datos definido por el
programador, que determina las estructuras de datos
y las operaciones asociadas con ese tipo.
• Cada clase es un modelo que describe un infinito
conjunto de objetos del mismo tipo.
Clases y Objetos
• Cada vez que se construye un objeto de una clase,
se crea una instancia de esa clase.
• Cada instancia u objeto de una clase tiene su propio
valor para cada uno de sus atributos pero comparte
los mismos métodos que todos los otros objetos de
la misma clase.
Metodología Orientada
a Objetos
Metodología Orientada a Objetos
• A la hora de modelar sistemas utilizando
Programación Orientada a Objetos, seguiremos una
metodología para resolver problemas que se divide
en las siguientes etapas.
1.Análisis del sistema.
2.Diseño del sistema.
Metodología Orientada a Objetos
• A la hora de modelar sistemas utilizando
Programación Orientada a Objetos, seguiremos una
metodología para resolver problemas que se divide
en las siguientes etapas.
3. Implementación del sistema en un lenguaje
Orientado a Objetos.
4. Prueba, despliegue y mantenimiento
del sistema
1- Análisis del Sistema
• Determinar cuál es el propósito general del Sistema,
qué aspectos abarcará y cuáles no.
• Partiendo de los requerimientos del sistema (tareas
concretas que se espera que el mismo resuelva),
debemos estudiar aquellos aspectos de la realidad
correspondiente que sean relevantes para la
resolución de los requerimientos y construir un
Modelo de Análisis que los represente.
1 - Análisis del Sistema
• Esto se hace con el fin de contextualizar hasta dónde
debe abarcar el Sistema y qué cosas no interesan y
deben quedar afuera del mismo.
• La construcción del modelo de análisis se hace
identificando los Objetos presentes en la realidad
que son relevantes y cómo se relacionan entre sí,
dejando afuera a todos aquellos que no son de
importancia.
2 - Diseño del Sistema
• Esta etapa consiste en traducir el modelo generado
durante el análisis en un conjunto de clases y
métodos que permitan implementar el Sistema de
forma tal que resuelva los requerimientos que fueron
definidos para el mismo.
2 - Diseño del Sistema
• Esto significa generar una documentación lo más
clara posible de las clases que hay que programar y
de los métodos que hay que implementar en ellas.
Para generar dicha documentación, se usará la
notación UML, al igual que en la etapa de análisis
3 - Implementación del Sistema
• Esta etapa consiste en partir de la documentación
generada en la etapa del diseño e implementar en un
lenguaje de Programación Orientado a Objetos cada
una de las Clases especificadas durante el diseño,
definiendo estructuras de datos apropiadas para
cada una de ellas, así como los métodos de cada
clase, también especificados durante el diseño.
3 - Implementación del Sistema
• Todos los lenguajes OO proveen mecanismos para
implementar Clases y Objetos, además de garantizar
el cumplimiento de los cuatro conceptos
fundamentales (abstracción, encapsulamiento,
herencia y polimorfismo)
4 - Prueba, despliegue y mantenimiento
• Una vez que hemos construido el sistema, que
hemos traducido el modelo a un lenguaje Orientado a
Objetos determinado, y antes de liberarlo al público o
entregarlo al cliente que nos lo pidió, debemos hacer
pruebas extensivas que verifiquen que el sistema
funciona de la manera esperada y realiza las tareas
especificadas.
4 - Prueba, despliegue y mantenimiento
• Después de todo esto es posible entregar el
producto y luego sigue el mantenimiento, mediante
el cual vamos a corregir pequeños inconvenientes o
hacer cambios que le permitan evolucionar,
incorporar nuevas cosas.
• Un programa bien diseñado, bien analizado, permite
que los cambios sean razonables.
Requerimientos y análisis
inicial del problema
Identificación y Análisis de Requerimientos
• Lo primero que necesitamos para resolver el
problema es establecer cuál es el problema en sí.
• Tenemos que conocer qué es lo que necesitamos
que el programa haga con exactitud.
Identificación y Análisis de Requerimientos
• Comienza recabando información sobre el problema
• Sigue con un análisis exhaustivo de esa información
• Termina con un documento llamado Especificación
de Requerimientos (ESRE).
¿Cómo obtener la información?
• Especificación Inicial del cliente
• No siempre es precisa
• Puede tener omisiones (faltar información sobre el
negocio)
¿Cómo obtener la información?
• Expertos en la materia
• Se puede obtener información sobre el problema
(negocio) a resolver consultando a expertos en la
materia
• Habitualmente son provistos por el cliente y no
tienen, necesariamente, que saber de informática
¿Cómo obtener la información?
• Usuarios
• Son las personas que van a usar el sistema
• Dan información práctica en contraposición con la
teórica obtenida anteriormente
¿Cómo obtener la información?
• Gerentes:
• Son los responsables del sistema
• Definen la importancia de cada parte del mismo
¿Cómo obtener la información?
• Marketing:
• Nos puede llegar a ayudar a investigar si hay
mercado para productos similares. De ser así se
puede considerar la idea de hacer un framework o
componentes reusables para proyectos similares
• ™Si el proyecto es interno, se debe discutir con otros
departamentos el hacer un framework o
componentes reusables
¿Cómo obtener la información?
• Proyectos previos:
• Pueden darnos información muy valiosa tanto
positiva como negativa (tomar las positivas y evitar
las negativas)
Especificación de requerimientos (ESRE)
• Es un documento que describe claramente los
requerimientos funcionales (del cliente) y no
funcionales (del sistema)
• El aporte del cliente es crítico para este documento
• Debe usar la terminología del negocio
• Debe tener oraciones claras, completas y poca
terminología informática (jerga)
Especificación de requerimientos (ESRE)
• Contiene detalle acerca del alcance del proyecto
• Explica el contexto del problema
• Debe contener toda la información pertinente para el
análisis y diseño del proyecto
• Hace explícitas todas las restricciones necesarias
Especificación de requerimientos (ESRE)
• Estándar IEEE 830.
• Establece claramente qué cosas debe contener una
especificación de requerimientos, cómo debe estar
constituido
• Si queremos participar de licitaciones del gobierno o
grandes empresas, debe seguir este estándar
Especificación de requerimientos (ESRE)
• Definición de requerimiento [IEEE]
• Condición o capacidad de un sistema
requerida por el usuario para resolver un
problema o alcanzar un objetivo.
• Condición o capacidad que debe poseer un
sistema para satisfacer un contrato, estándar,
especificación, u otro documento formalmente
impuesto.
Especificación de requerimientos (ESRE)
• Requerimientos funcionales
• Especifican de los servicios que el sistema debe
proveer.
• Definen QUE hace el sistema.
• Describen todas las entradas y todas las salidas del
sistema y la forma en que se relacionan.
Especificación de requerimientos (ESRE)
• Requerimientos funcionales - Ejemplos:
• El sistema debe emitir un informe de estado de
situación patrimonial.
• El sistema debe realizar la liquidación de haberes a
personal contratado y personal estable.
Especificación de requerimientos (ESRE)
• Requerimientos funcionales - Ejemplos:
• El sistema debe capturar cualquier regla de
liquidación de haberes sin necesidad de intervención
del fabricante del producto.
• El sistema debe tener un archivo de movimientos.
Especificación de requerimientos (ESRE)
• Requerimientos no-funcionales
• Especifican restricciones o propiedades que el
sistema debe cumplir relacionadas con:
• Características de calidad
• Modelo de calidad ISO 9126
• Calidad interna, externa y en uso
Especificación de requerimientos (ESRE)
• Requerimientos no-funcionales
• Especifican restricciones o propiedades que el
sistema debe cumplir relacionadas con:
• Reglas de negocio
• Vocabulario y terminología del negocio
• Estándares y políticas organizacionales
Especificación de requerimientos (ESRE)
• Requerimientos no-funcionales
• Especifican restricciones o propiedades que el
sistema debe cumplir relacionadas con:
• Restricciones de entorno
• Hardware y software de base
• Interfaces externas
Especificación de requerimientos (ESRE)
• Requerimientos no-funcionales - Ejemplos:
• El sistema debe correr sobre Windows 7 o superior.
• El sistema debe ser fácil de aprender.
• El sistema debe estar desarrollado en Java SE.
• El sistema deberá ser desarrollado en 10 meses.
• El sistema debe encriptar los datos almacenados.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Corrección: Todo requisito que se establezca en el
documento refleja una necesidad real.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• No ambiguos: No puede haber doble interpretación
en lo que se refiere a lo que se va a desarrollar. Los
requisitos deben estar redactados en un lenguaje no
ambiguo y además, de ser posible, utilizando algún
esquema o lenguaje matemático.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Completos: se deben incluir todas las posibilidades
de entrada y salida del sistema, tanto válidas como
no válidas.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Consistentes: No podemos incluir requisitos
contradictorios, un requisito posterior no puede ir
contra lo establecido en un requerimiento anterior.
Uno de los dos debe corregirse.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Verificables: Debe existir un modo económico de
verificar si un requisito se cumple o no.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Modificables: Una Especificación de Requerimientos
solo puede ser modificable si sus requisitos están
estructurados de forma que los cambios puedan
realizarse de forma fácil, completa y consistente.
Especificación de requerimientos (ESRE)
• El estándar IEEE 830 establece centralmente que los
requerimientos deben tener las siguientes
características:
• Trazables: Tenemos que saber quién nos pidió el
requisito, tenemos que establecer de antemano con
el cliente quién de la empresa va a poder pedir
cosas. Tiene que haber responsables.
Identificando
Clases y Objetos
Identificación de Clases y Objetos
• A partir de la descripción del problema a resolver
• Se subrayan los sustantivos y las frases sustantivas
• Todas las palabras subrayadas son candidatas a ser
objetos y clases
• Los sinónimos se ponen juntos
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Cosas tangibles: avión, televisor, coche, etc.
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Roles o papeles desempeñados por personas:
gerente, cliente, médico, etc
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Organizaciones: empresa, división, equipo, etc.
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Incidentes que representan un suceso: vuelo,
accidente, suceso, etc
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Interacciones que implican transición o contrato y
relacionan dos o más objetos del modelo: compras,
matrimonio, etc.
Identificación de Clases y Objetos
Ejercicio:
1. El cliente nos pide un sistema que le permita gestionar su empresa
de transporte. La misma dispone de camiones, camionetas y motos
que realizan entregas que le piden los clientes. La empresa dispone
de dos estacionamientos, en los que permanecen los vehículos
cuando no están realizando alguna entrega, que también tienen que
ser gestionados, porque no caben todos ellos en los terrenos, por lo
que debe contratar espacio en estacionamientos privados. Además,
el sistema debe gestionar la plantilla de choferes, asignándolos a los
vehículos.
Identificación de Clases y Objetos
Ejercicio:
2. Nuestra empresa ha decidido comenzar el desarrollo de un juego
multiplataforma en el que los jugadores se encuentran frente a un
tablero lleno de bolillas de colores, habrá tableros de diferentes
tamaños y formas y las bolillas pueden ser de seis colores
diferentes. Los jugadores deben combinar al menos tres bolillas del
mismo color moviendo una bolilla. Los movimientos permitidos son
horizontal y vertical únicamente. Cada tablero deberá resolverse en
una cantidad de movimientos determinada, generando puntos por la
cantidad de movimientos realizados.
Identificación de Clases y Objetos
Ejercicio:
3. En la veterinaria del vecino han decidido implementar un sistema
que le ayude a realizar la gestión de las consultas a los animales que
atienden a diario. Cada cliente tiene uno o varios animales, que
pueden ser de diferentes especies y razas. Cada vez que se atiende
a un paciente se produce una consulta, esta consulta puede ser
programada o de urgencia, teniendo cada tipo de consulta un costo
diferente. La veterinaria dispone de tres médicos que atienden en
los dos consultorios, teniendo ellos horarios rotativos.
Identificación de Clases y Objetos
• Para identificar objetos de un programa dividiremos los
mismos en una serie de categorías base, aunque podrían
usarse otras categorías diferentes en función de los
requisitos de la aplicación/programa a diseñar:
• Lugares: sala de embarque, muelle de carga,
almacén, etc.
Identificación de Atributos y Métodos de clase
• Una vez que “tenemos en claro” los objetos que van a
formar parte de nuestro programa (pueden variar a
medida que empecemos con el diseño más profundo),
hemos de identificar los atributos de dichos objetos que
nos van a ser útiles.
• Los atributos describen la abstracción de características
individuales que poseen todos los objetos.
Identificación de Atributos y Métodos de clase
• En una clase Empleado, podríamos tener:
• Número de cédula
• Nombre y apellido (¿separados o juntos?)
• Horario (entrada, salida, descanso)
• Sueldo
Identificación de Atributos y Métodos de clase
• Por último nos quedaría la tarea de identificar las
operaciones o funciones miembro las cuales van a
cambiar, de alguna forma, el comportamiento del objeto.
• Cambian los valores de uno o más atributos contenidos
en dicho objeto.
Identificación de Atributos y Métodos de clase
• La identificación de las operaciones se realiza haciendo
un nuevo análisis gramatical de la descripción del
problema y buscando y aislando los verbos presentes en
el texto.
• “El sistema deberá permitir incrementar el salario de
cada empleado de acuerdo a lo establecido en los
acuerdos salariales del sector”
Identificación de Atributos y Métodos de clase
• Las operaciones generalmente se dividen en los
siguientes tres grandes grupos:
• Manipulación de datos: de alguna forma específica
como añadir, borrar, cambiar formato, etc. (setters)
• cambiar horario
• aumentar salario
Identificación de Atributos y Métodos de clase
• Las operaciones generalmente se dividen en los
siguientes tres grandes grupos:
• Monitorización del objeto: comprobarán el estado de
un objeto frente a la ocurrencia de algún suceso de
control. (getters)
• obtener salario
• obtener cédula
Identificación de Atributos y Métodos de clase
• Las operaciones generalmente se dividen en los
siguientes tres grandes grupos:
• Realización de cálculos: estos métodos realizarán
operaciones de muy diversa índole (algebraicas,
estadísticas, etc.) sobre los atributos de un objeto.
• cambiar horario
• depositar salario

Más contenido relacionado

La actualidad más candente

Metodologia de desarrollo de aplicaciones eorm
Metodologia de desarrollo de aplicaciones eormMetodologia de desarrollo de aplicaciones eorm
Metodologia de desarrollo de aplicaciones eorm
Leonardo Martinez
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
Mahesh Bhalerao
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
Liliana Pacheco
 
10 Clase Captura De Los Requisitos Cap.6
10 Clase Captura De Los Requisitos  Cap.610 Clase Captura De Los Requisitos  Cap.6
10 Clase Captura De Los Requisitos Cap.6
Julio Pari
 

La actualidad más candente (20)

4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de Software
 
INTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORA
INTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORAINTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORA
INTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORA
 
Computing Environment
Computing EnvironmentComputing Environment
Computing Environment
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Metodologia de desarrollo de aplicaciones eorm
Metodologia de desarrollo de aplicaciones eormMetodologia de desarrollo de aplicaciones eorm
Metodologia de desarrollo de aplicaciones eorm
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Functional modeling
Functional modelingFunctional modeling
Functional modeling
 
Ooad
OoadOoad
Ooad
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisis
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Programing Style
Programing StylePrograming Style
Programing Style
 
SAD11 - Sequence Diagrams
SAD11 - Sequence DiagramsSAD11 - Sequence Diagrams
SAD11 - Sequence Diagrams
 
Estándares para el diseño de interfaz
Estándares para el diseño de interfazEstándares para el diseño de interfaz
Estándares para el diseño de interfaz
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Operating system deign and implementation
Operating system deign and implementationOperating system deign and implementation
Operating system deign and implementation
 
10 Clase Captura De Los Requisitos Cap.6
10 Clase Captura De Los Requisitos  Cap.610 Clase Captura De Los Requisitos  Cap.6
10 Clase Captura De Los Requisitos Cap.6
 
Paralelismo a nivel de Instrucciones
Paralelismo a nivel de InstruccionesParalelismo a nivel de Instrucciones
Paralelismo a nivel de Instrucciones
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 

Similar a Ingeniería de requerimientos i

Modelo entidad relación Rojas
Modelo entidad relación RojasModelo entidad relación Rojas
Modelo entidad relación Rojas
JoselineRojas
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
yoiner santiago
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetos
edwinlemmon
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
aleja0940
 
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Jacki Wan
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
campus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
campus party
 

Similar a Ingeniería de requerimientos i (20)

Modelo entidad relación Rojas
Modelo entidad relación RojasModelo entidad relación Rojas
Modelo entidad relación Rojas
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon KoudsiFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Introducción al POO
Introducción al POOIntroducción al POO
Introducción al POO
 
Java – Clases y Objetos
Java – Clases y ObjetosJava – Clases y Objetos
Java – Clases y Objetos
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetos
 
Proyect tipan silva
Proyect tipan silvaProyect tipan silva
Proyect tipan silva
 
programacion orientada a objetos poo.pptx
programacion orientada a objetos poo.pptxprogramacion orientada a objetos poo.pptx
programacion orientada a objetos poo.pptx
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Diseño de interacción, Prototipado y Testing
Diseño de interacción, Prototipado y TestingDiseño de interacción, Prototipado y Testing
Diseño de interacción, Prototipado y Testing
 
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
 
Formación workflow - día 3 -
Formación   workflow - día 3 - Formación   workflow - día 3 -
Formación workflow - día 3 -
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Analisis y diseno_oo
Analisis y diseno_ooAnalisis y diseno_oo
Analisis y diseno_oo
 
Expo
ExpoExpo
Expo
 

Más de Pablo Macon

Más de Pablo Macon (20)

Ejercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivosEjercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivos
 
Ejercicios directorios ii msdos
Ejercicios directorios ii msdosEjercicios directorios ii msdos
Ejercicios directorios ii msdos
 
Comandos para archivos msdos
Comandos para archivos msdosComandos para archivos msdos
Comandos para archivos msdos
 
Ejercicios ms dos - i directorios
Ejercicios ms dos - i directoriosEjercicios ms dos - i directorios
Ejercicios ms dos - i directorios
 
Directorios y caminos
Directorios y caminosDirectorios y caminos
Directorios y caminos
 
Prueba try
Prueba tryPrueba try
Prueba try
 
Comandos basicos ii directorios
Comandos basicos ii   directoriosComandos basicos ii   directorios
Comandos basicos ii directorios
 
Comandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del SistemaComandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del Sistema
 
Instalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM WareInstalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM Ware
 
Cpu
CpuCpu
Cpu
 
Overclock
OverclockOverclock
Overclock
 
Como Trabaja un Procesador
Como Trabaja un ProcesadorComo Trabaja un Procesador
Como Trabaja un Procesador
 
Práctico motherboard
Práctico motherboardPráctico motherboard
Práctico motherboard
 
Placa madre
Placa madrePlaca madre
Placa madre
 
Sistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFSSistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFS
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Introducción al proyecto
Introducción al proyectoIntroducción al proyecto
Introducción al proyecto
 
Gabinete PC
Gabinete PCGabinete PC
Gabinete PC
 
Nucleo kernel
Nucleo kernelNucleo kernel
Nucleo kernel
 
Herencia - Java
Herencia - JavaHerencia - Java
Herencia - Java
 

Último

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 

Ingeniería de requerimientos i

  • 1. Ingeniería de Requerimientos I prof. Pablo Macón http://pablomacon.wixsite.com/home/ profemacon@gmail.com
  • 2. Programación Orientada a Objetos • Una técnica o estilo de programación que utiliza objetos como bloque esencial de construcción de software. • Los lenguajes de programación Orientados a Objetos pretenden construir programas basándose en los objetos presentes en la realidad correspondiente al programa que se desea construir. • Por esa razón es que permiten crear en la computadora representaciones de esos objetos de la realidad.
  • 3. ¿Qué es un objeto? • Un Objeto es una "cosa", real o imaginaria, física o intangible, viva o inerte que existe enmarcado en alguna realidad. • Estamos rodeados por objetos, las personas que nos rodean son objetos, los muebles de nuestra casa son objetos e incluso en alguna realidad emocional podemos decir que cosas como los pensamientos o los sentimientos son objetos.
  • 4. ¿Qué es un objeto? • Un objeto puede, por tanto, ser algo conceptual o algo físico. • La idea fundamental es que un objeto es una entidad (o noción) única. • Cada objeto es una individualidad, que puede estar relacionado o constituido por otros objetos.
  • 5. ¿Qué es un objeto? • Dentro del paradigma de la Orientación a Objetos, se entiende que los objetos se componen de dos elementos denominados atributos y métodos. • Los primeros son aquellos datos del objeto con los cuales interese trabajar dentro de una determinada realidad • Los segundos son las acciones u operaciones que trabajan sobre el objeto.
  • 6. ¿Qué es un objeto? • Por ejemplo, si consideramos a una cuenta bancaria como un objeto, sus atributos de interés podrían ser su número, la cédula de su dueño y el monto de dinero que almacena, mientras que sus métodos podrían ser las operaciones de depósito, retiro y consulta.
  • 7. ¿Qué es un objeto? • Desde un punto de vista más formal, un objeto es en realidad un elemento perteneciente a un determinado Tipo. • Así como tenemos elementos que son enteros o Cadenas de Texto (int o String) podemos crear nuestros tipos particulares
  • 8. Clases de Objetos • Desde un punto de vista conceptual, diremos que una Clase es una plantilla o molde imaginario que sirve para definir objetos. • Decimos que los objetos de una clase son instancias de la misma.
  • 9. Clases de Objetos • Podemos hacer la siguiente analogía: • La clase es como el plano de un edificio • los objetos son todos los edificios concretos que yo puedo construir con ese plano.
  • 10. Clases y Objetos • Por otra parte, no podemos dejar de mencionar una característica muy importante de los objetos: poseen identidad. • Si bien los objetos de una clase tienen todos las mismas características, cada uno de ellos es una entidad única y diferenciable de los demás.
  • 11. Clases y Objetos • Por ejemplo, la clase persona define tres atributos: cédula, nombre y domicilio • Todos los objetos de la clase tendrán una cédula, un nombre y un domicilio. • No obstante, cada objeto de la clase persona será único, porque los valores que tomen esos datos para cada objeto en concreto nunca serán todos los mismos.
  • 12. Clases y Objetos • La existencia de clases de objetos es una característica sumamente útil y necesaria a la hora de escribir programas Orientados a Objetos. • Nos permite manipular con facilidad grandes grupos de Objetos. • Sería muy difícil tener que programar cada Objeto por separado.
  • 13. Clases y Objetos • Una clase es pues, un tipo de datos definido por el programador, que determina las estructuras de datos y las operaciones asociadas con ese tipo. • Cada clase es un modelo que describe un infinito conjunto de objetos del mismo tipo.
  • 14. Clases y Objetos • Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase. • Cada instancia u objeto de una clase tiene su propio valor para cada uno de sus atributos pero comparte los mismos métodos que todos los otros objetos de la misma clase.
  • 16. Metodología Orientada a Objetos • A la hora de modelar sistemas utilizando Programación Orientada a Objetos, seguiremos una metodología para resolver problemas que se divide en las siguientes etapas. 1.Análisis del sistema. 2.Diseño del sistema.
  • 17. Metodología Orientada a Objetos • A la hora de modelar sistemas utilizando Programación Orientada a Objetos, seguiremos una metodología para resolver problemas que se divide en las siguientes etapas. 3. Implementación del sistema en un lenguaje Orientado a Objetos. 4. Prueba, despliegue y mantenimiento del sistema
  • 18. 1- Análisis del Sistema • Determinar cuál es el propósito general del Sistema, qué aspectos abarcará y cuáles no. • Partiendo de los requerimientos del sistema (tareas concretas que se espera que el mismo resuelva), debemos estudiar aquellos aspectos de la realidad correspondiente que sean relevantes para la resolución de los requerimientos y construir un Modelo de Análisis que los represente.
  • 19. 1 - Análisis del Sistema • Esto se hace con el fin de contextualizar hasta dónde debe abarcar el Sistema y qué cosas no interesan y deben quedar afuera del mismo. • La construcción del modelo de análisis se hace identificando los Objetos presentes en la realidad que son relevantes y cómo se relacionan entre sí, dejando afuera a todos aquellos que no son de importancia.
  • 20. 2 - Diseño del Sistema • Esta etapa consiste en traducir el modelo generado durante el análisis en un conjunto de clases y métodos que permitan implementar el Sistema de forma tal que resuelva los requerimientos que fueron definidos para el mismo.
  • 21. 2 - Diseño del Sistema • Esto significa generar una documentación lo más clara posible de las clases que hay que programar y de los métodos que hay que implementar en ellas. Para generar dicha documentación, se usará la notación UML, al igual que en la etapa de análisis
  • 22. 3 - Implementación del Sistema • Esta etapa consiste en partir de la documentación generada en la etapa del diseño e implementar en un lenguaje de Programación Orientado a Objetos cada una de las Clases especificadas durante el diseño, definiendo estructuras de datos apropiadas para cada una de ellas, así como los métodos de cada clase, también especificados durante el diseño.
  • 23. 3 - Implementación del Sistema • Todos los lenguajes OO proveen mecanismos para implementar Clases y Objetos, además de garantizar el cumplimiento de los cuatro conceptos fundamentales (abstracción, encapsulamiento, herencia y polimorfismo)
  • 24. 4 - Prueba, despliegue y mantenimiento • Una vez que hemos construido el sistema, que hemos traducido el modelo a un lenguaje Orientado a Objetos determinado, y antes de liberarlo al público o entregarlo al cliente que nos lo pidió, debemos hacer pruebas extensivas que verifiquen que el sistema funciona de la manera esperada y realiza las tareas especificadas.
  • 25. 4 - Prueba, despliegue y mantenimiento • Después de todo esto es posible entregar el producto y luego sigue el mantenimiento, mediante el cual vamos a corregir pequeños inconvenientes o hacer cambios que le permitan evolucionar, incorporar nuevas cosas. • Un programa bien diseñado, bien analizado, permite que los cambios sean razonables.
  • 27. Identificación y Análisis de Requerimientos • Lo primero que necesitamos para resolver el problema es establecer cuál es el problema en sí. • Tenemos que conocer qué es lo que necesitamos que el programa haga con exactitud.
  • 28. Identificación y Análisis de Requerimientos • Comienza recabando información sobre el problema • Sigue con un análisis exhaustivo de esa información • Termina con un documento llamado Especificación de Requerimientos (ESRE).
  • 29. ¿Cómo obtener la información? • Especificación Inicial del cliente • No siempre es precisa • Puede tener omisiones (faltar información sobre el negocio)
  • 30. ¿Cómo obtener la información? • Expertos en la materia • Se puede obtener información sobre el problema (negocio) a resolver consultando a expertos en la materia • Habitualmente son provistos por el cliente y no tienen, necesariamente, que saber de informática
  • 31. ¿Cómo obtener la información? • Usuarios • Son las personas que van a usar el sistema • Dan información práctica en contraposición con la teórica obtenida anteriormente
  • 32. ¿Cómo obtener la información? • Gerentes: • Son los responsables del sistema • Definen la importancia de cada parte del mismo
  • 33. ¿Cómo obtener la información? • Marketing: • Nos puede llegar a ayudar a investigar si hay mercado para productos similares. De ser así se puede considerar la idea de hacer un framework o componentes reusables para proyectos similares • ™Si el proyecto es interno, se debe discutir con otros departamentos el hacer un framework o componentes reusables
  • 34. ¿Cómo obtener la información? • Proyectos previos: • Pueden darnos información muy valiosa tanto positiva como negativa (tomar las positivas y evitar las negativas)
  • 35. Especificación de requerimientos (ESRE) • Es un documento que describe claramente los requerimientos funcionales (del cliente) y no funcionales (del sistema) • El aporte del cliente es crítico para este documento • Debe usar la terminología del negocio • Debe tener oraciones claras, completas y poca terminología informática (jerga)
  • 36. Especificación de requerimientos (ESRE) • Contiene detalle acerca del alcance del proyecto • Explica el contexto del problema • Debe contener toda la información pertinente para el análisis y diseño del proyecto • Hace explícitas todas las restricciones necesarias
  • 37. Especificación de requerimientos (ESRE) • Estándar IEEE 830. • Establece claramente qué cosas debe contener una especificación de requerimientos, cómo debe estar constituido • Si queremos participar de licitaciones del gobierno o grandes empresas, debe seguir este estándar
  • 38. Especificación de requerimientos (ESRE) • Definición de requerimiento [IEEE] • Condición o capacidad de un sistema requerida por el usuario para resolver un problema o alcanzar un objetivo. • Condición o capacidad que debe poseer un sistema para satisfacer un contrato, estándar, especificación, u otro documento formalmente impuesto.
  • 39. Especificación de requerimientos (ESRE) • Requerimientos funcionales • Especifican de los servicios que el sistema debe proveer. • Definen QUE hace el sistema. • Describen todas las entradas y todas las salidas del sistema y la forma en que se relacionan.
  • 40. Especificación de requerimientos (ESRE) • Requerimientos funcionales - Ejemplos: • El sistema debe emitir un informe de estado de situación patrimonial. • El sistema debe realizar la liquidación de haberes a personal contratado y personal estable.
  • 41. Especificación de requerimientos (ESRE) • Requerimientos funcionales - Ejemplos: • El sistema debe capturar cualquier regla de liquidación de haberes sin necesidad de intervención del fabricante del producto. • El sistema debe tener un archivo de movimientos.
  • 42. Especificación de requerimientos (ESRE) • Requerimientos no-funcionales • Especifican restricciones o propiedades que el sistema debe cumplir relacionadas con: • Características de calidad • Modelo de calidad ISO 9126 • Calidad interna, externa y en uso
  • 43. Especificación de requerimientos (ESRE) • Requerimientos no-funcionales • Especifican restricciones o propiedades que el sistema debe cumplir relacionadas con: • Reglas de negocio • Vocabulario y terminología del negocio • Estándares y políticas organizacionales
  • 44. Especificación de requerimientos (ESRE) • Requerimientos no-funcionales • Especifican restricciones o propiedades que el sistema debe cumplir relacionadas con: • Restricciones de entorno • Hardware y software de base • Interfaces externas
  • 45. Especificación de requerimientos (ESRE) • Requerimientos no-funcionales - Ejemplos: • El sistema debe correr sobre Windows 7 o superior. • El sistema debe ser fácil de aprender. • El sistema debe estar desarrollado en Java SE. • El sistema deberá ser desarrollado en 10 meses. • El sistema debe encriptar los datos almacenados.
  • 46. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Corrección: Todo requisito que se establezca en el documento refleja una necesidad real.
  • 47. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • No ambiguos: No puede haber doble interpretación en lo que se refiere a lo que se va a desarrollar. Los requisitos deben estar redactados en un lenguaje no ambiguo y además, de ser posible, utilizando algún esquema o lenguaje matemático.
  • 48. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Completos: se deben incluir todas las posibilidades de entrada y salida del sistema, tanto válidas como no válidas.
  • 49. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Consistentes: No podemos incluir requisitos contradictorios, un requisito posterior no puede ir contra lo establecido en un requerimiento anterior. Uno de los dos debe corregirse.
  • 50. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Verificables: Debe existir un modo económico de verificar si un requisito se cumple o no.
  • 51. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Modificables: Una Especificación de Requerimientos solo puede ser modificable si sus requisitos están estructurados de forma que los cambios puedan realizarse de forma fácil, completa y consistente.
  • 52. Especificación de requerimientos (ESRE) • El estándar IEEE 830 establece centralmente que los requerimientos deben tener las siguientes características: • Trazables: Tenemos que saber quién nos pidió el requisito, tenemos que establecer de antemano con el cliente quién de la empresa va a poder pedir cosas. Tiene que haber responsables.
  • 54. Identificación de Clases y Objetos • A partir de la descripción del problema a resolver • Se subrayan los sustantivos y las frases sustantivas • Todas las palabras subrayadas son candidatas a ser objetos y clases • Los sinónimos se ponen juntos
  • 55. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Cosas tangibles: avión, televisor, coche, etc.
  • 56. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Roles o papeles desempeñados por personas: gerente, cliente, médico, etc
  • 57. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Organizaciones: empresa, división, equipo, etc.
  • 58. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Incidentes que representan un suceso: vuelo, accidente, suceso, etc
  • 59. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Interacciones que implican transición o contrato y relacionan dos o más objetos del modelo: compras, matrimonio, etc.
  • 60. Identificación de Clases y Objetos Ejercicio: 1. El cliente nos pide un sistema que le permita gestionar su empresa de transporte. La misma dispone de camiones, camionetas y motos que realizan entregas que le piden los clientes. La empresa dispone de dos estacionamientos, en los que permanecen los vehículos cuando no están realizando alguna entrega, que también tienen que ser gestionados, porque no caben todos ellos en los terrenos, por lo que debe contratar espacio en estacionamientos privados. Además, el sistema debe gestionar la plantilla de choferes, asignándolos a los vehículos.
  • 61. Identificación de Clases y Objetos Ejercicio: 2. Nuestra empresa ha decidido comenzar el desarrollo de un juego multiplataforma en el que los jugadores se encuentran frente a un tablero lleno de bolillas de colores, habrá tableros de diferentes tamaños y formas y las bolillas pueden ser de seis colores diferentes. Los jugadores deben combinar al menos tres bolillas del mismo color moviendo una bolilla. Los movimientos permitidos son horizontal y vertical únicamente. Cada tablero deberá resolverse en una cantidad de movimientos determinada, generando puntos por la cantidad de movimientos realizados.
  • 62. Identificación de Clases y Objetos Ejercicio: 3. En la veterinaria del vecino han decidido implementar un sistema que le ayude a realizar la gestión de las consultas a los animales que atienden a diario. Cada cliente tiene uno o varios animales, que pueden ser de diferentes especies y razas. Cada vez que se atiende a un paciente se produce una consulta, esta consulta puede ser programada o de urgencia, teniendo cada tipo de consulta un costo diferente. La veterinaria dispone de tres médicos que atienden en los dos consultorios, teniendo ellos horarios rotativos.
  • 63. Identificación de Clases y Objetos • Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base, aunque podrían usarse otras categorías diferentes en función de los requisitos de la aplicación/programa a diseñar: • Lugares: sala de embarque, muelle de carga, almacén, etc.
  • 64. Identificación de Atributos y Métodos de clase • Una vez que “tenemos en claro” los objetos que van a formar parte de nuestro programa (pueden variar a medida que empecemos con el diseño más profundo), hemos de identificar los atributos de dichos objetos que nos van a ser útiles. • Los atributos describen la abstracción de características individuales que poseen todos los objetos.
  • 65. Identificación de Atributos y Métodos de clase • En una clase Empleado, podríamos tener: • Número de cédula • Nombre y apellido (¿separados o juntos?) • Horario (entrada, salida, descanso) • Sueldo
  • 66. Identificación de Atributos y Métodos de clase • Por último nos quedaría la tarea de identificar las operaciones o funciones miembro las cuales van a cambiar, de alguna forma, el comportamiento del objeto. • Cambian los valores de uno o más atributos contenidos en dicho objeto.
  • 67. Identificación de Atributos y Métodos de clase • La identificación de las operaciones se realiza haciendo un nuevo análisis gramatical de la descripción del problema y buscando y aislando los verbos presentes en el texto. • “El sistema deberá permitir incrementar el salario de cada empleado de acuerdo a lo establecido en los acuerdos salariales del sector”
  • 68. Identificación de Atributos y Métodos de clase • Las operaciones generalmente se dividen en los siguientes tres grandes grupos: • Manipulación de datos: de alguna forma específica como añadir, borrar, cambiar formato, etc. (setters) • cambiar horario • aumentar salario
  • 69. Identificación de Atributos y Métodos de clase • Las operaciones generalmente se dividen en los siguientes tres grandes grupos: • Monitorización del objeto: comprobarán el estado de un objeto frente a la ocurrencia de algún suceso de control. (getters) • obtener salario • obtener cédula
  • 70. Identificación de Atributos y Métodos de clase • Las operaciones generalmente se dividen en los siguientes tres grandes grupos: • Realización de cálculos: estos métodos realizarán operaciones de muy diversa índole (algebraicas, estadísticas, etc.) sobre los atributos de un objeto. • cambiar horario • depositar salario