+ All Categories
Home > Documents > C121 INGENIERÍA DE SOFTWARE I -...

C121 INGENIERÍA DE SOFTWARE I -...

Date post: 21-Sep-2018
Category:
Upload: vuongbao
View: 219 times
Download: 0 times
Share this document with a friend
30
4 2 5 1 0011 0010 1010 1101 0001 0100 1011 (C) Pilar Gómez Gil, INAOE 2009- 2011 1 C121 INGENIERÍA DE SOFTWARE I NOTAS DEL CURSO 1. INTRODUCCIÓN DRA. MARIA DEL PILAR GÓMEZ GIL COORDINACIÓN DE COMPUTACIÓN Versión 15-08-11
Transcript
Page 1: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 2: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 3: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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.

Page 4: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 5: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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]

Page 6: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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”

Page 7: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 8: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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]

Page 9: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 10: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 11: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 12: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 13: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 14: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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)

Page 15: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 16: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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]

Page 17: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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.

Page 18: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 19: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 20: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

42513

0011 0010 1010 1101 0001 0100 1011

(C) Pilar Gómez Gil, INAOE 2009-

2011

20

Modelo Espiral

[Pressman 96]

Page 21: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 22: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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)

Page 23: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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]

Page 24: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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]

Page 25: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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)

Page 26: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 27: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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.

Page 28: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

42513

0011 0010 1010 1101 0001 0100 1011

(C) Pilar Gómez Gil, INAOE 2009-

2011

28

Modelos del UP

[Jacobson et al., 2000]

Page 29: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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

Page 30: C121 INGENIERÍA DE SOFTWARE I - ccc.inaoep.mxccc.inaoep.mx/~pgomez/cursos/ingsw/acetatos/introduccion.pdf · c121 ingenierÍa de software i notas del curso 1. introducciÓn dra.

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.


Recommended