miércoles, 21 de mayo de 2008

Trabajos Prácticos. Complemento Teórico. Test Modelos de parcial

Trabajo Practico 1: Principios del modelado OO. Modelado Estatico y Dinámico
Test 1 Modelos de proceso
Complemento teórico Principios Orinetación a Objetos
Requerimientos. Casos de uso
Contratos
Patrones de Análisis y Diagramas de secuencia
Diagramas de Estado y diagramas de colaboración
Patrones de asignación de responsabilidades (continuación)
Patrones de diseño (continuación)
Patrones de diseño (continuación)

Modelo parcial 1
Test 2 Modelado estático y dinámico UML2

Trabajo Practico 2: Diseño de interfaz

Test 3 Diseño interfaz
Tutorial diseño interfaz. Staruml (Diagrama de navegación)

Trabajo Practico 4: Patrones de diseño

Modelo Parcial 2

Recursos

Tutorial Java

Practica Laboratorio

Modelado Conceptual. Entregar individual en clase siguiente.


Caso de estudio. La empresa Aerolíneas de Pelotillehue S. A. (APSA) realiza vuelos internacionales entre Santiago de Chile y la mayoría de capitales del resto de países del mundo. APSA cuenta con una gran flota de aviones, y para cada uno de ellos mantiene un identificador, nombre, tipo y la autonomía de vuelo (el máximo número de kilómetros que el avión puede volar sin hacer escalas). APSA tiene varios cientos de empleados, entre pilotos y personal de apoyo. Todos los pilotos tienen certificados para volar aviones, y un piloto solamente puede volar un avión si cuenta con el certificado correspondiente para ese tipo de avión. Algunas rutas de gran demanda tienen varios vuelos, los que varían de precio según el tipo de avión que haga esa ruta. Algunas rutas pasan por varias capitales, haciendo escalas de media hora en cada una de ellas. En algunas ocasiones se pueden aplicar algunas restricciones de vuelo a algunas ciudades o países, por ejemplo, en este momento APSA tiene suspendidos los vuelos a Bagdad. La gente compra pasajes de APSA de la manera tradicional, es decir, primero hace la reservación en una agencia de viajes, y unos días después puede comprar los pasajes en esta misma agencia (para la compra de pasajes debe haber una reservación previa).

Haga el modelo conceptual completo de APSA. Para mayor claridad use paquetes.
Teoría Modelo conceptual - Modelo conceptual. Paquetes

2) Cree un proyecto P1 con un paquete llamado modelo y una clase Persona. Cree una clase Probadora que cree dos inctancias de la lcase Persoan, Persona01 y Persona02 que muestre los
valores de atributos asignados a ambas instancias de clase.

package modelo;

public class Persona {
String nombre;
int edad;
String direccion;
// constructor sirve para crear objetos de la clase persona
// son metodos que tienen el mismo nombre que la clase
public Persona() {

}
// otro constructor
public Persona(String nom, int ed, String dir){
setNombre(nom);
setEdad(ed);
setDireccion(dir);
}
// Getters y setters
public String getDireccion(){
return direccion;
}
public void setDireccion(String direccion){
this.direccion = direccion;
}
public int getEdad(){
return edad;
}
public void setEdad(int edad){
this.edad = edad;
}
public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
// metodo que muestra los atributos de clase
public void mostrarDatos(){
// mostrar en pantalla los que esta entre parentesis
// el signo + concatena
System.out.println("Nombre " + getNombre());
System.out.println("Edad "+ getEdad());
System.out.println("Direccion "+ getDireccion());
}
}


package modelo;

public class Probadora {
// con este metodo se puede ejecutar la aplicacion
public static void main(String[] args){
// se crea objeto persona que solo se inicializa
Persona unaPersona01 = new Persona();
// se crea variable para luego colocarla a los atributos de la clase
String nombre= "Gabriela";
int edad = 39;
String dir = new String(" Av. Mitre 120");
// se colocan los objetos creados y los tipos primitivos en la clase
// usando los metodos de la clase
unaPersona01.setNombre(nombre);
unaPersona01.setEdad(edad);
unaPersona01.setDireccion(dir);
// se usa metodo que mostrara los datos ingresados
unaPersona01.mostrarDatos();
System.out.println("---------------- ");
// se crea objeto de clase Persona pero se usa el otro constructor usando
// argumentos que se requieren
Persona unaPersona02 = new Persona("Viviana", 30," Barrio San Isidro Labrador");
unaPersona02.mostrarDatos();

}

}

3) Cree un plug in en Eclipse

This cheat sheet will guide you through the individual steps to create a plug-in, a plug-in extension, a feature and an update site using the Plug-in Development Environment (PDE). It will also demonstrate how to install and uninstall a feature using Install/Update.
To assist you along the way, wizards and commands will be available for you to launch automatically.

To configure PDE, perform the following steps
Select "Window->Open Perspective->Other..." from the main menu and choose "Plug-in Development" in order to open the plug-in development perspective


Select "Window->Preferences" from the main menu, expand the "Plug-in Development" outline tree node within the resulting dialog, and choose "Target Platform".

To create de plug in

Select "File->New->Project..." from the main menu, expand the "Plug-in Development" category within the resulting "New Project" dialog box, and choose "Plug-in Project"
Input "com.example.helloworld" into the "Project Name" text box

Accept the rest of the default preloaded values on the "Plug-in Project" page and click "Next >"
Accept the default preloaded values on the "Plug-in Content" page and click "Next >"
Select the "Hello, World" template from the list of "Available Templates" and click "Finish"


Verify that the selected value in the "Location:" combo box points to a valid Eclipse install location.

Verify that all checkboxes corresponding to plug-in entries listed in the list box on the "Plug-ins" tab are checked.

To Test a plug in

To test your Eclipse plug-in inside a target Eclipse platform, perform the following steps:
Select the "Overview" tab
Click the "Launch an Eclipse application" hyperlink under the "Testing" heading
Note the "Hello!" entry in the main menu in the newly launched Eclipse platform

Select "Hello!->Display Hello World!" from the main menu

Click on the "Workbench" icon to close the "Welcome" view and go to the Eclipse workbench.

Note the icon with the Eclipse logo in the main toolbar in the newly launched Eclipse platform
Click the icon with the Eclipse logo in the main toolbar

Select "File->Exit" from the main menu to exit the target Eclipse platform

Aprobación

Por promoción. (en trámite)
Aprobar 2 (dos) parciales o su correspondiente recuperatorio con nota 7 o superior.
Aprobar Proyecto final con nota 7 o superior.

Regularidad

Aprobar 2 (dos) parciales o su correspondiente recuperatorio.
Aprobar Proyecto final

Proyecto final: Es una instancia de evaluación individual y grupal. Estar ausente en exposición se considera desaprobada la instancia. Recupera en próxima fecha de exposición planificada para Proyecto final. El grupo debe encontrar un usuario real que autorice el análisis de un área de su organización que pretenda optimizar, corregir o desarrollar. Identificará el área problema objeto de estudio.
Los grupos deben presentar documentación impresa y digital y exponer en Septiembre. Octubre y Noviembre en fechas establecidas según la planificación de la asignatura. (Se sugiere desarrollar un Blog para documentación y artefactos de proyecto)

1) Septiembre : (Modelos en UML usando Herramienta rational u otra)
Modelo de contexto del Sistema. DSS (Diagrama secuencia del sistema)
Modelo de Casos de uso.
Modelo de conceptos (diag. de clases, esencial o conceptual del
sistema).
Modelo de Comportamiento (Diagramas de secuencia, colaboración para
Casos de uso).
Prototipo de pantallas (en java. Eclipse u otro). Diag. de transición de estados

2) Octubre

Modelo de Diseño de Sistema (capa interfase de usuario, clases de diseño). Patrones.
Prototipo de sistema con implementación de patrones. (desarrollado en java)

3) Noviembre Presentación final.

Programa


1- FUNDAMENTACIÓN

La ingeniería de software es un campo de las ciencias de la computación que basado en principios robustos y bajo un enfoque disciplinado y cuantificable permite se desarrollen y evolucionen productos de software de calidad. Análisis y Diseño de Software es una asignatura de segundo año de la carrera Analista de Sistemas. Se pretende proporcionar los conocimientos sobre la aplicación de técnicas y herramientas disponibles de la Ingeniería de software para especificar modelos de análisis y diseño de software de calidad.


2- OBJETIVOS GENERALES:

Desarrollar las aptitudes del alumno para analizar problemas, identificar soluciones alternativas y seleccionar la mejor.
Que el alumno analice problemas de desarrollo de software y diseñe soluciones de alta calidad.



2.1. Objetivos específicos


Que conozca las etapas del proceso de desarrollo de software y comprenda la necesidad del análisis y diseño en el marco de dicho proceso.

Que aplique procesos de toma de decisiones a nivel de diseño desde una perspectiva más general es decir desde una visión de arquitectura del software que se va a desarrollar que satisfaga requisitos funcionales y de calidad.


3- CONTENIDOS MÍNIMOS:
Fundamentos de Análisis y Diseño. Estrategias y métodos de diseño de software. Notaciones de diseño. Arquitectura de software. Patrones de diseño. Métodos formales. Diseño de interfaces de usuario. Técnicas de Garantía de Calidad.

4- ORGANIZACIÓN DE LOS CONTENIDOS – PROGRAMA ANALÍTICO

UNIDAD 1 Análisis de sistemas

Principios de modelado. Modelado Orientado a Objetos. Conceptos básicos de análisis y Diseño Orientado a Objetos. Herencia y Polimorfismo. Responsabilidades. Colaboraciones. Lenguaje de modelado unificado. (UML). Modelado estático. Diagramas de Casos de uso. Diagramas de Clases. Asociaciones. Atributos. Operaciones. Relaciones. Contratos. Modelado dinámico. Diagramas de secuencia. Diagramas de colaboración. Diagramas de transición de estados.

UNIDAD 2 Diseño de Sistemas.

Fundamentos del diseño de software. Abstracción. Complejidad. Características de diseño de alta calidad. Métodos de especificación formal. Heurísticas de diseño. Arquitectura de software. Conceptos. Estilos Arquitectónicos. Acoplamiento. Cohesión. Evaluación, verificación y validación del diseño. Patrones de diseño GoF.

UNIDAD 3 Diseño de interfaces de usuario

Diseño de interfaz de usuario. Fundamentos en HCI (human computer interaction). Ciclo de vida de la interfaz de usuario. Principios de Nielsen. Diseño de entradas (pantallas), salidas (reportes).

UML

Visual Modeling. Diagramas de clase