Introducción al desarrollo de Software



Documentos relacionados
Techniks es una empresa comprometida con el desarrollo de sistemas de. información de calidad y requiere de la recomendación o desarrollo de un método

Análisis y Diseño de Sistemas Departamento de Sistemas - Facultad de Ingeniería

PUNTOS DE CASOS DE USO

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software

La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A)

Curso de Herramientas web para los Emprendedores

8 horas semanales 32 horas semestral. Suficientable

E-learning Tecnico en formacion

DOCUMENTO DE ARQUITECTURA

CHAUDITORIA CONSULTORES S.A.

INSTITUTO DE NUTRICIÓN DE CENTRO AMERICA Y PANAMA INCAP CONSIDERACIONES TECNICAS PARA ANÁLISIS DE FUENTES INFORMACIÓN

CAPÍTULO 4 GESTORES DE CONTENIDOS

BASE DE DATOS. Qué es una base de datos?

Campañas de Publicidad

Fundación Pro Universidad Virtual Dominicana FUVF/ISED primer Centro Operativo Virtual Acreditado por el INFOTEP DIPLOMADO

Dirección y Gestión de Proyectos

Líneas de producto de software. Casos de éxito: Teléfonos móviles de Nokia Toshiba

4.1 Dispositivos y manejadores de dispositivos: device drivers

Introducción al curso Audición Robótica. Dr. Caleb Rascón

Estudio de Factibilidad

LA INTEGRACIÓN DE SISTEMAS

Lenguajes de Cuarta Generación (4GL)

Programa de Tecnologías Educativas Avanzadas. Programa Intel Educar DESCRIPCION CURSOS INTEL

Introducción a la Gestión de la Innovación

Capítulo I. Introducción

MICROSOFT ACCESS 2013 (COMPLETO)

Programming in HTML5 with JavaScript and CSS3

Capítulo 3. Diseño de un Ambiente para Apoyar la Investigación Usando. Documentos Digitales

Nueva ISO 14001:2015: Cómo afrontar los principales cambios

Análisis de problemas

Sus socios en ISO Manual de Calidad

ASIGNATURA Modelamiento III CAID CÓDIGO NIVEL 3 MODALIDAD P PROYECTUAL TECNOLÓGICA X TEÓRICA PLAN COMÚN INDUSTRIAL X GRÁFICO

360ºde la gestión del expediente. José Novillo Especialista Técnico en Gestión Documental #START013, 6 Noviembre 2012

Marketing 2.0: la gestión del social media en la empresa

ISO21500 Una guía a la Dirección de Proyectos Cómo implementarla?

Aprender a Programar: Cómo Empezar

Framework Atlas. Introducción. Unidad de Arquitectura y Soporte de Aplicaciones Área de Aplicaciones Especiales y Arquitectura de Software DIAS

Webinar Avantare. Dr Jorge Rafael Aguilar Cisneros Depto. Ingenierías, UPAEP.

TALLER SOBRE CÓMO ESCRIBIR PROPUESTAS DE INVESTIGACIÓN. Manuel Valdés Pizzini Profesor SOCI 3265 Métodos de Investigación Social

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A)

Overview GeneXus Qué es y para qué sirve GeneXus? Principales características y beneficios.

GUÍA DE APRENDIZAJE. Módulo VI Seis Sigma. Aprendizaje sin fronteras

PRESUPUESTO. Administración Financiera para Instituciones Sin Fines de Lucro, Básico CDE CDE

"Estrategia Comunicacional y Aplicaciones en los Medios Digitales" Fundación Banco Credicoop

ROLES DEL PROYECTO Tomayko

Decision Support System (DDS)

Descripción de las categorías de evaluación para el área de Artes del Lenguaje del boletín de calificaciones de kindergarten:

Microsoft Access 2003 (Completo)

Grupo de Prácticas de auditoria ISO 9001 Guía sobre:

1. ASIGNATURA / COURSE

Introducción a JQuery

PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN DE MERCADOS LICDA. NATHALI OROZCO BRAVO

Si buscas libros de Español, Humberto Cueva es el autor.

plantear problemas y soluciones, aprender y planear

Estrategias para la búsqueda de información: Palabras claves y temas

Administración y Seguridad de Sistemas Cloud Computing. Integrantes: Martín Steglich Martín Berguer Raúl Speroni Cristian Bauza

Noche de Matemáticas para Padres de Familia MHHS

PARTE I: Introducción al estudio del comportamiento del consumidor

Sistemas Operativos. Iván Bernal, PhD 4. Escuela Politécnica Nacional I.

Fundamentos de Programación y Bases de Datos

Conceptos básicos de bases de datos

UNIVERSIDAD DE PAMPLONA ADMINISTRACION DE BASES DE DATOS GRUPO BR MENTOR: ESP. ALEXIS OLVANY TORRES CH. PRIMER SEMESTRE 2011

Norma ISO 9001: Sistema de Gestión de la Calidad

Modelo de Transformación Organizacional

Elaboración de objetos de aprendizaje en herramientas de software libre y su integración en Moodle 2. Leticia García Pérez. Leobardo A.

PRESENTACIÓN CORPORATIVA

Modelo Cliente / Servidor. Gerardo Grinman 5D

DIPLOMADO GERENCIA SOCIAL IGNACIANA

V 1.0. Ing. Juan C. Guarnizo B.

LA DESCRIPCIÓN EN HISTORIA (Enseñanza Primaria)

Sistemas de Información para la Gestión

Algoritmos y Diagramas de flujo

EN QUÉ CONSISTE UN SISTEMA DE GESTIÓN? Rev de Julio de 2001

El uso de la Técnica de Regresión Lineal Múltiple para la evaluación de la dotación de personal en el I.N.S.S.

20461 Consultas en Microsoft SQL Server 2014

Administración n de Proyectos

METODOLOGÍA COMMONKADS.

SOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0

PERFIL DEL INGENIERO EN INFORMÁTICA DE LA UNELLEZ

Mantener una base de datos de Microsoft SQL Server 2008 R2

I Edición. Aprender a hablar en público Presentaciones

FASE: Comunidad. Requerimientos plataforma LATIn. No registrado:

1. INTRODUCCIÓN A LA MODELIZACIÓN CONCEPTUAL DE DATOS

Programación Digital I

La automatización de los. información y gestión documental mediante tecnologías ICR / OCR

MICROSOFT ACCESS 2007

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

Objetivos y Temario CURSO SQL SERVER 2012

PLAN DE NEGOCIO GUIA PARA ELABORAR UN PLAN DE NEGOCIOS.

CONFIGURACIÓN BÁSICA DE NOTEPAD++ PARA CREAR PÁGINAS PHP. ALGUNAS VENTAJAS DE ESTE EDITOR COMO SUS EXTENSIONES O PLUGINS.

PERFIL COMPETENCIA ANALISTA DESARROLLADOR DE APLICACIONES DE SOFTWARE (TIC-PROG)

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Asignatura: Investigación Operativa

Todos los estados del país.

PREGUNTAS FRECUENTES COSO 2013

Capítulo 16: Apoyando las Decisiones Gerenciales con Sistemas de Información. Presentación Carlos A. CórdovaC Programa MBA USFQ Julio de 2007

Soporte a la toma de decisiones

6.2. REINVENTANDO LAS MATEMÁTICAS

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Transcripción:

7 al 18 de Marzo@ Df UBA CABA, Argentina Introducción al desarrollo de Software Cecilia Jarne cecilia.jarne@unq.edu.ar

2 Ideas básicas para empezar 1)Herramientas y procesos de organización, desarrollo y mantenimiento de soft. 2)Estrategias y buenas prácticas. 3)Desarrollo de soft colaborativo. 4)Favorecer el uso de soft reutilizable. 5)Trabajo en grupo para poner en práctica estas ideas.

1)Procesos de organización y desarrollo Para quién estoy programando? Para mí, Para nosotros,para terceros... (set de requerimientos que necesito, acordar con el par o hacer un buen esquema de lo que necesita quien encarga la tarea.) Que tareas se necesitan, cómo las vamos a implementar? (usar si es necesario un papel para un primer esquema.) Traducir los requerimientos en sub tareas Usar algún método de project management (para ser estrictos con los tiempos de desarrollo, implementación y optimización.) No inventar la pólvora! (Invertir algún tiempo en investigar si actualmente existe una manera de implementar las cosas documentada) 3

4 2)Estrategias y buenas prácticas. Invertir algo de tiempo en pensar que es necesario y posibilidades de implementación. (Observar ejemplos antes de decidir la mejor estrategia.) Comunicarse fluidamente con el que pide el software o con quien desarrolla junto con nosotros. Documentar el proceso. (Utilizar las herramientas existentes)

5 2)Estrategias y buenas prácticas. Invertir algo de tiempo en pensar y leer. (Observar ejemplos antes de decidir la mejor estrategia) ALGUNAS IDEAS DE DONDE MIRAR: http://stackoverflow.com/ http://numerical.recipes/ https://projecteuler.net/ http://nipy.org/nitime/index.html (este es un ejemplo un poco más específico de sitios que existen para distintos temas)

3)Desarrollo de soft colaborativo. Escribir software mas modular y reusable. => Escribir frameworks y librerias. Sofware modificable. Donde las componentes puedan ser combinadas sin tener que recompilar (si se puede) => Combinar codigo script y compilado. Intentar que las componentes puedan ser (re )testeadas y (re )validadas. BUENA DOCUMENTACION SOBRE EL SOFT QUE ESCRIBIMOS!!!!!! 6

7 3)Desarrollo de soft colaborativo. Algunos ejemplos de soft colaborativo http://nipy.org/nitime/index.html https://root.cern.ch/ http://auger.le.infn.it/dpa.html http://audiotools.sourceforge.net/

8 4) Favorecer el uso de soft reusable. Intentar escribir módulos para combinar o usar script code dependiendo de las características y tamaños del problema a resolver. El software científico tiene características propias que hacen que uno se incline por estas herramientas.

Qué hace distinto al soft científico? Los requerimientos no están del todo definidos a veces. Limitaciones en el cálculo de punto flotante pueden perjudicarnos. Algunas aplicaciones pueden ser usadas una ves. No todos los científicos saben programar o hacerlo del modo mas eficiente. A veces las implementaciones deben ser hechas por gente inexperta. 9

10 Por qué usar lenguaje de script? Portabilidad. No hay necesidad de re compilar. Disponibilidad de librerías en la propia plataforma. Flexibilidad. Adaptabilidad. Posibilidad de adaptar múltiples extensiones de archivos. Conveniencia. Los script lenguajes tienen gran facilidad para prey post proceso de datos. Las partes que lleven tiempos grandes se pueden hacer en lenguaje compilado.

Por qué usar lenguaje modular y librerías? Muchas tareas distintas requieren enfoques de cálculo o proceso análogos. Algunas tareas difieren solo en el subset de datos. Cálculos de operaciones comunes. (Fast Fourier transforms, basic linear algebra, etc.) Los datos pueden colocarse en archivos estructurados soportados por herramientas de análisis y visualización comunes. Gran potencial de re uso de código!!! Los módulos independientes pueden ser validados más fácilmente. 11

12 Por qué usar lenguaje modular y librerías? Provee niveles de abstracción. > No es necesario saber como funciona TODO siempre. > Oportunidad para hacer más clara la optimización. Acceso organizado a los datos. >datos+funciones para modificarlos. >control de acceso de solo lectura o lectura escritura.

13 Por qué usar documentación embebida? Tres tipos de documentación se necesitan. Información para los desarrollares que quieren agregar código. > Documentación API (e.g. via doxygen) > Comentarios en el código que explican elecciones. Información para los usuarios. > Manual de referencia para los usuarios. Información para los usuarios que quieren aprender a usar una herramienta especifica. > Tutoriales, HOWTO? Arrancar a escribir la documentación desde el comienzo.

14 Source Code Management Un lugar para colocar los archivos fuente y una herramienta de comunicación entre los desarrolladores. Un modelo de código distribuido entre los desarrolladores. Trabajar con varias ramas y mergear luego. Hacer los cambios de a poco y no combinar cambios que no se relacionan en un mismo commit. Tener una documentación consistente de los cambios y las reglas para realizarlos.

15 Conclusiones Intentar quitar malos hábitos de programar solo. Adoptar herramientas tecnológicas útiles que pueden hacer más exitosa la tarea del desarrollo colaborativo. O al menos poder hacer crosschek de nuestro trabajo con otros!