Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
1
C121INGENIERÍA DE SOFTWARE I
NOTAS DEL CURSO1. INTRODUCCIÓN
DRA. MARIA DEL PILAR GÓMEZ GIL
COORDINACIÓN DE COMPUTACIÓN
Versión 15-08-11
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
2
In a real sense, all life is interrelated. All men are caught in an inescapable network of mutuality, tied in a single garment of destiny. Whatever affects one directly affects all indirectly. I can never be what I ought to be until you are what
you ought to be, and you can never be what you ought to be until I am what I ought to be. This is
the interrelated structure of reality.— King, Martin Luther, Jr.
tomado de: http://www.stanford.edu/group/King/newsletter/index.htm
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
3
Software Engineering Code of Ethics and Professional Practice
ACM/IEEE-CS Joint Task Force on Software Engineering
Ethics and Professional Practices. (Short Version)disponible en: http://www2.computer.org/portal/web/certification/codeofethics
PREAMBLE
The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
42513
0011 0010 1010 1101 0001 0100 1011
Leer el artículo:
Donald Gotterbarn, Keith W. Miller .”The Public is the Priority:
Making Decisions Using the Software Engineering Code of Ethics”
Computer, vol. 42, no. 6, pp. 66-73, June, 2009.DOI Bookmark:
http://doi.ieeecomputersociety.org/10.1109/MC.2009.204
(C) Pilar Gómez Gil, INAOE 2009-
2011
4
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
5
El Producto SOFTWARE
“Conjunto de requerimientos
operacionales, especificaciones, código,
guías, manuales y documentación de
mantenimiento de un sistema basado en
computadora.” [Pressman 92]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
6
Características Especiales del
Software
1. El SW se desarrolla, no se fabrica en un sentido
clásico como otros productos
2. El software no se estropea... pero se deteriora
3. La mayoría del software se construye “a la
medida”
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
7
Retos actuales
• Computación para redes inalámbricas
• Computación sobre Web
• Software de código abierto (open source)
• E-bussineess
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
8
PROCESO DE DISEÑO INGENIERIL
SOLUCIONES A
PROBLEMAS
SIMILARES
RECONOCIMIENTO
DEL PROBLEMA INFORMACION
IRRELEVANTE
FORMULACION
DEL PROBLEMA
Formulación general
del problema
ANALISIS
DEL PROBLEMA
BUSQUEDA
DECISION
ESPECIFICACION
IMPLEMENTACION
Formulación detallada
del problema
Soluciones potenciales
y parciales
Solución escogida
( no detallada )
Modelo
Reportes
Documentación
de diseño
Documentación Trabajo resultante
[Jensen & Tonies, 79]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
9
Ingeniería de Software
“La Sociedad IEEE Computer define ingeniería de software como “(1) La
aplicación de una metodología sistematica, disciplinada y cuantificable para el
desarrollo, operación y mantenimiento de software; esto es, la aplicación de la
ingeniería al software (2) El estudio de metodologías como las definidas en (1)”
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
10
Características de un(a) ingeniero(a)
• Resolvedor de problemas
• Usa recursos disponibles
• Busca obtener el mínimo costo
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
11
El proceso de desarrollo de
Software: Plantilla general
• Comunicación. Involucra comunicación y
colaboración constante con los
consumidores, y otros stakeholders a fin de
obtener requerimientos y realizar otras
actividades
• Planeación. Establece el plan para el
proceso ingenieril de desarrollo
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
12
El proceso de desarrollo de Software:
Plantilla general (cont.)
• Modelado. Crea modelos que permiten al desarrollador y consumidor entender mejor los requerimientos, y el diseño que alcanzará esos requerimientos
• Construcción. Generación de código y pruebas internas del producto
• Arranque. Entrega del software y evaluación del producto por el consumidor, quien provee retroalimentación
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
13
Actividades de apoyo al
desarrollo
• Seguimiento y control del proyecto de desarrollo
de software
• Administración de riesgos
• Aseguramiento de calidad del software
• Revisiones técnicas formales
• Administración de la configuración del software
• Administración de la re-usabilidad
• Preparación y producción del producto
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
14
Otros puntos asociados al proceso
de desarrollo de SW
• Meta-modelos de procesos hechos para la mejora
del proceso de desarrollo (CMMI, Moprosoft, etc.)
• Patrones de procesos
• Modelos estándares para evaluación y mejora de
procesos (ejem. SCAMPI)
• Procesos para desarrollo personal y en equipo
(Personal software process, PSP y Team software
process TSP)
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
15
Documentación de software
“Lo que no está escrito no existe...”
Algunos tipos de documentos:• Plan de software
• Especificación de Requerimientos
• Especificación de Diseño
• Plan de Pruebas
• Resultados de Revisiones
• Bitácoras
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
16
Ciclos en la vida de un proceso
[Jacobson et al., 2000]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
17
Algunos Tipos de Ciclos de Vida
de Software
• Clásico: modelo secuencial o de cascada
• Modelos de procesos incrementales: incremental, modelo RAD (Rapid Application Development)
• Modelos evolutivos: Prototipos, Espiral, de desarrollo concurrente
• Proceso Unificado
• Modelos especializados: Desarrollo basado en componentes, modelos de métodos formales, Desarrollo orientado a aspectos.
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
18
INGENIERIA
DE SISTEMAS
ANALISIS
DISEÑO
CODIFICACION
PRUEBAS
MANTENIMIENTO
CICLO DE VIDA CLASICO
MODELO DE CASCADA
Modelo Secuencial
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
19
Modelo Espiral
• Combina características del modelo de cascada y el
modelo de prototipos, añadiendo el elemento de análisis de
riesgo.
• Presenta 4 actividades principales:
1. Planeación
2. Análisis de riesgos
3. Ingeniería (desarrollo del producto al siguiente nivel)
4. Evaluación del cliente
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
20
Modelo Espiral
[Pressman 96]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
21
Modelo de Desarrollo Evolutivo
Tipos de desarrollo evolutivo:
• Programación exploratoria. El desarrollo empieza
con una parte que está bien entendida. Evoluciona
añadiendo nuevas características conforme se
proponen.
• Prototipos desechables. El objetivo es extender la
idea del consumidor. Se experimentan con
prototipos en partes no bien entendidas
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
22
El Proceso Unificado (UP por sus siglas en inglés)
• Desarrollado por Ivan Jacobson, Grady Booch y
James Rumbaugh como un marco de referencia
para desarrollo de software usando su lenguaje de
modelado UML, desarrollado previamente
• UP intenta poner juntas las mejores características
de los modelos tradicionales de procesos de
software implementando en ellos los mejores
principios de desarrollo de software ágil (un tipo
de marco de referencia para desarrollo de
software)
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
23
Flujos de trabajo vs. fases
[Jacobson et al., 2000]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
24
Fases e Iteraciones en un ciclo
[Jacobson et al., 2000]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
25
Fases del UP
• Inicio. Incluye comunicación con el usuario y actividades de planeación. Se desarrollo un plan de proyecto, de tipo incremental. Se describen requerimientos fundamentales del negocio a través de Casos de Uso. Se define un bosquejo de la arquitectura general
• Elaboración. Incluye actividades de comunicación con el cliente y el modelado del software. Refina los casos de uso y detalla la arquitectura incluyendo 5 vistas del software: modelo de casos de uso, modelo de análisis, modelo de diseño, modelo de implementación y modelo de despliegue o arranque (deployment)
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
26
Fases del UP (2)
• Construcción. Construcción física del software. Desarrollo de los componentes de software. Se diseñan unidades para prueba
• Transición. Incluye los pasos finales de la construcción. Se da el software a los usuarios para pruebas beta.
• Producción. El software en uso es monitoreado, se realizan reportes de defectos
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
27
Fases del UP (3)
• Al mismo tiempo que se llevan a cabo las
fases de construcción, transición y
producción, es muy probable que ya se haya
iniciado la siguiente generación de software
(un nuevo incremento). Entonces las fases
se puede ejecutar concurrentemente.
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
28
Modelos del UP
[Jacobson et al., 2000]
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
29
Desarrollo Basado en
Componentes
• Aplicable en tecnología orientada a objetos
• Técnica Espiral
• INGENIERÍA:
– Identificación de clases candidatas (componentes)
– Buscar componentes en biblioteca
– Extraer componentes, si están disponibles
– Construir componentes si no están disponibles
– Poner nuevos componentes en la biblioteca
– Construir la N-estima iteración del sistema
42513
0011 0010 1010 1101 0001 0100 1011
(C) Pilar Gómez Gil, INAOE 2009-
2011
30
BIBLIOGRAFIA
• Roger S. Pressman. Software Engineering. A practitioner
approach. Mc Graw Hill, 2002,2005
• Jensen, Randall W. and Charles C. Tonies. Software
Engineering. Prentice-Hall. New Jersey 1979
• Jacobson, I. Booch, G. Rumbaugh. J. The Unified
Software Development Process. Addison Wesley, 2000.