Está en la página 1de 26

Daniel Esteban Berrío Méndez 20131078012

David Andrés Rodríguez Erazo 20131078002


Gerald Alexander Torres Guzmán 20131078094

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS


FACULTAD TECNOLÓGICA
PROYECTO CURRICULAR DE SISTEMATIZACIÓN DE DATOS
CURSO DE ANÁLISIS DE SISTEMAS
PARCIAL 01

1. Explique la propiedad de Encapsulamiento por medio de 2 ejemplos:

1. Al dueño de un auto solo le interesa que este encienda, le funcionen las luces, pueda
acelerar y frenar, información como el estado del motor, del carburador, de la transmisión solo
es de interés para el mecánico.
Auto
freno
acelerador
luces
transmisión
motor
carburador
llantas
Mantenimiento()Hacer_andar()

2. Un usuario de un computador solo necesita de un computador, que a este le funcione el


audio, el video, el mouse y el teclado. No le interesa saber el estado de la memoria RAM, del
disco duro, de la board o de la BIOS, datos que si le interesan al técnico de computadores.
Computador
audio
video
mouse
teclado
ram
disco_duro
board
bios
Arreglar()
Utilizar()

2. Describa mediante un ejemplo el concepto de modelo de software

Tenemos un laboratorio que está encargado de administrar o gestionar las salas de informática
de una universidad, este tiene internamente un sistema de administración que cuenta con
procesos y procedimientos, manuales y otros mecanismos de control propios que permiten el
funcionamiento correcto del mismo, para ello se necesita sistematizar todos estos mecanismos
de gestión y administración para mejorar y optimizar sus funciones. Mediante un modelo se
tiene como objetivo representar el funcionamiento de este laboratorio, identificando todos los
componentes que conforman este sistema de administración y así dar un análisis más
completo y una referencia a lo que se quiere desarrollar en el software. Para eso se debe
identificar los roles que ejerce cada persona que pertenece al laboratorio y que actividades
desarrolla en el mismo teniendo en cuenta todos los procesos y procedimientos que se
ejecutan en el laboratorio, como:

EJEMPLO

ROLES Y ACTIVIDADES

Coordinador del laboratorio (Supervisión a los laboratoristas, Toma de decisiones importantes


como peticiones al proyecto curricular al que pertenece; designación de cargos.),

Laboratoristas (Elaboración de actas, Cuidado de las salas de informática, Control de


Inventario),

Monitores (Apoyo y acompañamiento a las funciones de los laboratoristas).


Usuarios como profesores y estudiantes (Peticiones de uso de las salas de informática y
elementos especializados).

PROCESOS Y PROCEDIMIENTOS

Préstamo de Salas.

 Practica Libre
o Solicitud de un usuario para hacer uso de los equipos de la sala de
informática.

PROCEDIMIENTO:

 Verificar requerimientos para el préstamo que certifiquen que el usuario se


encuentra activo en la universidad y se hace responsable del equipo que se le
prestara. Requerimientos como:
o Carnet refrendado para estudiantes o Carnet como funcionario para los
profesores.
o Recibo de pago actual cancelado, es decir, que valide el estado activo del
estudiante en el periodo académico de momento.
 Registro del estudiante
o Registro del código del estudiante en una hoja de Excel y el horario de entrada
a la sala de informática y que equipo tiene designado.
 Préstamo de equipo.
o Se le designa un equipo al usuario en una sala que este disponible.
o Se le otorga una ficha con el nombre del equipo y se guarda el documento del
usuario con el que certifico el estado activo en la universidad.
Solicitud de clase en una sala de informática:

 El maestro requiere una sala de informática para dictar una catedra o clase.

PROCEDIMIENTO:

 Solicitud
o El maestro debe requerir con anterioridad el préstamo de la sala mínimo 8 días
de anticipación, teniendo en cuenta los horarios de uso las salas de
informática.
 Préstamo
o Si hay disponibilidad de salas se le asigna una en el horario que requirió el
maestro,
o Se registran los datos del profesor en un formato con datos básicos como
nombre, código.
o Se aparta la sala para el profesor y se espera el día del préstamo.
o El profesor firma el formato de préstamo de la sala para hacer acta de
recibimiento de la sala en buenas condiciones y se hace responsable del lugar
y los equipos que se encuentran allí, en el horario correspondiente del uso de
la sala.
 Entrega de la sala
o Se verifica el funcionamiento y estado de todos los equipos de la sala de
informática.
o El maestro firma la entrega de la sala en el formato diligenciado en el
momento del préstamo.

En el modelo se buscó generar una representación del funcionamiento del laboratorio para dar
una base de conocimiento del sistema, identificando el paso a paso y el diario vivir del
laboratorio, ya que en la vida real no existe ningún objeto que represente de manera exacta
totalmente estas funciones o se presentan ambigüedades que generan desorganización.

3. Explique mediante un ejemplo en qué consiste un ciclo de vida del software

Se requiere hacer un programa que integre una base de datos de archivos (PDF) con una
interfaz web, a través del cual el usuario pueda leer los PDF en línea o descargarlos a su PC.

- Requerimientos:

Entornos de desarrollo (Software):


1. DBMS para la base de datos (MySQL)
2. Editor de lenguaje PHP

Hardware:
1. Servidor con acceso a internet o WEB
2. Equipo de desarrollo (PC)
- Diseño:
Modelo Entidad - Relación

Usuario Usuario_PDF Archivos PDF

ID INT ID_USUARIO INT ID INT


Nombre VARCHAR(20) ID_PDF_INT Título VARCHAR(20)
Apellido VARCHAR(20) Autor VARVHAR(20)
Correo VARCHAR(20) Páginas VARCHAR(20)
Dirección_PDF VARCHAR(50)
Año DATE

Diagrama de clases

Usuario Archivos PDF

Int ID ID INT
String Nombre String Título
String Apellido String Autor
String Correo String Páginas
String dirección_PDF
String Año

Descargar();
Leer();

- Implementación / Codificación:

1. Levantamiento de información y desarrollo de la base de datos con SQL teniendo


en cuenta el diseño del modelo entidad – relación ya normalizado.
2. Codificación en PHP usándolo como un lenguaje orientado a objetos para la
definición de las clases, atributos, y funciones.
3. Configuración del servidor elegido para el soporte de la aplicación

- Pruebas:

1. Funcionamiento correcto del servidor: Se pueden subir y descargar archivos de la


base de datos
2. Interfaz web: Los usuarios se pueden registrar en la aplicación y no tienen
problemas en la visualización de los PDF en línea.

- Mantenimiento:
1. A través de los feedback de los usuarios se mejora la visualización de los PDF en
línea
2. Se revisa constantemente si los archivos siguen estando en línea o tiene problemas
para su visualización o descarga.

4. Describa mediante un ejemplo las etapas del modelo de ciclo de vida en Espiral.
Se desea hacer una calculadora básica, los pasos a seguir serian los siguientes:
Primer ciclo:
 Determinar objetivos: Se determina que para el final del primer ciclo la
calculadora debe poder sumar.
 Análisis de riesgo: Se evalúa las posibilidades de que la calculadora no funcione
correctamente al final del primer ciclo, por ejemplo, que no sume correctamente.
 Desarrollar y probar: Crear el programa y verificar que opere las sumas
correctamente, en caso contrario corregir el error.
 Planificación: Se prepara el siguiente ciclo y como es el primer ciclo, no es
necesario integrar el progreso al proyecto que se lleva.
Segundo ciclo:
 Determinar objetivos: Se determina que para el final del segundo ciclo la
calculadora debe poder restar.
 Análisis de riesgo: Se evalúa las posibilidades de que la calculadora no funcione
correctamente al final del segundo ciclo, por ejemplo, que no opere las restas
correctamente.
 Desarrollar y probar: Crear el programa y verificar que realice las
restas correctamente, en caso contrario corregir el error.
 Planificación: Se prepara el ciclo final y como ya es el segundo ciclo, se empieza
a integrar esta nueva funcionalidad al progreso del proyecto que se llevaba.
Tercer ciclo:
 Determinar objetivos: Se determina que para el final del tercer y último ciclo la
calculadora debe poder multiplicar y dividir.
 Análisis de riesgo: Se evalúa las posibilidades de que la calculadora no funcione
correctamente al final del segundo ciclo, por ejemplo, que no controle errores
aritméticos, como divisiones entre 0, o que no opere correctamente los productos y
las divisiones.
 Desarrollar y probar: Crear el programa y verificar que realice las operaciones
de multiplicación y división correctamente, en caso contrario corregir el error.
 Planificación: Finalmente se integra esta última funcionalidad al progreso del
proyecto que se llevaba.

5. Explique en qué consisten las fases y flujos de trabajo de la metodología RUP

Las fases y flujos de trabajo de la metodología RUP se dividen de la siguiente manera:

FLUJOS DE TRABAJO (WORKFLOWS)

Se dividen en dos:

WokFlows de proceso o de Ingeniería:


 Modelado del negocio:

Se determina todo lo relacionado a la organización como: Activos, Objetivos, Reglas del


negocio, Arquitectura inicial, Vocabulario.

Para esto se hace uso de modelo de procesos, modelo de dominio, Glosario de términos.

 Requerimientos:

El cliente y el grupo de trabajo debe acordar o pactar los que el sistema debe realizar, es decir
especificar las funciones que desarrollara.

 Análisis y diseño:

En análisis se debe realizar una descripción de como se implementara el sistema en la


organización. Para ello se debe realizar las siguientes actividades:

 Ejecutar las tareas y funciones descritas en los casos de uso


 Satisfacer todos los requerimientos
 Hacer el sistema flexible a cambios

En diseño se debe empezar a identificar la arquitectura del sistema, esa es la única prioridad
en esta etapa ya que a partir de las validaciones que se le de a la arquitectura, se desarrollara
todo el proyecto, por eso se deben realizar un correcto modelo de diseño que incluya:

 Clases estructuradas en paquetes


 Diseños de subsistemas con interfaces definidas (componentes)
 Forma de colaboración entre las clases.
 Implementación:

En este flujo se trabaja más internamente el sistema, es decir, luego de todo el análisis y
diseño ya se empieza pensar en el código, en cómo estará divido, en los componentes
desarrollados y en la integración de los mismos.

 Prueba:

Aquí se busca identificar mediante diagnósticos a los diferentes componentes del sistema
como por ejemplo la integridad e interacción de los objetos, constante verificación de si lo que
se realiza si se está acoplando a los requerimientos planteados anteriormente y por último,
identificar errores y defectos de última hora antes de posterior instalación.

 Implantación:

El objetivo principal de este flujo es lograr entregar al usuario final el producto desarrollado,
por lo cual se incluyen las tareas de la realización de un reléase, empaquetar, distribuir e
instalar el software y por supuestos la debida capacitación y acompañamiento al usuario.

WokFlows de soporte o trabajo de apoyo:

 Manejo de configuraciones:
Se establece cómo controlar los elementos producidos por todos los integrantes del equipo de
proyecto en cuanto a: utilización/actualización concurrente de elementos, control de
versiones, entre otras.

 Administración del proyecto:

Es el arte de balancear objetivos contrarios, manejar riesgos y producir software que satisface
a clientes y usuarios.

Involucra actividades con las que se busca producir un producto que satisfaga las necesidades
de los clientes.

 Entorno:

Contiene actividades que describen los procesos y herramientas que soportarán el equipo de
trabajo del proyecto; así como el procedimiento para implementar el proceso en una
organización.

FASES:

• Inicio

Esta fase tiene como objetivo definir y acordar el alcance del proyecto, identificar riesgos
asociados al proyecto, proponer una visión muy general de la arquitectura de software y
producir el plan de las fases y el de iteraciones posteriores.

• Elaboración

En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura
base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso
seleccionados y el empieza a encontrar un primer análisis y dominio del problema, se diseña la
solución preliminar.

• Construcción

El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar
los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por
los usuarios y se realizan las mejoras para el proyecto.

• Transición

El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales,
ajustar errores y defectos encontrados en las pruebas, capacitación a los usuarios y brindar el
soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones
entregadas por las personas involucradas en el proyecto.
6. Explique la propiedad de polimorfismo por medio de dos ejemplos

1. Ejemplo 1: Figuras geométricas

FIGURA

Área();

CÍRCULO CUADRADO TRIÁNGULO

Radio Alto Base


Ancho Altura

Área(); Área(); Área();

En la figura, se ejemplifica el polimorfismo con una clase llamada FIGURA, a partir de la


cual se derivan CÍRCULO, TRIÁNGULO y CUADRADO. Como se puede ver, todas tienen
el mismo método Área(), solo que al invocarlo, cada clase realizará la operación
correspondiente de acuerdo a quien lo está invocando, es decir, los algoritmos del
cálculo de área son diferentes en cada clase derivada.

2. Ejemplo 2: Animales

ANIMAL

String tipo

HacerRuido();

PERRO GATO

String tipo String tipo

HacerRuido(); HacerRuido();

En la figura, se ejemplifica el polimorfismo con una clase llamada ANIMAL, a partir de


la cual se derivan PERRO y GATO. Como se puede ver, todas tienen el mismo método
HacerRuido();, solo que al invocarlo, cada clase realizará la operación correspondiente
de acuerdo a quien lo está invocando, es decir, cada función devolverá el String del
sonido que hace el animal respectivo.

7. Dos ejemplos que expliquen las etapas de un proyecto de ingeniería

1.
Análisis:
Para construir una casa, se analizan los requisitos, como el número de habitaciones, baños,
cocinas, etc. Se fijan las expectativas del proyecto. Se cotiza el precio de la obra, y el tiempo
estimado para la misma, analizando los recursos humanos, materiales y financieros con los que
se pueden contar.

Diseño:
Se organizan las tareas a hacer, se estiman tiempos para cada tarea, y se estima también
cuánto costará entregar la obra cumpliendo los requisitos, finalmente se realizan los planos de
la construcción para poder tener una idea más clara de las tareas por asignar.

Implementación:
Se ponen en marcha todas las tareas asignadas en la planificación, como el levantamiento de
muros, la instalación de tuberías, cableado y demás medios para permitir el acceso de servicios
públicos al interior de la casa, la postura de pisos, etc. Y se van haciendo breves análisis para
administrar el proyecto y saber qué progreso lleva el mismo.

Pruebas:
Se asegura de haber cumplido con los requisitos establecidos, como el buen funcionamiento
de los servicios públicos, una estructura sólida y todo lo demás, se compara con la calidad
esperada en el proceso de planificación, y se corrigen los errores que hayan antes de que se
cumpla el tiempo establecido.

Mantenimiento:
Se hacen arreglos mínimos y se añaden detalles finales de la construcción.

2.
Análisis:
Se requiere un software básico para hacer la contabilidad de una tienda pequeña, para esto se
analizan los requisitos del software, como son todas las funciones que tendrá, y las
especificaciones del usuario, se hace una cotización del proyecto, y se hace un acta que
contenga los requisitos y sea firmada por el usuario.

Diseño:
Se organizan las tareas a hacer, se hace una estimación de tiempo para cada tarea, y una
estimación para saber cuánto costará entregar la obra con los requisitos y dentro de los límites
establecidos. Finalmente se hacen diagramas para entender de forma más clara lo que se tiene
que hacer y finalmente se reparten las tareas dentro del grupo de trabajo

Implementación:
Se ponen a andar todas las tareas asignadas, como la escritura del código del software, la parte
gráfica, la parte de seguridad, etc. y finalmente se hace un análisis para cerciorarse de que
todo el progreso de las tareas va de forma paralela y de acuerdo al cronograma.
Pruebas:
Se verifica el cumplimiento de los requisitos establecidos, como la buena realización de las
operaciones aritméticas, la ausencia de fallos o errores, la seguridad como se determinó, etc.
Se compara la calidad del proyecto con lo que se esperaba, y si hay errores se corrigen antes
de que se cumpla el tiempo establecido.

Mantenimiento:
Se asegura de que se cumplan los requisitos y los tiempos especificados en el acta, se añaden
detalles mínimos al diseño y se crean actualizaciones si es necesario.

8. Explique 2 metodologías de desarrollo de software mediante un ejemplo


respectivamente

Metodologías de desarrollo XP

Fase de planeación:

Un cliente llega a una empresa de desarrollo de software para solicitar un software que sea
capaz de gestionar la administración de la información de un laboratorio de mecánica dental.

El cliente especifica que solo requiere que se sistematice la información pertinente a los
trabajos que se realizan en el laboratorio, como registro de información de pacientes,
doctores, clínicas, materiales, precios de los trabajos, estructura de los trabajos.

Prioriza los requerimientos del software y con el grupo de trabajo se estiman los costes de
desarrollo de las historias que conformaran el proyecto.

Fase de diseño:

El grupo de trabajo empieza a realizar los correspondientes diseños que deben ser de carácter
simplificado, para que el cliente y todos los desarrolladores identifiquen los objetivos a
cumplir. Como pasos y recomendaciones es desarrollar glosarios de términos, y buenos
modelos de procesos y clases.

Fase de codificación:

El trabajo de codificación se dividirá en parejas para que el trabajo sea más óptimo, este
trabajo en parejas permite un constante seguimiento y desarrollo en menor tiempo. Aquí el
equipo de desarrollo debe enfocarse al comienzo en la pruebas de unidad para las historias del
usuario.

Fase de pruebas:

El equipo de desarrollo debe empezar a poner a prueba el software que el cliente solicito,
como test a las bases de datos con las posibles consultas que puede generar el usuario final,
test al interfaz como su correcto funcionamiento, conexión con el servidor, entre otras
pruebas.

Así, el equipo de trabajo repetirá estos trabajos con la lista de requerimientos priorizados
hasta terminar todo el proyecto.
Metodología de desarrollo SCRUM

Un cliente se pone en contacto con una empresa que fabrica computadores.

El cliente les realiza el pedido donde se especifica que quiere un computador que sea óptimo
para jugar videojuegos de alta gama.

Posteriormente el cliente se reúne con el dueño del producto el cual toma apuntes de la idea
que concibe el cliente.

El Dueño de Producto divide el proyecto en historias que son las que componen la pila de
producto, es decir, los diferentes componentes del computador como lo son: la tarjeta madre
(Velocidad, numero de puertos expandibles, etc.), el procesador (marca y velocidad), la
memoria RAM (Tipo de Bus, Velocidad), Tarjeta Gráfica (Tipo de bus), entre otras.

El Scrum Master es un miembro del equipo que tiene el papel de comunicar y gestionar las
necesidades del Dueño de Producto y la pila de Sprint.

El Dueño de Producto le entrega la pila de producto para que estimen el coste de creación del
producto (el computador).

El equipo se reúne para estimar el coste de cada historia de la pila de producto.

En este caso utilizan Planning Poker.

El cliente, una vez aprobado el presupuesto, reordena la pila de producto para que el equipo
vaya trabajando según la prioridad del cliente.

El equipo comienza su trabajo desglosando la primera historia de la pila de producto, la cual


subdividen en tareas menores para crear la pila de sprint.

La pila de sprint tiene como utilidad fraccionar el trabajo de un periodo de 15 días en tareas
más pequeñas, que tarden como mucho dos días.

Estas tareas se colocan en una pila, la cual prioriza el Dueño de Producto, que ha consultado
con el cliente, antes de comenzar el sprint.

El equipo comienza el sprint tomando las tareas priorizadas.

Una vez concluida una se toma la siguiente de la lista.

Se convoca todos los días una reunión del equipo donde se cuenta las tareas realizadas el día
anterior y cuales se van a realizar ese día.

Una vez finalizado el sprint, el Dueño de Producto le muestra al cliente el resultado del trabajo
realizado.

El cliente ya tiene el primer contacto con su encargo y además puede volver a priorizar la pila
de producto antes de que comience otro sprint.
El equipo de trabajo celebra su buen hacer con una reunión de retrospectiva, donde se analiza
lo ocurrido durante el sprint.

9. Explique detalladamente 4 problemas que afectan el desarrollo de software

- Naturaleza lógica del software

El principal reto del desarrollo de software es la comunicación humano-maquina. El


conocimiento teórico para realizar un proyecto que involucre esta condición es un
desafío intelectual que sin dudas significa un reto importante en el desarrollo.

- Mala gestión de los proyectos:

Por lo general este problema a surge gracias a la falta de planificación antes de


comenzar el desarrollo de un producto, por lo tanto se convierte en un factor
fundamental a la hora de evaluar la calidad de un proyecto de software. Sus
características fundamentales son:

1. Falta de comunicación
2. Ausencia de datos
3. Desfases respecto al tiempo de entrega
4. Sobrecosto del proyecto
5. Falta de control
6. No hay evaluación de resultados

- Ausencia de entrenamiento formal en nuevas técnicas:

Otro factor fundamental cuando se realiza un proyecto de desarrollo de software son


las personas encargadas de llevarlo a cabo. Para que un producto cumpla con los
estándares mínimos de calidad requiere de un equipo de individuos capacitados y muy
bien preparados para enfrentar los desafíos que conlleva el desarrollo de software.
Esto genera confianza en el producto y por lo tanto confianza en el cliente.

Sin embargo, tener un buen equipo de programadores no es suficiente, sobre todo


cuando el software tiene la característica de ser evolutivo. Continuamente aparecen
nuevas técnicas, métodos, herramientas, metodologías, paradigmas e incluso nuevos
lenguajes de programación que solucionan de manera más eficiente los problemas de
desarrollo. La principal consecuencia de esta característica del SW es que una persona
no debe limitarse a una sola manera de hacer las cosas, ni dejar de prepararse en las
nuevas tendencias de la programación y, sobre todo, no restringirse a ser solo un
programador y pasar a ser un ingeniero de software. Por lo tanto, la preparación
integral en todos los ámbitos de desarrollo además de una constante adaptación de
nuevas herramientas hace que un equipo de trabajo sea más productivo y genere
productos de más calidad.

- Resistencia al cambio
Uno de los mitos de los desarrolladores es que un proyecto finaliza cuando un
programa está funcionando. La principal consecuencia de este pensamiento es que no
se genera un software capaz de adaptarse a nuevas tecnologías o ideas que pueden
surgir más allá de los tiempos de ejecución del proyecto, por lo tanto estos tipos de
software tienden a deteriorarse muy rápido. Para combatir la resistencia al cambio se
propone tener en cuenta en el desarrollo de software los siguientes aspectos:

 El software debe adaptarse para que cumpla las necesidades de los nuevos
ambientes del cómputo y de la tecnología.
 El software debe ser mejorado para implementar nuevos requerimientos del
negocio.
 El software debe ampliarse para que sea operable con otros sistemas o bases
de datos modernos.

10. Explique mediante un ejemplo en qué consiste un proyecto de software

Un proyecto de software consiste en la obtención de unos requisitos del usuario y en la gestión


de recursos que se tienen para poder cumplir con esos requisitos en un tiempo determinado.

En este caso el ejemplo será nuevamente con el software que cumpla las funciones de una
calculadora.

La primera fase será la de análisis de requerimientos, dónde se extraen los requisitos del
software, como el hecho de que sume, reste, multiplique y divida correctamente, se le ayuda
al cliente para que determine en sí, qué es lo que necesita y espera del software, es una etapa
donde se deben eliminar la mayor cantidad de ambigüedades posibles con el usuario.

La segunda fase es la de especificación, donde se describe detalladamente el software, el


comportamiento esperado del mismo y su interacción con los usuarios. Como el diseño visual
que espera ver el usuario dentro de otras cosas.

La tercera fase es la de diseño y arquitectura, donde se determina como funcionará de forma


general el software, sin entrar en detalle como las consideraciones de hardware o de red, se
realizan diagramas para entender la forma en la que funcionará la calculadora.

La cuarta fase es la de programación, es donde se traduce el diseño al código, es la primera


fase donde se pueden obtener resultados "tangibles", en esta fase se crea la lógica de la
calculadora, esta fase no es la más larga necesariamente, pero si han habido errores o
ausencias en las etapas anteriores, se tendrán que corregir todas en esta etapa.

La quinta fase es la de prueba, se comprueba que la calculadora funcione coherentemente y


que realice correctamente las tareas indicadas, es importante buscar errores en todos los
espacios posibles para que el software no falle en ningún momento.

La sexta fase es la de documentación, aquí se hace un manual para el usuario explicando las
funcionalidades de la calculadora y los pasos a seguir, y si es necesario también un manual
para técnicos para poder hacer mantenimiento en un futuro.
La séptima y última fase es la de mantenimiento, en esta etapa se hacen el mantenimiento
correctivo, que es la corrección de errores que pueda tener la calculadora, y mantenimiento
evolutivo, donde se le pueden añadir nuevas funcionalidades a la calculadora, por ejemplo,
graficar funciones matemáticas.

11. Explique mediante ejemplos 4 características de los proyectos de software

Características del Software

• Invisibilidad.

– El avance dentro de un proyecto de construcción de cualquier otra área de la ingeniería


puede ser visto claramente como la construcción de una casa o un automóvil, mientras que en
la construcción o elaboración de software no es inmediatamente visible, ya que implica
muchos factores conceptuales que han de ser abstractos y que no se pueden identificar
inmediatamente y requieren un profundo análisis.

• Complejidad

– Los proyectos de software contienen mayor complejidad que otros tipos de proyectos
respecto al dinero y tiempo gastado, implican una mayor planificación. Ejemplo:

Se estima la construcción de una nómina para una empresa, pero esta maneja sus propios
valores, índices y porcentajes frente al pago de sus empleados, solo este factor implica un
trabajo de mayor tiempo en análisis y estudio de esas variaciones, involucra más personal
como especialista en el tema y asesores lo cual implica mayores costes. Esto va en relación a
que desarrollar un proyecto en otra área de ingeniería es de forma más genérica, en cambio el
desarrollo del software se tiene una tendencia más al desarrollo a la medida.

• Flexibilidad

– El software puede cambiarse más fácilmente que otros productos, pero en muchas ocasiones
estos cambios generan gran descontrol en la gestión de un proyecto de software, como
ejemplo tenemos el cambio en alguno de los índices de la nómina anteriormente planteada, es
verdad que el cambio de un índice es algo poco significativo, pero que en la estructura de la
nómina es catastrófico, ya que de él dependen otras funciones de la nómina, por lo cual hace
entrar en conflicto el programa y por tanto una mala respuesta al mismo.

12. Explique mediante un ejemplo los procesos de del ciclo de vida ISO/IEC 12207

Ejemplo: Implementar un aplicativo para el control de pensiones de los maestros en


una empresa del estado.

 Procesos principales.

1. Adquisición.
Actividades del adquiriente:
 Suministrar toda la información requerida para el funcionamiento
del aplicativo.
 Proveer todos los recursos económicos para la compra de
hardware o licencias de software a lo largo del proyecto.
 Establecer medios de comunicación constantes entre
desarrollador – adquiriente – proveedor para un avance eficiente
del proyecto.
 Ser cumplido con los salarios y pagos tanto para el desarrollador
como para el proveedor.

2. Suministro.
Actividades de proveedor:
 Suministrar a tiempo todos los elementos de hardware y software
requeridos por el adquiriente o el desarrollador durante el
desarrollo del proyecto.
 Garantizar calidad en todos los productos entregados al
adquiriente.

3. Desarrollo.
Actividades del desarrollador:
 Cumplir con las diferentes fases del proyecto documentando los
resultados de cada una, entregando estos informes al cliente de
acuerdo al cronograma previamente establecido.
 Establecer constante comunicación con el adquiriente y el
proveedor, siendo muy puntual con las solicitudes de productos.
 Garantizar el desarrollo del software de acuerdo a los
requerimientos del cliente, en lo posible sin desfasarse de los
tiempos establecidos ni superando el presupuesto inicial del
proyecto.

4. Operación.
Actividades del operador:
 La persona encargada del aplicativo luego del proceso del
desarrollo deberá garantizar que se cumplan todas las
especificaciones de la empresa.
 Debe evitar a toda costa modificar la aplicación sin una consulta
previa del desarrollador.
 Debe reportar ante la empresa cualquier fallo que se pueda
presentar antes, durante y después del montaje del aplicativo.

5. Mantenimiento.
Actividades del responsable de mantenimiento:
 Realizar constantemente tareas de inspección de la aplicación para
detectar cualquier fallo.
 Hacer reportes constantes del estado de toda la arquitectura del
aplicativo, determinando fechas de caducidad, cambio o
mantenimiento de las partes que lo requieran
 Tener a la mano un plan de contingencia dado por el desarrollador
para poder solventar diversos problemas que se puedan presentar.

 Procesos de soporte.

1. Documentación
 Se hará una documentación constante de toda la fase de
desarrollo e implementación del proyecto.
 Se harán informes constantes del estado del aplicativo.
 Se realizarán informes de fallos y reparaciones de la aplicación a
través del encargado del mantenimiento.

2. Gestión de la configuración.
 Se hará una revisión y documentación de los siguientes aspectos:
1. Ejecutables.
2. Código Fuente.
3. Modelos de datos.
4. Modelos de procesos.
5. Especificaciones de requisitos.
6. Pruebas.

Y para cada uno de estos se especificara:


1. Nombre.
2. Versión.
3. Estado.
4. Localización.

3. Aseguramiento de calidad.
 Con cada entrega de prototipos, productos, hardware, software
tanto de la aplicación como del proveedor, se hará un informe
completo del nombre, estado, versión, y localización. Además se
establecerán fechas de revisión graduales para inspeccionar las
garantías de los productos entregados a la fecha.

4. Verificación.
 Cada dos semanas, el encargado de revisar el proyecto de
desarrollo estudiará todas las acciones y acuerdos establecidos en
el cronograma para verificar los tiempos de entrega y la calidad del
producto.

5. Validación.
 Cada fecha de entrega del prototipo, un encargado de la empresa
validará que el software cumpla con todas las expectativas del
cliente, realizando un informe de requerimientos cumplidos y por
cumplir.

6. Revisión conjunta.
 Se asignará un revisor de proyecto para que cumpla con la
evaluación de desarrollo cada 3 semanas o cuando alguna de los
productos esté listo para entrar a fase de pruebas.

7. Auditoría.
 Se definirá un grupo de auditores que evaluaran con un periodo de
un mes los acuerdos y los avances del proyecto de acuerdo al
cronograma hecho en la fase de planificación. Además de hacer
una revisión de todos los productos ya entregados a la fecha para
garantizar su funcionalidad.

8. Resolución de problemas.
 Cuando en alguna de las fases anteriores se presente una
disconformidad o problema, se deben reunir las partes encargadas
de esta frase del proyecto (Evaluadores, desarrollador, proveedor
y cliente) para buscar una solución a la discrepancia encontrada.

 Procesos de la organización.

1. Gestión:

2. Infraestructura.

3. Mejora.
4. Recursos Humanos.

13. Explique detalladamente 4 áreas de la ingeniería de software

Desarrollo de Software:
El desarrollo de software está definido por unos recursos, un tiempo y unos requerimientos. Es
un proceso donde debe existir una planeación y un seguimiento a esa planeación, esta
planeación está conformada por actividades, recursos y tiempo, donde esas actividades se
realizan en un proceso definido. Es un proceso que comprende 6 etapas para completarse,
como son la obtención de requisitos del usuario, el análisis; donde se describe el
comportamiento esperado del software; el diseño; donde se diagrama cómo debe funcionar el
software, la codificación; que es traducir el diagrama a código de programación, las pruebas;
donde se comprueba el funcionamiento coherente del software y se buscan posibles errores,
la liberación; que es la terminación y entrega del software.
Gestión de proyectos:
La gestión de proyectos es la aplicación de recursos humanos y no humanos a las actividades
de un proyecto con el fin de cumplir con sus requerimientos.
La gestión de proyectos implica hacer un balance permanente entre el alcance, tiempo, los
costos y la calidad, teniendo en cuenta los requisitos y los recursos disponibles. Es necesario
contar con una metodología de comunicación, coordinación y control efectivos, para tener el
control de la sincronía del grupo de trabajo. Es también necesario contar con un plan para
medir los avances del proyecto. Es importante tener énfasis en un desempeño, para lograr
proyectos dentro del presupuesto, tiempo, y que cumpla con los requisitos determinados por
el cliente.
Métricas del Software:
Las métricas son las medidas que se utilizan para evaluar el software para indicar la calidad de
éste, la productividad de sus desarrolladores, los beneficios de nuevas metodologías y
herramientas, y para poder tener una base para las estimaciones futuras. Existen diferentes
clasificaciones de métricas, como métricas de productividad que evalúan el costo y proceso
aplicado, y la velocidad de ejecución y tamaño de memoria del software. Las métricas
de calidad solo analizan el producto, funcionalidad, calidad, complejidad, eficiencia, fiabilidad,
facilidad de mantenimiento.
Mantenimiento de Software:
El mantenimiento de software es la modificación de un producto de software después de que
éste es entregado, como corrección de errores, o mejorar el rendimiento por medio de
actualizaciones. El mantenimiento también incluye la eliminación de funciones obsoletas y la
optimización del software, evitando dejar caer en la obsolescencia al software. El objetivo del
mantenimiento es preservar el valor del software sobre el tiempo, esto se puede
lograr cumpliendo requisitos adicionales, siendo cada vez más fácil de usar, más eficiente y
empleando más nuevas tecnología.

14. Explique 3 ventajas y desventajas de los modelos de ciclo de vida de software:


Cascada, incremental, DRA, prototipos y espiral.

CICLO DE VIDA CASCADA:

 Ventajas:
o Está dirigido por los tipos de documentos y resultados que deben obtenerse
al final de cada etapa:

La ventaja de este modelo es que en cada etapa, se debe tener una documentación muy
detallada de los que se hace en ella para que al seguir a una nueva etapa no se presenten
conflictos.

 Ha sido muy usado y, por tanto, está ampliamente contrastado:

Al ser un modelo ya con varios años de creación, está sujeto a diferentes adaptaciones que lo
optimizan y lo hacen de mayor fiabilidad.

 Ayuda a detectar errores en las primeras etapas a bajo costo:

Precisamente la buena planificación de cada una de las etapas en teoría, debería someter al
proyecto al más mínimo error que se presente a futuro, pero esto no lo hace sujeto a
imprevistos en el desarrollo del software.

 Desventajas:

o Muy rígida su estructura:

En este modelo, la dependencia de una etapa sobre la otra es muy marcada, ya que para la
inicialización de un se necesita obligatoriamente el término de la anterior, lo que se traduce a
mayor tiempo invertido y por consiguiente mayores costos en el proyecto.

 Difícil adaptación a correcciones futuras:


En la vida real los proyectos de desarrollo de software casi nunca siguen el flujo secuencial
propuesto por el modelo. Aunque en este modelo se acepta repeticiones, no se pude
comparar con un modelo más iterativo. Como resultado, los cambios extraordinarios generan
confusión conforme el equipo del proyecto está avanzando en el desarrollo y los errores serian
catastróficos.

 El producto final puede que no refleje los requerimientos del usuario:

En muchas ocasiones, cliente no pude enunciar en forma clara todos los requerimientos que
necesita, por lo cual por la estructura rígida de este modelo no se puede tener claro si se
cumplan las expectativas que tiene el cliente frente al producto que se le va a desarrollar.

CICLO DE VIDA INCREMENTAL

 Ventajas:
o Se puede construir un sistema grande subdividiéndolo en pequeños sistemas.
o Implica menores riesgos desarrollar por pequeños componentes que el
desarrollo de un sistema más complejo y de mayor tamaño.
o No se necesita conocer todos los requerimientos que implica el sistema
completo, ya que se enfoca en los requerimientos específicos de cada
subsistema.
 Desventajas:
o A pesar de dividir el sistema, se sigue desarrollando con un pensamiento de un
trabajo de un sistema completo.
o En el modelo incremental se supone que todos los problemas ya se tienen
estimados al subdividirse el trabajo de desarrollo.
o Uno de los errores más frecuentes es la suposición de que se pueden abarcar
todos los requerimientos del proyecto al inicio de cada etapa, lo cual hace que
el proyecto falle si se presentan imprevistos.

CICLO DE VIDA DRA

 Ventajas:
o Al lograrse una buena planificación y sincronización del grupo de trabajo, se
generaría productos en menor tiempo.
o La vinculación de mucho personal está permitido.
o Está enfocado para proyectos de pequeña escala
 Desventajas:
o Requiere una muy buena planificación, ya que la división del trabajo es grande
y asumir responsabilidades es difícil cuando se tiene un gran número de
personas.
o Requiere una muy buena sincronización de trabajo entre las diferentes
personas que conforman el equipo de trabajo.

CICLO DE VIDA PROTOTIPOS

 Ventajas:
o Permite la construcción del sistema con requisitos poco claros o cambiantes
o El cliente recibe una versión del sistema en muy poco tiempo, por lo que lo
puede evaluar, probar e, incluso, empezar a utilizarlo
o Se pueden introducir cambios en las funcionalidades del sistema en cualquier
momento.
 Desventajas:
o Requiere trabajo del cliente para evaluar los distintos prototipos y traducirlo
en nuevos requisitos
o Requiere un tiempo adicional para definir adecuadamente el sistema
o No se sabe exactamente cuánto será el tiempo de desarrollo ni cuantos
prototipos se tienen que desarrollar

CICLO DE VIDA ESPIRAL

 Ventajas:
o Es un enfoque realista del desarrollo del software.
o Permite aplicar el enfoque de construcción de prototipos en cualquier
momento para reducir riesgos.
o Reduce los riesgos antes de que se conviertan en problemáticos.
 Desventajas:
o Puede resultar difícil convencer a algunos clientes de que el enfoque evolutivo
es controlable.
o Solo resulta aplicable para proyectos de gran tamaño

Supone una carga de trabajo adicional, no presente en otros ciclos de vida.

15. Explique mediante un ejemplo el ciclo de vida basado en prototipos

Ejemplo: Escribir un ensayo

Fase de planeación

a. Recolección y refinamiento de requisitos:

 Recolección de ideas
 Tesis o idea principal del ensayo
 Fundamentos o ideas que apoyen la tesis
 Conclusiones

Fase “Cíclica”: Estos procesos se repiten hasta que el prototipo se ajusta


perfectamente a las necesidades del cliente

b. Diseño rápido: Aquí se hace el ensayo completo buscando agilidad en el


proceso.
c. Construcción del prototipo: Se concibe el ensayo que se va a presentar para
su evaluación.
d. Evaluación del prototipo: El evaluador decide si el ensayo está bien o se debe
mejorar.
e. Refinamiento del prototipo: Se corrigen errores y se vuelve a iniciar si no se
cumplen las expectativas del evaluador.
Fase final:

f. Producto: Se entrega la versión final del ensayo con el visto bueno del
evaluador.

16. Etapas del modelo del ciclo de vida DRA por medio de un ejemplo:

Se desea un software que pueda hacer la contabilidad del área de ventas de un negocio, y
también el inventario del área del mismo nombre.

Etapa 1: La etapa de Definición Conceptual que define las funciones del negocio y las áreas
sujeto de datos que el sistema apoyará y determina el alcance del sistema. En esta etapa se
definen las áreas que soportará el sistema, en este caso son el área de ventas y de inventario.

Etapa 2: La etapa de Diseño Funcional que modela los datos y los procesos del sistema para
construir un prototipo de trabajo de los componentes críticos del sistema. En este caso se hace
un prototipo del software que especifique las funcionalidades que se requieren, como las
funciones matemáticas para el área de ventas y otras funciones que ayuden a llevar conteos en
el área de inventario.

Etapa 3: La etapa de Desarrollo que completa la construcción física de la base de datos y del
sistema de aplicación, construye el sistema de conversión y elabora ayudas de usuarios y
planes de trabajo a desarrollar. En esta etapa se desarrolla el código del aplicativo
obedeciendo los requerimientos descritos en el principio del proyecto.

Etapa 4: La etapa de Despliegue que incluye la puesta a prueba y la capacitación del usuario
final, la conversión de datos y la implementación del sistema de aplicación. En esta etapa se
finaliza el aplicativo, y se capacita al usuario, explicándole el funcionamiento del aplicativo y
cómo aplicarlo en las áreas de ventas e inventario.

17. Explique mediante ejemplos en qué consiste una metodología de desarrollo de


software.

Se entiende por metodología un conjunto de pasos y procedimientos a seguir para desarrollar


un producto, en nuestro caso desarrollar software.

Estos pasos o procedimientos se definen en etapas las cuales se encargan de subdividir el


proceso de desarrollo.

Como ejemplo tenemos el desarrollo de un software para la ayudar en la enseñanza de las


matemáticas en niños de 1° de primaria, por tanto este proceso de desarrollo debe pasa por
las fases que se plantearan a continuación.

Etapa de Requerimientos:

En esta etapa el equipo de desarrollo junto con el cliente establece los requerimientos del
sistema a desarrollar, especificando todas las funciones que el software debe realizar.
Ejemplo:

El cliente solicita que el programa tenga un módulo donde el estudiante pueda realizar sumas
y restas, y se le indique los pasos que se hacen en las operaciones.

También se solicita un módulo que muestre las entradas de los usuarios al sistema.

Etapa de Análisis:

En esta etapa el equipo de desarrollo analiza y hace aproximaciones a la solución del


problema, creando artefactos (modelos) tomando en cuenta los requerimientos de la etapa
anterior.

Ejemplo: El grupo de trabajo empieza a crear aproximaciones a los Modelo de casos de usos
del software, aproximaciones al diseño que se quiere implementar.

Identificando las áreas de trabajo, luego determina los procesos y actividades, los compara con
los requerimientos y a partir de allí, la generación de casos de uso.

Para la realización de los diagramas de secuencia, colaboración, actividad, comunicación,


estado entre otros.

Etapa de Diseño:

En la etapa de diseño ya se buscan modelos finales que serán la base del desarrollo del
proyecto y la iniciación de codificación y construcción de los módulos requeridos y la
arquitectura del software. En pocas palabras en esta etapa se empieza a desarrollar ya el
programa.

Ejemplo: Luego de dedicar tiempo al análisis de lo que se quiere llevar a desarrollar y


programar para el software que solicita esta escuela, se establece que los módulos tendrán
ciertas características, enunciados , botones y cuadros de texto que orienten al usuario en el
momento del uso del software. Se define que el modelo vista controlador es el más adecuado
para el desarrollo del sistema, apoyándonos en la arquitectura multicapa…, se establece el
lenguaje de programación web PHP… etc.

Etapa de Implementación:

En esta se termina una versión beta de los que es el software, el software es presentado al
cliente y posteriormente se busca implementarlo. También en esta etapa se brinda la
capacitación a los usuarios finales para que hagan correcto uso del mismo.

Ejemplo: Ya terminada una versión inicial del programa para los niños de 1°, se busca
implementarlo en el aula de clase, se les enseña y expone tanto a maestros como a
estudiantes el programa resultante, y se le explica el funcionamiento del mismo.

Etapa de Pruebas:

En esta etapa el acompañamiento al cliente es lo de mayor prioridad, ya que lo que se busca es


que este quede satisfecho con el producto final entregado, para esto se realizan muchas
pruebas de funcionamiento al software en una versión casi terminal, evaluando su
desempeño, ya en el campo practico.

Ejemplo: Retomamos el ejemplo del software educativo para los niños de primaria, luego de
su implementación, se requiere evaluar que el software funciona, que se acopla a los
requerimientos, aquí se somete a test de funcionamiento, se verifica que la información se
cargue de forma correcta y que sea intuitivo para el usuario, observando el uso del programa
directamente, es decir, observar y tomar nota del funcionamiento cuando el usuario está
haciendo uso de él, en este caso cuando lo usan los niños para realizar las operaciones.

18. Explique mediante ejemplos en qué consiste la ingeniería de software

Para caracterizar los propósitos de ingeniería de software podemos tomar varios


ejemplos reales:

1. Un sistema operativo cualquiera es un software que permite la administración de


programas. Por lo tanto un sistema operativo tiende a ser muy grande y muy
complejo. La ingeniería de software ayuda a solventar estos dos problemas
2. Microsoft, una de las empresas más reconocidas en el desarrollo de software tiene
una cantidad de empleados que sobrepasa los 100000 en más de 100 países. La
ingeniería de SW se propone hacer un uso productivo del recurso humano.
3. Hace poco, Facebook y YouTube actualizaron sus API’s, lo que afecta a los
desarrolladores de aplicaciones de terceros que usen este software. La ingeniería
de software promete una evolución del SW constantes
4. Para tratar de solucionar un error con el sistema operativo Windows, Microsoft
permite que sus usuarios se pongan en contacto por medio de un chat o línea
telefónica con técnicos que le ayudarán a solucionar el problema encontrado. Si
este servicio es insuficiente, ellos sugieren comprar un plan de mantenimiento
donde puede acceder remotamente al computador y hacer procesos de
troubleshooting más avanzados. La ingeniería de SW busca un soporte real de los
usuarios

La ingeniería de software también trae varios elementos históricos de las ingenierías


para su uso en la informática.

1. El modelado:

Un ejemplo claro de modelado son las teorías científicas. Tal vez la más conocida
es la teoría de la evolución de Darwin, en donde a partir de experimentos con
animales pudo establecer que los seres se adaptaban con el tiempo a las
condiciones de su entorno y así aparecieron las especies que habitan el planeta
hoy en día.

2. División del trabajo

Por ejemplo, en la prehistoria, el sistema económico del comunismo primitivo se


basaba en repartir tareas, los hombres cazaban y construían albergues mientras
que las mujeres cuidaban a los niños y cosechaban diferentes alimentos. Esto se
debe a que la división del trabajo es mucho más productiva que hacer todo a la
vez.

3. División del proceso

Para ejemplificar esta herramienta podríamos usar las rutinas que seguimos, es
más eficiente separar por horarios nuestras tareas por la mañana (Levantarnos,
bañarnos, vestirnos, desayunar y salir) a tratar de hacer varias cosas al tiempo, eso
sí, planeando con anterioridad todas nuestras acciones.

Por último, la ingeniería de software se divide en varias capas, por ejemplo podríamos
usar el proceso de cocina para entender bien esta característica.

1. Herramientas: La herramientas serían en este caso la vajilla, los cubiertos, los


electrodomésticos y demás que facilitan las labores de cocina.

2. Métodos: Son guías para el proyecto, en este caso, una receta con una serie de
pasos sería nuestro método.

3. Procesos: Aplicación del método en nuestro proyecto, aquí intervienen varios


factores como el tiempo, la delegación de tareas, el orden de las mismas durante
la preparación de los diferentes productos.
4. Enfoque de calidad: La base de la ingeniería de software es la calidad del producto,
en este caso eso se vería representado en que tan exquisito quedó el plato luego
de su preparación.

19. Explique mediante ejemplos 4 características de la metodología RUP

Iterativo e Incremental
El Proceso Unificado es un marco de desarrollo iterativo e incremental compuesto de cuatro
fases denominadas Inicio, Elaboración, Construcción y Transición. Cada una de estas fases es a
su vez dividida en una serie de iteraciones (la de inicio puede incluir varias iteraciones en
proyectos grandes). Estas iteraciones ofrecen como resultado un incremento del producto
desarrollado que añade o mejora las funcionalidades del sistema en desarrollo.
Esto lo podemos explicar con un pequeño ejemplo como es el software de la calculadora,
dónde en cada iteración se le añadirían más funcionalidades, por ejemplo, en la primera
iteración se le añade la función de operar sumas, restas, multiplicaciones y divisiones, en la
segunda iteración se le añade la capacidad de graficar funciones matemáticas, y en la tercera
iteración se le agrega la función de calcular derivadas e integrales.

Dirigido por los casos de uso


En el Proceso Unificado los casos de uso se utilizan para capturar los requisitos funcionales y
para definir los contenidos de las iteraciones. La idea es que cada iteración tome un conjunto
de casos de uso o escenarios y desarrolle todo el camino a través de las distintas disciplinas:
diseño, implementación, prueba, etc.
Esta característica la podemos explicar con el mismo ejemplo del software de la calculadora,
por ejemplo en una primera iteración, en la parte lógica se añade la funcionalidad de las 4
operaciones fundamentales de la aritmética, y en la parte de diseño se le añade color a los
botones de la calculadora, en la segunda iteración en la parte lógica se incluye la capacidad de
graficar funciones matemáticas, y en la parte de diseño se le añade un mapa cartesiano para
poder dibujar las gráficas de las funciones.
Centrado en la arquitectura
El Proceso Unificado asume que no existe un modelo único que cubra todos los aspectos del
sistema. Por dicho motivo existen múltiples modelos y vistas que definen la arquitectura de
software de un sistema. La analogía con la construcción es clara, cuando construyes un edificio
existen diversos planos que incluyen los distintos servicios del mismo: electricidad, fontanería,
etc.
Nuevamente con el ejemplo del software de la calculadora, se aplicarían dos casos de uso, uno
que se encargue del diseño, y otro que se encargue de la lógica.
Enfocado en los riesgos
El Proceso Unificado requiere que el equipo del proyecto se centre en identificar los riesgos
críticos en una etapa temprana del ciclo de vida. Los resultados de cada iteración, en especial
los de la fase de Elaboración deben ser seleccionados en un orden que asegure que los riesgos
principales son considerados primero.
Esta característica se cumpliría, si en cada iteración se tienen en cuenta en primer lugar los
errores lógicos de la calculadora, que es la parte más importante del programa, por ejemplo,
asegurarse de que haga bien las operaciones, que no permita hacer divisiones entre 0, que no
entre en ciclos infinitos al resolver integrales, etc. Y en segundo lugar tener en cuenta errores
del diseño, por ejemplo que el color de las gráficas no se pueda distinguir bien, o que estén
mal ubicados los botones en el software.

20. Explique mediante ejemplos los conceptos de clase, objeto, atributos, métodos y
mensajes entre clases

Concepto de Clase: Abstracción o representación abstracta que define un tipo de objeto


especificando qué propiedades (atributos) y operaciones disponibles va a tener. Ejemplo

Clase Persona:

Atributos: Nombre, Estatura, Edad, N° de Identificación, estado de ánimo,…

Métodos: Regalar objeto, cambio de TI a cedula, crecimiento,…

Concepto de Objeto: Es una instancia de una clase, es decir, una realización específica de una
clase. Además puede considerarse como una entidad existente en la memoria del ordenador
que tiene unas propiedades (atributos o datos sobre sí mismo almacenados por el objeto) y
unas operaciones disponibles específicas (métodos).

Ejemplos de Objetos: Una silla, Un automóvil, un computador, una silla, una persona, un
animal.
Concepto de Atributos: Son las características propias que definen al objeto y lo diferencian de
otros, por ejemplo el nombre, el tamaño, el código. Además determinan su estado, apariencia
u otras cualidades.

Ejemplos: Color de ojos en una persona, numero de patas de una silla.

Concepto de Métodos: Representan el comportamiento u operaciones y la forma como los


objetos interactúan con su entorno. Además por medio de estos es que se puede modificar los
atributos de la clase.

Ejemplos: Crecimiento de una persona,

Concepto de Mensajes entre Clases: El paso de mensajes entre clases, representa al


comunicación entre ellas, a través de los mensajes es que los objetos u clases interactúan
entre sí o con su entorno. Por medio de los métodos se logra alterar los atributos de una clase
receptora del mensaje.

Ejemplo: Un perro es el objeto y uno de sus atributos es el estado del perro, ante un mensaje
del objeto ciudad con el método ruido, se comunica con el perro y a través del método asustar
del perro, se modifica el atributo estado del mismo.

También podría gustarte