INGENIERÍA DE SOFTWARE

142
JOSE JUAN GARCIA BORQUEZ

description

Introduccion a la ingenieria de software. Preguntas Frecuentes de la ingenieria de software. Ingenieria en software asistida por computadora. Modelo RUP Gestion de Planificacion Diseño de interfas de usuarios. Atributos de los sistemas y aplicaciones basadas en WEB. UML

Transcript of INGENIERÍA DE SOFTWARE

Page 1: INGENIERÍA DE SOFTWARE

JOSE JUAN GARCIA BORQUEZ

Page 2: INGENIERÍA DE SOFTWARE

6 DE JUNIO DEL 2013

Page 3: INGENIERÍA DE SOFTWARE

ÍNDICE INTRODUCCION INFORMACION INSTITUCIONAL PERFIL DESCRIPTIVO ARCHIVO EN WORD INTRODUCCIÓN A INGENIERIA DE SOFTWARE REPORTE DE LECTURA PREGUNTAS FRECUENTES DE INGENIERÍA DEL SOFTWARE PRESENTACIÓN DEL EQUIPO #1 PREGUNTAS FRECUENTES DE INGENIERIA DEL SOFTWARE REPORTE DE LECTURA EQUIPO # 2 INGENIERÍA DEL SOFTWARE ASISTIDA POR COMPUTADORA -PRESENTACIÓN DEL EQUIPO #2 INGENIERÍA DEL SOFTWARE ASISTIDA POR COMPUTADORA INVESTIGACIÓN DE CLASE MODELO RUP INVESTIGACIÓN DE CLASE DE LAS 4 FASE DEL MODELO RUP INVESTIGACIÓN DE CLASE MÉTRICA-CALIDAD INVESTIGACIÓN DE CLASE FASE DE GESTIÓN DE PLANEACIÓN (PLANIFICACIÓN-

CLAENDARIZACIÓN-GETIÓN DE RIESGOS) REPORTE DE LECTURA TEMA EQUIPO #3: DISEÑO DE INTERFASE DE USUARIOS -REPORTE DE LECTURA TEMA EQUIPO #4: ATRIBUTOS DE LOS SISTEMAS Y APLICACIONES

BASADAS EN WEB. INVESTIGACIONES ESPECIALES:

FRAMEWORKS UML (MODELO DE LENGUAJE UNIFICADO) MICROSOFT PROJECT, INTELIGENCIA ARTIFICIAL, LENGUAJE COBOL SOFTWARE REQUISITE PRO SECOND LIFE

CONCLUCION

INTRODUCCION INFORMACION INSTITUCIONAL PERFIL DESCRIPTIVO ARCHIVO EN WORD INTRODUCCIÓN A INGENIERIA DE SOFTWARE REPORTE DE LECTURA PREGUNTAS FRECUENTES DE INGENIERÍA DEL SOFTWARE PRESENTACIÓN DEL EQUIPO #1 PREGUNTAS FRECUENTES DE INGENIERIA DEL SOFTWARE REPORTE DE LECTURA EQUIPO # 2 INGENIERÍA DEL SOFTWARE ASISTIDA POR COMPUTADORA -PRESENTACIÓN DEL EQUIPO #2 INGENIERÍA DEL SOFTWARE ASISTIDA POR COMPUTADORA INVESTIGACIÓN DE CLASE MODELO RUP INVESTIGACIÓN DE CLASE DE LAS 4 FASE DEL MODELO RUP INVESTIGACIÓN DE CLASE MÉTRICA-CALIDAD INVESTIGACIÓN DE CLASE FASE DE GESTIÓN DE PLANEACIÓN (PLANIFICACIÓN-

CLAENDARIZACIÓN-GETIÓN DE RIESGOS) REPORTE DE LECTURA TEMA EQUIPO #3: DISEÑO DE INTERFASE DE USUARIOS -REPORTE DE LECTURA TEMA EQUIPO #4: ATRIBUTOS DE LOS SISTEMAS Y APLICACIONES

BASADAS EN WEB. INVESTIGACIONES ESPECIALES:

FRAMEWORKS UML (MODELO DE LENGUAJE UNIFICADO) MICROSOFT PROJECT, INTELIGENCIA ARTIFICIAL, LENGUAJE COBOL SOFTWARE REQUISITE PRO SECOND LIFE

CONCLUCION

Page 4: INGENIERÍA DE SOFTWARE

INTRODUCCIONEn este curso el alumno conocerá y aplicará la

metodología de diseño de software en eldesarrollo de proyectos de desarrollo de sistemasde software.

Page 5: INGENIERÍA DE SOFTWARE

INFORMACION INSTITUCIONALMisiónLa misión de UNIDEP es formar profesionales de éxito que cuenten con las actitudes, habilidades yconocimientos que demanda el sector productivo de la región.

VisiónLa Universidad del Desarrollo Profesional es una institución de educación superior de calidad, queofrece programas presenciales y semipresenciales de bachillerato, profesional asociado, licenciatura,posgrado, diplomados y cursos en México y en el extranjero.

Se distingue por facilitar a sus egresados la incorporación al mercado de trabajo, apoyada en unaestrecha vinculación con el sector productivo y en planes de estudio pertinentes y dinámicos.

Es reconocida por su modelo educativo profesionalizante, por la flexibilidad de su oferta académicaimpartida en ciclos continuos y por horarios y cuotas accesibles, acordes a la disponibilidad de tiempo yrecursos económicos del alumno.

Cuenta con profesores de amplia experiencia profesional y educativa. Sus instalaciones dentro de laciudad permiten el fácil acceso.

Cuenta con un modelo de administración sistematizado, participativo, operado por personal que esrecompensado por su desempeño efectivo que le permite maximizar las aportaciones de sus socios ymantener finanzas sanas.

MisiónLa misión de UNIDEP es formar profesionales de éxito que cuenten con las actitudes, habilidades yconocimientos que demanda el sector productivo de la región.

VisiónLa Universidad del Desarrollo Profesional es una institución de educación superior de calidad, queofrece programas presenciales y semipresenciales de bachillerato, profesional asociado, licenciatura,posgrado, diplomados y cursos en México y en el extranjero.

Se distingue por facilitar a sus egresados la incorporación al mercado de trabajo, apoyada en unaestrecha vinculación con el sector productivo y en planes de estudio pertinentes y dinámicos.

Es reconocida por su modelo educativo profesionalizante, por la flexibilidad de su oferta académicaimpartida en ciclos continuos y por horarios y cuotas accesibles, acordes a la disponibilidad de tiempo yrecursos económicos del alumno.

Cuenta con profesores de amplia experiencia profesional y educativa. Sus instalaciones dentro de laciudad permiten el fácil acceso.

Cuenta con un modelo de administración sistematizado, participativo, operado por personal que esrecompensado por su desempeño efectivo que le permite maximizar las aportaciones de sus socios ymantener finanzas sanas.

Page 6: INGENIERÍA DE SOFTWARE

PLANEACIÓN DE CURSO

Plantel: CENTROPrograma: LSIC Fecha: 13/05/2013

Curso: INGENIERIA DE SOFTWARE Ciclo: 2014-1Docente: M.C. JOSÉ BENITO FRANCO URREA Módulo: I

Conocimientos (saber) Diseñar Soluciones de Software a través de la aplicación de metodologías, herramientas y estándares

apropiados al problema. Producir aplicaciones de software a partir de especificaciones de diseño y haciendo uso de las mejores

prácticas que aseguren la calidad del producto. Administrar Proyectos de Desarrollo de Software mediante la aplicación de procesos, modelos y

estándares que contribuyan a la calidad total del producto.Habilidades (saber hacer)Manejo correcto y eficiente de la expresión oral y escritaIdentificación de variables involucradas en la formulación de proyectosAnalítico en el manejo del contenido de claseResponsable y analítico en la solución de casos reales.

Diligencia, cuidado y limpiezaComunicación asertivaAplicación de teorías y modelos a casos concretosAdministración del tiempo y Manejo de gruposInvestigación documental y de campoActitudes (Ser)Puntual en la asistencia en clase.Disciplinado en la entrega de sus tareas y elaboración de ejercicios.Participativo en trabajo de grupo.Hábitos de estudioDisposición para trabajar en equipoCreatividadComunicativo

RespetuosoCrítico ante los problemas del entornoPredisposición positiva al cambioHumanistaMediación entre las diferenciasDisposición de aceptar riesgos

Objetivo:El alumno conocerá y aplicará la metodología de diseño de software en el desarrollo de proyectos de desarrollo desistemas de software.

Page 7: INGENIERÍA DE SOFTWARE

SEMANA 1Del 13 de Mayo al 16 de Mayo de 2013Contenido Estrategia de enseñanza-aprendizaje Materiales

didácticosRecursos Evaluación

1. Proceso deingeniería delsoftware

1.1 Proyectos desoftware

1.2 Procesosdeproducción

1 Presentación del programade curso.

2. inducción a la materia.3. Formación de equipos y

asignación de los temas.

4. Exposición en PowerPointde los temas. (Maestro).

5. Análisis y reflexión de lostemas por parte del alumno.

6. Exposición por parte delequipo #1. Tema investigado:Preguntas frecuentes de laIngeniería de Software.

7. Video: Si los Programadoresconstruyeran aviones.

8. Reporte de lectura del tema:Preguntes frecuentes de laingeniería de software.

9. Proyecto Final

Pizarrón,cañón, PC,Videos

Libros digitalizados de:INGENIERIA DELSOFTWAREun enfoque practicoSexta EdiciónAutor: Roger S.Pressman

Ingeniería del SoftwareSéptima EdiciónIan Sommerville

1 %

Trabajo independiente: Exposición del Equipo #.1 Tema investigado: Preguntas frecuentes de laIngeniería de Software.

1 %

Page 8: INGENIERÍA DE SOFTWARE

SEMANA 2Del 20 de Mayo al 23 de Mayo de 2013Contenido Estrategia de enseñanza-aprendizaje Materiales

didácticosRecursos Evaluación

1.3 Métricas,estimación yplaneación

1.4 El equipo dedesarrollo

1. Exposición en PowerPointde los temas. (Maestro).

2. Análisis y reflexión de lostemas por parte delalumno.

Pizarrón, cañón,PC, Videos

Librosdigitalizados de:INGENIERIA DELSOFTWAREun enfoquepracticoSexta EdiciónAutor: Roger S.Pressman

Ingeniería delSoftwareSéptima EdiciónIan Sommerville

1 %

2 Fase deanálisis2.1 Requeri

mientosydocumentación

3. Exposición por parte delequipo #2. Ingeniería deSoftware asistida porcomputadora.

4. Reporte de lectura del tema:Ingeniería de softwareasistida por computadora.

5. Revisión de avances delproyecto final

Pizarrón, cañón,PC

1 %

1. Trabajo independiente: Investigación y exposición del tema: Ingeniería de Softwareasistida por computadora.

2 %

Page 9: INGENIERÍA DE SOFTWARE

SEMANA 3Del 27 de Mayo al 30 de MayoContenido Estrategia de enseñanza-aprendizaje Materiales

didácticosRecursos Evaluación

2.2 Análisis2.3 Modela

do ydiseño

1. Exposición en PowerPointde los temas. (Maestro).

2. Análisis y reflexión de lostemas por parte del alumno.

Pizarrón,cañón, PC

Librosdigitalizados de:INGENIERIA DELSOFTWAREun enfoquepracticoSexta EdiciónAutor: Roger S.Pressman

Ingeniería delSoftwareSéptima EdiciónIan Sommerville

1 %

3 Fase deimplementación3.1 Determi

nacióndellenguajeymetodología

3. Exposición por parte delequipo #3. Tema investigado:Diseños de Interfaces deUsuarios

4. Revisión de avances delproyecto final.

1 %

Evaluación 1er. parcial: Deberá ser revisado por el coordinador académico y abarcar el 100% de lostemas abordados hasta la semana 3

15 %

Trabajo independiente: Investigación y Exposición del Tema: Diseños de Interfaces de Usuarios. 2 %

Page 10: INGENIERÍA DE SOFTWARE

SEMANA 4Del __ de ____ al __ de ____Contenido Estrategia de enseñanza-aprendizaje Materiales

didácticosRecursos Evaluación

3.2 Implementaciónderequerimientosdelmodelo

3.3 Programación

3.4 Implementación

1. Exposición en PowerPointde los temas. (Maestro).

2. Análisis y reflexión de lostemas por parte del alumno.

3. Exposición por parte delequipo #4. Tema investigado:Diseños de Interfaces deUsuarios

4. Reporte de lectura del temainvestigador: Diseño deinterfaces de usuarios.

Pizarrón,cañón, PC

Librosdigitalizados de:INGENIERIA DELSOFTWAREun enfoquepracticoSexta EdiciónAutor: Roger S.Pressman

Ingeniería delSoftwareSéptima EdiciónIan Sommerville

1 %

Trabajo independiente: Exposición del Proyecto Final. 4 %

Page 11: INGENIERÍA DE SOFTWARE

SEMANA 5Del __ de ____ al __ de ____Contenido Estrategia de enseñanza-aprendizaje Materiales

didácticosRecursos Evaluación

4 Fase depruebas ymantenimiento4.1 Diseño

depruebas

4.2 Estrategias deprueba

4.3 Plan demantenimiento

1. Exposición en PowerPointde los temas. (Maestro).

2. Análisis y reflexión de lostemas por parte del alumno.

3. Exposición y revisión delproyecto Final

Pizarrón,cañón, PC

Librosdigitalizados de:INGENIERIA DELSOFTWAREun enfoquepracticoSexta EdiciónAutor: Roger S.Pressman

Ingeniería delSoftwareSéptima EdiciónIan Sommerville

1 %

Evaluación 2o. parcial: Deberá ser revisado por el coordinador académico y abarcar el 100% de lostemas abordados en las semanas 4 y 5.

25 %

Portafolio de aprendizaje: Deberá ser revisado por el coordinador académico e incluir todos loselementos establecidos en el formato institucional.

10 %

Trabajo independiente: Exposición y revisión del proyecto final. 4 %

RECURSOS

TIPO TITULO AUTOR EDITORIAL /REVISTA AÑO

Libro Ingeniería del Software - UnEnfoque Practico Pressman, Roger S. Mc. Graw Hill 2002

Libro Ingeniería del Software Sommerville, Ian Pearson 2006

Libro Ingeniería de Software Orientada aObjetos Con Java E Internet Weitzenfeld, Alfredo Thomson 2006

ESTAS CELDAS NO DEBEN MODIFICARSEEVALUACIÓN

Actividades semanales 30 %Trabajos independientes 20 %Evaluación 1er. parcial 15 %Evaluación 2o. Parcial 25 %

Portafolio de aprendizaje 10 %TOTAL 100 %

Page 12: INGENIERÍA DE SOFTWARE

UNIVERSIDAD DEL DESARROLLO PROFESIONAL

Perfil Descriptivo de ClaseMateria: INGENIERÍA DE SOFTWARE Ciclo: 2013-2Maestro: M.C. JOSÉ BENITO FRANCO URREA Horario: 13:00-15:00

Objetivo delCurso:

El alumno conocerá y aplicará la metodología de diseño de software en el desarrollo deproyectos de desarrollo de sistemas de software.

Bibliografía:TIPO TITULO AUTOR EDITORIAL/REVISTA AÑO

.LIBRO

Ingeniería delSoftware - UnEnfoque Practico

Pressman,Roger S. Mc. Graw Hill 2002

LIBRO Ingeniería delSoftware

Sommerville,Ian Pearson 2006

LIBRO

Ingeniería deSoftwareOrientada aObjetos Con JavaE Internet

Weitzenfeld,Alfredo Thomson 2006

criterios parala Evaluación

CALIFICACIÓN ORDINARIA (PONDERACIÓN)

Actividadessemanales 30% Examen primer parcial. 15%

Portafolioreaprendizaje 10% Examen segundo

parcial. 25%

Trabajosindependientes 20% T O T A L

100%

Reglas

1. El alumno es responsable de enterarse de su número de faltas y retardos.

2. El alumno debe contar con un mínimo del 80% de asistencia para tener derecho a su calificación final.

3. El alumno que se sorprenda incurriendo en actos desleales en la elaboración de exámenes, tareas o trabajos, obtendrá cero (0) decalificación en el trabajo, tarea y/o examen

4. Es responsabilidad del estudiante hablar inmediatamente con el maestro cuando tenga problemas con el material de clase, suscalificaciones, etc. De esta manera evitaremos problemas en el fin del ciclo.

5. Sólo se justifican inasistencias si son autorizadas por la coordinación académica bajo el procedimiento correspondiente

6. Se tomara asistencia al iniciar la clase.

7. Prohibido utilizar teléfonos celulares y/o aparatos electrónicos dentro del aula.

8. La clase es de 100 minutos efectivos.

9. La clase inicia a la hora en punto

10. No se permiten alimentos ni bebidas dentro del aula.

Page 13: INGENIERÍA DE SOFTWARE

11. Deberá presentar su Carnet de Pago, expedido por su coordinador administrativo, para la autorización de recepción de trabajosfinales y la aplicación de exámenes en la última semana del módulo.

Calendarización

Sesión Fecha Tema

1 13/05/2013 Presentación del programa, Introducción al tema exposición por parte delmaestro, Integración de equipos, diagnóstico de conocimientos del grupo.

2 14/05/20131. Proceso de ingeniería del software

a. Modelos del proceso del software1.1. Proyectos de software

3 15/05/2013

1.2. Procesos de producción

Modelo en cascada. Desarrollo evolutivo o espiral Modelo Incremental Desarrollo Iterativo1.3. Métricas, estimación y planeación

4 16/05/20131.4. Equipo de DesarrolloExposición tema de investigación Equipo #1 Preguntas frecuentesde la Ingeniería de Software.

5 20/05/2013

2. Fase de análisis2.1. Requerimientos y documentación

2.1.1 proceso de ingeniería de requerimientos.

6 21/05/20132.2. Análisis2.3. Modelado y diseño

7 22/05/2013

3 Fase de implementación3.1. Determinación del lenguaje y metodología

Revisión de Avances del Proyecto Final

8 23/05/2013

3.2. Implementación de requerimientos del modeloExposición del tema investigado por el equipo #2: Ingeniería de Softwareasistida por computadora.

9 27/05/2013

3.3. Programación3.3.1. Métodos ágiles3.3.2. Programación extrema3.3.3. Desarrollo rápido de aplicaciones3.3.4. Prototipado de Software

10 28/03/20133.4. Implementación

4. Fase de pruebas y mantenimiento

11 29/05/2013 Repaso de clase para presentar el primer examen parcialRevisión de avances del proyecto final.

12 30/05/2013 EXAMEN PRIMER PARCIAL

13 03/06/2013

4.1. Diseño de pruebasExposición del tema investigado por el equipo #3: Diseños deInterfaces de Usuarios

14 04/06/2013 4.2. Estrategias de prueba

Page 14: INGENIERÍA DE SOFTWARE

15 05/06/2013 4.3. Plan de mantenimiento

16 06/06/2013Exposición del tema investigado por el equipo #4: Atributos de los sistemas yaplicaciones basados en WEB

17 10/06/2013 Exposiciones del proyecto final equipos #1, #2,#3

18 11/06/2013 Exposición del Proyecto final Equipo #4Repaso para el Segundo Examen Parcial

19 12/06/2013 EXAMEN SEGUNDO PARCIAL20 13/06/2013 ENTREGA DE CALIFICACIONES ORDINARIAS

EXAMEN EXTRAORDINARIOS

Page 15: INGENIERÍA DE SOFTWARE

Contents

M.C. JOSÉ BENITO FRANCO URREAM.C. JOSÉ BENITO FRANCO URREAPROFESOR:PROFESOR:

Page 16: INGENIERÍA DE SOFTWARE

Contents

Page 17: INGENIERÍA DE SOFTWARE

DEFINICIONES

Page 18: INGENIERÍA DE SOFTWARE

DEFINICIONES

Page 19: INGENIERÍA DE SOFTWARE

DEFINICIONES

Page 20: INGENIERÍA DE SOFTWARE

TAREA: Buscar una Definición de Ingeniería de Software. Agregarla aTAREA: Buscar una Definición de Ingeniería de Software. Agregarla aSu portafolio.Su portafolio.

Page 21: INGENIERÍA DE SOFTWARE

Contents

Page 22: INGENIERÍA DE SOFTWARE

Contents

Page 23: INGENIERÍA DE SOFTWARE
Page 24: INGENIERÍA DE SOFTWARE

Contents

Page 25: INGENIERÍA DE SOFTWARE

Contents

Page 26: INGENIERÍA DE SOFTWARE

Contents

Page 27: INGENIERÍA DE SOFTWARE

Contents

Page 28: INGENIERÍA DE SOFTWARE
Page 29: INGENIERÍA DE SOFTWARE

Contents

Page 30: INGENIERÍA DE SOFTWARE

Contents

Page 31: INGENIERÍA DE SOFTWARE

Contents

Page 32: INGENIERÍA DE SOFTWARE

Contents

Page 33: INGENIERÍA DE SOFTWARE

Contents

Page 34: INGENIERÍA DE SOFTWARE

Contents

Page 35: INGENIERÍA DE SOFTWARE

Ver Video.

http://www.youtube.com/watch?v=UZq4sZz56qM

Page 36: INGENIERÍA DE SOFTWARE
Page 37: INGENIERÍA DE SOFTWARE

Contents

Page 38: INGENIERÍA DE SOFTWARE

Contents

Page 39: INGENIERÍA DE SOFTWARE

Contents

Page 40: INGENIERÍA DE SOFTWARE

Contents

Page 41: INGENIERÍA DE SOFTWARE
Page 42: INGENIERÍA DE SOFTWARE

Contents

Page 43: INGENIERÍA DE SOFTWARE
Page 44: INGENIERÍA DE SOFTWARE

Contents

Page 45: INGENIERÍA DE SOFTWARE
Page 46: INGENIERÍA DE SOFTWARE
Page 47: INGENIERÍA DE SOFTWARE
Page 48: INGENIERÍA DE SOFTWARE

Contents

Page 49: INGENIERÍA DE SOFTWARE
Page 50: INGENIERÍA DE SOFTWARE
Page 51: INGENIERÍA DE SOFTWARE

Contents

Page 52: INGENIERÍA DE SOFTWARE

Contents

Page 53: INGENIERÍA DE SOFTWARE

Contents

Page 54: INGENIERÍA DE SOFTWARE

Contents

Page 55: INGENIERÍA DE SOFTWARE
Page 56: INGENIERÍA DE SOFTWARE
Page 57: INGENIERÍA DE SOFTWARE
Page 58: INGENIERÍA DE SOFTWARE
Page 59: INGENIERÍA DE SOFTWARE
Page 60: INGENIERÍA DE SOFTWARE
Page 61: INGENIERÍA DE SOFTWARE
Page 62: INGENIERÍA DE SOFTWARE
Page 63: INGENIERÍA DE SOFTWARE
Page 64: INGENIERÍA DE SOFTWARE
Page 65: INGENIERÍA DE SOFTWARE
Page 66: INGENIERÍA DE SOFTWARE
Page 67: INGENIERÍA DE SOFTWARE
Page 68: INGENIERÍA DE SOFTWARE
Page 69: INGENIERÍA DE SOFTWARE
Page 70: INGENIERÍA DE SOFTWARE
Page 71: INGENIERÍA DE SOFTWARE
Page 72: INGENIERÍA DE SOFTWARE
Page 73: INGENIERÍA DE SOFTWARE
Page 74: INGENIERÍA DE SOFTWARE
Page 75: INGENIERÍA DE SOFTWARE
Page 76: INGENIERÍA DE SOFTWARE
Page 77: INGENIERÍA DE SOFTWARE
Page 78: INGENIERÍA DE SOFTWARE
Page 79: INGENIERÍA DE SOFTWARE
Page 80: INGENIERÍA DE SOFTWARE
Page 81: INGENIERÍA DE SOFTWARE
Page 82: INGENIERÍA DE SOFTWARE
Page 83: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 2: Reporte de lectura del tema PREGUNTAS FRECUENTES

Preguntas frecuentes sobre Ingeniería del Software

¿Qué es el Software?

¿Cuál es la importancia y coste del Software?

¿Qué es la Ingeniería del Software?

¿Cuál es la diferencia entre Ingeniería del Software e Ingeniería de Sistemas?

¿Qué es un sistema y un sistema de información?

¿Qué es un proceso software y un método de desarrollo?

¿Cómo se gestiona el proceso?

¿Qué es CASE (Computer-Aided Software Engineering)?

¿Cuáles son las responsabilidades de un Ingeniero Software?

¿Qué es el Lenguaje Unificado de Modelado (UML)?

Page 84: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 2: Reporte de lectura del tema PREGUNTAS FRECUENTES¿Qué es el Software?

Hace referencia a los programas y toda la información asociada y materiales necesarios parasoportar su instalación, operación, reparación y mejora.

Para construir un nuevo elemento software se necesita:

Detallar las especificaciones Diseñar la solución Codificar el algoritmo Probar el programa Documentar Mantener

Es lo que se conoce como el ciclo de vida del software.

¿Cuál es la importancia y coste del Software?

La importancia.

Las economías de todos las países son cada vez más y más dependientes del software.

Cada vez más y más sistemas están controlados por software.

El gasto en desarrollo de software está aumentando su porcentaje en el PIB de todos las países.

Los costes

Los costes que representa el Software son a menudo mayores que el hardware.

El mantenimiento resulta más caro que el desarrollo:

En sistemas de vida larga puede ser varias veces más caro.

La Ingeniería del Software tiene que ver con el desarrollo de forma que sea económicamenteviable.

Page 85: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 2: Reporte de lectura del tema PREGUNTAS FRECUENTES

¿Qué es la Ingeniería del Software?

Disciplina que se ocupa del desarrollo del software.

Se enfrenta al software como un producto de ingeniería que requiere: planificación, análisis,diseño, implementación, pruebas y mantenimiento.

Trata de las teorías, métodos y herramientas que los profesionales del desarrollo del softwaredeben utilizar.

¿Cuál es la diferencia entre Ingeniería del Software e Ingeniería de Sistemas?

La Ingeniería de sistemas tiene que ver con todos los aspectos del desarrollador de sistemasbasados en computadoras: hardware, software e ingeniería de procesos.

La Ingeniería de Software es una parte de este proceso.

¿Qué es un sistema y un sistema de información?

Un Sistema es un conjunto de elementos (hombres, maquinas, métodos, reglas) en interacción,que transforman (mediante un proceso) unos elementos (entradas) en otros (salidas).

Un Sistema de Información está encargado de almacenar y tratar informaciones sobre elsistema físico para ponerlas a disposición del sistema de gestión, recibir decisiones sobre supropio control, interaccionar con el sistema físico.

¿Qué es un proceso software y un método de desarrollo?

Un Proceso de Software es un conjunto estructurado de actividades y resultados asociados queconducen a la creación de un producto de software.

Un Método de Desarrollo es un conjunto de procedimientos, técnicas, herramientas y unsoporte documental que ayuda a los desarrolladores a realizar nuevo software.

Page 86: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 2: Reporte de lectura del tema PREGUNTAS FRECUENTES

¿Cómo se gestiona el proceso?

Organizar, planificar y programar los proyectos de software:

Estimación del coste del proyecto Planificación y calendarización del proyecto Gestión de la configuración del software Calidad del software.

¿Qué es CASE (Computer-Aided Software Engineering)?

Es el software que se utiliza para ayudar a las actividades de desarrollo y evolución delsoftware.

¿Cuáles son las responsabilidades de un Ingeniero Software?

Los Ingenieros en Software deben comportarse de modo honesto y ético si quieren lograrrespeto como profesionales.

¿Qué es el Lenguaje Unificado de Modelado (UML)?

Es un lenguaje para representar los modelos de cualquier modelo OO.

Inicialmente es Un lenguaje para especificar, construir y documentar artefactos software, quepretende cubrir los conceptos de Booch, OMT y OOSE con un lenguaje simple, común yampliamente utilizable por usuarios de otras metodologías.

Page 87: INGENIERÍA DE SOFTWARE

PREGUNTAS MAS FRECUENTES DE INGENIERIA DELSOFTWARE.

EQUIPO 1.JESUS ISIDRO GONZALEZ E.

VICTOR HUGO IBARRA ORTIZ.CD. OBREGON, SON. A 16 DE MAYO DE 2013.

Page 88: INGENIERÍA DE SOFTWARE

¿Qué es un Software?EEll softwaresoftware nono sonson sólosólo programas,programas, sinosino todostodos loslosdocumentosdocumentos asociadosasociados yy lala configuraciónconfiguración dede datosdatos quequesese necesitannecesitan parapara hacerhacer queque estosestos programasprogramas operenoperen dedemaneramanera correctacorrecta.. PorPor lolo general,general, unun sistemasistema dede softwaresoftwareconsisteconsiste enen diversosdiversos programasprogramas independientes,independientes, archivosarchivosdede configuraciónconfiguración queque sese utilizanutilizan parapara ejecutarejecutar estosestosprogramas,programas, unun sistemasistema dede documentacióndocumentación queque describedescribelala estructuraestructura deldel sistema,sistema, lala documentacióndocumentación parapara elelusuariousuario queque explicaexplica cómocómo utilizarutilizar elel sistemasistema yy sitiossitios webwebqueque permi­tanpermi­tan aa loslos usuariosusuarios descargardescargar lala informacióninformación dedeproductosproductos recientesrecientes..

EEll softwaresoftware nono sonson sólosólo programas,programas, sinosino todostodos loslosdocumentosdocumentos asociadosasociados yy lala configuraciónconfiguración dede datosdatos quequesese necesitannecesitan parapara hacerhacer queque estosestos programasprogramas operenoperen dedemaneramanera correctacorrecta.. PorPor lolo general,general, unun sistemasistema dede softwaresoftwareconsisteconsiste enen diversosdiversos programasprogramas independientes,independientes, archivosarchivosdede configuraciónconfiguración queque sese utilizanutilizan parapara ejecutarejecutar estosestosprogramas,programas, unun sistemasistema dede documentacióndocumentación queque describedescribelala estructuraestructura deldel sistema,sistema, lala documentacióndocumentación parapara elelusuariousuario queque explicaexplica cómocómo utilizarutilizar elel sistemasistema yy sitiossitios webwebqueque permi­tanpermi­tan aa loslos usuariosusuarios descargardescargar lala informacióninformación dedeproductosproductos recientesrecientes..

Page 89: INGENIERÍA DE SOFTWARE

Tipos de productos de software.Existen dos productos:1. Productos genéricos. Son sistemas aislados producidos por unaorganización de des­arrollo y que se venden al mercado abierto acualquier cliente que le sea posible comprarlos. Ejemplos de estetipo de producto son el software para Pc´s tales como bases dedatos, procesadores de texto, paquetes de dibujo y herramientasde gestión de proyectos.2. Productos personalizados (o hechos a medida). Son sistemasrequeridos por un clien­te en particular. Un contratista de softwaredesarrolla el software especialmente para ese cliente. Ejemplos deeste tipo de software son los sistemas de control parainstru­mentos electrónicos, sistemas desarrollados para llevar acabo procesos de negocios específicos y sistemas de control deltráfico aéreo.

Existen dos productos:1. Productos genéricos. Son sistemas aislados producidos por unaorganización de des­arrollo y que se venden al mercado abierto acualquier cliente que le sea posible comprarlos. Ejemplos de estetipo de producto son el software para Pc´s tales como bases dedatos, procesadores de texto, paquetes de dibujo y herramientasde gestión de proyectos.2. Productos personalizados (o hechos a medida). Son sistemasrequeridos por un clien­te en particular. Un contratista de softwaredesarrolla el software especialmente para ese cliente. Ejemplos deeste tipo de software son los sistemas de control parainstru­mentos electrónicos, sistemas desarrollados para llevar acabo procesos de negocios específicos y sistemas de control deltráfico aéreo.

Page 90: INGENIERÍA DE SOFTWARE

¿Qué es la ingeniería del software?

Es una disciplina de la ingeniería que comprendetodos los aspec­tos de la producción desoftware desde las etapas iniciales de laespecificación del sistema, hasta elmantenimiento de éste después de que seutiliza.

Es una disciplina de la ingeniería que comprendetodos los aspec­tos de la producción desoftware desde las etapas iniciales de laespecificación del sistema, hasta elmantenimiento de éste después de que seutiliza.

Page 91: INGENIERÍA DE SOFTWARE

Disciplina de la ingenieríaLos ingenieros hacen que las cosas funcionen. Aplicanteorías. Métodos y herramientas donde seanconvenientes, pero las utilizan de Forma selectiva ysiempre tratando de descubrir soluciones a losproblemas, aun cuando no existan teorías y métodosaplicables para resolverlos. Los ingenieros tambiénsaben que deben trabajar con restricciones financierasy organizacionales. por lo que buscan solucionestomando en cuenta estas restricciones.

Los ingenieros hacen que las cosas funcionen. Aplicanteorías. Métodos y herramientas donde seanconvenientes, pero las utilizan de Forma selectiva ysiempre tratando de descubrir soluciones a losproblemas, aun cuando no existan teorías y métodosaplicables para resolverlos. Los ingenieros tambiénsaben que deben trabajar con restricciones financierasy organizacionales. por lo que buscan solucionestomando en cuenta estas restricciones.

Page 92: INGENIERÍA DE SOFTWARE

Todos los aspectos de producción de software

La ingeniería del software no sólocomprende los procesos técnicos deldesarrollo de software sino también conactivi­dades tales como la gestión deproyectos de software y el desarrollo deherramientas, métodos y teorías de apoyoa la producción de software.

La ingeniería del software no sólocomprende los procesos técnicos deldesarrollo de software sino también conactivi­dades tales como la gestión deproyectos de software y el desarrollo deherramientas, métodos y teorías de apoyoa la producción de software.

Page 93: INGENIERÍA DE SOFTWARE

¿Cuál es la diferencia entre ingeniería del software yciencia

de la computación?

Esencialmente, la ciencia de la computación serefiere a las teorías y métodos subyacentes alascomputadoras y los sistemas de software,mientras que la ingeniería del software se refie­rea los problemas prácticos de producir software.Los ingenieros de software requieren cier­tosconocimientos de ciencia de la computación, de lamisma forma que los ingenieros eléc­tricosrequieren conocimientos de física.

Esencialmente, la ciencia de la computación serefiere a las teorías y métodos subyacentes alascomputadoras y los sistemas de software,mientras que la ingeniería del software se refie­rea los problemas prácticos de producir software.Los ingenieros de software requieren cier­tosconocimientos de ciencia de la computación, de lamisma forma que los ingenieros eléc­tricosrequieren conocimientos de física.

Page 94: INGENIERÍA DE SOFTWARE

¿Cuál es la diferencia entre ingeniería delsoftware e ingeniería

de sistemas?

La ingeniería de sistemas se refiere a todos los aspectosdel desarrollo y de la evolución de sistemas complejosdonde el software desempeña un papel principal. Por lotanto, la ingenie­ría de sistemas comprende el desarrollode hardware, políticas y procesos de diseño y distri­buciónde sistemas, así como la ingeniería del software. Losingenieros de sistemas están in­volucrados en laespecificación del sistema, en la definición de suarquitectura y en la integración de las diferentes partespara crear el sistema final. Están menos relacionados conla ingeniería de los componentes del sistema (hardware,software, etc.).

La ingeniería de sistemas se refiere a todos los aspectosdel desarrollo y de la evolución de sistemas complejosdonde el software desempeña un papel principal. Por lotanto, la ingenie­ría de sistemas comprende el desarrollode hardware, políticas y procesos de diseño y distri­buciónde sistemas, así como la ingeniería del software. Losingenieros de sistemas están in­volucrados en laespecificación del sistema, en la definición de suarquitectura y en la integración de las diferentes partespara crear el sistema final. Están menos relacionados conla ingeniería de los componentes del sistema (hardware,software, etc.).

Page 95: INGENIERÍA DE SOFTWARE

¿Qué es un proceso del software?

Un proceso del software es un conjunto deactividades y resultados asociados que producenun producto de software. Estas actividades sonllevadas a cabo por los ingenieros de software.Existen cuatro actividades fundamentales deprocesos (incluidas más adelante en este libro)que son comunes para todos los procesos delsoftware.

Un proceso del software es un conjunto deactividades y resultados asociados que producenun producto de software. Estas actividades sonllevadas a cabo por los ingenieros de software.Existen cuatro actividades fundamentales deprocesos (incluidas más adelante en este libro)que son comunes para todos los procesos delsoftware.

Page 96: INGENIERÍA DE SOFTWARE

Actividades1. Especificación del software donde los clientes eingenieros definen el software a pro­ducir y lasrestricciones sobre su operación.2. Desarrollo del software donde el software se diseña yprograma.3. Validación del software donde el software se valida paraasegurar que es lo que el cliente requiere.4. Evolución del software donde el software se modificapara adaptarlo a los cambios re­queridos por el cliente y elmercado.

1. Especificación del software donde los clientes eingenieros definen el software a pro­ducir y lasrestricciones sobre su operación.2. Desarrollo del software donde el software se diseña yprograma.3. Validación del software donde el software se valida paraasegurar que es lo que el cliente requiere.4. Evolución del software donde el software se modificapara adaptarlo a los cambios re­queridos por el cliente y elmercado.

Page 97: INGENIERÍA DE SOFTWARE

¿Qué es un modelo de procesos del software?

Un modelo de procesos del software es unadescripción simplificada de un proceso delsoftware que presenta una visión de ese proceso.Estos modelos pueden incluir actividades que sonparte de los procesos y productos de software y elpapel de las personas involucra­ das en laingeniería del software.

Un modelo de procesos del software es unadescripción simplificada de un proceso delsoftware que presenta una visión de ese proceso.Estos modelos pueden incluir actividades que sonparte de los procesos y productos de software y elpapel de las personas involucra­ das en laingeniería del software.

Page 98: INGENIERÍA DE SOFTWARE

¿Cuáles son los costos de la ingeniería delsoftware?

No existe una respuesta sencilla a esta pregunta ya que ladistribución de costos a través de las diferentes actividades en elproceso del software depende del proceso utilizado y del tipo desoftware que se vaya a desarrollar. Por ejemplo, el software detiempo real normalmente re­quiere una validación y pruebasmás extensas que los sistemas basados en web. Sin embargo,cada uno de los diferentes enfoques genéricos al desarrollo delsoftware tiene un perfil de dis­tribución de costos diferente através de las actividades del proceso del software. Si seconsi­dera que el costo total del desarrollo de un sistema desoftware complejo es de 100 unidades de costo, la Figura 1.2muestra cómo se gastan éstas en las diferentes actividades delproceso.

No existe una respuesta sencilla a esta pregunta ya que ladistribución de costos a través de las diferentes actividades en elproceso del software depende del proceso utilizado y del tipo desoftware que se vaya a desarrollar. Por ejemplo, el software detiempo real normalmente re­quiere una validación y pruebasmás extensas que los sistemas basados en web. Sin embargo,cada uno de los diferentes enfoques genéricos al desarrollo delsoftware tiene un perfil de dis­tribución de costos diferente através de las actividades del proceso del software. Si seconsi­dera que el costo total del desarrollo de un sistema desoftware complejo es de 100 unidades de costo, la Figura 1.2muestra cómo se gastan éstas en las diferentes actividades delproceso.

Page 99: INGENIERÍA DE SOFTWARE
Page 100: INGENIERÍA DE SOFTWARE

¿Qué son los métodos de laingeniería del software?

Un método de ingeniería del software es un enfoque estructurado para eldesarrollo de software cuyo propósito es facilitar la producción de softwarede alta calidad de una forma costeable. Métodos como Análisis Estructurado(DeMarco, 1978) y JSD (Jackson, 1983) fueron los primeros desarrollados enlos años 70. Estos métodos intentaron identificar los componentesfuncionales básicos de un sistema, de tal forma que los métodos orien­tadosa funciones aún se utilizan ampliamente. En los años 80 y 90. estos métodosorienta­ dos a funciones fueron complementados por métodos orientados aobjetos. como los propuestos por Booch (1994) y Rumbaugh (Rumbaugh elal., 1991). Estos diferentes enfoques se han integrado en un solo enfoqueunificado basado en el Lenguaje de Mode­lado Unificado (UML) (Booch el al.,1999; Rumbaugh el al., I999a; Rumbaugh el al., 1999b).

Un método de ingeniería del software es un enfoque estructurado para eldesarrollo de software cuyo propósito es facilitar la producción de softwarede alta calidad de una forma costeable. Métodos como Análisis Estructurado(DeMarco, 1978) y JSD (Jackson, 1983) fueron los primeros desarrollados enlos años 70. Estos métodos intentaron identificar los componentesfuncionales básicos de un sistema, de tal forma que los métodos orien­tadosa funciones aún se utilizan ampliamente. En los años 80 y 90. estos métodosorienta­ dos a funciones fueron complementados por métodos orientados aobjetos. como los propuestos por Booch (1994) y Rumbaugh (Rumbaugh elal., 1991). Estos diferentes enfoques se han integrado en un solo enfoqueunificado basado en el Lenguaje de Mode­lado Unificado (UML) (Booch el al.,1999; Rumbaugh el al., I999a; Rumbaugh el al., 1999b).

Page 101: INGENIERÍA DE SOFTWARE

¿Qué es CASE?CASE (Ingeniería del Software Asistida por Computadora) comprende unamplio abanico de diferentes tipos de programas que se utilizan paraayudar a las actividades del proceso del soft­ware, como el análisis derequerimientos. el modelado de sistemas, la depuración y las prue­bas. Enla actualidad, todos los métodos vienen con tecnología CASE asociada,como los edi­tores para las notaciones utilizadas en el método, módulosde análisis que verifican el modelo del sistema según las reglas delmétodo y generadores de informes que ayudan a crear la do­cumentacióndel sistema. Las herramientas CASE también incluyen un generador decódigo que automáticamente genera código fuente a partir del modelodel sistema y de algunas guías de procesos para los ingenieros desoftware.

CASE (Ingeniería del Software Asistida por Computadora) comprende unamplio abanico de diferentes tipos de programas que se utilizan paraayudar a las actividades del proceso del soft­ware, como el análisis derequerimientos. el modelado de sistemas, la depuración y las prue­bas. Enla actualidad, todos los métodos vienen con tecnología CASE asociada,como los edi­tores para las notaciones utilizadas en el método, módulosde análisis que verifican el modelo del sistema según las reglas delmétodo y generadores de informes que ayudan a crear la do­cumentacióndel sistema. Las herramientas CASE también incluyen un generador decódigo que automáticamente genera código fuente a partir del modelodel sistema y de algunas guías de procesos para los ingenieros desoftware.

Page 102: INGENIERÍA DE SOFTWARE

¿Cuáles son los atributos de unbuen software?

Así como los servicios que proveen, los productos desoftware tienen un cierto número de atri­butosasociados que reflejan la calidad de ese software. Estosatribulas no están directamen­te asociados con lo queel software hace. Más bien, reflejan sucomportamiento durante su eje­cución y en laestructura y organización del programa fuente y en ladocumentación asociada. Ejemplos de estos atribulas(algunas veces llamados atribulas no funcionales) sonel tiempo de respuesta del software a una pregunta delusuario y la comprensión del programa fuente.

Así como los servicios que proveen, los productos desoftware tienen un cierto número de atri­butosasociados que reflejan la calidad de ese software. Estosatribulas no están directamen­te asociados con lo queel software hace. Más bien, reflejan sucomportamiento durante su eje­cución y en laestructura y organización del programa fuente y en ladocumentación asociada. Ejemplos de estos atribulas(algunas veces llamados atribulas no funcionales) sonel tiempo de respuesta del software a una pregunta delusuario y la comprensión del programa fuente.

Page 103: INGENIERÍA DE SOFTWARE

Esto se generalizaen el conjunto de atributos que se muestra en la Figura 1.5, el

cual tiene las características esencialesde un sistema de software bien diseñado.

Page 104: INGENIERÍA DE SOFTWARE

¿Cuáles son los retos fundamentales que afrontala ingenieríadel software?

En el siglo XXI, la ingeniería del softwareafronta tres retos fundamentales:1. El reto de la hetero8eneidad. Cada vez más. se requiere quelos sistemas operen como sistemas distribuidos en redes queincluyen diferentes tipos de computadoras y con diferentesclases de sistemas de soporte. A menudo es necesario integrarsoftware nue­vo con sistemas heredados más viejos escritos endiferentes lenguajes de programa­ción. El reto de laheterogeneidad es desarrollar técnicas para construir softwarecon­fiable que sea lo suficientemente flexible para adecuarse aesta heterogeneidad.

En el siglo XXI, la ingeniería del softwareafronta tres retos fundamentales:1. El reto de la hetero8eneidad. Cada vez más. se requiere quelos sistemas operen como sistemas distribuidos en redes queincluyen diferentes tipos de computadoras y con diferentesclases de sistemas de soporte. A menudo es necesario integrarsoftware nue­vo con sistemas heredados más viejos escritos endiferentes lenguajes de programa­ción. El reto de laheterogeneidad es desarrollar técnicas para construir softwarecon­fiable que sea lo suficientemente flexible para adecuarse aesta heterogeneidad.

Page 105: INGENIERÍA DE SOFTWARE

2. El reto de la entre8a. Muchas técnicas tradicionalesde ingeniería del software consu­men tiempo. Eltiempo que éstas consumen es para producir unsoftware de calidad. Sin embargo. los negocios de hoyen día deben tener una gran capacidad de respues­ta ycambiar con mucha rapidez. Su software de soportetambién debe cambiar con la misma rapidez. El reto dela entrega es reducir los tiempos de entrega parasistemas grandes y complejos sin comprometer lacalidad del sistema.

2. El reto de la entre8a. Muchas técnicas tradicionalesde ingeniería del software consu­men tiempo. Eltiempo que éstas consumen es para producir unsoftware de calidad. Sin embargo. los negocios de hoyen día deben tener una gran capacidad de respues­ta ycambiar con mucha rapidez. Su software de soportetambién debe cambiar con la misma rapidez. El reto dela entrega es reducir los tiempos de entrega parasistemas grandes y complejos sin comprometer lacalidad del sistema.

Page 106: INGENIERÍA DE SOFTWARE

3. El reto de la confianza. Puesto que el softwaretiene relación con todos los aspectos de nuestravida. es esencial que podamos confiar en él.Esto es especialmente impor­tante en sistemasremotos de software a los que se accede atalvés de páginas web o de interfaces deservicios web. El reto de la confianza esdesarrollar técnicas que de­ muestren que losusuarios pueden confiar en el software.

3. El reto de la confianza. Puesto que el softwaretiene relación con todos los aspectos de nuestravida. es esencial que podamos confiar en él.Esto es especialmente impor­tante en sistemasremotos de software a los que se accede atalvés de páginas web o de interfaces deservicios web. El reto de la confianza esdesarrollar técnicas que de­ muestren que losusuarios pueden confiar en el software.

Page 107: INGENIERÍA DE SOFTWARE

José Juan García BórquezID: 25122003

Reporte de lectura: (CASE) INGENIERÍA EN SOFTWARE ASISTIDA POR COMPUTADORAS(CASE) INGENIERÍA EN SOFTWARE ASISTIDA POR COMPUTADORAS

Son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo desoftware reduciendo el costo de las mismas en términos de tiempo y dinero. Estas herramientas puedenayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso derealizar un diseño del proyecto, calculo de costos automáticamente con el diseño dado, compilaciónautomática, documentación o detección de errores entre otras. Ya en los años 70’s un proyecto llamadoISDOS diseño un lenguaje y por lo tanto un producto que analizaba la relación existente entre losrequisitos de un problema y las necesidades que estos generaban el lenguaje en cuestión sedenominaba PSL (Problem Statement Lenguage) y la aplicación que ayudaba a buscar las necesidades delos diseñadores PSA (Problem Statemet Analyzer).

OBJETIVO DE LA HERRAMIENTA CASE

1. Mejorar la productividad en el desarrollo y mantenimiento del software.2. Aumentar la calidad del software.3. Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas informáticos.4. Mejorar la planificación de un proyecto.5. Aumentar la biblioteca de conocimiento informático de una empresa ayudando a la búsqueda

de soluciones para los requisitos.6. Automatizar el desarrollo del software, la documentación, la generación de código, las pruebas

de errores y la gestión del proyecto.7. Ayuda a la reutilización del software, portabilidad y estandarización de la documentación.8. Gestión global en todas las fases de desarrollo de software con una misma herramienta.9. Facilitar el uso de las distintas metodologías propias de la ingeniería del software.

CLASIFICACIÓN DE LA HERRAMIENTA CASE

Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas CASE se puedenclasificar teniendo en cuenta los siguientes parámetros:

1. Las plataformas que soportan.2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.3. La arquitectura de las aplicaciones que producen.4. Su funcionalidad.

La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren:

Upper CASE (U-CASE), herramientas que ayudan en las fases de planificación, análisis derequisitos y estrategia del desarrollo, usando, entre otros diagramas UML.

Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de laaplicación.

Page 108: INGENIERÍA DE SOFTWARE

José Juan García BórquezID: 25122003

Reporte de lectura: (CASE) INGENIERÍA EN SOFTWARE ASISTIDA POR COMPUTADORAS Lower CASE (L-CASE), herramientas que semi-automatizan la generación de código, crean

programas de detección de errores, soportan la depuración de programas y pruebas. Ademásautomatizan la documentación completa de la aplicación. Aquí pueden incluirse lasherramientas de Desarrollo rápido de aplicaciones.

Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificaciónexcluyente entre sí, ni con la anterior:

Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software,desde análisis hasta implementación.

MetaCASE, herramientas que permiten la definición de nuestra propia técnica de modelado, loselementos permitidos del metamodelo generado se guardan en un repositorio y pueden serusados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestroselementos, restricciones y relaciones posibles.

CAST (Computer-Aided Software Testing), herramientas de soporte a la prueba de software. IPSE (Integrated Programming Support Environment), herramientas que soportan todo el ciclo

de vida, incluyen componentes para la gestión de proyectos y gestión de la configuración activa.

José Juan García BórquezID: 25122003

Reporte de lectura: (CASE) INGENIERÍA EN SOFTWARE ASISTIDA POR COMPUTADORAS Lower CASE (L-CASE), herramientas que semi-automatizan la generación de código, crean

programas de detección de errores, soportan la depuración de programas y pruebas. Ademásautomatizan la documentación completa de la aplicación. Aquí pueden incluirse lasherramientas de Desarrollo rápido de aplicaciones.

Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificaciónexcluyente entre sí, ni con la anterior:

Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software,desde análisis hasta implementación.

MetaCASE, herramientas que permiten la definición de nuestra propia técnica de modelado, loselementos permitidos del metamodelo generado se guardan en un repositorio y pueden serusados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestroselementos, restricciones y relaciones posibles.

CAST (Computer-Aided Software Testing), herramientas de soporte a la prueba de software. IPSE (Integrated Programming Support Environment), herramientas que soportan todo el ciclo

de vida, incluyen componentes para la gestión de proyectos y gestión de la configuración activa.

José Juan García BórquezID: 25122003

Reporte de lectura: (CASE) INGENIERÍA EN SOFTWARE ASISTIDA POR COMPUTADORAS Lower CASE (L-CASE), herramientas que semi-automatizan la generación de código, crean

programas de detección de errores, soportan la depuración de programas y pruebas. Ademásautomatizan la documentación completa de la aplicación. Aquí pueden incluirse lasherramientas de Desarrollo rápido de aplicaciones.

Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificaciónexcluyente entre sí, ni con la anterior:

Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software,desde análisis hasta implementación.

MetaCASE, herramientas que permiten la definición de nuestra propia técnica de modelado, loselementos permitidos del metamodelo generado se guardan en un repositorio y pueden serusados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestroselementos, restricciones y relaciones posibles.

CAST (Computer-Aided Software Testing), herramientas de soporte a la prueba de software. IPSE (Integrated Programming Support Environment), herramientas que soportan todo el ciclo

de vida, incluyen componentes para la gestión de proyectos y gestión de la configuración activa.

Page 109: INGENIERÍA DE SOFTWARE

Ingeniería desoftware asistidapor computadora

Edgar Javier Urquijo RascónOscar Fermín Vega Cota

Page 110: INGENIERÍA DE SOFTWARE

ÍNDICE

PRIMERA PARTE (EDGAR)SEGUNDA PARTE (OSCAR)TERCERA PARTE (EDGAR)

PRIMERA PARTE (EDGAR)SEGUNDA PARTE (OSCAR)TERCERA PARTE (EDGAR)

Page 111: INGENIERÍA DE SOFTWARE

ConceptoIngeniería del Software Asistida por Computadora(CASE) es el nombre que se le da al software quese utiliza para ayudar a las actividades delproceso del software como la ingeniería derequerimientos, el diseño. el desarrollo deprogramas y las pruebas. Por lo tanto, lasherramientas CASE incluyen editores de diseño.diccionarios de datos, compiladores, depuradores,herramientas de construcción de sistemas.etcétera.

Ingeniería del Software Asistida por Computadora(CASE) es el nombre que se le da al software quese utiliza para ayudar a las actividades delproceso del software como la ingeniería derequerimientos, el diseño. el desarrollo deprogramas y las pruebas. Por lo tanto, lasherramientas CASE incluyen editores de diseño.diccionarios de datos, compiladores, depuradores,herramientas de construcción de sistemas.etcétera.

Page 112: INGENIERÍA DE SOFTWARE

La tecnología CASE proporciona ayuda al proceso del softwareautomatizando algunas de sus actividades. así como proporcionandoinformación acerca del software en desarrollo. Algunos ejemplos de lasactividades que se pueden automatizar utilizando CASE son:

l. El desarrollo de modelos gráficos del sistema como parte de la especificaciónde requerimientos o del diseño de software.2. La comprensión del diseño utilizando un diccionario de datos que tieneinformaciónsobre las entidades y relaciones del diseño.3. La generación de interfaces de usuario a partir de la descripción gráfica dela interfazque es elaborada de forma interactiva por el usuario.4. La depuración de programas por medio de la provisión de la informaciónproporcionadapor los programas en ejecución.5. La conversión automática de programas de una versión anterior de unalenguaje deprogramación. como COBOL. a una versión más reciente.

La tecnología CASE proporciona ayuda al proceso del softwareautomatizando algunas de sus actividades. así como proporcionandoinformación acerca del software en desarrollo. Algunos ejemplos de lasactividades que se pueden automatizar utilizando CASE son:

l. El desarrollo de modelos gráficos del sistema como parte de la especificaciónde requerimientos o del diseño de software.2. La comprensión del diseño utilizando un diccionario de datos que tieneinformaciónsobre las entidades y relaciones del diseño.3. La generación de interfaces de usuario a partir de la descripción gráfica dela interfazque es elaborada de forma interactiva por el usuario.4. La depuración de programas por medio de la provisión de la informaciónproporcionadapor los programas en ejecución.5. La conversión automática de programas de una versión anterior de unalenguaje deprogramación. como COBOL. a una versión más reciente.

Page 113: INGENIERÍA DE SOFTWARE

La tecnología CASE está disponible para ía mayoría de lasactividades rutinarias en el proceso del software. Estopermite algunas mejoras en la calidad y productividad delsoftware, aunque éstas sean menores que lali predichas porlos primeros partidarios de CASE. Éstos sugirieron que setendría una mejora mayor si se utilizamn entornos CASEintegrados. En realidad. Las mejoras reales son del 40%(Huff, 1992). Aunque esto es significante. las prediccionesque sehicieron cuando se introdujeron las herramientas CASE enlos años 80 y 90 fueron que el uso de la tecnología CASEgeneraría entonces ahorros en los costos del proceso delsoftware.

La tecnología CASE está disponible para ía mayoría de lasactividades rutinarias en el proceso del software. Estopermite algunas mejoras en la calidad y productividad delsoftware, aunque éstas sean menores que lali predichas porlos primeros partidarios de CASE. Éstos sugirieron que setendría una mejora mayor si se utilizamn entornos CASEintegrados. En realidad. Las mejoras reales son del 40%(Huff, 1992). Aunque esto es significante. las prediccionesque sehicieron cuando se introdujeron las herramientas CASE enlos años 80 y 90 fueron que el uso de la tecnología CASEgeneraría entonces ahorros en los costos del proceso delsoftware.

Page 114: INGENIERÍA DE SOFTWARE

Las mejoras por la utilización de CASE estánlimitadas por dos factores:

1. Esencialmente. la ingeniería del software es unaactividad de diseño que se basa en la creatividad.Los sistemas CASE automatizan las actividadesrutinarias. pero los intentos de utilizar la inteligenciaartificial para proporcionar ayuda al diseño no hantenido éxito.2. En la mayoría de las organizaciones. laingeniería del software es una actividad de equipo.y los ingenieros invierten mucho tiempointeractuando con los otros miembros del equipo.La tecnología CASE no proporciona mucha ayudapara esto.

Las mejoras por la utilización de CASE estánlimitadas por dos factores:

1. Esencialmente. la ingeniería del software es unaactividad de diseño que se basa en la creatividad.Los sistemas CASE automatizan las actividadesrutinarias. pero los intentos de utilizar la inteligenciaartificial para proporcionar ayuda al diseño no hantenido éxito.2. En la mayoría de las organizaciones. laingeniería del software es una actividad de equipo.y los ingenieros invierten mucho tiempointeractuando con los otros miembros del equipo.La tecnología CASE no proporciona mucha ayudapara esto.

Page 115: INGENIERÍA DE SOFTWARE

Actualmente, la tecnología CASE está madura yhay herramientas disponibles y bancos detrabajo de un amplio rango de proveedores. Sinembargo, más que centrarse en algunaherramienta específica. aquí se presenta unavisión general, con algunos comentarios de apoyoespecífico en otros capítulos. En la página web seincluyen enlaces a otro material de CASE y aproveedores de herramientas CASE.

Actualmente, la tecnología CASE está madura yhay herramientas disponibles y bancos detrabajo de un amplio rango de proveedores. Sinembargo, más que centrarse en algunaherramienta específica. aquí se presenta unavisión general, con algunos comentarios de apoyoespecífico en otros capítulos. En la página web seincluyen enlaces a otro material de CASE y aproveedores de herramientas CASE.

Page 116: INGENIERÍA DE SOFTWARE
Page 117: INGENIERÍA DE SOFTWARE

Puntos clave Los procesos del software son las actividades relacionadas con la producción de un

sistema software. Los modelos del proceso del software son representantes abstractasde estos procesos

Todos los procesos del software incluyen la especificación. el diseño, la implementación.la validación y la evolución del software.

Los modelos genéricos del proceso describen la organización de los procesos delsoftware. Ejemplos de estos modelos son el modelo en cascada, el desarrollo evolutivo yla ingeniería del software basada en componentes.

Los modelos de Iteración de procesos presentan el proceso del software como un ciclode actividades. La ventaja de este enfoque es que evita compromisos prematuros conuna especificación o diseño. Ejemplos de este tipo de modelos son el desarrolloIncremental y el modelo en espiral.

La ingeniería de requerimientos es el proceso de desarrollar una especificación delsoftware. Las especificaciones pretenden comunicar las necesidades del sistema delcliente a los desarrolladores del sistema.

Los procesos de diseño e Implementación comprenden la transformación de laespecificación de los requerimientos en un sistema software ejecutable. Los métodossistemáticos de diseño se pueden utilizar como parte de esta transformación.

Los procesos del software son las actividades relacionadas con la producción de unsistema software. Los modelos del proceso del software son representantes abstractasde estos procesos

Todos los procesos del software incluyen la especificación. el diseño, la implementación.la validación y la evolución del software.

Los modelos genéricos del proceso describen la organización de los procesos delsoftware. Ejemplos de estos modelos son el modelo en cascada, el desarrollo evolutivo yla ingeniería del software basada en componentes.

Los modelos de Iteración de procesos presentan el proceso del software como un ciclode actividades. La ventaja de este enfoque es que evita compromisos prematuros conuna especificación o diseño. Ejemplos de este tipo de modelos son el desarrolloIncremental y el modelo en espiral.

La ingeniería de requerimientos es el proceso de desarrollar una especificación delsoftware. Las especificaciones pretenden comunicar las necesidades del sistema delcliente a los desarrolladores del sistema.

Los procesos de diseño e Implementación comprenden la transformación de laespecificación de los requerimientos en un sistema software ejecutable. Los métodossistemáticos de diseño se pueden utilizar como parte de esta transformación.

Page 118: INGENIERÍA DE SOFTWARE

la validación del software es el proceso de verificar que el sistema se ajusta a suespecificación y que satisface las necesidades reales de los usuarios del sistema.

la evolución del software se interesa en modificar los sistemas software existentes paracumplir los nuevos requerimientos. Esto se está convirtiendo en el enfoque normal parael desarrollo de sistemas de pequeño y mediano tamaño.

• El Proceso Unificado de Racional es un modelo del proceso moderno y genérico quese organiza en fases (Inicio, elaboración, construcción y transición), pero que separa lasactividades (requerimientos, análisis y diseño, etc.) de estas fases.

• La tecnología CASE proporciona ayuda automatizada a los procesos del software. lasherramientas CASE ayudan a las actividades Individuales del proceso; los bancos detrabajo ayudan a un conjunto de actividades relacionadas; los entornos ayudan a todaso a la mayoría de las actividades del proceso del software.

la validación del software es el proceso de verificar que el sistema se ajusta a suespecificación y que satisface las necesidades reales de los usuarios del sistema.

la evolución del software se interesa en modificar los sistemas software existentes paracumplir los nuevos requerimientos. Esto se está convirtiendo en el enfoque normal parael desarrollo de sistemas de pequeño y mediano tamaño.

• El Proceso Unificado de Racional es un modelo del proceso moderno y genérico quese organiza en fases (Inicio, elaboración, construcción y transición), pero que separa lasactividades (requerimientos, análisis y diseño, etc.) de estas fases.

• La tecnología CASE proporciona ayuda automatizada a los procesos del software. lasherramientas CASE ayudan a las actividades Individuales del proceso; los bancos detrabajo ayudan a un conjunto de actividades relacionadas; los entornos ayudan a todaso a la mayoría de las actividades del proceso del software.

Page 119: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTrabajo en clase: Modelo RUP

Modelo RUP

¿Qué es RUP?

Es un proceso de ingeniería de software, que hace una propuesta orientada por disciplinas para lograr las tareas y

responsabilidades de una organización que desarrolla software.

Su meta principal es asegurar la producción de software de alta calidad que cumpla con las necesidades de

los usuarios, con una planeación y presupuesto predecible.

¿Para quién es RUP?Diseñado para:

–Profesionales en el desarrollo de software.

–Interesados en productos de software.

–Profesionales en la ingeniería y administración de procesos de software.

¿Por qué usar RUP?–Provee un entorno de proceso de desarrollo configurable, basado en estándares.

–Permite tener claro y accesible el proceso de desarrollo que se sigue.

–Permite ser configurado a las necesidades de la organización y del proyecto.

–Provee a cada participante con la parte del proceso que le compete directamente, filtrando el resto.

Características

Dirigido por Casos de Uso: –Los casos de uso son los artefactos primarios para establecer el comportamientodeseado del sistema

Centrado en la Arquitectura: –La arquitectura es utilizada para conceptualizar, construir, administrar yevolucionar el sistema en desarrollo

Iterativo e Incremental:–Maneja una serie de entregas ejecutables–Integra continuamente la arquitectura para producir nuevas versiones mejoradas

Conceptualmente amplio y diverso

Enfoque orientado a objetos

En evolución continua

Adaptable

Repetible

Permite mediciones:–Estimación de costos y tiempo, nivel de avance, etc.

Ciclo de Vida y sus Faces

Page 120: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTrabajo en clase: Modelo RUP

En cuanto a tiempo el ciclo de vida de RUP se descompone en 4 FASES secuenciales, cada cual concluye con un

producto intermedio.

Al terminar cada fase se realiza una evaluación para determinar si se ha cumplido o no con los objetivos de la misma.

Las fases son:

Inicio (Inception)

Elaboración

Construcción

Transición.

Inicio (Inception)

El objetivo general de esta fase es establecer un acuerdo entre todos los interesados acerca de losobjetivos del proyecto.

Es significativamente importante para el desarrollo de nuevo software, ya que se asegura de identificar losriesgos relacionados con el negocio y requerimientos.

Para proyectos de mejora de software existente, esta fase es más breve y se centra en asegurar la viabilidad dedesarrollar el proyecto.

Page 121: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTrabajo en clase: Modelo RUP

Elaboración

El objetivo en esta fase es establecer la arquitectura base del sistema para proveer bases estables para elesfuerzo de diseño e implementación en la siguiente fase.

La arquitectura debe abarcar todas las consideraciones de mayor importancia de los requerimientos y unaevaluación del riesgo.

Construcción

El objetivo de la fase de construcción es clarificar los requerimientos faltantes y completar el desarrollodel sistema basados en la arquitectura base.

Vista de cierta forma esta fase es un proceso de manufactura, en el cual el énfasis se torna hacia laadministración de recursos y control de la operaciones para optimizar costos, tiempo y calidad.

Transición

Esta fase se enfoca en asegurar que el software esté disponible para sus usuarios.

Se puede subdividir en varias iteraciones, además incluye pruebas del producto para poder hacer el entregabledel mismo, así como realizar ajuste menores de acuerdo a ajuste menores propuestos por el usuario.

En este punto, la retroalimentación de los usuarios se centra en depurar el producto, configuraciones, instalacióny aspectos sobre utilización.

Diagrama General de RUP

Page 122: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTrabajo en clase: Modelo RUP

¿Cuándo usar RUP?

Page 123: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTrabajo en clase: Modelo RUP

RUP puede utilizarse:–En proyectos de nuevos productos de software–En ciclos de desarrollo subsecuentes

Consideraciones que alteran cuándo y cómo usar partes de RUP:–El ciclo de vida del proyecto–Los objetivos del negocio, la visión, el alcance y los riesgos–El tamaño del esfuerzo de desarrollo

Page 124: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 5: investigación de las 4 fases del RUPLas 4 Fases Del Modelo RUP

El Proceso Unificado de Rational (RUP) es un modelo de proceso moderno. Proviene del trabajoen UML y el Proceso Unificado de Desarrollo de Software introducido por Rumbaugh en 1999.

Las 4 Fases del modelo RUP son:

Inicio. Elaboración. Construcción. Transición.

INICIO

El objetivo de esta fase es establecer un caso de negocio para el sistema.

Se deben identificar todas las entidades externas (personas y sistemas) que interactuaran con elsistema y definir estas interacciones.

Esta información se utiliza entonces para evaluar qué aporte hace el sistema al negocio.

Si este aporte es de poca importancia, se cancela el proyecto.

ELABORACIÓN

Los objetivos de esta fase son:

Comprender el dominio del problema. Establecer un marco de trabajo arquitectónico para el sistema. Desarrollar el plan del proyecto. Identificar los riesgos clave del proyecto.

Al terminar esta fase, conseguimos un modelo de los requerimientos del sistema (se especificanlos casos de uso en UML), una descripción arquitectónica y un plan de desarrollo del software.

CONSTRUCCIÓN

Esta fase comprende el Diseño del Sistema, la Programación y las Pruebas.

En esta fase se desarrollan e integran las partes del sistema. Al terminala, tenemos un Sistemade Software Operativo, la Documentacion lista para entregar al usuario.

Page 125: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 5: investigación de las 4 fases del RUPTRANSICIÓN (Fase final del RUP).

Mueve el sistema desde la comunidad de desarrollo a la comunidad del usuario y hacerlotrabajar en un entorno real.

Esto se deja de lado en la mayor parte de los modelos de procesos del software pero es, enrealidad, una actividad de alto costo de problemática.

Al terminar esta fase, tenemos un Sistema de Software Documentado, que funcionacorrectamente en su entorno operativo.

Page 126: INGENIERÍA DE SOFTWARE

José Juan García BórquezID: 25122003

Trabajo de clase 2

CALIDAD DE SOFTWARE

La calidad del software es, según Pressman, la “concordancia con los requisitos funcionales yde rendimiento, con los estándares de desarrollo y con las características implícitas que seespera del software desarrollado profesionalmente”

*No existe una definición única de calidad, ya que:

-Es un concepto relativo (es una compleja mezcla de factores que varía para las diferentesaplicaciones y los clientes que las solicitan).

-Es un concepto multidimensional, referido a muchas cualidades.

-Está ligada a restricciones (por ejemplo, el presupuesto).

-Está ligada a compromisos aceptables (por ejemplo, plazos de fabricación).

-No es ni totalmente subjetiva ni objetiva.

Puede resultar transparente cuando está presente y reconocible cuando está ausente.

*Actualmente, la calidad del SW debe tenerse en cuenta a dos niveles:

A nivel de empresa: para conseguir software de calidad, las organizaciones deben tener unaestructura organizativa apropiada para fomentar el trabajo por la calidad de todas las personasy departamentos de la empresa, además de fomentar procesos específicos para asegurar lacalidad.

A nivel de proyecto: se trata de llevar a la práctica en las actividades cotidianas lasdisposiciones fijadas en el sistema de calidad. Se aplica durante todo el proceso de ingenieríadel software, es decir, en Análisis, Diseño, Codificación y Prueba.

Calidad Realizada: que sería el grado de cumplimiento de las especificaciones que la personaque realiza el trabajo es capaz de conseguir.

Calidad Programada: nivel de calidad que es necesario obtener, es la encomendada alresponsable del trabajo.

Page 127: INGENIERÍA DE SOFTWARE

José Juan García BórquezID: 25122003

Trabajo de clase 2

UTILIDAD DE LAS MÉTRICAS

Es una metodología de planificación, desarrollo y mantenimiento de sistemas de información.Promovida por el Ministerio de Administraciones Públicas del Gobierno de España para lasistematización de actividades del ciclo de vida de los proyectos software en el ámbito de lasadministraciones pública.

Las métricas del software se clasifican en:

Métricas de productividad, se centran en el rendimiento del proceso de la ingeniería de

software.

Métricas de Calidad, proporcionan una indicación de cómo se ajusta el software, a los

requerimientos implícitos y explícitos del cliente.

Métricas Técnicas, se centran en el carácter del software mas que en el proceso, a través

del cual el software a sido desarrollado.

Métricas Orientadas al tamaño, son utilizadas para obtener medidas directas del

resultado y la calidad de la ingeniería del software.

Métricas Orientadas a la Función, son medidas indirectas del software y del proceso por el

cual se desarrollará; se centran en la funcionalidad o utilidad del programa (Puntos de

Función)

Métricas Orientadas a la persona, consiguen información sobre la forma en que la gente

desarrolla software de computadora y sobre el punto de vista humano de la efectividad de

las herramientas y métodos.

¿QUÉ ES UN CONTRATO Y PARA QUÉ SIRVE?

Contrato es un término con origen en el vocablo latino contractus que nombra al convenio opacto, ya sea oral o escrito, entre partes que aceptan ciertas obligaciones y derechos sobreuna materia determinada. El documento que refleja las condiciones de este acuerdo tambiénrecibe el nombre de contrato.

Por ejemplo: “El jugador chileno firmará el contrato en las próximas horas y se sumará demanera inmediata al equipo”, “Mañana tenemos que ir a la inmobiliaria a firmar el contratopara la renovación del alquiler”, “La empresa violó las condiciones del contrato y serámultada”.

El contrato, en definitiva, es un acuerdo de voluntades que se manifiesta en común entre dos omás personas (físicas o jurídicas). Sus cláusulas regulan las relaciones entre los firmantes enuna determinada materia.

Page 128: INGENIERÍA DE SOFTWARE

José Juan García BórquezID: 25122003

Trabajo de clase 2

MODELO RUP

El Proceso Unificado de Rational (Rational Unified Process en inglés, habitualmente resumidocomo RUP) es un proceso de desarrollo de software desarrollado por la empresa RationalSoftware, actualmente propiedad de IBM. Junto con el Lenguaje Unificado de Modelado UML,constituye la metodología estándar más utilizada para el análisis, diseño, implementación ydocumentación de sistemas orientados a objetos.

Page 129: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Trabajo de clase 3GESTION DE DESARROLLO DEL SOFTWARE (Planeación, Calendarización y Gestión

del Riesgo).

Planeación.

Durante el proyecto siempre surgen problemas en algunas descripciones. Lassuposiciones iniciales y el calendario deben ser más bien pesimistas queoptimistas.

Fija los recursos disponibles, divide el trabajo y crea un calendario de trabajo.

Muchos planes incluyen:

Introducción. Organización del proyecto. Análisis de riesgo. Requerimientos de recursos de hardware y software. División de trabajo. Programa del proyecto. Mecanismo de supervisión e informes.

Calendarización.

Esta es una de las tareas más difíciles para los gestores de proyectos. Los gestoresestiman el tiempo y los recursos requeridos para completar las actividades yorganizarlas en una sucesión coherente, las estimaciones previas son una baseincierta para la calendarización del nuevo proyecto.

Si el proyecto es técnicamente complejo, las estimaciones iniciales casi siempreson optimistas aun cuando los gestores traten de considerar las eventualidades.

Los calendarios se deben actualizar continuamente en la medida que se dispongade mejor información acerca del progreso.

La calendarización implica separar todo el trabajo de un proyecto en actividadescomplementarias y considerar el tiempo requerido para completar dichasactividades. Por lo general, algunas de estas se llevan a cabo en paralelo.

Page 130: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Trabajo de clase 3Debemos coordinar estas actividades paralelas y organizar el trabajo para que lamano de obra se utilice de forma optima. Deben evitarse situaciones en que elproyecto entero se retrase debido ha que no se a terminado una actividad critica.

Al estimar la calendarización, los gestores no deben suponer que cada etapa delproyecto estará libre de problemas.

El recurso principal es el esfuerzo humano; a la estimación se le debe agregar unfactor de contingencia adicional. Este factor extra de contingencia depende deltipo de proyecto de los parámetros del proceso (fecha de entrega, estándares,etcétera).

Como regla para los problemas previstos siempre debe agregarse un 30% a laestimación original y otro 20% para cubrir algunas cosas no previstas.

El calendario del proyecto se representa como un conjunto de gráficos quemuestran la división del trabajo, las dependencias de las actividades y laasignación del personal.

Gestión de Riesgo.

Una tarea importante del gestor de proyectos es anticipar los riesgos que podríanafectar a la programación del proyecto o a la calidad del software a desarrollar yemprender acciones para evitar esos riesgos.

Identificar estos y crear planes para minimizar sus efectos en el proyecto se llamagestión de riesgos.

Se puede concebir un riesgo como una probabilidad de que una circunstanciaadversa ocurra. Los riesgos son una amenaza para el proyecto, para el softwareque se está desarrollando y para la organización.

Los riesgos que pueden afectar a un proyecto dependen del propio proyecto y delentorno organizacional donde se desarrolla. Sin embargo algunos riesgos sonuniversales.

Page 131: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Trabajo de clase 3Categorías de riesgos:

1 .- Riesgos del proyecto: estos afectan la calendarización o los recursos delproyecto.

2.- Riesgo del producto; Estos afectan a la calidad o al rendimiento delsoftware que se está desarrollando.

3.- Riesgo del negocio: Estos afectan a la organización que desarrolla osuministra el software.

Es preciso anticiparse a los riesgos: comprender el impacto de estos en elproyecto, en el producto y en el negocio y considerar los pasos para evitarlos. Enel caso de que ocurra, se deben crear planes de contingencia para que sea posibleaplicar acciones de recuperación

Page 132: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Reporte de lectura 3: DISEÑO DE INTERFAZ DE USUARIO

DISEÑO DE INTERFAZ DE USUARIO

El diseño de interfaz de usuario es el diseño de computadoras, aplicaciones, maquinas,dispositivos de comunicación móvil, aplicaciones de software, y sitios web enfocada enla experiencia de usuario y la interacción. Normalmente es una actividadmultidisciplinar que involucra a varias ramas es decir al diseño y el conocimiento comoel diseño grafico, industrial, web, de software y la ergonomía; y está en un ampliorango de proyectos, desde sistemas para computadoras, vehículos hasta avionescomerciales.

LA INTERFAZ GRÁFICA DE USUARIO

La interfaz grafica de usuario, conocida también como GUI es un programa informáticoque actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficospara representar la información y acciones disponibles en la interfaz. Su principal uso,consiste en proporcionar un entorno visual sencillo para permitir la comunicación conel sistema operativo de una maquina o computadora.

IMPORTANCIA DE UN BUEN DISEÑO DE INTERFAZ

Las interfaces de usuario ha ido evolucionando conforme al tiempo, no solo por losavances tecnológicos sino también por las necesidades del usuario.

Es un mercado competitivo como el actual, en donde se desarrollan aplicaciones parausuarios, es muy importante tener un buen diseño. Una interfaz amigable e intuitiva esmás atractiva para los usuarios.

PRINCIPIOS DE DISEÑO

Para diseñar correctamente una interfaz debemos:

Identificar la navegación para los usuarios de la interfaz. Validar de los datos de entrada. Establecer formas apropiadas para presentar resultados.

Principios básicos de diseño de interfaz de usuario

Interfaz amigable Control de usuario Consistencia

Page 133: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Reporte de lectura 3: DISEÑO DE INTERFAZ DE USUARIO A prueba de errores Feedback Directo Teclas aceleradas Estética

Page 134: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezReporte de lectura 4: ATRIBUTOS DE LOS SISTEMAS Y APLICACIONES BASADAS EN WEB

ATRIBUTOS DE LOS SISTEMAS Y APLICACIONES BASADAS EN WEB

No hay mucho que decir con respecto al hecho de que los sistemas y las aplicaciones' basadosen Web (nos referiremos a estas como WebApps) son muy diferentes de las otras categorías desoftware informático que se tratan en el Capítulo 1. Powell resume las diferencias básicascuando afirma que los sistemas basados en Web «implican una mezcla de publicación impresa ydesarrollo de software, de marketing e informática, de comunicaciones internas y relacionesexternas, y de arte y tecnología». Los atributos siguientes se van a encontrar en la gran mayoríade las WebApps2:

Intensivas de Red. Por su propia naturaleza, una WebApp es intensiva de red. Reside en una redy debe dar servicio a las necesidades de una comunidad diversa de clientes. Una WebApppuede residir en Internet (haciendo posible así una comunicación abierta par todoel mundo).De forma alternativa, una aplicación se puede ubicar en una Intranet (implementando lacomunicación a través de redes de una organización) o una Extranet (comunicación entreredes).

Controlada por el contenido. En muchos casos, la función primaria de una WebApp es utilizarhipermedia para presentar al usuario el contenido de textos, gráficos, sonido y vídeo.

Evolución continua. A diferencia del software de aplicaciones convencional, que evoluciona conuna serie de versiones planificadas y cronológicamente espaciadas, las aplicaciones Web estánen constante evolución. No es inusual que algunas WebApps (específicamente, su contenido) seactualicen cada hora.

Un cuidado y una alimentación continua permite que un sitio Web crezca (en robustez y enimportancia). Pero a diferencia de un jardín, las aplicaciones Web deben de servir (y adaptarsea) las necesidades de más de un jardinero, Las siguientes características de WebApps son lasque conducen el proceso:

Inmediatez. Las aplicaciones basadas en Web tienen una inmediatez [NOR99] que no seencuentra en otros tipos de software. Es decir, el tiempo que se tarda en comercializar un sitioWeb completo puede ser cuestión de días o semanas3. Los desarrolladores deberán utilizar losmétodos de planificación, análisis, diseño, implementación y comprobación que se hayanadaptado a planificaciones apretadas en tiempo para el desarrollo de WebApps.

Page 135: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezReporte de lectura 4: ATRIBUTOS DE LOS SISTEMAS Y APLICACIONES BASADAS EN WEB

Seguridad. Dado que las WebApps están disponibles a través de1 acceso por red, es difícil, si noimposible, limitar la población de usuarios finales que pueden acceder a la aplicación. Conobjeto de proteger el contenido confidencial y de proporcionar formas seguras de transmisiónde datos, deberán implementarse fuertes medidas de seguridad en toda la infraestructura queapoya una WebApp y dentro de la misma aplicación.

Estética. Una parte innegable del atractivo de una WebApp es su apariencia e interacción.Cuando se ha diseñado una aplicación con el fin de comercializarse o vender productos o ideas,la estética puede tener mucho que ver con el éxito del diseño técnico.

Las características generales destacadas anteriormente se aplican a todas las WebApps, perocon un grado diferente de influencia. Las categorías de aplicaciones que se enumeran acontinuación son las más frecuentes en el trabajo de la Web:

Informativa: se proporciona un contenido solo de lectura con navegación y enlaces simples.

Descarga: un usuario descarga la información desde el servidor apropiado.

Personalizable: el usuario personaliza el contenido a sus necesidades específicas.

Interacción: la comunicación entre una comunidad de usuarios ocurre mediante un espaciochat (charla), tablones de anuncios o mensajería instantánea; entrada del usuario: la entradabasada en formularios es el mecanismo primario de la necesidad de comunicación.

Orientada a transacciones: el usuario hace una solicitud (por ejemplo, la realización un pedido)que es cumplimentado por la WebApp;

Orientado a servicios: la aplicación proporciona un servicio al usuario, por ejemplo, ayuda alusuario a determinar un pago de hipoteca.

Portal: la aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera deldominio de la aplicación del portal.

Acceso a bases de datos: el usuario consulta en una base de datos grande y extrae información.

Almacenes de datos: el usuario hace una consulta en una colección de bases de datos grande yextrae información.

Las características y las categorías destacadas anteriormente en esta sección, y las categorías deaplicaciones representan los hechos reales para los ingenieros de la Web. La clave es vivirdentro de las restricciones impuestas por las características anteriores y aun así tener éxito enla elaboración de la WebApp.

Page 136: INGENIERÍA DE SOFTWARE

FRAMEWORK

Es una estructura conceptual y tecnológica de soporte definido, normalmente conartefactos o módulos de software concretos, que puede servir de base para laorganización y desarrollo de software. Típicamente, puede incluir soporte deprogramas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para asíayudar a desarrollar y unir los diferentes componentes de un proyecto.

Sirve para crear e integrar con rapidez servicios Web XML, aplicaciones basadas enWindows y soluciones Web.

Page 137: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID:25122003

Tarea 4: UML investigación MODELO DE LENGUAJE UNIFICADOMODELO DE LENGUAJE UNIFICADO (UML)

El “Unified Modelling Languaje” (UML) provee a los analistas y arquitectos de sistemas quetrabajan en el diseño y análisis de objetos de un lenguaje consistente para especificar,visualizar, construir y documentar los artefactos de un sistema de software, así también es útilpara hacer modelos de negocios.

Esta especificación es la evolución del las tres anteriores tecnologías orientadas a objetoslideres (Booch, OMT y OOSE). El UML es la unión de estos lenguajes de modelos y aún mas yaque incluye expresiones adicionales para manejar problemas de modelaje que los métodosanteriores no cubrían plenamente.

El desarrollo de el UML empezó en octubre de 1994 cuando Grady Booch y Jim Rumbaugh deRational Software Corporation iniciaron su trabajo para unificar los métodos de Booch y OMT.Debido a que los métodos Booch y OMT ya habían madurado independientemente y eranreconocidos como métodos líderes en el desarrollo orientado a objetos, Booch y Rumbaughunieron fuerzas para forjar una unificación completa de los dos métodos. Una versiónpreliminar 0.8 de el “método unificado” fue dar a conocer en octubre de 1995. Poco después,Ivar Jacobson y su compañía “Objectory” se unieron a Rational y a su trabajo de unificación,uniendo el método OOSE (Object Oriented software engineering). El Nombre de Objectory esahora dado mayormente para describir a el Proceso que acompaña al UML el “Rational unifiedprocess”

Los objetivos de la unificación fueron: el mantenerlo simple, el quitar elementos de loslenguajes de Booch, OMT y OOSE que no funcionaran en la práctica, el añadir elementos deotros métodos que fueran más efectivos y el inventar nuevas construcciones solamente cuandola solución existente no estuviera disponible.

Aunque el UML define un leguaje preciso, no es una barrera para el desarrollo futuro en losconceptos de modelaje. Se han incorporado muchas técnicas líderes, pero se espera quetécnicas adicionales influyan las versiones futuras del UML. Muchas técnicas avanzadas puedenser definidas usando el UML como base. El UML puede ser extendido sin redefinir su núcleo.

El UML posee varios tipos de diagramas y construcciones que pueden ser usadas para el diseñode sistemas, el artefacto específico para el manejo de requerimientos es el Use Case y losActores.

Page 138: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID:25122003

Tarea 4: UML investigación MODELO DE LENGUAJE UNIFICADO¿Qué es un "Use Case"?

Jacobsson define a los use cases y a los actores como:

“Los Actores representan lo que interactúa con el sistema. Ellos representan a todo lo quenecesita intercambiar información con el sistema. Las instancias de los actores son los usuariosdel sistema, ellos llevan a cabo un numero de operaciones con el sistema y desarrollan unasecuencia de transacciones en comunicación con el sistema. A esta secuencia de acciones sellama Use case.”

Los use cases se usan para especificar el comportamiento de el sistema sin definir su estructura,la forma de que un modelo de Use cases es realizado en términos de objetos que son definidospor clases dentro de el sistema se puede describir con diagramas de colaboración.

Page 139: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 6MICROSOFT PROJECT

Es un software de administración de proyectos diseñado, desarrollado ycomercializado por microsoft para asistir a administradores de proyectos en eldesarrollo de planes, asignación de recursos a tareas, dar seguimiento al progreso,administrar presupuesto y analizar cargas de trabajo.

Es una herramienta informática.

Aplicación de gestión de proyectos.

Permite organizar un proyecto en diferentes tareas y en un tiempo determinado.

El software de Microsoft Office Project en todas sus versiones es muy útil para lagestión de proyectos, aplicando procedimientos descritos en el PMBOK (ManagmentBody of Knowledge) del PMI (Project Managment Institute). Debe ser usado en formaavanzada, por líderes de proyecto aplicando sus bases que están fundamentadas en elMétodo de la Ruta Critica.

COBOL (COMMON BUSINESS-ORIENTED LANGUAGE,LENGUAJE COMÚN ORIENTADO A NEGOCIOS)

Fue creado en el año 1959 con el objetivo de crear un lenguaje de programaciónuniversal que pudiera ser usado en cualquier ordenador, ya que en los años 1960existían numerosos modelos de ordenadores incompatibles entre sí, y que estuvieraorientado principalmente a los negocios, es decir, a la llamada informática de gestión.

COBOL es uno de los primeros lenguajes de programación de alto nivel.

COBOL es un lenguaje compilado, es decir, existe el código fuente escrito con cualquiereditor de textos y el código objeto (compilado) dispuesto para su ejecución con sucorrespondiente runtime. Cuando se ve un programa escrito en COBOL saltan a la vistavarios aspectos:

Existen unos márgenes establecidos que facilitan su comprensión. Esta estructuradoen varias partes, cada una de ella con un objetivo dentro del programa. Nos recuerdamucho al lenguaje inglés, puesto que su gramática y su vocabulario están tomados dedicho idioma.

COBOL solo dispone de comandos para realizar los cálculos más elementales, suma,resta, multiplicación y división, sino que su empleo es apropiado para el proceso dedatos en aplicaciones comerciales, utilización de grandes cantidades de datos yobtención de resultados ya sea por pantalla o impresos. Con COBOL se pretendía un

Page 140: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezID: 25122003

Tarea 6lenguaje universal, sin embargo, se han ido incorporando retoques y mejoras aunqueson mínimas.

Con la llegada del Sistema Operativo Windows, son muchos los que intentan proveer alCOBOL de esa interfaces gráfica, Objective Cobol, Visual Object Cobol de Microfocus,fijitsu Powercobol, Acucobol-GT, Vangui y Cobol-WOW de Liant (RM), etc., que estánconsiguiendo que éste lenguaje siga estando presente en moda visual de ofrecer losprogramas. Sin embargo, son muchas las empresas que siguen dependiendo delCOBOL-85 tradicional para sus proyectos debido principalmente a la estructura de susistema informática.

TECNOLOGÍA ARTIFICIAL

Se denomina inteligencia artificial (IA) a la capacidad de razonar de un agente no vivo.John McCarthy, acuñó el término en 1956, la definió: "Es la ciencia e ingenio de hacermáquinas inteligentes, especialmente programas de cómputo inteligentes.

existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas,respectivamente por sensores físicos y sensores mecánicos en máquinas, pulsoseléctricos u ópticos en computadoras, tanto como por entradas y salidas de bits de unsoftware y su entorno software.

Varios ejemplos se encuentran en el área de control de sistemas, planificaciónautomática, la habilidad de responder a diagnósticos y a consultas de losconsumidores, reconocimiento de escritura, reconocimiento del habla yreconocimiento de patrones. Los sistemas de inteligencia artificial actualmente sonparte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se hausado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrezde computador y otros videojuegos.

Page 141: INGENIERÍA DE SOFTWARE

José Juan Garcia BórquezTarea second life

SECOND LIFE

Es una plataforma para poder estudiar e interactuar de forma virtual mediante un avatar al quese puede acceder gratuitamente por internet.

En esta escuela virtual interactúas con otras personas, con tu avatar asistes a clases y aprendescomo si estuvieras asistiendo a una escuela, también puedes cambiar a tu avatar dependiendoen la situación a la que estés, puedes ir a visitar museos, cavernas, etc.

En mi opinión a mi no me gustaría tomar unas clases de ese tipo, porque se me hace que seríaun poco aburrido, pero uno nunca sabe si le gusta o no hasta que lo prueba.

Por otra parte es una gran plataforma para personas que no pueden salir de su casa pordiscapacidades u otros motivos.

Page 142: INGENIERÍA DE SOFTWARE

Es muy importante paraun ingeniero en sistemascomputacionales llevar lamateria de ingeniería ensoftware ya que asítienes una introducción alo que es y los temas quese tratan en esta materia.Me fue muy util el saberlo que era el modelo RUP,las preguntas que sedebe hacer un ingenieroen software, la ingenieriadel software asistida porcomputadora (CASE), lagestion de planificacion,el modelo COCOMO 2entre otros temas quetratamos.

Es muy importante paraun ingeniero en sistemascomputacionales llevar lamateria de ingeniería ensoftware ya que asítienes una introducción alo que es y los temas quese tratan en esta materia.Me fue muy util el saberlo que era el modelo RUP,las preguntas que sedebe hacer un ingenieroen software, la ingenieriadel software asistida porcomputadora (CASE), lagestion de planificacion,el modelo COCOMO 2entre otros temas quetratamos.