Introducción a la Ingeniería de Software Capítulo 1



Documentos relacionados
Conceptos básicos de Ingeniería de Software

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

a la Ingeniería de Software

Elementos requeridos para crearlos (ejemplo: el compilador)

Fundamentos de Desarrollo de Software

CMMI (Capability Maturity Model Integrated)

Capítulo 2. Metodologías de selección de personal

Estándar CMMI. Disciplinas del CMMI. Modelo continuo y modelo por niveles.

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

CONSULTORES EN GESTIÓN DE LA CALIDAD. INSTRUCCIONES PARA SU EMPLEO.

Una estructura conceptual para medir la efectividad de la administración

0. Introducción Antecedentes

Configuración de Software

Resumen General del Manual de Organización y Funciones

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

SISTEMAS DE INFORMACIÓN I TEORÍA

Ciclo de vida del software

Gestión de Configuración del Software

TECNOLOGICO DE ESTUDIOS SUPERIORES DE ECATEPEC CALIDAD DE SOFTWARE Guía para Examen Segundo Parcial Grupo 6501

Señor A/P. Lino Bessonart FEMI Presente Ref.: 181/2009

Interoperabilidad de Fieldbus

Figure 7-1: Phase A: Architecture Vision

Inicio. Nivel 5. El Marco de la Buena Enseñanza. Definiciones preliminares. Dominios del Marco de la Buena Enseñanza

Al final del curso el estudiante:

POLÍTICA PARA LA GESTIÓN INTEGRAL DE RIESGOS EN IBERPLAST

Marco Normativo de IT

Fortaleciendo el Gobierno Corporativo en Organizaciones Bancarias

CHAPTER 1. RESPONSABILIDADES Y OBLIGACIONES HACIA LOS CLIENTES.

6 Anexos: 6.1 Definición de Rup:

Introducción. Enfoque de Control de CobiT Los Procesos del Modelo Mapeo de los Procesos


CÓDIGO DE ÉTICA Código: DG-D Versión: 01 - Fecha Emisión: 05/02/2013

CODIGO DE ÉTICA DE ANSE (TRADUCCIÓN NO OFICIAL DE INES SÁNCHEZ ENDRINA Y XABIER AMENABAR)

GERENCIA DE INTEGRACIÓN

Administración del conocimiento y aprendizaje organizacional.

-OPS/CEPIS/01.61(AIRE) Original: español Página Estructura del programa de evaluación con personal externo

Documento Nro.7 SEMINARIO SOBRE ESTÁNDARES DE CALIDAD PARA INSTITUCIONES DE EDUCACIÓN SUPERIOR

Principios de privacidad móvil

CRITERIOS DE ACREDITACIÓN. Programas de Computación Ciclo de Evaluaciones

Innovación de procesos

Procesos Críticos en el Desarrollo de Software

INFORME SOBRE LA AUTOEVALUACIÓN DE CALIDAD DE LA ACTIVIDAD DE AUDITORÍA INTERNA 2011

Tecnología de la Información. Administración de Recursos Informáticos

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

CCPA Costa Rica. Como establecer criterios para la evaluación de la Auditoría Interna. Michael Delgado Gerente de Riesgos EY.

EMPRESAS PÚBLICAS DE MEDELLÍN E.S.P. DIRECCIÓN CONTROL INTERNO PROYECTO NORMALIZACIÓN ACTIVIDAD DE AUDITORÍA INTERNA

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

TABLA DE CONTENIDO PRESENTACIÓN 3 OBJETIVO 4 ALCANCE 4 GLOSARIO 4 DIRECTRICES ÉTICAS 5

Plan de Administración del Proyecto

CUADRO DE MANDO INTEGRAL

El Proceso Unificado de Desarrollo de Software

POLÍTICA DE TECNOLOGÍA DE INFORMACIÓN

Factores Críticos de Éxito. Marco Sandoval Belling

ESTÁNDAR DE PRÁCTICA ACTUARIAL NO. 02

Decenio de las Personas con Discapacidad en el Perú Año de la Diversificación productiva y del Fortalecimiento de la Educación

CAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y

Plan de Estudios. Diploma de Especialización en Seguridad Informática

14. Ingeniería de software. Ing. Alejandro Adorjan

Unidad 1. Fundamentos en Gestión de Riesgos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

PERFILES OCUPACIONALES

Sistema Gestión Licitación para la compra del desarrollo y migración del Sistema de Gestión de Activos y Configuraciones para Plan Ceibal

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

SOLUCIÓN HOSPEDADA. Introducción a los modelos de asociación de partners de Microsoft Dynamics CRM

LEGISLACION Y NORMATIVAS COMO FACTORES DETERMINANTES DE LA CALIDAD DEL SOFTWARE

Principios de Privacidad y Confidencialidad de la Información

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

Plan de estudios ISTQB: Nivel Fundamentos

OHSAS 18001: Sistema de Gestión de la Seguridad y Salud en el trabajo

Sistema de Gestión de Proyectos Estratégicos.

1. DESCRIPCIÓN O CONTENIDO.

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

INTRODUCCIÓN. 1. Definición del problema

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Copyright bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

Unidad I: Introducción a la gestión de proyectos

ISO/IEC Sistema de Gestión de Seguridad de la Información

LISTA DE MEJORAS PARA MEJORAR LOS RESULTADOS DE LA EVALUACIÓN

Una puerta abierta al futuro

Perfil de Éxito Individual

2 EL DOCUMENTO DE ESPECIFICACIONES

La auditoría operativa cae dentro de la definición general de auditoría y se define:

ANÁLISIS DE RIESGOS EN LA GESTIÓN DE PROYECTOS. Los riesgos son eventos o condiciones inciertas que, si se producen, tienen un

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Hoja Informativa ISO 9001 Comprendiendo los cambios

plataforma GloBAl de defensa Y promoción

CAPÍTULO 2. MODELOS Y ESTÁNDARES DE CALIDAD DE SOFTWARE


PMI Agile Certification

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE SOFTWARE MICROSOFT VISUAL STUDIO PREMIUM

1. INTRODUCCIÓN 1.1 INGENIERÍA

PROPUESTA METODOLOGICA PARA LA EDUCCIÓN DE REQUISITOS EN PROYECTOS DE EXPLOTACIÓN DE INFORMACIÓN

Is not jus power, is reliability and trust. Yei Systems S.A. de C.V.

METODOLOGÍA PARA REALIZAR UNA AUDITORÍA INFORMÁTICA.

Metodología básica de gestión de proyectos. Octubre de 2003

Principios Éticos del Trabajador Social

PROPUESTA DE RESOLUCIÓN ESPECÍFICA PARA LOS PROGRAMAS DE CONTADURÍA PÚBLICA.

MANEJO DE QUEJAS Y RECLAMOS

Planeación del Proyecto de Software:

Transcripción:

Introducción a la Ingeniería de Software Capítulo 1 Curso de Ing. De Software FIIS UNAC Ing. Eddie Malca Vicente Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1

No es más sabio aquel que sabe mucho, sino aquel que hace mucho con lo poco que sabe.

Objetivos Curso de Ingeniería de Software Introducir y comprender la Ingeniería de Software y explicar su importancia. Establecer respuestas a preguntas clave acerca de la Ingeniería de Software. Introducir aspectos éticos y profesionales y explicar la importancia de los mismos para los ingenieros de software.

Tópicos expuestos Preguntas frecuentes acerca de la Ingeniería de Software. Responsabilidad ética y profesional.

Ingeniería de Software Las economías de TODAS las naciones desarrolladas son dependientes de software y sistemas informáticos. Cada vez más sistemas son controlados por software. La Ingeniería de Software concierne teorías, métodos y herramientas para el desarrollo profesional de software. Los gastos en software representan una fracción significativa del PBI en todos los países desarrollados.

Costos del Software Los costos del software a menudo dominan en los costos de un sistema computacional o informático. Los costos de software en una PC son a menudo mayores que el costo del hardware. Cuesta más el mantenimiento del software que el desarrollo del mismo. Para sistemas de larga vida, los costos de mantenimiento se multiplican con respecto a los costos de desarrollo. A la Ingeniería de Software le compete el desarrollo de software rentable.

Preguntas frecuentes acerca de Ingeniería de Software Qué es Software? Qué es la Ingeniería de Software? Cuál es la diferencia entre Ingeniería de Software y Computación? Cuál es la diferencia entre Ingeniería de Software e Ingeniería de Sistemas? Qué es un proceso de software? Qué es un modelo de proceso de software?

Preguntas frecuentes acerca de Ingeniería de Software Cuáles son los costos que implica la Ingeniería de Software? Cuáles son las metodologías de desarrollo de Software? Qué son las herramientas CASE (Computer-Aided Software Engineering) Cuáles son los atributos de un buen software? Cuáles son los desafíos primordiales frente a la Ingeniería de Software?

Qué es software? Programas de cómputo y documentación asociada, como ser documentos de requerimientos, arquitectura y modelos de diseño y manuales de usuario. Los productos software pueden ser desarrollados para un cliente particular o bien para el mercado en general. Los productos software pueden ser: - Genéricos desarrollados para ser vendidos a una gama de diversos clientes, ejemplo: software como Excel o Word. - Hecho a medida desarrollado para un cliente particular acorde a sus requerimientos y especificaciones. Nuevo software puede ser creado desarrollando nuevos programas, configurando sistemas de software genérico o reutilizando software existente.

Qué es la Ingeniería de Software? La Ingeniería de Software es una disciplina de la ingeniería que concierne a todo lo referente con producción de software. Los ingenieros de software deberían adoptar un enfoque sistemático y organizado con respecto a su trabajo, utilizar herramientas y técnicas apropiadas con relación al problema planteado, las restricciones del desarrollo y los recursos disponibles.

Cuál es la diferencia entre Ingeniería de Software y Computación? La computación comprende teorías y fundamentos de cualquier sistema de cómputo; a la Ingeniería de Software le concierne los aspectos prácticos del desarrollo y entrega de software útil. Las teorías de la computación aún son insuficientes para respaldar completamente a la Ingeniería de Software (indistintamente a, ejemplo, la física y la ingeniería eléctrica).

Cuál es la diferencia entre Ingeniería de Software e ingeniería de sistemas? A la ingeniería de sistemas le competen todos los aspectos de desarrollo de sistemas basados en cómputos, incluyendo hardware, software y procesos de ingeniería. La Ingeniería de Software es parte de este proceso, haciendo referencia al desarrollo de la infraestructura del software, aplicaciones y bases de datos en el sistema. Los ingenieros de sistemas están involucrados con la especificación del sistema, diseño arquitectónico, integración y despliegue del mismo.

Qué es un proceso de software? Un conjunto sistemático de actividades cuya meta es el desarrollo o la evolución del software. Actividades genéricas en todos los procesos de software son: - Especificación lo que el sistema debería hacer y sus restricciones de desarrollo - Desarrollo producción del sistema software - Validación comprobando que el software es lo que el cliente quiere - Evolución cambios y mantenimiento en el software con relación a los cambios en los requerimientos y demandas.

Qué es un modelo de proceso de software? Una representación simplificada de un proceso de software, presentada desde una perspectiva específica. Ejemplos de perspectivas de proceso son: - Perspectiva de flujo de trabajo secuencia de actividades; - Perspectiva de flujo de datos flujo de información; - Perspectiva de Casos de Uso quién hace qué (funcionalidad). Modelos de proceso genéricos - Modelo en Cascada; - Desarrollo iterativo; - Ingeniería de Software basada en componentes.

Cuáles son los costos de Ingeniería de Software? Rigurosamente, 60% de los costos son de desarrollo, 40% son costos de prueba. Para software hecho a medida, los costos de evolución a menudo exceden los costos de desarrollo. Varían acorde al tipo de sistema a desarrollar y a los requerimientos con respecto a los atributos del mismo, como ser el funcionamiento y la confiabilidad del sistema. La distribución de los costos depende del modelo empleado para el desarrollo del software.

Distribución de costos por actividad Waterfall m odel 0 25 5 0 75 1 00 Specification Design Developm ent Integ ration and testing Iterative developm ent 0 2 5 5 0 75 1 00 Specification Iterative developm ent System testing Com ponent-based softw are eng ineering 0 2 5 5 0 75 1 00 Specification Developm ent Integ ration and testing Developm ent and evolution costs for long-lifetim e syst em s 0 1 0 200 30 400 System developm ent System evolution

Costos de desarrollo del producto

Cuáles son las metodologías de desarrollo de software? Acercamientos estructurados al desarrollo de software que incluyen modelos del sistema, notaciones, reglas, pautas de diseño y pasos a seguir. Descripciones del modelo - Descripciones de modelos gráficos que deben ser producidos; Reglas - Restricciones aplicadas a los modelos del sistema; Recomendaciones - Pautas para un buen diseño en la práctica; Pasos a seguir - Qué actividades deben seguirse.

Qué son las herramientas CASE (Computer-Aided Software Engineering) Sistemas de software cuya finalidad es la de proveer soporte automatizado para actividades de proceso o desarrollo de software. Los sistemas CASE son usados con frecuencia como soporte dentro de la metodología de desarrollo. Herramientas CASE tempranas o Superiores - Herramientas para soportar las actividades tempranas de requerimientos y diseño dentro del proceso de software; Herramientas CASE tardías o Inferiores - Herramientas para soportar actividades posteriores como ser la programación, depuración y prueba o testeo.

Cuáles son los atributos de un buen software? El software debe entregar la funcionalidad y el funcionamiento requeridos por el usuario al él mismo, y debe ser mantenible, confiable y aceptable. Mantenibilidad - El software debe evolucionar para cubrir necesidades cambiantes; Confiabilidad - El software debe ser confiable; Eficiencia - El software no debería hacer mal uso de los recursos del sistema; Aceptabilidad - El software debe aceptar las necesidades de los usuarios para los cuales fue diseñado. Esto significa que debe ser entendible, de utilidad y compatible con otros sistemas.

Cuáles son los desafíos primordiales frente a la Ingeniería de Software? Heterogeneidad, entrega y confianza. Heterogeneidad - Técnicas de desarrollo para la construcción de software que puedan encararse con plataformas heterogéneas y ambientes de ejecución apropiados; Entrega - Técnicas de desarrollo que lleven a una entrega de software más rápida; Confianza - Técnicas de desarrollo que demuestren que el software es de confianza para con sus usuarios.

Responsabilidad ética y profesional La Ingeniería de Software implica responsabilidades mayores que el simple uso de habilidades técnicas. Los ingenieros de software deben comportarse de manera honesta y éticamente responsable si van a ser respetados como profesionales. Comportamiento éticamente responsable es mucho más que simplemente actuar dentro de la ley.

Aspectos de responsabilidad profesional Confidencialidad - Los ingenieros deberían normalmente respetar la confidencialidad de sus clientes independientemente de que se haya firmado o no un previo acuerdo de confidencialidad. Capacidad - Los ingenieros no deberían pretender tener mayor capacidad (intelectual y laboral) de la que tienen, deben aceptar conscientemente trabajo que esté acorde a su capacidad.

Aspectos de responsabilidad profesional Derechos de propiedad intelectual - Los ingenieros deberían estar conscientes de las leyes que gobiernan el uso de propiedad intelectual, como ser patentes y derechos reservados. Deben ser cuidadosos al garantizar que la propiedad intelectual de sus clientes está protegida. Mal uso de la computadora - Los ingenieros de software no deberían usar sus habilidades técnicas para un mal uso de las computadoras de otras personas. El mal uso de una computadora comprende desde lo relativamente simple (jugar en la computadora del cliente) hasta lo extremamente serio (diseminar virus).

Código de Etica ACM/IEEE Las sociedades profesionales en los Estados Unidos cooperaron para producir un código de práctica ética. Miembros de estas organizaciones fueron consecuentes con el código de práctica ética cuando se asociaron. El código contiene ocho principios relacionados al comportamiento y las decisiones hechas por ingenieros de software profesionales, incluyendo a los que lo ejercían, educadores, encargados, supervisores y editores, asi como aprendices y estudiantes de la profesión.

Código de Etica - preámbulo Preámbulo - La versión corta del código resume aspiraciones a un alto nivel de abstracción; las cláusulas que se incluyen en la versión completa dan ejemplos y detalles de cómo estas aspiraciones cambian nuestro modo de actuar como profesionales de la Ingeniería de Software. Sin las aspiraciones, los detalles pueden llegar a ser legalistas y aburridos; sin los detalles, las aspiraciones pueden llegar a ser ruidosas pero vacías; juntas, las aspiraciones y los detalles forman un código cohesivo. - Los ingenieros de software se comprometerán a hacer del análisis, especificación, diseño, desarrollo, prueba y mantenimiento de software una profesión respetable y beneficiosa. Acorde a su compromiso con la salud, bienestar y seguridad del público, los ingenieros de software se adherirán a los ocho principios siguientes:

Código de Etica - Principios PUBLICO - Los ingenieros de software actuarán constantemente con el interés público. CLIENTE Y EMPLEADOR - Los ingenieros de software actuarán acorde al mayor interés de sus clientes y empleadores en constancia con el interés público. PRODUCTO - Los ingenieros de software garantizarán que sus productos y relativas modificaciones van acorde a los estándares profesionales más altos posibles.

Código de Etica - Principios JUICIO - Los ingenieros de software mantendrán su integridad e independencia de juicio como profesional. GERENCIA - Gerentes y líderes de Ingeniería de Software suscribirán y promoverán un acercamiento ético hacia el manejo de desarrollo de software y evolución. PROFESION - Los ingenieros de Software incrementarán la integridad y reputación de la profesión en constancia con el interés público.

Código de Etica - Principios COLEGAS - Los ingenieros de software serán condescendientes y brindarán apoyo a sus colegas. UNO MISMO - Los ingenieros de software participarán en la formación continua con respecto a la práctica de su profesión y promoverán un acercamiento ético a la práctica de la profesión.

Dilemas Eticos Desacuerdo en principio con las políticas de administración superior. El empleador actúa de un modo no ético y lanza un sistema de seguridad crítico sin terminar la prueba del sistema. Participación en el desarrollo de armamento militar o sistemas nucleares.

Puntos Clave La Ingeniería de Software es una disciplina de la ingeniería concerniente a todos los aspectos de la producción de software. Los productos software están consistidos de programas desarrollados y su documentación asociada. Atributos esenciales del producto son la mantenibilidad, formalidad, eficiencia y utilidad. El proceso de software consiste en actividades involucradas en el desarrollo de productos software. Actividades básicas son la especificación del software, desarrollo, validación y evolución. Las metodologías son maneras organizadas de producir software. Estas incluyen sugerencias para el proceso a seguir, notaciones a usar, reglas que rigen las descripciones del sistema que son pautas para el desarrollo.

Puntos Clave Las herramientas CASE son sistemas de software diseñadas para soportar actividades rutinarias en el proceso de software, como ser: editar diagramas de diseño, verificaciones de la consistencia de diagramas y seguir el rastro de las pruebas del programa que han sido ejecutadas. Los ingenieros de software tienen responsabilidades para con la profesión y la sociedad. No deberían simplemente preocuparse de aspectos técnicos. Las sociedades profesionales publican códigos de conducta que establecen los estándares de comportamiento que se esperan de sus miembros.

Introducción a la Ingeniería de Software Capítulo 1 Curso de Ing. De Software FIIS UNAC Ing. Eddie Malca Vicente Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1