La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software

Presentaciones similares


Presentación del tema: "Ingeniería de Software"— Transcripción de la presentación:

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

2 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.

3 Modelo del análisis DFD N0

4 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)

5 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)

6 Modelo del análisis … (2)
DFD N1

7 Modelo del análisis … (4)
Miniespecificación del Proceso 1 «Identificar tipo usuario» Crear la ventana principal con los parámetros adecuados Cargar las imágenes a utilizar en la aplicación Crear los botones para identificar el Tipo de usuario Mostrar las imágenes y formato de la interfaz Esperar la pulsación de uno de los dos botones asociados a cada tipo de usuario Retornar el Tipo de Usuario Fig1. Pantalla Principal.

8 Modelo del análisis … (5)
DFD N2 para el Proceso 2 Fig3. Pantalla de Comandos Profesor. Fig2. Pantalla de Contraseña.

9 Fig4. Pantalla de interfaz de consultas.
Modelo de análisis … (6) DFD N2 para el Proceso 3 Fig4. Pantalla de interfaz de consultas.

10 Modelo del diseño Primera aproximación del primer corte al DFD N1

11 Modelo del diseño … (2) Refinamiento de la primera aproximación del DFD de N1 Es el responsable de crear la Interfaz Gráfica de Usuario (IGU)

12 Modelo del diseño … (3) Primera aproximación de los primeros cortes al DFD N2 del Proceso 2

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

14 Modelo del diseño … (5) Primera aproximación de los primeros cortes al DFD N2 del Proceso 2

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

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

17 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*/

18 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); } /*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; case CONFIRMACION: strcpy(titulo,"Confirmación"); uType = MB_YESNO | MB_ICONQUESTION; } return MessageBox(hwnd,texto,titulo,uType);

19 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;


Descargar ppt "Ingeniería de Software"

Presentaciones similares


Anuncios Google