1. Universidad Tecnológica de Hermosillo
Tecnologías de la Información y Comunicación
Ingeniería de Software II
Definiciones en la Ingeniería de Software
Prof. José Padilla Duarte
Alumno
Ornelas Muñiz David
Grupo
TICSi 5-2
Hermosillo, Sonora a 14 de Enero de 2014
2. Introducción
La ingeniería del software persigue la producción de sistemas de calidad a bajo
coste y a tiempo, explicare estos 3 conceptos más a fondo:
Sistemas de Calidad: La calidad de un sistema viene definida por el
cumplimiento de los objetivos establecidos para el sistema.
Bajo costo: El coste de un sistema debe incluir tanto el coste de desarrollo
como el de mantenimiento.
A tiempo: En unos plazos preestablecidos y que vienen garantizados por el
establecimiento de una secuencia de actividades a llevar a cabo.
El software es ahora la clave del exito de muchos de los sistemas basados en
computadora. El software marca la diferencia. Lo que diferencia una compañía
de otra es la suficiencia, exactitud y oportunidad de la información dada por el
software, por eso la importancia de tener una ciencia que de normas para la
creación de este, por eso nacio la ingeniería de software.
3. Glosario
Crisis del software. Término acuñado en 1968, en la primera conferencia de la
NATO sobre desarrollo de software, con el que se identificaron los problemas
que surgían en el desarrollo de sistemas de software.
Implementación. Proceso de transformación de un diseño en componentes de
hardware, software o de ambos. Ver también: codificación.
Ingeniería del software. Aplicación de procesos sistemáticos y disciplinados
para el desarrollo, operación y mantenimiento de software.
Mantenimiento. Proceso de modificación de un sistema de software o de un
componente, después de su puesta en funcionamiento para corregir fallos,
mejorar el rendimiento u otros atributos, o adaptarlo a modificaciones del
entorno.
Modelo de ciclo de vida. Representación del ciclo de vida del software.
4. Ingeniería de Software
Definición de ingeniería: Para entender la definición de ingeniería de
software, primero debemos saber que es ingeniería, esta es la profesión en la
cual los conocimientos de las ciencias físicas y matemáticas adquiridas
mediante el estudio, la experiencia y la práctica se aplican con buen juicio a
desarrollar los sistemas para aprovechar económica y ambientalmente los
materiales y las fuerzas de la naturaleza para la creciente prosperidad de la
humanidad.
Definición de ingeniería de Software: La IS es el establecimiento y uso de
sólidos principios de ingeniería y buenas prácticas de gestión, así como la
evolución de herramientas y métodos aplicables y su uso cuando sea
apropiado para obtener, dentro de las limitaciones de recursos existentes,
software que sea de alta calidad en un sentido explícitamente definido.
Inicios
Aunque no hay consenso, el origen del término se atribuye a dos conferencias
organizadas por la OTAN en 1967 y 1968. Ambas conferencias fueron
convocadas para tratar la llamada crisis del software.La llamada crisis del
software es todavía hoy un problema no resuelto.
La “Crisis del Software” se le conoce a una etapa en la que todos los
programas desarrollados se corregían cuando
había fallos o modificados a necesidades cambiantes, requerían de altos
esfuerzos por mantenerlos, con mayor costo a medida
que la complejidad del software crecía.
En las pasadas décadas los ejecutivos y desarrolladores se hacían las
siguientes preguntas:
¿ Por qué lleva tanto tiempo terminar los programas ?
¿ Por qué es tan elevado el costo ?
¿ Por qué no podemos detectar los errores antes de entregar el software a los
clientes ?
5. ¿ Por qué resulta tan difícil constatar el progreso del desarrollo del software ?
Estas y otras preguntas manifiestan el carácter del software y la forma en que
se desarrolla, estos problemas hacen necesaria la adopción de técnicas de
Ingeniería de Software.
IMPORTANCIA
El software es ahora la clave del exito de muchos de los sistemas basados en
computadora. El software marca la diferencia. Lo que diferencia una compañia
de otra es la suficiencia, exactitud y oportunidad de la información dada por el
software.
El desarrollo de software se ha convertido en una industria con crecimiento
vertical en los ultimos años, hoy por hoy uno de los hombres mas ricos del
mundo es el dueño de una casa de software, Microsoft.
Hace un par de decadas se sostenia la teoria de que los paises que poseian
los mejores recursos naturales estaban destinados a ser los mas ricos y
poderosos del mundo, en México por ejemplo, se manejo la idea de que el
petróleo era la puerta de entrada grande al mundo desarrollado.
Indudablemente los recursos naturales tienen un papel importante en la
economia de los paises, sin embargo poco a poco se fue acuñando una nueva
ideología que se sintetiza en lo siguiente:
“El que posee la información y el conocimiento y hace mejor uso de él, es el
que tiene el poder”.
Utilidad
Facilitar el control en el proceso de desarrollo de software
Siminstrar a los desarrolladores las bases para construir software de alta
calidad en una forma eficiente.
6.
Definir una disciplina que garantice la producción y el mantenimiento de
los productos de software desarrollados en el plazo fijado y entro del
costo estimado.
Tipos de aplicaciones de cómputo
Hay muchas maneras de clasificar a los programas de computadoras. Por
ejemplo uno podría definirlos por función: procesador de textos, hojas de
cálculo, gráficos, preparación de impuestos, anti-virus y demás. Los
programas
de computadoras
podrían
computadora o unidad principal
ser
agrupados
por
tipo
de
contra computadora personal.
La
agrupación amplia más útil es por tipo, como lo explico abajo.
Lenguajes de programación
Para poder desarrollar cualquier tipo de programa para computadora, debe
estar escrito en uno de los lenguajes de programación que traduce los
comandos a la acción de la computadora.
Programas de aplicación
Cuando estás trabajando en una computadora para escribir, calcular,
mandar correos electrónicos, navegar en Internet, o evitar ataques de virus
a la máquina, todos estos son ejemplos de programas de aplicación.
Programas utilitarios
Generalmente, los programas utilitarios están escritos para resolver un tipo
de
problema
particular
o
para
realizar
una
acción
única.
Algunos ejemplos son los parches para actualizar algún programa, convertir
archivos o hacer copias de seguridad o para revisar las funciones de la
computadora.
Programas de entretenimiento
Mientras algunos pueden considerar los programas de juegos como otra
aplicación, el gran número, el propósito distinguido de estos programas y su
alto uso justifican una categoría separada.
7. Programas de sistema
Ninguno de los tipos de programa anteriores podrían funcionar sin un
programa de sistemas o sistema operativo subyacente, que controla los
componentes de la computadora.
Software Engineering Institute (SEI)
Software Engineering Institute (SEI) es un instituto federal estadounidense
de investigación y desarrollo, fundado por Congreso de los Estados
Unidos en 1984 para desarrollar modelos de evaluación y mejora en el
desarrollo de software, que dieran respuesta a los problemas que generaba
al ejército estadounidense la programación e integración de los subsistemas de software en la construcción de complejos sistemas militares.
Financiado por el
Departamento de Defensa de los Estados Unidos y
administrado por la Universidad Carnegie Mellon.
W3C
W3C son las siglas de World Wide Web Consorcio, un consorcio fundado
en 1994 para dirigir a la Web hacia su pleno potencial mediante el
desarrollo de protocolos comunes que promuevan su evolución y aseguren
su interoperabilidad.El consorcio está compuesto por un grupo de
programadores, desarrolladores web, ejecutivos de la industria y usuarios
que ayudan a definir las especificaciones para el desarrollo de la tecnología
web.
8. Modelos y Filosofías del Desarrollo de Software
Modelo en cascada
Es un proceso secuencial de desarrollo en el que los pasos de desarrollo
son vistos hacia abajo (como en una cascada de agua) a través de las fases
de análisis de las necesidades, el diseño, implantación, pruebas
(validación), la integración, y mantenimiento. La primera descripción formal
del modelo de cascada se cita a menudo a un artículo publicado por
Winston Royce W. en 1970, aunque Royce no utiliza el término "cascada"
Prototipado
El prototipado es el framework de actividades dedicada al desarrollo de
software prototipo, es decir, versiones incompletas del software a
desarrollar.
Incremental
Provee una estrategia para controlar la complejidad y los riesgos,
desarrollando una parte del producto software reservando el resto de
aspectos para el futuro.
Espiral
Modelo Espiral, propuesto originalmente por Boehm, es un modelo de
proceso de software evolutivo que conjuga la naturaleza iterativa de
construcción de prototipos con los aspectos controlados y sistemáticos del
modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido
de versiones incrementales del software.
Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos:
determinar objetivos, alternativas, y desencadenantes de la iteración;
Evaluar alternativas; Identificar y resolver los riesgos; desarrollar y verificar
los resultados de la iteración, y plan de la próxima iteración.
9. CICLO DE VIDA DEL SOFTWARE
Es la forma mediante la cual se describen los diferentes pasos que se
deben seguir para el desarrollo de un software, partiendo desde una
necesidad hasta llegar a la puesta en marcha de una solución y su
apropiado mantenimiento. El ciclo de vida para un software comienza
cuando se tiene la necesidad de resolver un problema, y termina cuando el
programa que se desarrolló para cumplir con los requerimientos, deja de ser
utilizado.
Existen varias versiones del ciclo de vida del software entre las cuales se
destacan: el ciclo de vida clásico o en cascada, el modelo en espiral, el
desarrollo de prototipos, el modelo por incrementos y el modelo extremo.
Modelo
10. Arquitectura de Software
La arquitectura de software es un conjunto de patrones que proporcionan un
marco de referencia necesario para guiar la construcción de un software,
permitiendo a los programadores, analistas y todo el conjunto de
desarrolladores del software compartir una misma línea de trabajo y cubrir
todos los objetivos y restricciones de la aplicación. Es considerada el nivel
más alto en el diseño de la arquitectura de un sistema puesto que
establecen la estructura, funcionamiento e interacción entre las partes del
software.
Modelos o vistas
*La visión estática: describe qué componentes tiene la arquitectura.
*La visión funcional: describe qué hace cada componente.
*La visión dinámica: describe cómo se comportan los componentes a lo
largo del tiempo y cómo interactúan entre sí.
Conclusión
Aunque la crisis del software no a terminado, esta se a reducido gracias al
uso de esta ingeniería, ya que al llevar estos pasos y pautas establecidas
con esta ciencia, hace la creación de nuevo software y su manutención con
mas calidad y mucho mas funcional.