Page 1

JOSE JUAN GARCIA BORQUEZ


6 DE JUNIO DEL 2013


Í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ÓNCLAENDARIZACIÓ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 En este curso el alumno conocerá y aplicará la metodología de diseño de software en el desarrollo de proyectos de desarrollo de sistemas de software.


INFORMACION INSTITUCIONAL Misión La misión de UNIDEP es formar profesionales de éxito que cuenten con las actitudes, habilidades y conocimientos que demanda el sector productivo de la región. Visión La Universidad del Desarrollo Profesional es una institución de educación superior de calidad, que ofrece 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 una estrecha 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émica impartida en ciclos continuos y por horarios y cuotas accesibles, acordes a la disponibilidad de tiempo y recursos económicos del alumno. Cuenta con profesores de amplia experiencia profesional y educativa. Sus instalaciones dentro de la ciudad permiten el fácil acceso. Cuenta con un modelo de administración sistematizado, participativo, operado por personal que es recompensado por su desempeño efectivo que le permite maximizar las aportaciones de sus socios y mantener finanzas sanas.


PLANEACIÓN DE CURSO Plantel: Programa:

CENTRO LSIC

Fecha:

13/05/2013

Curso: Docente:

INGENIERIA DE SOFTWARE M.C. JOSÉ BENITO FRANCO URREA

Ciclo: Módulo:

2014-1 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 escrita Identificación de variables involucradas en la formulación de proyectos Analítico en el manejo del contenido de clase Responsable y analítico en la solución de casos reales. Diligencia, cuidado y limpieza Comunicación asertiva Aplicación de teorías y modelos a casos concretos Administración del tiempo y Manejo de grupos Investigación documental y de campo Actitudes (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 estudio Disposición para trabajar en equipo Creatividad Comunicativo Respetuoso Crítico ante los problemas del entorno Predisposición positiva al cambio Humanista Mediación entre las diferencias Disposició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 de sistemas de software.


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

Proceso de ingenierí a del software 1.1 Proyecto s de software 1.2 Procesos de producció n

1

Presentación del programa de curso.

2. inducción a la materia. 3. Formación de equipos y asignación de los temas. 4. Exposición en PowerPoint de los temas. (Maestro). 5. Análisis y reflexión de los temas por parte del alumno. 6. Exposición por parte del equipo #1. Tema investigado: Preguntas frecuentes de la Ingeniería de Software. 7. Video: Si los Programadores construyeran aviones. 8. Reporte de lectura del tema: Preguntes frecuentes de la ingeniería de software. 9. Proyecto Final

Materiales didácticos Pizarrón, cañón, PC, Videos

Recursos

Evaluación

Libros digitalizados de: INGENIERIA DEL SOFTWARE un enfoque practico Sexta Edición Autor: Roger S. Pressman

1

%

1

%

Ingeniería del Software Séptima Edición Ian Sommerville

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


SEMANA 2 Del 20 de Mayo al 23 de Mayo de 2013 Contenido Estrategia de enseñanza-aprendizaje 1.3 Métricas,

1.

1.4 El equipo de

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

estimación y planeación desarrollo

Exposición en PowerPoint de los temas. (Maestro).

Materiales didácticos Pizarrón, cañón, PC, Videos

Recursos

Evaluación

Libros digitalizados de: INGENIERIA DEL SOFTWARE un enfoque practico Sexta Edición Autor: Roger S. Pressman

1

%

1

%

2

%

Ingeniería del Software Séptima Edición Ian Sommerville

2

Fase de análisis 2.1 Requeri mientos y docume ntación

Exposición por parte del equipo #2. Ingeniería de Software asistida por computadora. 4. Reporte de lectura del tema: Ingeniería de software asistida por computadora. 5. Revisión de avances del proyecto final 3.

Pizarrón, cañón, PC

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


SEMANA 3 Del 27 de Mayo al 30 de Mayo Contenido Estrategia de enseñanza-aprendizaje 2.2 Análisis 2.3 Modela do y diseño

Exposición en PowerPoint de los temas. (Maestro). 2. Análisis y reflexión de los temas por parte del alumno. 1.

Materiales didácticos Pizarrón, cañón, PC

Recursos

Evaluación

Libros digitalizados de: INGENIERIA DEL SOFTWARE un enfoque practico Sexta Edición Autor: Roger S. Pressman

1

%

1

%

15

%

2

%

Ingeniería del Software Séptima Edición Ian Sommerville 3

Fase de implementac ión 3.1 Determi nación del lenguaje y metodol ogía

3. Exposición por parte del equipo #3. Tema investigado: Diseños de Interfaces de Usuarios 4. Revisión de avances del proyecto final.

Evaluación 1er. parcial: Deberá ser revisado por el coordinador académico y abarcar el 100% de los temas abordados hasta la semana 3 Trabajo independiente: Investigación y Exposición del Tema: Diseños de Interfaces de Usuarios.


SEMANA 4 Del __ de ____ al __ de ____ Contenido Estrategia de enseñanza-aprendizaje 3.2 Impleme ntación de requerim ientos del modelo 3.3 Program ación 3.4 Impleme ntación

1.

Exposición en PowerPoint de los temas. (Maestro).

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

3. Exposición por parte del equipo #4. Tema investigado: Diseños de Interfaces de Usuarios

Materiales didácticos Pizarrón, cañón, PC

Recursos

Evaluación

Libros digitalizados de: INGENIERIA DEL SOFTWARE un enfoque practico Sexta Edición Autor: Roger S. Pressman

1

%

4

%

Ingeniería del Software Séptima Edición Ian Sommerville

4. Reporte de lectura del tema investigador: Diseño de interfaces de usuarios.

Trabajo independiente: Exposición del Proyecto Final.


SEMANA 5 Del __ de ____ al __ de ____ Contenido Estrategia de enseñanza-aprendizaje 4

Fase de pruebas y mantenimien to 4.1 Diseño de pruebas 4.2 Estrategi as de prueba 4.3 Plan de manteni miento

1.

Materiales didácticos Pizarrón, cañón, PC

Exposición en PowerPoint de los temas. (Maestro).

2. Análisis y reflexión de los temas por parte del alumno. 3. Exposición y revisión del proyecto Final

Recursos

Evaluación

Libros digitalizados de: INGENIERIA DEL SOFTWARE un enfoque practico Sexta Edición Autor: Roger S. Pressman

1

%

25

%

10

%

4

%

Ingeniería del Software Séptima Edición Ian Sommerville

Evaluación 2o. parcial: Deberá ser revisado por el coordinador académico y abarcar el 100% de los temas abordados en las semanas 4 y 5. Portafolio de aprendizaje: Deberá ser revisado por el coordinador académico e incluir todos los elementos establecidos en el formato institucional. Trabajo independiente: Exposición y revisión del proyecto final.

RECURSOS TIPO Libro Libro Libro

AUTOR

EDITORIAL / REVISTA

AÑO

Pressman, Roger S.

Mc. Graw Hill

2002

Sommerville, Ian

Pearson

2006

Weitzenfeld, Alfredo

Thomson

2006

TITULO Ingeniería del Software - Un Enfoque Practico Ingeniería del Software Ingeniería de Software Orientada a Objetos Con Java E Internet

ESTAS CELDAS NO DEBEN MODIFICARSE EVALUACIÓN Actividades semanales Trabajos independientes Evaluación 1er. parcial Evaluación 2o. Parcial Portafolio de aprendizaje TOTAL

30 20 15 25 10 100

% % % % % %


UNIVERSIDAD DEL DESARROLLO PROFESIONAL

Perfil Descriptivo de Clase Materia:

INGENIERÍA DE SOFTWARE

Ciclo:

2013-2

Maestro:

M.C. JOSÉ BENITO FRANCO URREA

Horario:

13:00-15:00

Objetivo del Curso:

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

Bibliografía:

TIPO

LIBRO .

LIBRO

LIBRO

criterios para la Evaluación

TITULO

AUTOR

Ingeniería del Software - Un Enfoque Practico

Pressman, Roger S.

Ingeniería del Software Ingeniería de Software Orientada a Objetos Con Java E Internet

EDITORIAL/REVISTA

Mc. Graw Hill

AÑO

2002

Sommerville, Pearson Ian

2006

Weitzenfeld, Thomson Alfredo

2006

CALIFICACIÓN ORDINARIA (PONDERACIÓN) Actividades semanales

30%

Examen primer parcial.

15%

Portafolio reaprendizaje

10%

Examen segundo parcial.

25%

Trabajos independientes

20%

TOTAL

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) de calificació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, sus calificaciones, 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.


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

Tema

Fecha

1

13/05/2013

2

14/05/2013

3

15/05/2013

4

16/05/2013

5

20/05/2013

6

21/05/2013

Presentación del programa, Introducción al tema exposición por parte del maestro, Integración de equipos, diagnóstico de conocimientos del grupo. 1. Proceso de ingeniería del software a. Modelos del proceso del software 1.1. Proyectos de software 1.2. Procesos de producción  Modelo en cascada.  Desarrollo evolutivo o espiral  Modelo Incremental  Desarrollo Iterativo 1.3. Métricas, estimación y planeación 1.4. Equipo de Desarrollo Exposición tema de investigación Equipo #1 Preguntas frecuentes de la Ingeniería de Software. 2. Fase de análisis 2.1. Requerimientos y documentación 2.1.1 proceso de ingeniería de requerimientos. 2.2. 2.3.

Análisis Modelado y diseño

3 7

8

22/05/2013

23/05/2013

Fase de implementación 3.1. Determinación del lenguaje y metodología Revisión de Avances del Proyecto Final 3.2. Implementación de requerimientos del modelo Exposición del tema investigado por el equipo #2: Ingeniería de Software asistida por computadora. 3.3. Programación 3.3.1. Métodos ágiles 3.3.2. Programación extrema 3.3.3. Desarrollo rápido de aplicaciones 3.3.4. Prototipado de Software 3.4. Implementación 4. Fase de pruebas y mantenimiento

9

27/05/2013

10

28/03/2013

11

29/05/2013

Repaso de clase para presentar el primer examen parcial Revisión de avances del proyecto final.

12

30/05/2013

EXAMEN PRIMER PARCIAL

13

03/06/2013

14

04/06/2013

4.1.

Diseño de pruebas Exposición del tema investigado por el equipo #3: Diseños de Interfaces de Usuarios

4.2.

Estrategias de prueba


Plan de mantenimiento

15

05/06/2013

16

06/06/2013

17

10/06/2013

18

11/06/2013

19

12/06/2013

Exposiciones del proyecto final equipos #1, #2,#3 Exposici贸n del Proyecto final Equipo #4 Repaso para el Segundo Examen Parcial EXAMEN SEGUNDO PARCIAL

20

13/06/2013

ENTREGA DE CALIFICACIONES ORDINARIAS

4.3.

Exposici贸n del tema investigado por el equipo #4: Atributos de los sistemas y

aplicaciones basados en WEB

EXAMEN EXTRAORDINARIOS


Contents

PROFESOR:

M.C. JOSÉ BENITO FRANCO URREA


Contents


DEFINICIONES


DEFINICIONES


DEFINICIONES


TAREA: Buscar una Definici贸n de Ingenier铆a de Software. Agregarla a Su portafolio.


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


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


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


Contents


José Juan Garcia Bórquez ID: 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)?


¿Qué es el Software?

José Juan Garcia Bórquez ID: 25122003 Tarea 2: Reporte de lectura del tema PREGUNTAS FRECUENTES

Hace referencia a los programas y toda la información asociada y materiales necesarios para soportar 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ómicamente viable.


José Juan Garcia Bórquez ID: 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 software deben 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 sistemas basados 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 el sistema físico para ponerlas a disposición del sistema de gestión, recibir decisiones sobre su propio 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 que conducen a la creación de un producto de software. Un Método de Desarrollo es un conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.


José Juan Garcia Bórquez ID: 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 del software.

¿Cuáles son las responsabilidades de un Ingeniero Software? Los Ingenieros en Software deben comportarse de modo honesto y ético si quieren lograr respeto 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, que pretende cubrir los conceptos de Booch, OMT y OOSE con un lenguaje simple, común y ampliamente utilizable por usuarios de otras metodologías.


PREGUNTAS MAS FRECUENTES DE INGENIERIA DEL SOFTWARE. EQUIPO 1. JESUS ISIDRO GONZALEZ E. VICTOR HUGO IBARRA ORTIZ. CD. OBREGON, SON. A 16 DE MAYO DE 2013.


¿Qué es un Software? El software no son sólo programas, sino todos los documentos asociados y la configuración de datos que se necesitan para hacer que estos programas operen de manera correcta correcta.. Por lo general, un sistema de software consiste en diversos programas independientes, archivos de configuración que se utilizan para ejecutar estos programas, un sistema de documentación que describe la estructura del sistema, la documentación para el usuario que explica cómo utilizar el sistema y sitios web que permi­tan a los usuarios descargar la información de productos recientes recientes..


Tipos de productos de software.

Existen dos productos: 1. Productos genéricos. Son sistemas aislados producidos por una organización de des­arrollo y que se venden al mercado abierto a cualquier cliente que le sea posible comprarlos. Ejemplos de este tipo de producto son el software para Pc´s tales como bases de datos, procesadores de texto, paquetes de dibujo y herramientas de gestión de proyectos. 2. Productos personalizados (o hechos a medida). Son sistemas requeridos por un clien­te en particular. Un contratista de software desarrolla el software especialmente para ese cliente. Ejemplos de este tipo de software son los sistemas de control para instru­mentos electrónicos, sistemas desarrollados para llevar a cabo procesos de negocios específicos y sistemas de control del tráfico aéreo.


¿Qué es la ingeniería del software? Es una disciplina de la ingeniería que comprende todos los aspec­tos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza.


Disciplina de la ingeniería Los ingenieros hacen que las cosas funcionen. Aplican teorías. Métodos y herramientas donde sean convenientes, pero las utilizan de Forma selectiva y siempre tratando de descubrir soluciones a los problemas, aun cuando no existan teorías y métodos aplicables para resolverlos. Los ingenieros también saben que deben trabajar con restricciones financieras y organizacionales. por lo que buscan soluciones tomando en cuenta estas restricciones.


Todos los aspectos de producción de software

La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software sino también con activi­dades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.


¿Cuál es la diferencia entre ingeniería del software y ciencia de la computación?

Esencialmente, la ciencia de la computación se refiere a las teorías y métodos subyacentes alas computadoras y los sistemas de software, mientras que la ingeniería del software se refie­re a los problemas prácticos de producir software. Los ingenieros de software requieren cier­tos conocimientos de ciencia de la computación, de la misma forma que los ingenieros eléc­tricos requieren conocimientos de física.


¿Cuál es la diferencia entre ingeniería del software e ingeniería de sistemas?

La ingeniería de sistemas se refiere a todos los aspectos del desarrollo y de la evolución de sistemas complejos donde el software desempeña un papel principal. Por lo tanto, la ingenie­ría de sistemas comprende el desarrollo de hardware, políticas y procesos de diseño y distri­bución de sistemas, así como la ingeniería del software. Los ingenieros de sistemas están in­volucrados en la especificación del sistema, en la definición de su arquitectura y en la integración de las diferentes partes para crear el sistema final. Están menos relacionados con la ingeniería de los componentes del sistema (hardware, software, etc.).


ÂżQuĂŠ es un proceso del software? Un proceso del software es un conjunto de actividades y resultados asociados que producen un producto de software. Estas actividades son llevadas a cabo por los ingenieros de software. Existen cuatro actividades fundamentales de procesos (incluidas mĂĄs adelante en este libro) que son comunes para todos los procesos del software.


Actividades 1. Especificación del software donde los clientes e ingenieros definen el software a pro­ducir y las restricciones sobre su operación. 2. Desarrollo del software donde el software se diseña y programa. 3. Validación del software donde el software se valida para asegurar que es lo que el cliente requiere. 4. Evolución del software donde el software se modifica para adaptarlo a los cambios re­queridos por el cliente y el mercado.


¿Qué es un modelo de procesos del software? Un modelo de procesos del software es una descripción simplificada de un proceso del software que presenta una visión de ese proceso. Estos modelos pueden incluir actividades que son parte de los procesos y productos de software y el papel de las personas involucra­ das en la ingeniería del software.


¿Cuáles son los costos de la ingeniería del software? No existe una respuesta sencilla a esta pregunta ya que la distribución de costos a través de las diferentes actividades en el proceso del software depende del proceso utilizado y del tipo de software que se vaya a desarrollar. Por ejemplo, el software de tiempo real normalmente re­quiere una validación y pruebas más extensas que los sistemas basados en web. Sin embargo, cada uno de los diferentes enfoques genéricos al desarrollo del software tiene un perfil de dis­tribución de costos diferente a través de las actividades del proceso del software. Si se consi­dera que el costo total del desarrollo de un sistema de software complejo es de 100 unidades de costo, la Figura 1.2 muestra cómo se gastan éstas en las diferentes actividades del proceso.


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


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


¿Cuáles son los atributos de un buen software? Así como los servicios que proveen, los productos de software tienen un cierto número de atri­butos asociados que reflejan la calidad de ese software. Estos atribulas no están directamen­te asociados con lo que el software hace. Más bien, reflejan su comportamiento durante su eje­cución y en la estructura y organización del programa fuente y en la documentación asociada. Ejemplos de estos atribulas (algunas veces llamados atribulas no funcionales) son el tiempo de respuesta del software a una pregunta del usuario y la comprensión del programa fuente.


Esto se generaliza en el conjunto de atributos que se muestra en la Figura 1.5, el cual tiene las caracterĂ­sticas esenciales de un sistema de software bien diseĂąado.


¿Cuáles son los retos fundamentales que afronta la ingeniería del software?

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


2. El reto de la entre8a. Muchas técnicas tradicionales de ingeniería del software consu­men tiempo. El tiempo que éstas consumen es para producir un software de calidad. Sin embargo. los negocios de hoy en día deben tener una gran capacidad de respues­ta y cambiar con mucha rapidez. Su software de soporte también debe cambiar con la misma rapidez. El reto de la entrega es reducir los tiempos de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema.


3. El reto de la confianza. Puesto que el software tiene relación con todos los aspectos de nuestra vida. es esencial que podamos confiar en él. Esto es especialmente impor­tante en sistemas remotos de software a los que se accede a talvés de páginas web o de interfaces de servicios web. El reto de la confianza es desarrollar técnicas que de­ muestren que los usuarios pueden confiar en el software.


José Juan García Bórquez ID: 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 de software reduciendo el costo de las mismas en términos de tiempo y dinero. Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, calculo de costos automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras. Ya en los años 70’s un proyecto llamado ISDOS diseño un lenguaje y por lo tanto un producto que analizaba la relación existente entre los requisitos de un problema y las necesidades que estos generaban el lenguaje en cuestión se denominaba PSL (Problem Statement Lenguage) y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statemet Analyzer).

OBJETIVO DE LA HERRAMIENTA CASE 1. 2. 3. 4. 5. 6. 7. 8. 9.

Mejorar la productividad en el desarrollo y mantenimiento del software. Aumentar la calidad del software. Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas informáticos. Mejorar la planificación de un proyecto. Aumentar la biblioteca de conocimiento informático de una empresa ayudando a la búsqueda de soluciones para los requisitos. Automatizar el desarrollo del software, la documentación, la generación de código, las pruebas de errores y la gestión del proyecto. Ayuda a la reutilización del software, portabilidad y estandarización de la documentación. Gestión global en todas las fases de desarrollo de software con una misma herramienta. 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 pueden clasificar teniendo en cuenta los siguientes parámetros: 1. 2. 3. 4.

Las plataformas que soportan. Las fases del ciclo de vida del desarrollo de sistemas que cubren. La arquitectura de las aplicaciones que producen. 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 de requisitos 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 la aplicación.


José Juan García Bórquez ID: 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ás automatizan la documentación completa de la aplicación. Aquí pueden incluirse las herramientas de Desarrollo rápido de aplicaciones.

Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificación excluyente 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, los elementos permitidos del metamodelo generado se guardan en un repositorio y pueden ser usados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestros elementos, 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.


Ingeniería de software asistida por computadora Edgar Javier Urquijo Rascón Oscar Fermín Vega Cota


ÍNDICE PRIMERA PARTE (EDGAR) SEGUNDA PARTE (OSCAR) TERCERA PARTE (EDGAR)


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


La tecnología CASE proporciona ayuda al proceso del software automatizando algunas de sus actividades. así como proporcionando información acerca del software en desarrollo. Algunos ejemplos de las actividades que se pueden automatizar utilizando CASE son: l. El desarrollo de modelos gráficos del sistema como parte de la especificación de requerimientos o del diseño de software. 2. La comprensión del diseño utilizando un diccionario de datos que tiene información sobre las entidades y relaciones del diseño. 3. La generación de interfaces de usuario a partir de la descripción gráfica de la interfaz que es elaborada de forma interactiva por el usuario. 4. La depuración de programas por medio de la provisión de la información proporcionada por los programas en ejecución. 5. La conversión automática de programas de una versión anterior de una lenguaje de programación. como COBOL. a una versión más reciente.


La tecnología CASE está disponible para ía mayoría de las actividades rutinarias en el proceso del software. Esto permite algunas mejoras en la calidad y productividad del software, aunque éstas sean menores que lali predichas por los primeros partidarios de CASE. Éstos sugirieron que se tendría una mejora mayor si se utilizamn entornos CASE integrados. En realidad. Las mejoras reales son del 40% (Huff, 1992). Aunque esto es significante. las predicciones que se hicieron cuando se introdujeron las herramientas CASE en los años 80 y 90 fueron que el uso de la tecnología CASE generaría entonces ahorros en los costos del proceso del software.


Las mejoras por la utilización de CASE están limitadas por dos factores: 1. Esencialmente. la ingeniería del software es una actividad de diseño que se basa en la creatividad. Los sistemas CASE automatizan las actividades rutinarias. pero los intentos de utilizar la inteligencia artificial para proporcionar ayuda al diseño no han tenido éxito. 2. En la mayoría de las organizaciones. la ingeniería del software es una actividad de equipo. y los ingenieros invierten mucho tiempo interactuando con los otros miembros del equipo. La tecnología CASE no proporciona mucha ayuda para esto.


Actualmente, la tecnología CASE está madura y hay herramientas disponibles y bancos de trabajo de un amplio rango de proveedores. Sin embargo, más que centrarse en alguna herramienta específica. aquí se presenta una visión general, con algunos comentarios de apoyo específico en otros capítulos. En la página web se incluyen enlaces a otro material de CASE y a proveedores de herramientas CASE.


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 abstractas de 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 del software. Ejemplos de estos modelos son el modelo en cascada, el desarrollo evolutivo y la ingeniería del software basada en componentes.  Los modelos de Iteración de procesos presentan el proceso del software como un ciclo de actividades. La ventaja de este enfoque es que evita compromisos prematuros con una especificación o diseño. Ejemplos de este tipo de modelos son el desarrollo Incremental y el modelo en espiral.  La ingeniería de requerimientos es el proceso de desarrollar una especificación del software. Las especificaciones pretenden comunicar las necesidades del sistema del cliente a los desarrolladores del sistema.  Los procesos de diseño e Implementación comprenden la transformación de la especificación de los requerimientos en un sistema software ejecutable. Los métodos sistemáticos de diseño se pueden utilizar como parte de esta transformación.


 la validación del software es el proceso de verificar que el sistema se ajusta a su especificació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 para cumplir los nuevos requerimientos. Esto se está convirtiendo en el enfoque normal para el desarrollo de sistemas de pequeño y mediano tamaño.  • El Proceso Unificado de Racional es un modelo del proceso moderno y genérico que se organiza en fases (Inicio, elaboración, construcción y transición), pero que separa las actividades (requerimientos, análisis y diseño, etc.) de estas fases.  • La tecnología CASE proporciona ayuda automatizada a los procesos del software. las herramientas CASE ayudan a las actividades Individuales del proceso; los bancos de trabajo ayudan a un conjunto de actividades relacionadas; los entornos ayudan a todas o a la mayoría de las actividades del proceso del software.


José Juan Garcia Bórquez Trabajo 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 comportamiento deseado del sistema

Centrado en la Arquitectura: –La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar 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


José Juan Garcia Bórquez Trabajo 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 los objetivos del proyecto.

Es significativamente importante para el desarrollo de nuevo software, ya que se asegura de identificar los riesgos 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 de desarrollar el proyecto.


José Juan Garcia Bórquez Trabajo en clase: Modelo RUP

Elaboración 

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

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

Construcción 

El objetivo de la fase de construcción es clarificar los requerimientos faltantes y completar el desarrollo del 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 la administració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 entregable del 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ón y aspectos sobre utilización.

Diagrama General de RUP


José Juan Garcia Bórquez Trabajo en clase: Modelo RUP

¿Cuándo usar RUP?


José Juan Garcia Bórquez Trabajo 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


José Juan Garcia Bórquez ID: 25122003 Tarea 5: investigación de las 4 fases del RUP

Las 4 Fases Del Modelo RUP

El Proceso Unificado de Rational (RUP) es un modelo de proceso moderno. Proviene del trabajo en 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 el sistema 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 especifican los 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 Sistema de Software Operativo, la Documentacion lista para entregar al usuario.


TRANSICIÓN (Fase final del RUP).

José Juan Garcia Bórquez ID: 25122003 Tarea 5: investigación de las 4 fases del RUP

Mueve el sistema desde la comunidad de desarrollo a la comunidad del usuario y hacerlo trabajar en un entorno real. Esto se deja de lado en la mayor parte de los modelos de procesos del software pero es, en realidad, una actividad de alto costo de problemática. Al terminar esta fase, tenemos un Sistema de Software Documentado, que funciona correctamente en su entorno operativo.


José Juan García Bórquez ID: 25122003 Trabajo de clase 2

CALIDAD DE SOFTWARE La calidad del software es, según Pressman, la “concordancia con los requisitos funcionales y de rendimiento, con los estándares de desarrollo y con las características implícitas que se espera 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 diferentes aplicaciones 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 una estructura organizativa apropiada para fomentar el trabajo por la calidad de todas las personas y departamentos de la empresa, además de fomentar procesos específicos para asegurar la calidad. A nivel de proyecto: se trata de llevar a la práctica en las actividades cotidianas las disposiciones fijadas en el sistema de calidad. Se aplica durante todo el proceso de ingeniería del 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 persona que realiza el trabajo es capaz de conseguir.

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


UTILIDAD DE LAS MÉTRICAS

José Juan García Bórquez ID: 25122003 Trabajo de clase 2

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 la sistematización de actividades del ciclo de vida de los proyectos software en el ámbito de las administraciones 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 o pacto, ya sea oral o escrito, entre partes que aceptan ciertas obligaciones y derechos sobre una materia determinada. El documento que refleja las condiciones de este acuerdo también recibe el nombre de contrato. Por ejemplo: “El jugador chileno firmará el contrato en las próximas horas y se sumará de manera inmediata al equipo”, “Mañana tenemos que ir a la inmobiliaria a firmar el contrato para 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 o más personas (físicas o jurídicas). Sus cláusulas regulan las relaciones entre los firmantes en una determinada materia.


José Juan García Bórquez ID: 25122003 Trabajo de clase 2

MODELO RUP El Proceso Unificado de Rational (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software desarrollado por la empresa Rational Software, 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 y documentación de sistemas orientados a objetos.


José Juan Garcia Bórquez ID: 25122003 Trabajo de clase 3

GESTION DE DESARROLLO DEL SOFTWARE (Planeación, Calendarización y Gestión del Riesgo). Planeación. Durante el proyecto siempre surgen problemas en algunas descripciones. Las suposiciones iniciales y el calendario deben ser más bien pesimistas que optimistas. 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 gestores estiman el tiempo y los recursos requeridos para completar las actividades y organizarlas en una sucesión coherente, las estimaciones previas son una base incierta para la calendarización del nuevo proyecto. Si el proyecto es técnicamente complejo, las estimaciones iniciales casi siempre son optimistas aun cuando los gestores traten de considerar las eventualidades. Los calendarios se deben actualizar continuamente en la medida que se disponga de mejor información acerca del progreso. La calendarización implica separar todo el trabajo de un proyecto en actividades complementarias y considerar el tiempo requerido para completar dichas actividades. Por lo general, algunas de estas se llevan a cabo en paralelo.


José Juan Garcia Bórquez ID: 25122003 Trabajo de clase 3

Debemos coordinar estas actividades paralelas y organizar el trabajo para que la mano de obra se utilice de forma optima. Deben evitarse situaciones en que el proyecto 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 del proyecto estará libre de problemas. El recurso principal es el esfuerzo humano; a la estimación se le debe agregar un factor de contingencia adicional. Este factor extra de contingencia depende del tipo 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 la estimación original y otro 20% para cubrir algunas cosas no previstas. El calendario del proyecto se representa como un conjunto de gráficos que muestran la división del trabajo, las dependencias de las actividades y la asignación del personal.

Gestión de Riesgo. Una tarea importante del gestor de proyectos es anticipar los riesgos que podrían afectar a la programación del proyecto o a la calidad del software a desarrollar y emprender acciones para evitar esos riesgos. Identificar estos y crear planes para minimizar sus efectos en el proyecto se llama gestión de riesgos. Se puede concebir un riesgo como una probabilidad de que una circunstancia adversa ocurra. Los riesgos son una amenaza para el proyecto, para el software que se está desarrollando y para la organización. Los riesgos que pueden afectar a un proyecto dependen del propio proyecto y del entorno organizacional donde se desarrolla. Sin embargo algunos riesgos son universales.


Categorías de riesgos:

José Juan Garcia Bórquez ID: 25122003 Trabajo de clase 3

1 .- Riesgos del proyecto: estos afectan la calendarización o los recursos del proyecto. 2.- Riesgo del producto; Estos afectan a la calidad o al rendimiento del software que se está desarrollando. 3.- Riesgo del negocio: Estos afectan a la organización que desarrolla o suministra el software. Es preciso anticiparse a los riesgos: comprender el impacto de estos en el proyecto, en el producto y en el negocio y considerar los pasos para evitarlos. En el caso de que ocurra, se deben crear planes de contingencia para que sea posible aplicar acciones de recuperación


José Juan Garcia Bórquez ID: 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 en la experiencia de usuario y la interacción. Normalmente es una actividad multidisciplinar que involucra a varias ramas es decir al diseño y el conocimiento como el diseño grafico, industrial, web, de software y la ergonomía; y está en un amplio rango de proyectos, desde sistemas para computadoras, vehículos hasta aviones comerciales.

LA INTERFAZ GRÁFICA DE USUARIO La interfaz grafica de usuario, conocida también como GUI es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para 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 con el 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 los avances tecnológicos sino también por las necesidades del usuario. Es un mercado competitivo como el actual, en donde se desarrollan aplicaciones para usuarios, es muy importante tener un buen diseño. Una interfaz amigable e intuitiva es má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


    

José Juan Garcia Bórquez ID: 25122003 Reporte de lectura 3: DISEÑO DE INTERFAZ DE USUARIO

A prueba de errores Feedback Directo Teclas aceleradas Estética


José Juan Garcia Bórquez Reporte 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' basados en Web (nos referiremos a estas como WebApps) son muy diferentes de las otras categorías de software informático que se tratan en el Capítulo 1. Powell resume las diferencias básicas cuando afirma que los sistemas basados en Web «implican una mezcla de publicación impresa y desarrollo de software, de marketing e informática, de comunicaciones internas y relaciones externas, y de arte y tecnología». Los atributos siguientes se van a encontrar en la gran mayoría de las WebApps2: Intensivas de Red. Por su propia naturaleza, una WebApp es intensiva de red. Reside en una red y debe dar servicio a las necesidades de una comunidad diversa de clientes. Una WebApp puede 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 la comunicación a través de redes de una organización) o una Extranet (comunicación entre redes).

Controlada por el contenido. En muchos casos, la función primaria de una WebApp es utilizar hipermedia 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 con una serie de versiones planificadas y cronológicamente espaciadas, las aplicaciones Web están en constante evolución. No es inusual que algunas WebApps (específicamente, su contenido) se actualicen cada hora. Un cuidado y una alimentación continua permite que un sitio Web crezca (en robustez y en importancia). Pero a diferencia de un jardín, las aplicaciones Web deben de servir (y adaptarse a) las necesidades de más de un jardinero, Las siguientes características de WebApps son las que conducen el proceso: Inmediatez. Las aplicaciones basadas en Web tienen una inmediatez [NOR99] que no se encuentra en otros tipos de software. Es decir, el tiempo que se tarda en comercializar un sitio Web completo puede ser cuestión de días o semanas3. Los desarrolladores deberán utilizar los métodos de planificación, análisis, diseño, implementación y comprobación que se hayan adaptado a planificaciones apretadas en tiempo para el desarrollo de WebApps.


José Juan Garcia Bórquez Reporte 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 no imposible, limitar la población de usuarios finales que pueden acceder a la aplicación. Con objeto de proteger el contenido confidencial y de proporcionar formas seguras de transmisión de datos, deberán implementarse fuertes medidas de seguridad en toda la infraestructura que apoya 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, pero con un grado diferente de influencia. Las categorías de aplicaciones que se enumeran a continuació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 espacio chat (charla), tablones de anuncios o mensajería instantánea; entrada del usuario: la entrada basada 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 al usuario a determinar un pago de hipoteca. Portal: la aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera del dominio 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 y extrae información. Las características y las categorías destacadas anteriormente en esta sección, y las categorías de aplicaciones representan los hechos reales para los ingenieros de la Web. La clave es vivir dentro de las restricciones impuestas por las características anteriores y aun así tener éxito en la elaboración de la WebApp.


FRAMEWORK Es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, 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 en Windows y soluciones Web.


José Juan Garcia Bórquez ID:25122003 Tarea 4: UML investigación MODELO DE LENGUAJE UNIFICADO

MODELO DE LENGUAJE UNIFICADO (UML)

El “Unified Modelling Languaje” (UML) provee a los analistas y arquitectos de sistemas que trabajan 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 útil para hacer modelos de negocios. Esta especificación es la evolución del las tres anteriores tecnologías orientadas a objetos lideres (Booch, OMT y OOSE). El UML es la unión de estos lenguajes de modelos y aún mas ya que incluye expresiones adicionales para manejar problemas de modelaje que los métodos anteriores no cubrían plenamente. El desarrollo de el UML empezó en octubre de 1994 cuando Grady Booch y Jim Rumbaugh de Rational 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 eran reconocidos como métodos líderes en el desarrollo orientado a objetos, Booch y Rumbaugh unieron fuerzas para forjar una unificación completa de los dos métodos. Una versión preliminar 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 es ahora dado mayormente para describir a el Proceso que acompaña al UML el “Rational unified process” Los objetivos de la unificación fueron: el mantenerlo simple, el quitar elementos de los lenguajes de Booch, OMT y OOSE que no funcionaran en la práctica, el añadir elementos de otros métodos que fueran más efectivos y el inventar nuevas construcciones solamente cuando la solución existente no estuviera disponible. Aunque el UML define un leguaje preciso, no es una barrera para el desarrollo futuro en los conceptos de modelaje. Se han incorporado muchas técnicas líderes, pero se espera que técnicas adicionales influyan las versiones futuras del UML. Muchas técnicas avanzadas pueden ser 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ño de sistemas, el artefacto específico para el manejo de requerimientos es el Use Case y los Actores.


¿Qué es un "Use Case"?

José Juan Garcia Bórquez ID:25122003 Tarea 4: UML investigación MODELO DE LENGUAJE UNIFICADO

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 que necesita intercambiar información con el sistema. Las instancias de los actores son los usuarios del sistema, ellos llevan a cabo un numero de operaciones con el sistema y desarrollan una secuencia de transacciones en comunicación con el sistema. A esta secuencia de acciones se llama 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 definidos por clases dentro de el sistema se puede describir con diagramas de colaboración.


MICROSOFT PROJECT

José Juan Garcia Bórquez ID: 25122003 Tarea 6

Es un software de administración de proyectos diseñado, desarrollado y comercializado por microsoft para asistir a administradores de proyectos en el desarrollo 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 la gestión de proyectos, aplicando procedimientos descritos en el PMBOK (Managment Body of Knowledge) del PMI (Project Managment Institute). Debe ser usado en forma avanzada, por líderes de proyecto aplicando sus bases que están fundamentadas en el Mé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ón universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado 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 cualquier editor de textos y el código objeto (compilado) dispuesto para su ejecución con su correspondiente runtime. Cuando se ve un programa escrito en COBOL saltan a la vista varios aspectos: Existen unos márgenes establecidos que facilitan su comprensión. Esta estructurado en varias partes, cada una de ella con un objetivo dentro del programa. Nos recuerda mucho al lenguaje inglés, puesto que su gramática y su vocabulario están tomados de dicho 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 de datos en aplicaciones comerciales, utilización de grandes cantidades de datos y obtención de resultados ya sea por pantalla o impresos. Con COBOL se pretendía un


José Juan Garcia Bórquez ID: 25122003 Tarea 6

lenguaje universal, sin embargo, se han ido incorporando retoques y mejoras aunque son mínimas.

Con la llegada del Sistema Operativo Windows, son muchos los que intentan proveer al COBOL 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án consiguiendo que éste lenguaje siga estando presente en moda visual de ofrecer los programas. Sin embargo, son muchas las empresas que siguen dependiendo del COBOL-85 tradicional para sus proyectos debido principalmente a la estructura de su sistema 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 hacer má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, pulsos eléctricos u ópticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno software. Varios ejemplos se encuentran en el área de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de inteligencia artificial actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.


José Juan Garcia Bórquez Tarea second life

SECOND LIFE Es una plataforma para poder estudiar e interactuar de forma virtual mediante un avatar al que se puede acceder gratuitamente por internet. En esta escuela virtual interactúas con otras personas, con tu avatar asistes a clases y aprendes como si estuvieras asistiendo a una escuela, también puedes cambiar a tu avatar dependiendo en 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ía un 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 por discapacidades u otros motivos.


Es muy importante para un ingeniero en sistemas computacionales llevar la materia de ingenierĂ­a en software ya que asĂ­ tienes una introducciĂłn a lo que es y los temas que se tratan en esta materia. Me fue muy util el saber lo que era el modelo RUP, las preguntas que se debe hacer un ingeniero en software, la ingenieria del software asistida por computadora (CASE), la gestion de planificacion, el modelo COCOMO 2 entre otros temas que tratamos.

INGENIERÍA DE SOFTWARE  

Introduccion a la ingenieria de software. Preguntas Frecuentes de la ingenieria de software. Ingenieria en software asistida por computadora...

INGENIERÍA DE SOFTWARE  

Introduccion a la ingenieria de software. Preguntas Frecuentes de la ingenieria de software. Ingenieria en software asistida por computadora...

Advertisement