tarea1dwLAURA

Anuncio
UNIVERSIDAD NACIONAL AUTONOMA DE
MEXICO
FES Acatlán
Lic. Matemáticas Aplicadas y Computación
Desarrollo Web
Alumno: SEGURA CRUZ LADY LAURA
Hacer un reporte de lectura sobre Ingeniería de software, orígenes,
características, ventajas, aportaciones importantes, recursos, técnicas,
herramientas.
¿Qué es la Ingeniería de Software?
Ingeniería del software es la aplicación de un método sistemático,
estructurado y cuantificable al desarrollo, operación y mantenimiento de
software.
1.1.1 Antecedentes Históricos, crisis del software
El término de Ingeniería de Software se introdujo por primera vez, a finales
de los 60´s, en una conferencia celebrada para analizar la llamada crisis
del software.
La crisis del software consiste en el surgimiento de las computadoras y
hardware en general de la 3ra. Generación, más potentes, más rápidas,
con mayor capacidad de memoria y procesamiento, que permitieron
realizar aplicaciones que hasta ese momento eran irrealizable. El desarrollo
de esas aplicaciones requirió de la construcción de grandes sistemas de
software.
Las primeras experiencias en la construcción de grandes sistemas,
mostraron que las metodologías de desarrollo de software eran
inadecuadas, debido a esto, muchos sistemas se retrasaron (a veces hasta
años), costaron mucho mas de lo previsto en principio y resultaron poco
fiables, difíciles de mantener y de rendimiento pobre. El desarrollo de
software estaba en una situación de crisis. Los costos de hardware caían,
mientras que los de software aumentaban. Había una urgente necesidad
de nuevas técnicas y metodologías que permitieran controlar la
complejidad de los grandes sistemas de software, surgiendo así la
ingeniería de software.
Actualmente, el software ha superado al hardware como la clave del
éxito de muchos sistemas basados en computadora. Tanto si se utiliza la
computadora para llevar un negocio, controlar un producto o capacitar
un sistema, el software es el factor que marca la diferencia.
Lo que diferencia a una compañía de sus competidores es la suficiencia
y oportunidad de la información dada por el software. El diseño de un
producto de software amigable al usuario lo diferencia de los productos
competidores que tengan funciones similares. La inteligencia y función que
proporciona el software empotrado distingue los productos industriales o
de consumo similares. El software marca la diferencia.
1.1.2 Definición de Ingeniería de Software (IS)
Ingeniería de software es la disciplina o área de la informática
que ofrece métodos y técnicas para desarrollar y mantener software de
calidad.
Esta ingeniería trata con áreas muy diversas de la informática y
de las ciencias de la computación, tales como construcción de
compiladores, sistemas operativos, o desarrollos Intranet/Internet,
abordando todas las fases del ciclo de vida del desarrollo de cualquier
tipo de sistemas de información y aplicables a infinidad de áreas:
negocios, investigación científica, medicina, producción, logística,
banca, control de tráfico, meteorología, derecho, Internet, Intranet,
etc.
Una definición precisa aún no ha sido contemplada en los
diccionarios, sin embargo se pueden citar las enunciadas por algunos
de los más prestigiosos autores:
 Ingeniería de Software es el estudio de los principios y
metodologías para el desarrollo y mantenimiento de sistemas
software (Zelkovitz, 1978)
 Ingeniería de software es la aplicación práctica del
conocimiento científico al diseño y construcción de programas
de computadora y a la documentación asociada requerida
para desarrollar, operar y mantenerlos. Se conoce también como
Desarrollo de Software o Producción de Software ( Bohem, 1976).
 Ingeniería de Software trata del establecimiento de los principios
y métodos de la ingeniería a fin de obtener software de modo
rentable, que sea fiable y trabaje en máquinas reales (Bauer,
1972).
 Es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento del
software; es decir, la aplicación de la ingeniería al software (IEEE,
1993).
Ingeniería de software es la disciplina o área de la informática
que utiliza métodos y técnicas de ingeniería y de administración de
proyectos para analizar, diseñar, desarrollar y mantener software de
calidad.
 1.1.2 Definición de Software
Es el conjunto de los programas de cómputo, procedimientos,
reglas, documentación y datos asociados que forman parte de las
operaciones de un sistema de computación.
Extraído del estándar 729 del IEEE
Considerando esta definición, el concepto de software va más
allá de los programas de cómputo en sus distintos estados: código
fuente, binario o ejecutable; también su documentación, datos a
procesar e información de usuario forman parte del software: es decir,
abarca todo lo intangible, todo lo "no físico" relacionado.
 1.1.3 Tipos de Software
Para fines prácticos se puede clasificar al software en tres
grandes tipos:
Software de sistema: Su objetivo es desvincular adecuadamente
al usuario y al programador de los detalles de la computadora en
particular que se use, aislándolo especialmente del procesamiento
referido a las características internas de: memoria, discos, puertos y
dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El
software de sistema le procura al usuario y programador adecuadas
interfaces de alto nivel, herramientas y utilidades de apoyo que
permiten su mantenimiento. Incluye entre otros: Sistemas operativos,
Controladores de dispositivos, Herramientas de diagnóstico,
Herramientas de Corrección y Optimización, Servidores, Utilidades.
Software de programación: Es el conjunto de herramientas que
permiten al programador desarrollar programas informáticos, usando
diferentes alternativas y lenguajes de programación, de una manera
práctica. Incluye entre otros: Editores de texto, Compiladores,
Intérpretes, Enlazadores, Depuradores, Entornos de Desarrollo Integrados
(IDE)
Software de aplicación: Es aquel que permite a los usuarios llevar
a cabo una o varias tareas específicas, en cualquier campo de
actividad susceptible de ser automatizado o asistido, con especial
énfasis en los negocios. Incluye entre otros: Aplicaciones para Control
de sistemas y automatización industrial, Aplicaciones ofimáticas,
Software educativo, Software empresarial, Bases de datos,
Telecomunicaciones (p.ej. internet y toda su estructura lógica),
Videojuegos, Software médico, Software de Cálculo Numérico y
simbólico, Software de Diseño Asistido (CAD), Software de Control
Numérico (CAM).
MODELOS DE DESARROLLO DE SOFTWARE
Desarrollo en cascada
Desarrollo en espiral
Modelo de Prototipos
Modelo por etapas
Desarrollo iterativo y creciente
ESTRUCTURA ORGANIZACIONAL DE UN PROYECTO
Planeación -Identifica necesidades, estudios de factibilidad, supervisión.
Desarrollo -Específica, diseña, codifica, depura, prueba del producto.
Servicios -Provee herramientas y equipos p/las actividades. Distribuye el
producto.
Publicaciones -Manuales, instructivos de instalación y operación.
Control de Calidad -Evaluación del código fuente y publicaciones.
Apoyo -Promoción, entrena a usuarios.
Mantenimiento -Corrige errores y hace mejoras o adaptaciones.
Los métodos para organizar estas actividades pueden ser los formatos de
proyecto, el funcional y el matricial.
a) FORMATO DE PROYECTO.- Se forma un equipo de programadores que
llevan a cabo todas las actividades de principio a fin (definición, diseño,
construcción, etc. ). Los miembros trabajan hasta el final del proyecto y
luego son asignados a otros proyectos.
b) FORMATO FUNCIONAL.- Un equipo distinto de programadores realiza
cada fase del proyecto, los productos pasan de un equipo a otro
conforme el producto evoluciona. En este formato se deben rotar a los
miembros de los equipos para evitar el tedio de la supe especialización.
Requiere más comunicación entre equipos, pero el personal se
especializa en ciertas áreas.
c) FORMATO MATRICIAL.- En este formato cada actividad o función tiene
su propia administración y equipo que la realiza. Cada proyecto es
miembro de cada función y tiene su propio administrador. Cada equipo
funcional trabaja en todo proyecto pero bajo la supervisión del
administrador de ese proyecto.
En estas organizaciones cada quien tiene, al menos dos jefes y esta
ambigüedad es el precio que hay que pagar por mantener mas controlado el
proyecto.
II. ESTRUCTURA DEL GRUPO DE PROGRAMACION
• Todo equipo debe tener una estructura interna.
• La organización óptima varía dependiendo de la naturaleza del proyecto.
Las posibles estructuras de organización de un grupo de programación son:
a) Grupo Democrático
b) Grupo con jefe de programadores
c) Grupo jerárquico
En proyectos de programación grandes que ocupan varios equipos de
programación cada equipo debe mantener su estructura interna y no debe
ser mayor de 5 a 7 miembros por equipo, para minimizar las líneas de
comunicación.
Características:
1. Las metas y las decisiones se definen por acuerdo.
2. El liderazgo rota según las tareas que se realicen y la capacidad de cada
miembro.
3. Todas las actividades se discuten abiertamente.
Ventajas:
1. Todos los miembros contribuyen en la toma de decisiones
2. Los miembros aprenden uno de otro
3. Ambiente comunicado
Desventajas:
1. Demasiadas líneas de comunicación para la toma de decisiones
2. Todos deben trabajar juntos
3. Falta de autoridad
Descargar