Escuela Tcnica Superior de Informtica Aplicada Curso 2006-2007
1. Una Estacin Meteorolgica Automtica (EMA) mide diferentes variables meteorolgicas que definen el estado actual de la atmsfera en el lugar donde se encuentre ubicada dicha EMA. Entre estas variables meteorolgicas se encuentran la velocidad y direccin del viento, la temperatura, la presin atmosfrica y la humedad. Para la medicin de cada una de dichas variables se utilizan uno o varios sensores especficos que almacenan el valor medido. Todos los sensores tienen un cdigo y un modelo fijos que se introducen al crearlos. Dependiendo del tipo de sensor, ste almacena la temperatura, la presin, la humedad, la velocidad y la direccin del viento. Pero adems, salvo el sensor que mide la direccin del viento, el resto se pueden calibrar, para lo cual disponen de un valor alto y un valor bajo que representan dos puntos fijos y conocidos entre los que realizar una interpolacin lineal, y que tambin se introducen al crearlo. Estos mismos sensores almacenan el valor mximo y el valor mnimo medido en las ltimas 24 horas, as como la hora en la que se ha obtenido dicho valor mximo y dicho valor mnimo.
El analista del sistema ha construido el siguiente modelo de objetos OMT para los sensores que forman una EMA. En dicho modelo aparecen nicamente las clases y sus relaciones.
a) A partir de dicho modelo, obtn la declaracin de las clases en C#. Debers incluir los atributos correspondientes en cada una de las clases, de acuerdo con la descripcin anterior e implementar los constructores de las clases. (Ten en cuenta la jerarqua de herencia modelada).
b) Escribe el cdigo en C#para realizar las siguientes operaciones:
b.1) Creacin de un objeto EMA y creacin de un sensor de cada tipo que forme parte de dicha EMA.
b.2) Implementacin del mtodo calibrar definido en la clase EMA. Este mtodo debe calibrar todos los sensores de la EMA. Para ello se supone implementado el mtodo calibrar en la jerarqua de sensores de la siguiente forma:
En la clase Scalibrado: public abstract void calibrar() { //implementado}
En las clases Shumedad, Svelocidadviento, Spresion y Stemperatura como: public override void calibrar() { // implementado . . . }
b.3) Se quiere obtener toda la informacin almacenada en cada sensor que forma la EMA. Para ello se dispone de un mtodo de recorrido de todos los sensores que forman la EMA llamado visualizar. ste mtodo acaba invocando el visualizar del dato, que en este caso es un sensor. Se pide que aadis la declaracin correcta del mtodo visualizar, as como la implementacin del mismo en todas las clases de la jerarqua de sensores que consideris oportuno.
2. La tienda TodoComercio oferta varios catlogos de productos para su venta en los distintos terminales de punto de venta (TPV) que tiene instalados. Su propietario contrata a la empresa ISG, S.A. para el desarrollo de una aplicacin de gestin que registre todas las ventas que se realizan en su negocio. Para ello ha proporcionado el siguiente diagrama de clases, en notacin UML, correspondiente al modelado conceptual.
Se pide: a) Obtener el diseo en C#, siguiendo las tcnicas de diseo vistas en clase. b) Declara e implementa en C# los constructores de todas las clases diseadas, si son necesarios, garantizando que implementan adecuadamente el comportamiento que se deduce del modelo. Una funcionalidad importante de la aplicacin es el registro de las ventas realizadas. Se pide: c) Escribe el cdigo en C#para realizar la siguiente operacin: Creacin de un TPV y registro de una venta realizada. En dicha venta se han comprado 3 productos. Estos productos ya han sido creados previamente y sus identificadores son prod1, prod2, prod3. De prod1 se compran 2 unidades y su precio/unitario es 12. Del produd2 se compran 3 unidades y su precio/unitario es 15 y del produc3 se compra una sola unidad cuyo precio unitario es 25. Explica la funcionalidad de cada lnea de cdigo, en relacin con la venta y el clculo del importe total.
3. Dado el siguiente diagrama de clases UML de un sistema de ordenadores conectados en red. Se pide lo siguiente:
a. Determina qu clases y qu atributos permiten representar este modelo en C#.
b. Especifica e implementa adecuadamente los constructores y destructores (si son necesarios) de cada una de las clases del sistema, garantizando que implementan adecuadamente el comportamiento que se deduce del modelo UML.
Usuario login password Sistema Super Host 1..n 1..n 1..n Operador Cliente 1..n 0..1 Servidor 1..n 1..n 0..n 0..n 1..n 1..n 1..n 0..1 1..n 1..n 1..n 0..n 0..n Trabaja posee se conecta se conecta controla
4. Una empresa noruega de transporte de mercancas desea desarrollar una aplicacin para mantener un inventario de los distintos vehculos que tiene. La empresa dispone de vehculos terrestres y martimos de distintos tipos, que compra nuevos o de segunda mano. De todos los vehculos interesa conocer la marca, el modelo y el kilometraje.Los vehculos terrestres pueden ser vehculos con ruedas (de los que interesa conocer el nmero de ruedas). La empresa dispone de camiones con remolque, coches (que pueden tener un remolque) y motocicletas (que tienen todas dos ruedas). De los camiones interesa conocer el PMA o peso mximo admisible (ejemplo: 2000 kg). De los remolques interesa conocer el PMA y el nmero de ruedas. De los coches y las motocicletas interesa conocer el nmero de puertas y la cilindrada, respectivamente.La empresa tambin utiliza vehculos de tipo 'oruga', que no tienen ruedas sino cadenas de eslabones y que se utilizan en las zonas del pas donde hay mucha nieve. Adems, la empresa dispone de lanchas (cuya eslora normalmente es menor de cuatro metros) y barcos (cuya eslora normalmente es mayor de cuatro metros). Los analistas de ISGSoft han desarrollado el siguiente modelo de clases, en el que se han omitido los atributos:
Se pide: d) Declara e implementa en C#los constructores de todas las clases, si son necesarios, garantizando que implementan adecuadamente el comportamiento que se deduce del modelo. Debes incluir los atributos que creas necesarios de acuerdo al enunciado del problema. e) Escribe el cdigo en C#necesario para crear un objeto de cada una de las clases. Utiliza los valores que quieras para los atributos de los objetos (Nota: Se pide una inicializacin mnima)
5. Una de las principales ventajas de la Orientacin a Objetos es la reutilizacin de cdigo. Cita al menos dos posibles aproximaciones para reutilizar cdigo, explcalas y pon un ejemplo de cada una de ellas.
6. Muchos lenguajes de programacin no soportan la herencia mltiple, y en el modelado conceptual pueden surgir algunas situaciones que hacen es necesaria su utilizacin. Cmo abordaras la implementacin del siguiente Modelo de Objetos en C#?
A a1 : int a2 : char m1() m2() B b1 : char b2 : int m1() s1() C c1 : char m4()