Desarrollo de Software I Juan Manuel Fernández Peña

Slides:



Advertisements
Presentaciones similares
Experiencia en implantación de una metodología
Advertisements

Arquitecturas de administración de redes y sus submodelos
Publicaciones científicas apoyadas con tecnologías de información Jorge Walters Gastelu Marzo de 2004 Santiago, Chile.
David Díez, Camino Fernández, Juan Manuel Dodero
Ingeniería de Software II
C OB I T Control Objectives for Information and Related Technology Information Systems and Control Foundation.
Estructura de SW-CMM.
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Resolución de Problemas Algoritmos y Programación
Guia Diseño Robert Echeverria
Modelos de Proceso del Software
Versión 2004 Enrique Bañuelos Gómez
Evaluación de Productos
Desarrollo Orientado a Objetos con UML
Modelado de Procesos en la Ingeniería de Requerimientos
HERRAMIENTAS CASE.
Moprosoft Modelo de Procesos para la Industria del Software
SEMANA Introducción.
Sistemas de gestión de la calidad en empresas que desarrollan con Genexus Amalia Álvarez Balbi Gastón Mousqués
Fundamentos de programación
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Rational Unified Process (RUP)
Ingenieria de software
CMMI Medición & Análisis GRUPO 1 Larissa Hererra Miguel Ortiz Isabel Blank Junio 2005.
Modelo de Capacidad y Madurez
CMMI Carlos Mario Zapata J. 4/13/2017 Calidad de Software.
REQUERIMIENTOS DE SOFTWARE
Calidad y Garantía de Calidad
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Rational Unified Process (RUP)
Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Requerimientos & Casos de Uso
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
¿Cómo nos ayuda GeneXus a mejorar la calidad en el proceso de desarrollo de Software? Ing. Rosario Estévez Ing. Rafael Mon
Técnicas de Calidad del Software Agosto-Diciembre 2007 Sesión # 2.
Ximena Romano – Doris Correa
SEGUNDA CLASE ING.FEDERICO FERROGGIARO – UTN FRRO ROSARIO.
Tema 1: Introducción a la Ingeniería de Software
Sistemas, Procesos y Modelos
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Using e-technology in production, proofing and printing, and in marketing and promotion Jorge Walters Gastelu Metodologías y Tecnologías de Información.
Ingeniería de Software I
Unidad 3: Adquisición de Paquetes de Software Msc. Lic. Susana I. Herrera - Lic. Paola Budán UNSE 2012.
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
INTRODUCCIÓN INGENIERIA DE SISTEMAS
Técnicas de Calidad del Software Agosto-Diciembre 2007 Patricia Verdines Oficina: A2-134B Sesión # 1.
El rol de SQA en PIS.
Sistemas de Información Agosto-Diciembre 2007 Sesión # 10.
Prueba de diagnostico Andrés Vargas Fundamentos tecnológicos de la información 04 Febrero 2013.
INGENIERIA DE SOFTWARE
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: material asignatura CS169,Software Engineering,
PROCESOS DE DESARROLLO DE SOFTWARE
Ingeniería del Software I
INGENIERIA DE SOFTWARE
¿Qué es la Ingeniería De Software? Ingeniería de Software.
Las fases del ciclo de la vida de desarrollo de sistemas
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
Identificación de entradas, salidas y herramientas de procesos de gestión del PMI Jairo A. Orozco L.
Fundamentos de Ingeniería de Software
Servicio de Implementación Proceso de Desarrollo de Software Ventanilla Única de Comercio Exterior Mexicana.
Verificación y Validación del Software
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Transcripción de la presentación:

Desarrollo de Software I Juan Manuel Fernández Peña

Contenido del curso Conceptos básicos Proceso de desarrollo UML y sus diagramas más importantes Calidad y aseguramiento (3s) Análisis de Requerimientos (3s) Prueba de software (4s) Transferencia de software Mantenimiento (4s)

Evaluación Exámenes: 30% Ejercicios en clase. 10% Participación activa (inc. presentaciones):20% Reporte de requerimientos10% Reporte de Calidad10% Reporte de pruebas10% Reporte de mantenimiento10% Puntualidad en entrega de reportes, uso de signatura

Conceptos sistema, proceso, Ingeniería de Software, Actividades/flujos para desarrollo (incluidas actividades de soporte)

Sistema ¿Qué se entiende por sistema? ¿En el caso de software?

Definiciones […] “Conjunto de cosas que, ordenadamente relacionadas entre sí, contribuyen a determinado objeto” Diccionario Colección de componentes organizadas para satisfacer una función o conjunto de funciones (IEEE )

Sistema: elementos Objetivo o propósito Partes que lo forman e interacciones Es una parte de sistema mayor Frontera que lo separa del medio ambiente Sistemas abiertos: –Entradas desde el medio (según necesidades y propósitos) –Salidas al medio (según propósitos) Indicadores de éxito en su objetivo

Sistema Ejercicios Oficina que emplea Office para su trabajo. Estación de estudio del clima

Proceso Qué se entiende por proceso Cómo están constituidos

Proceso (1) A sequence of steps performed for a given purpose; for example, the software development process. (IEEE ) Cambio o paso de un estado a otro (diccionario) Serie de acciones o tareas realizadas con el fin de hacer, producir o alcanzar algo (diccionario) Dos aspectos: paso de tiempo y transformaciones

Proceso Jacobson, Booch, Rumbaugh Define quién está haciendo qué, cuándo y cómo alcanzar un determinado objetivo Para ser efectivo –Proporciona normas para desarrollo eficiente de productos de calidad –Captura y presenta mejores prácticas –Reduce riesgos y lo hace predecible

Proceso Debe ser capaz de evolucionar a lo largo de los años, limitado a las posibilidades reales de: –Tecnologías (lenguajes, SO, equipos, redes) –Herramientas –Personas –Patrones de organización (trabajo a distancia, mezcla de personal con socios, subcontratación)

Adaptadas de Moprosoft Proceso: conjunto de prácticas relacionadas entre sí, llevadas a cabo por roles y por elementos automatizados, que utilizando recursos y a partir de insumos producen un satisfactor de negocio para el cliente Práctica: conjunto de actividades, infraestructura y mediciones, que describen la ejecución de un proceso Actividad: conjunto de tareas específicas asignadas a uno o más roles Rol: responsable de una o más actividades

Adaptadas de Moprosoft Patrón de procesos Definición general –Nombre, categoría y Propósito –Descripción general de actividades –Objetivos, indicadores, metas –Responsabilidad, autoridad –Subprocesos y procesos relacionados –Entradas, salidas, productos internos Prácticas –Roles, actividades, flujo, mediciones, infraestructura –Situaciones excepcionales, lecciones aprendidas Guías de ajuste

Ejercicio procesos Defina alguno de los siguientes procesos –Hacer un pastel –Retirar dinero de un cajero automático –Obtener el grado de Maestra(o) en Ingeniería de Software Defina alguno de los siguientes procesos –Realizar la prueba de unidad de una clase o módulo de software –Instalar un producto de software –Obtener en Internet un tutorial en el uso de una herramienta

Ingeniería de software Qué es Qué elementos comprende ¿Es realmente una ingeniería?

Bauer, 1972 Ingeniería del Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable que sea manejable y trabaje en máquinas reales

Davis, 1993 SE es la aplicación de principios científicos a –La transformación ordenada de un problema en una solución operativa de software y –El mantenimiento subsecuente del software hasta el fin de su vida útil Comienza mucho antes de escribir la primera línea de código y termina mucho después de liberar la primera versión.

Pressman 2005 La ingeniería es el análisis, diseño, construcción, verificación y gestión de entidades técnicas (o sociales). Con independencia de la entidad a la que se va a aplicar ingeniería, se deben cuestionar y responder las siguientes preguntas: –¿Cuál es el problema a resolver? –¿Cuáles son las características de la entidad que se –utiliza para resolver el problema? –¿Cómo se realizará la entidad (y la solución)? –¿Cómo se construirá la entidad? –¿Qué enfoque se va a utilizar para no contemplar los –errores que se cometieron en el diseño y en la construcción –de la entidad? –¿Cómo se apoyará la entidad cuando usuarios soliciten –correcciones, adaptaciones y mejoras de la entidad?

Sommerville La IS es una disciplina de la Ing que comprende todos los aspectos de la producción de soft desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza. Dos frases clave: Disciplina de la ingeniería: los ing 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, aún cuando no existan teorías y métodos aplicables para resolverlos. También saben que deben trabajar con restricciones financieras y organizacionales, por lo cual buscan soluciones tomándolas en cuenta.

Todos los aspectos de producción de software: la IS no solo comprende los procesos técnicos del desarrollo de software, sino también actividades 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

Ingeniería de Software swebok 2004 WHAT IS SOFTWARE ENGINEERING? The IEEE Computer Society defines software engineering as: “(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).”1

Aspectos relevantes Sistemático: realizado de acuerdo a un sistema o plan Disciplinado: entrenado, que sigue las reglas Cuantificable: que expresa o mide la cantidad de algo

Áreas de conocimiento Software requirements Software design Software construction Software testing Software maintenance Software configuration management Software engineering management Software engineering process Software engineering tools and methods Software quality

Disciplinas relacionadas Computer engineering Project management Computer science Quality management Management Software ergonomics Mathematics Systems engineering

Actividades protectoras (Pressman) Seguimiento y control del proyecto de software Revisiones técnicas formales Garantía de calidad del software Gestión de configuración del software Preparación y producción de documentos Gestión de reutilización Mediciones Gestión de riesgos

Computing Curricula 2001 project (CC2001) (Draft) “computer engineering embodies the science and technology of design, construction, implementation and maintenance of software and hardware components of modern computing systems and computer-controlled equipment.” Algoritmos, lógica digital, interacción humano-computadora, sistemas operativos, etc.

Materias complementarias Linear algebra; Differential and integral calculus; Differential equations; Probability; Statistics; Numerical analysis; Discrete mathematics.

Ergonomía (partes) Cognition Cognitive AI I: Reasoning Machine Learning and Grammar Induction Formal Methods in Cognitive Science: Language, reasoning, Cognitive Architecture Cognitive AI II: Learning Foundations of Cognitive Science Information Extraction from Speech and Text Lexical Processing Computational Language Acquisition The Nature of HCI

Systems engineering The International Council on Systems Engineering (INCOSE)11 states that “Systems Engineering is an interdisciplinary approach and means to enable the realization of successful systems. It focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem: operations performance, test, manufacturing, cost and schedule, training and support and disposal. Systems Engineering integrates all the disciplines and specialty groups into a team effort forming a structured development process that proceeds from concept to production to operation. Systems Engineering considers both the business and the technical needs of all customers with the goal of providing a quality product that meets the user needs.

Explorar qué tanto saben de …

Requerimientos

Diseño

Construcción

Prueba

Mantenimiento