19
Ingeniería de Software Modelos de análisis, diseño e implementación

Ingeniería de Software Modelos de análisis, diseño e implementación

Embed Size (px)

Citation preview

Page 1: Ingeniería de Software Modelos de análisis, diseño e implementación

Ingeniería de Software

Modelos de análisis, diseño e implementación

Page 2: Ingeniería de Software Modelos de análisis, diseño e implementación

Descripción del sistema• Un profesor necesita un sistema de registro de tareas para cada una de sus

materias. Por cada ciclo escolar (semestre) imparte un máximo de 6 materias y un mínimo de 1 materia. La cantidad de tareas que puede dejar a sus alumnos por materia va de 0 a n y cada tarea está asociada a una de tres evaluaciones parciales. El sistema en cuestión debe proporcionarle al profesor la capacidad de registrar cada ciclo escolar con sus respectivas materias así como los alumnos inscritos en cada materia. En el transcurso de un ciclo escolar el sistema debe permitirle dar de alta, modificar o eliminar tareas. Una tarea tiene asociada la siguiente información: una descripción que define lo que el alumno debe realizar, la fecha de entrega y la evaluación parcial a la que pertenece. El sistema también debe permitir al profesor registrar cuándo un alumno entrega una tarea así como la calificación que se alcanzó. El sistema debe ser capaz de mostrar una lista de tareas con su respectiva calificación y promedio acumulado por evaluación parcial. Adicionalmente, el sistema también debe permitir la entrada de alumnos, los cuales solo pueden consultar la lista de tareas por materia, esta información es lo único que pueden ver pero no modificar, lo anterior hace necesario que al entrar al sistema como profesor se solicite una contraseña.

Page 3: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis

• DFD N0

Page 4: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis … (2)

• Maquetas

Fig1. Pantalla Principal.(Sirve para identificar el tipo de usuario)

Fig2. Pantalla de Contraseña.(Sirve para validar al usuario profesor)

Page 5: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis … (3)

• Maquetas … (2)

Fig3. Pantalla de Comandos Profesor.(Sirve para que el profesor elija una acción)

Fig4. Pantalla de interfaz de consultas.(Sirve para que el usuario elija la lista de tareas a mostrar)

Page 6: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis … (2)

• DFD N1

Page 7: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis … (4)• Miniespecificación del Proceso 1 «Identificar tipo usuario»

1. Crear la ventana principal con los parámetros adecuados

2. Cargar las imágenes a utilizar en la aplicación3. Crear los botones para identificar el Tipo de usuario4. Mostrar las imágenes y formato de la interfaz 5. Esperar la pulsación de uno de los dos botones

asociados a cada tipo de usuario6. Retornar el Tipo de Usuario

Fig1. Pantalla Principal.

Page 8: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del análisis … (5)

• DFD N2 para el Proceso 2

Fig2. Pantalla de Contraseña.

Fig3. Pantalla de Comandos Profesor.

Page 9: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo de análisis … (6)

• DFD N2 para el Proceso 3

Fig4. Pantalla de interfaz de consultas.

Page 10: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño

• Primera aproximación del primer corte al DFD N1

Page 11: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (2)• Refinamiento de la primera aproximación del

DFD de N1Es el responsable decrear la Interfaz Gráficade Usuario (IGU)

Page 12: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (3)• Primera aproximación de los primeros cortes al DFD

N2 del Proceso 2

Page 13: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (4)• Refinamiento de la primera aproximación para el Proceso 2

Page 14: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (5)• Primera aproximación de los primeros cortes al DFD

N2 del Proceso 2

Page 15: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (6)• Refinamiento de la primera aproximación para el Proceso 3

Page 16: Ingeniería de Software Modelos de análisis, diseño e implementación

Modelo del diseño … (7)• DE para los incrementos 1, 2 y 3

Page 17: Ingeniería de Software Modelos de análisis, diseño e implementación

Implementación• DE’s con anotaciones de implementación

/*Inicia: MCP*/int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)

{ HWND hwnd; /*This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */

/* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is

called by windows */ /*… Aquí sigue más código de la plantilla*/}/*Finaliza: MCP*/

/*Inicia: Gestor de interacción con el usuario*/LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hDC; PAINTSTRUCT ps; static HBITMAP hBitmapProf, hBitmapAlum; static HWND hBotonProf, hBotonAlum, hBotonSalir, hBotonRegresar; /*… Aquí sigue más código*/ switch (message) /* handle the messages */ { case WM_COMMAND: switch(LOWORD(wParam)) { /*Inicia: 2 Procesar Comandos Profesor*/ case ID_BTNPROF: edo = EDOPROF1; /*Invocación a 2.1*/ SendMessage(hwnd,WM_COMMAND,(WPARAM) ID_MSGHIVAL, (LPARAM) PROFESOR); break;/*………….. Y sigue más código*/

Page 18: Ingeniería de Software Modelos de análisis, diseño e implementación

Implementación … (2)• DE’s con anotaciones de implementación …

/*Inicia: 2.1 Habilitar Interfaz de validación de usuario*/ case ID_MSGHIVAL: ShowWindow(hBotonAlum,FALSE); ShowWindow(hBotonProf,FALSE); ShowWindow(hCtrlClave,TRUE); ShowWindow(hBotonRegresar,TRUE); ShowWindow(hBotonValidarUProf,TRUE); SetFocus(hCtrlClave); TipoUsuario = lParam; strcpy(szMensaje,"Introduzca contraseña de profesor"); InvalidateRect(hwnd, NULL, TRUE); break; /*Finaliza: 2.1 Habilitar Interfaz de validación de usuario*/ /*Inicioa: 2.2 Validar usuario Profesor*/ case ID_BTNVALIDAR: /*Obtener la Contraseña editada*/ GetDlgItemText(hwnd, ID_TXTCLAVE, szClave, 31); if(!strcmp(szClave,"hola")){ /*Invocación a 2.3*/ SendMessage(hwnd,WM_COMMAND,(WPARAM) ID_MSGHICOM, (LPARAM) PROFESOR); }else{ EmitirMensaje(hwnd,"Contraseña Incorrecta\nIntente de nuevo",MENSAJEERROR); } break; /*Finaliza: 2.2*/

int EmitirMensaje(HWND hwnd, char *texto, int tipo){ UINT uType; char titulo[64]; switch(tipo) { case MENSAJEERROR: strcpy(titulo,"Error"); uType = MB_OK | MB_ICONERROR; break; case INFORMACION: strcpy(titulo,"Información"); uType = MB_OK | MB_ICONINFORMATION; break; case CONFIRMACION: strcpy(titulo,"Confirmación"); uType = MB_YESNO | MB_ICONQUESTION; break; } return MessageBox(hwnd,texto,titulo,uType);}

Page 19: Ingeniería de Software Modelos de análisis, diseño e implementación

Implementación … (3)• Diagrama de estados para el requisito implícito de regresar

entre pantallas y la codificación del comando regresar.

case ID_BTNREGRESAR: if(edo == EDOPROF1 || edo == EDOALUMNO){ SendMessage(hwnd, WM_COMMAND, (WPARAM) ID_MSGHIINI, (LPARAM) NOUSUARIO); edo = EDOINICIO; }else if(edo == EDOCONSULTAR){ SendMessage(hwnd, WM_COMMAND, (WPARAM) ID_MSGHICOM, (LPARAM) PROFESOR); edo = EDOPROF2; } break;