La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Desarrollo de Software I Juan Manuel Fernández Peña"— Transcripción de la presentación:

1 Desarrollo de Software I Juan Manuel Fernández Peña juan.fernandez84@gmail.comjuan.fernandez84@gmail.com, http://www.uv.mx/personal/jfernandez http://www.uv.mx/personal/jfernandez

2 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)

3 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

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

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

6 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 610.12-1990)

7 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

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

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

10 Proceso (1) A sequence of steps performed for a given purpose; for example, the software development process. (IEEE 610.12) 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

11 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

12 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)

13 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

14 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

15 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

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

17 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

18 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.

19 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?

20 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.

21 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

22 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

23 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

24 Á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

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

26 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

27 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.

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

29 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

30 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.

31 Explorar qué tanto saben de …

32 Requerimientos

33 Diseño

34 Construcción

35 Prueba

36 Mantenimiento


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

Presentaciones similares


Anuncios Google