Problem As, Soluciones y Programas

download Problem As, Soluciones y Programas

of 27

Transcript of Problem As, Soluciones y Programas

  • 8/7/2019 Problem As, Soluciones y Programas

    1/27

    22/07/20

    Problemas, Soluciones yProgramas

    Curso: Tecnologa de la Programacin II.

    Docente: Mg. Zoraida Vidal Melgarejo,.

    1

    PROBLEMAS Y SOLUCIONES.

    El ciclo de vida de construccin de un programa se puederesumir de la siguiente manera:

    Paso 1:

    Una persona u organizacin, denominada el cliente, tiene un

    problema y necesita la construccin de un programa pararesolverlo. Para esto contacta a una empresa de desarrollo desoftware que pone a su disposicin a un programador.

    2

  • 8/7/2019 Problem As, Soluciones y Programas

    2/27

    22/07/20

    PROBLEMAS Y SOLUCIONES.

    Paso 2:El programadorsigue un conjunto de etapas, denominadas elproceso, para entender el problema del cliente y construir demanera organizada una solucin de buena calidad, de la cualformar parte un programa.

    Paso 3:

    El programador instala el programa que resuelve el problema

    en un computador y deja que el usuario lo utilice pararesolver el problema.

    3

    1. ESPECIFICACIN DE UN PROBLEMA.

    Un programador no puede resolver un problema que noentiende, por ello, la primera etapa en el proceso deconstruccin de software consiste en tratar de entender elproblema que tiene el cliente, y expresar toda la informacinque l suministre, de manera que cualquier otra persona delequipo de desarrollo pueda entender sin dificultad lo que espera

    el cliente de la solucin. Esta etapa se denomina anlisis y lasalida de esta etapa se llama la especificacin del problema.

    4

  • 8/7/2019 Problem As, Soluciones y Programas

    3/27

    22/07/20

    1. ESPECIFICACIN DE UN PROBLEMA.

    Se debe tratar de identificar al menos tres aspectos delproblema:

    (1) Los requerimientos del usuario.

    (2) El mundo en el que debe resolverse el problema.

    (3) Las restricciones y condiciones que plantea el cliente.

    5

    1. ESPECIFICACIN DE UN PROBLEMA.

    En general todos los problemas se pueden dividir en estos tresaspectos. Por una parte se debe identificar lo que el clienteespera de la solucin. Esto se denomina un requerimientofuncional.

    En el caso de la programacin, un requerimiento funcional hacereferencia a un servicio que el programa debe proveer alusuario.Por ejemplo: calcular el salario de un empleado.

    6

  • 8/7/2019 Problem As, Soluciones y Programas

    4/27

    22/07/20

    1. ESPECIFICACIN DE UN PROBLEMA.

    El segundo aspecto que conforma un problema es el mundo ocontexto en el que ocurre el problema. Si alguien va a escribirun programa para una empresa, no le basta con entender lafuncionalidad que ste debe tener, sino que debe entenderalgunas cosas de la estructura y funcionamiento de la empresa.

    Por ejemplo, para el requerimiento funcional de calcular elsalario de un empleado, la descripcin del problema debe incluir

    las normas de la empresa para calcular un salario.

    7

    1. ESPECIFICACIN DE UN PROBLEMA.

    El tercer aspecto que hay que considerar al definir un problemason los requerimientos no funcionales que corresponden alas restricciones o condiciones que impone el cliente alprograma que se le va a construir. stos se utilizan para limitarlas soluciones posibles.

    Por ejemplo, una restriccin podra ser el tiempo de entrega delprograma, o la cantidad de usuarios simultneos que lo debenpoder utilizar.

    8

  • 8/7/2019 Problem As, Soluciones y Programas

    5/27

    22/07/20

    1. EJEMPLO DE LA ESPECIFICACIN DE UN

    PROBLEMA.

    Objetivo: Identificar los aspectos que forman parte de unproblema.

    El problema: Una empresa de aviacin quiere construir unprograma que le permita buscar una ruta para ir de una ciudad aotra, usando nicamente los vuelos de los que dispone laempresa. Se quiere utilizar este programa desde todas lasagencias de viaje del pas.

    9

    1. EJEMPLO DE LA ESPECIFICACIN DE UN

    PROBLEMA.

    Problema

    Una empresa de aviacin quiere construir un programa que elpermita buscar una ruta para ir de una ciudad a otra, usandonicamente los vuelos de los que dispone la empresa. Se quiereutilizar este programa desde todas las agencias de viaje del pas.

    Cliente La empresa de aviacin.

    Usuario Las agencias de viajes del pas.

    RequerimientoFuncional

    R1: Dadas las ciudades C1 y C2, el programa debe dar el itinerariopara ir de C1 a C2, usando los vuelos de la empresa.

    Mundo delproblema

    Para poder resolver el problema, es necesario conocer todos losvuelos de la empresa y la lista de ciudades a las cuales va. De cadavuelo es necesario tener la ciudad de la que parte, la ciudad a la quellega, la hora de salida y la duracin del vuelo.

    Requerimientono Funcional

    El nico requerimiento no funcional mencionado es el dedistribucin, ya que las agencias estn geogrficamente dispersas.

    10

  • 8/7/2019 Problem As, Soluciones y Programas

    6/27

    22/07/20

    2. EL PROCESO Y LAS HERRAMIENTAS.

    El proceso debe ser entendido como un orden en el cual sedebe desarrollar una serie de actividades que van a permitirconstruir un programa. El proceso planteado tiene tres etapasprincipales, todas ellas apoyadas por herramientas y lenguajesespeciales:

    Anlisis del problema: El objetivo de esta etapa esentender y especificar el problema que se quiere resolver. Al

    terminar, deben estar especificados los requerimientosfuncionales, debe estar establecida la informacin del mundodel problema y deben estar definidos los requerimientos nofuncionales.

    11

    2. EL PROCESO Y LAS HERRAMIENTAS.

    Diseo de la solucin: El objetivo es detallar, usando algnlenguaje (planos, dibujos, ecuaciones, diagramas, texto, etc.), lascaractersticas que tendr la solucin antes de ser construida.Los diseos permiten mostrar la solucin antes de comenzarel proceso de fabricacin propiamente dicho.

    Construccin de la solucin: Tiene como objetivoimplementar el programa a partir del diseo y probar sucorrecto funcionamiento.

    12

  • 8/7/2019 Problem As, Soluciones y Programas

    7/27

    22/07/20

    3. LA SOLUCIN A UN PROBLEMA.

    La solucin a un problema tiene varios componentes. El primeroes el diseo (los planos de la solucin) que debe definir laestructura del programa y facilitar su posterior mantenimiento.

    El segundo elemento es el cdigo fuente del programa, escritoen algn lenguaje de programacin como Java,C, C# o C++.

    13

    3. LA SOLUCIN A UN PROBLEMA.

    El tercer elemento de la solucin son los archivos deconstruccin del programa. En ellos se explica la manera deutilizar el cdigo fuente para crear el cdigo ejecutable. Esteltimo es el que se instala y ejecuta en el computador delusuario.

    El ltimo elemento que forma parte de la solucin son laspruebas. All se tiene un programa que es capaz de probar queel programa que fue entregado al cliente funcionacorrectamente.

    14

  • 8/7/2019 Problem As, Soluciones y Programas

    8/27

    22/07/20

    3. LA SOLUCIN A UN PROBLEMA.

    Dicho programa (el de pruebas) funciona sobre un conjuntopredefinido de datos, y es capaz de validar que para esos datospredefinidos (y que simulan datos reales), el programa funcionabien.

    Si por alguna razn el problema del cliente evoluciona (porejemplo, si el cliente pide un nuevo requerimiento funcional),cualquier programador debe poder leer y entender el diseo,

    aadirle la modificacin pedida, ajustar el programa y extenderlas pruebas para verificar la nueva extensin.

    15

    4. CASO DE ESTUDIO: EMPLEADO.

    Para este caso de estudio se considera un programa queadministra la informacin de un empleado.

    El empleado tiene un nombre, un apellido, un gnero (masculinoo femenino), una fecha de nacimiento y una imagen asociada (su

    foto). Adems tiene una fecha de ingreso a la empresa en la quetrabaja y un salario bsico asignado.

    Desde el programa se debe poder cambiar el salario delempleado, as como realizar los siguientes clculos: (1) edadactual, (2) antigedad en la empresa y (3) prestaciones a las quetiene derecho en la empresa.

    16

  • 8/7/2019 Problem As, Soluciones y Programas

    9/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    1. Requerimientos Funcionales.

    Un requerimiento funcional es una operacin que elprograma que se va a construir debe proveer al usuario yque est directamente relacionada con el problema que sequiere resolver. Un requerimiento funcional se describe atravs de cuatro elementos:

    Un identificador y un nombre.

    Un resumen de la operacin.

    Las entradas (datos) que debe dar el usuario para que elprograma pueda realizar la operacin.

    17

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    1. Requerimientos Funcionales.

    El resultado esperado de la operacin. Hay tres tiposposibles de resultado en un requerimiento funcional: (1)una modificacin de un valor en el mundo del problema,(2) el clculo de un valor, o (3) una mezcla de los dosanteriores.

    18

  • 8/7/2019 Problem As, Soluciones y Programas

    10/27

    22/07/20

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    NombreR1. Actualizar elsalario bsico delempleado.

    Es conveniente asociar un identificador con cadarequerimiento, para poder hacer fcilmentereferencia a l. En este caso el identificador esR1.Es aconsejable que el nombre de losrequerimientos corresponda a un verbo eninfinitivo, para dar una idea clara de la accinasociada con la operacin. En este ejemplo elverbo asociado con el requerimiento esactualizar.

    ResumenPermite modificar elsalario bsico delempleado.

    El resumen es una frase corta que explica sinmayores detalles el requerimiento funcional.

    19

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    Entradas Nuevo salario.

    Las entradas corresponden a los valores quedebe suministrar el usuario al programa parapoder resolver el requerimiento. En elrequerimiento del ejemplo, si el usuario no dacomo entrada el nuevo salario que quiere asignaral empleado, el programa no podr hacer el

    cambio.Un requerimiento puede tener cero o muchasentradas.Cada entrada debe tener un nombre que indiqueclaramente su contenido. No es buena ideautilizar frases largas para definir una entrada.

    20

  • 8/7/2019 Problem As, Soluciones y Programas

    11/27

    22/07/20

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    Resultado

    El salario delempleado ha sidoactualizado con elnuevo salario.

    El resultado del requerimiento funcional de esteejemplo es una modificacin de un valor en elmundo del problema: el salario del empleadocambia.Un ejemplo de un requerimiento que calcula unvalor podra ser aquel que informa la edad delempleado. Note que el hecho de calcular estainformacin no implica la modificacin de ningnvalor del mundo del problema.Un ejemplo de requerimiento que modifica ycalcula a la vez, podra ser aquel que modifica el

    salario del empleado y calcular la nueva retencinen la fuente.

    21

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    1. Requerimientos Funcionales (continuacin).

    En la etapa de anlisis, el cliente debe ayudar al programadora concretar esta informacin.

    La responsabilidad del programador es garantizar que la

    informacin est completa y que sea clara.

    Cualquier persona que lea la especificacin delrequerimiento debe entender lo mismo.

    22

  • 8/7/2019 Problem As, Soluciones y Programas

    12/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    1. Requerimientos Funcionales (continuacin).

    Para determinar si algo es o no un requerimiento funcional,es conveniente hacerse tres preguntas:

    Poder utilizar esta operacin es una de las razones porlas cuales el cliente necesita construir un programa? Estodescarta todas las opciones que estn relacionadas con elmanejo de la interfaz (poder cambiar el tamao de laventana, por ejemplo) y todos los requerimientos no

    funcionales, que no corresponden a operaciones sino arestricciones.

    23

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    1. Requerimientos Funcionales (continuacin).

    La operacin no es ambigua? La idea es descartar quehaya ms de una interpretacin posible de la operacin.

    La operacin tiene un comienzo y un fin? Hay que

    descartar las operaciones que implican unaresponsabilidad continua (por ejemplo, manteneractualizada la informacin del empleado) y tratar debuscar operaciones puntuales que correspondan aacciones que puedan ser hechas por el usuario.

    24

  • 8/7/2019 Problem As, Soluciones y Programas

    13/27

    22/07/20

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    NombreR2. Ingresar lainformacin delempleado.

    Asociamos el identificador R2 con elrequerimiento. En la mayora de los casos elidentificador del requerimiento se asignasiguiendo alguna convencin definida por laempresa de desarrollo.Utilizamos el verbo ingresar para describir laoperacin que se quiere hacer.

    Resumen

    Permite al usuarioingresar la

    informacin delempleado: datospersonales y datos devinculacin a laempresa.

    Describimos la operacin, dando una idea globaldel tipo de informacin que se debe ingresar ydel resultado obtenido.

    25

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    Entradas

    Nombre del empleado.

    Apellido del empleado.

    Sexo del empleado.

    Fecha de nacimiento.

    Fecha de ingreso a lacompaa.

    Salario bsico.

    En este caso se necesitan seis entradas parapoder realizar el requerimiento. Esta informacinla debe proveer el usuario al programa.Note que no se define la manera en que dichainformacin ser ingresada por el usuario, puestoque eso va a depender del diseo que se haga de

    la interfaz, y ser una decisin que se tomar mstarde en el proceso de desarrollo.Tampoco se habla del formato en el que vaingresar la informacin.Por ahora slo se necesita entender, de maneraglobal, lo que el cliente quiere que el programasea capaz de hacer.

    26

  • 8/7/2019 Problem As, Soluciones y Programas

    14/27

    22/07/20

    5.1. EJEMPLO DE LA DOCUMENTACIN DE

    REQUERIMIENTOS FUNCIONALES.

    Resultado Nuevo salario.

    La operacin corresponde de nuevo a unamodificacin de algn valor del mundo, puestoque con la informacin obtenida como entrada sequieren modificar los datos del empleado.

    27

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    2. El Modelo del Mundo del Problema.

    En este segundo componente del anlisis, el objetivo esentender el mundo en el que ocurre el problema y recopilartoda la informacin necesaria para que el programadorpueda escribir el programa.

    Ya no nos vamos a concentrar en las opciones que el clientequiere que tenga el programa, sino nos vamos a concentraren entender cmo es el mundo en el que ocurre elproblema.

    28

  • 8/7/2019 Problem As, Soluciones y Programas

    15/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    2. El Modelo del Mundo del Problema.

    Como salida de esta actividad, se debe producir lo que sedenomina un modelo del mundo del problema, en el cualhayamos identificado todos los elementos del mundo queparticipan en el problema, con sus principales caractersticasy relaciones. Este modelo ser usado en la etapa de diseopara definir los elementos bsicos del programa.

    29

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    2. El Modelo del Mundo del Problema.

    Esta actividad est basada en un proceso de observacindel mundo del problema, puesto que los elementos que allaparecen ya existen y nuestro objetivo no es opinar sobreellos (o proponer cambiarlos), sino simplementeidentificarlos y describirlos para que esta informacin seautilizada ms adelante.

    30

  • 8/7/2019 Problem As, Soluciones y Programas

    16/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    2. El Modelo del Mundo del Problema.

    Son cuatro las actividades que debe realizar el programadorpara construir el modelo del mundo.

    Identificar las entidades del mundo.

    Documentar las caractersticas de cada una de ellas.

    Definir las relaciones que existen entre las diferentesentidades.

    Documentar la informacin adicional (reglas, restricciones,

    etc.) que se tenga sobre las entidades.

    31

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    A. Identificar las entidades.

    Esta primera actividad tiene como objetivo identificar loselementos del mundo que intervienen en el problema.Dichos elementos pueden ser concretos (una persona, unvehculo) o abstractos (una cuenta bancaria).

    Una primera pista para localizarlos es buscar los sustantivosdel enunciado del problema. Esto sirve en el caso deproblemas pequeos, pero no es generalizable a problemasde mayor dimensin.

    32

  • 8/7/2019 Problem As, Soluciones y Programas

    17/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    A. Identificar las entidades.

    En POO, las entidades del mundo se denominan clases.

    Para el caso de estudio, hay dos entidades en el mundo delproblema: la clase Empleado y la clase Fecha. Esta ltima seemplea para representar el concepto de fecha de nacimientoy fecha de ingreso a la empresa.

    33

    5.2. EJEMPLO DE IDENTIFICACIN DE

    ENTIDADES (CLASES).

    Entidad Empleado.

    Es la entidad ms importante del mundo del problema,puesto que define su frontera (todo lo que est por fueradel empleado no nos interesa). Es buena prcticacomenzar la etapa de anlisis tratando de identificar laclase ms importante del problema.

    Entidad FechaEste es otro concepto que existe en el mundo delproblema. Se emplea para representar el concepto defecha de nacimiento y fecha de ingreso a la empresa.

    34

  • 8/7/2019 Problem As, Soluciones y Programas

    18/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    B. Modelar las caractersticas.

    Una vez que se han identificado las entidades del mundo delproblema, el siguiente paso es identificar y modelar suscaractersticas. A cada caracterstica encontrada se le debeasociar: (1) un nombre significativo y (2) una descripcin delconjunto de valores que dicha caracterstica puede tomar.

    En POO las caractersticas se denominan atributos.

    35

    5.2. EJEMPLO PARA IDENTIFICAR Y

    MODELAR ATRIBUTOS DE UNA CLASE.

    AtributoValoresposibles

    Comentarios

    nombreCadena decaracteres

    La primera caracterstica que aparece en el enunciado es

    el nombre del empleado. El valor de este atributo es unacadena de caracteres (por ejemplo Juan).Es importante que los nombres de los atributos seansignificativos (deben dar una idea clara de lo que unacaracterstica representa), para facilitar as la lectura y laescritura de los programas.

    apellidoCadena decaracteres

    El segundo atributo es el apellido del empleado. Al igualque en el caso anterior, el valor que puede tomar esteatributo es una cadena de caracteres (por ejemploPrez).

    Clase: Empleado

    36

  • 8/7/2019 Problem As, Soluciones y Programas

    19/27

    22/07/20

    5.2. EJEMPLO PARA IDENTIFICAR Y

    MODELAR ATRIBUTOS DE UNA CLASE.

    AtributoValoresposibles

    Comentarios

    sexoMasculino oFemenino

    Esta caracterstica puede tomar dos valores: masculino ofemenino. En esta etapa del anlisis basta con identificarlos valores posibles.

    salarioValoresenteros

    positivos

    El salario est expresado en Nuevos Soles y su valor es unnmero entero positivo. Aqu estamos suponiendo que el

    valor del salario no tiene cntimos.

    Clase: Empleado

    37

    5.2. EJEMPLO PARA IDENTIFICAR Y

    MODELAR ATRIBUTOS DE UNA CLASE.

    Definicin de la clase Empleado en UML:

    Empleado

    nombre: Stringapellido: String

    sexo: intsalario: int

    38

  • 8/7/2019 Problem As, Soluciones y Programas

    20/27

    22/07/20

    5.2. EJEMPLO PARA IDENTIFICAR Y

    MODELAR ATRIBUTOS DE UNA CLASE.

    AtributoValoresposibles

    Comentarios

    diaValoresenterosentre 1 y 31

    La primera caracterstica de una fecha es el da y puedetomar valores enteros entre 1 y 31.

    mesValoresenterosentre 1 y 12

    La segunda caracterstica es el mes. Aqu se podran listarlos meses del ao como los valores posibles (por ejemplo,

    enero, febrero, etc.), pero por simplicidad vamos a decirque el mes corresponde a un valor entero entre 1 y 12.

    aoValoresenterospositivos

    La ltima caracterstica es el ao. Debe ser un valorentero positivo (por ejemplo,2010).

    Clase: Fecha

    39

    5.2. EJEMPLO PARA IDENTIFICAR Y

    MODELAR ATRIBUTOS DE UNA CLASE.

    Definicin de la clase Fecha en UML:

    Fecha

    dia: intmes: int

    ao: int

    40

  • 8/7/2019 Problem As, Soluciones y Programas

    21/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    C. Las Relaciones entre las Entidades.

    En esta actividad, se debe identificar las relaciones queexisten entre las distintas entidades del mundo y asignarlesun nombre.

    Las relaciones se representan en UML como flechas queunen las cajas de las clases y se denominan usualmenteasociaciones. El diagrama de clases en el cual se incluye larepresentacin de todas las entidades y las relaciones que

    existen entre ellas se conoce como el modelo conceptual,porque explica la estructura y las relaciones de loselementos del mundo del problema.

    41

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    C. Las Relaciones entre las Entidades.

    Es posible tener varias relaciones entre dos clases, y por esoes importante seleccionar bien el nombre de cadaasociacin.

    Empleado FechafechaNacimiento

    fechaIngreso

    42

  • 8/7/2019 Problem As, Soluciones y Programas

    22/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    La primera asociacin dice que un empleado tiene una fechade nacimiento y que esta fecha es una entidad del mundo,representada por la clase Fecha.

    La segunda asociacin hace lo mismo con la fecha de ingreso

    del empleado a la empresa.La direccin de la flecha indica la entidad que contiene a laotra. El empleado tiene una fecha, pero la fecha no tiene unempleado.

    Empleado FechafechaNacimiento

    fechaIngreso

    43

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    3. Los Requerimientos no Funcionales.

    En la mayora de los casos, la solucin que se va a construirdebe tener en cuenta las restricciones definidas por elcliente, que dependen, en gran medida, del contexto deutilizacin del programa. Por ejemplo, para el caso delempleado, el cliente podra pedir que el programa se puedausar a travs de un telfono celular, o desde un navegador deInternet, o que el tiempo de respuesta de cualquier consultasea menor a 0.0001 segundos.

    44

  • 8/7/2019 Problem As, Soluciones y Programas

    23/27

    22/07/20

    5. COMPRENSIN Y ESPECIFICACIN DEL

    PROBLEMA.

    3. Los Requerimientos no Funcionales.

    Los requerimientos no funcionales estn muchas vecesrelacionados con restricciones sobre la tecnologa que sedebe usar, el volumen de los datos que se debe manejar o lacantidad de usuarios.

    45

    6. DISEO DE LA SOLUCIN.

    En el caso de la construccin de un programa, la actividad dediseo se inicia con el bosquejo inicial que es el modeloconceptual del mundo del problema, luego se verifican losrequerimientos no funcionales y se calcula el costo deimplementacin. Cuando se tiene clara la solucin a desarrollar,se desarrollan los diagramas escritos en UML.

    Los documentos de diseo deben hacer referencia al menos atres aspectos: (1) el diseo de la interfaz de usuario, (2) laarquitectura de la solucin y (3) el diseo de las clases.

    46

  • 8/7/2019 Problem As, Soluciones y Programas

    24/27

    22/07/20

    1. La Interfaz de Usuario.

    Es la parte de la solucin que permite que los usuariosinteracten con el programa. A travs de la interfaz, elusuario puede utilizar las operaciones del programa queimplementan los requerimientos funcionales.

    6. DISEO DE LA SOLUCIN.

    47

    2. LaArquitectura de la Solucin.

    En general, cuando se quiere resolver un problema, es buenocontar con mecanismos que ayuden a dividirlo en problemasms pequeos. Estos problemas son menos complejos que elproblema original y, por lo tanto, ms fciles de resolver. Loimportante es que al final se puedan unir los pedazos de lasolucin.

    Para ello es importante tener un diseo de alto nivel en elque aparezcan a grandes rasgos los elementos queconforman la solucin. Eso es lo que en programacin sedenomina la arquitectura de la solucin.

    6. DISEO DE LA SOLUCIN.

    48

  • 8/7/2019 Problem As, Soluciones y Programas

    25/27

    22/07/20

    2. LaArquitectura de la Solucin.

    En los casos de problemas pequeos y de complejidad baja,como los que vamos a desarrollar, slo identificaremos lospaquetes y las clases que van en cada uno de ellos.

    Bajo ese contexto, se identificarn 3 grandes grupos declases: (1) las clases que implementan la interfaz de usuario,(2) las clases que implementan el modelo del mundo y (3) las

    clases que implementan las pruebas. Cada uno de estosgrupos va a ir en un paquete distinto. Esta manera deseparar la aplicacin en tres paquetes la denominaremos laarquitectura bsica.

    6. DISEO DE LA SOLUCIN.

    49

    2. LaArquitectura de la Solucin.

    6. DISEO DE LA SOLUCIN.

    empleado.interfaz

    InterfazEmpleadoPanelConsultasPanelDatosPanelExtensionesPanelSalario

    empleado.mundo

    EmpleadoFecha

    empleado.test

    EmpleadoTestFechaTest

    Diagrama de paquetes:

    50

  • 8/7/2019 Problem As, Soluciones y Programas

    26/27

    22/07/20

    2. LaArquitectura de la Solucin.

    En el diagrama de paquetes se puede leer que alguna clasedel paquete empleado.interfaz utiliza algn servicio de unaclase del paquete empleado.mundo. Es este diagrama no seentra en detalles sobre cul clase es la que tiene la relacin.

    El diagrama de paquetes es muy til para darse una idea de laestructura del programa.

    6. DISEO DE LA SOLUCIN.

    51

    3. El Diseo de las Clases.

    El objetivo de esta parte de la etapa de diseo es mostrarlos detalles de cada una de las clases que van a formar partedel programa.

    Para ello se utilizar el diagrama de clases de UML, con todala informacin: clases, atributos y signaturas de los mtodos.

    6. DISEO DE LA SOLUCIN.

    52

  • 8/7/2019 Problem As, Soluciones y Programas

    27/27

    22/07/20

    En la etapa de construccin de la solucin debemos escribirtodos los elementos que forman parte del programa que fuediseado en la etapa anterior, y que resuelve el problemaplanteado por el cliente. Dicho programa ser instalado en elcomputador del usuario y ser ejecutado.

    La etapa de construccin debe seguir ciertas reglas deorganizacin, las cuales varan de empresa a empresa de

    desarrollo de software, y que deben hacerse explcitas antes decomenzar el trabajo.

    7. CONSTRUCCIN DE LA SOLUCIN.

    53

    Al terminar la etapa de construccin, algunos archivosempaquetados y algunos archivos ejecutables irn alcomputador del usuario, pues en ellos queda el programa listopara su uso.

    El resto de los archivos se entregan al cliente, quien los podrutilizar en el futuro para darle mantenimiento al programa,permitiendo as incluir nuevas opciones y dando al cliente laoportunidad de adaptar el programa a los cambios que puedanaparecer en el mundo del problema.

    7. CONSTRUCCIN DE LA SOLUCIN.

    54