Subido por CRISTIAN SH

Conceptos basicos de la ing de software 091817

Anuncio
Tecnológico Nacional de México
Instituto Tecnológico de Cerro Azul
Fundamentos De Ingeniería De Software
Carrera
Ing. Sistemas Computacionales
Semestre
6to
UNIDAD
1
Cd. Cerro Azul, Ver. 2022
Glosario
Los conceptos básicos de la ingeniería del software
La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado
y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio
de estos enfoques, es decir, el estudio de las aplicaciones de la ingeniería al
software. Integra matemáticas, ciencias de la computación y prácticas cuyos
orígenes se encuentran en la ingeniería.
Se citan las definiciones más reconocidas, formuladas por 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).
La 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).
La ingeniería de software es la aplicación de un enfoque sistemático,
disciplinado y cuantificable al desarrollo, operación, y mantenimiento del
software.
Notaciones
UML o LUM (Lenguaje Unificado de Modelado)
Es un lenguaje de modelado muy reconocido y utilizado actualmente que se utiliza
para describir o especificar métodos. También es aplicable en el desarrollo de
software.
Las siglas UML significan lenguaje unificado de modelado esto quiere decir que no
pretende definir un modelo estándar de desarrollo, sino únicamente un lenguaje de
modelado.
Un lenguaje de modelado consta de vistas, elementos de modelo y
un conjunto de reglas sintácticas, semánticas y pragmáticas que indican cómo
utilizar los elementos.
En esta materia nos encontramos con varios diagramas que se pueden usar tales
como: casos de uso, de clases, componentes, despliegue, etc.
BPMN (notación para el modelado de procesos de negocios)
El objetivo de la notación para el modelado de procesos de negocios es
proporcionar de una manera fácil de definir y analizar los procesos de negocios
públicos y privados simulando un diagrama de flujo. La notación ha sido diseñada
específicamente para coordinar la secuencia de los procesos y los mensajes que
fluyen entre los participantes del mismo, con un conjunto de actividades
relacionadas. Características básicas de los elementos de BPMN




Objetos de flujo: eventos, actividades, rombos de control de flujo (gateways).
Objetos de conexión: flujo de secuencia, flujo de mensaje, asociación.
Swimlanes (carriles de piscina): pool, lane.
Artefactos: objetos de datos, grupo, anotación.
Diagrama de flujo de Datos (DFD)
Un diagrama de flujo de datos permite representar el movimiento de datos a través
de un sistema por medio de modelos que describen los flujos de datos, los
procesos que transforman o cambian los datos, los destinos de datos y los
almacenamientos de datos a la cual tiene acceso el sistema.
Su inventor fue Larry Constantine, basado en el modelo de computación de Martin
y Estrin: flujo gráfico de datos. Con los diagramas de flujo de datos determina la
manera en que cualquier sistema puede desarrollarse, ayuda en la identificación
de los datos de la transacción en el modelo de datos y proporciona al usuario una
idea física de cómo resultarán los datos a última instancia.
Conceptos Básicos
Software:




Programas de cómputo y su documentación asociada: requerimientos,
modelos de diseño y manuales de usuario
El software puede ser desarrollado para un cliente en particular o para un
mercado general
El software puede ser:
 Genérico: desarrollado para venderse a múltiples clientes (Excel, Word,
etc.)
 A la medida: desarrollado bajo demanda del cliente a un desarrollador
específico
El software nuevo puede ser creado desarrollando nuevos programas,
configurando sistemas de software genérico o reutilizando software existente
Diferencia entre Ingeniería de Software y Ciencias Computacionales
Las Ciencias Computacionales conciernen a la teoría y fundamentos de
cualquier sistema de cómputo (hardware o software).
La Ingeniería de software concierne los aspectos prácticos del desarrollo y
puesta en marcha de productos útiles de software.
La Ingeniería de Software aún está lejos de ser considerada una ciencia como los
son la química o la física.
Diferencia entre Ingeniería de Software e Ingeniería de Sistemas
La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de
sistemas basados en cómputo incluyendo hardware, software y la ingeniería de
procesos.
La Ingeniería de Software es una parte de este proceso que comprende el
desarrollo de software, control, aplicaciones y bases de datos del sistema.
Los ingenieros de software son los encargados de la especificación del sistema,
del diseño de la arquitectura, la integración y la puesta en marcha.
Proceso:
Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de
un software.
Algunas actividades genéricas en todos los procesos de software son:



Especificación, qué debe hacer el software y cuáles son sus especificaciones
de desarrollo.
Desarrollo, producción del sistema de software Validación, verificar que el
software cumple con lo solicitado por el cliente.
Evolución, cambiar/adaptar el software a las nuevas demandas.
Estas actividades varían dependiendo de la organización y del tipo de sistema a
desarrollarse
Proceso de software:
Representación formal y simplificada de un proceso de software, presentada
desde una perspectiva específica.
Ejemplos de perspectivas del proceso de software:



Flujo de trabajo, secuencia de actividades.
Flujo de datos, flujo de la información.
Rol/acción, quién realiza qué.
Modelos Genéricos:




Cascada, separar en distintas fases de especificación y desarrollo.
Desarrollo Iterativo, la especificación, desarrollo y validación están
interrelacionados.
Prototipado, un modelo sirve de prototipo para la construcción del sistema
final.
Basado en componentes, asume que partes del sistema ya existen y se
enfoca a su integración.
Proceso de software:
Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de
un software.
Modelos de Software:
Representación formal y simplificada de un proceso de software, presentada
desde una perspectiva específica.
Ejemplos de perspectivas del proceso de software:



Flujo de trabajo, secuencia de actividades.
Flujo de datos, flujo de la información.
Rol/acción, quién realiza qué.
CASE (Computer-Aided Software Engineering)
Programas que son usados para dar soporte automatizado a las actividades del
proceso de software:
Análisis de requerimientos, modelado del sistema, pruebas y depuración
(debugging)
Las herramientas CASE son comúnmente usadas para dar soporte a los métodos
de software




Editores para la notación del método.
Módulos de análisis que verifican que las reglas del método se cumplan.
Generadores de reportes que facilitan la creación de la documentación del
sistema.
Generadores de código a partir del modelo del sistema
Atributos de Software de Calidad
El software debe proveer la funcionalidad y desempeño requeridos por el usuario y
debe ser mantenible, confiable y aceptable.




Mantenible, el software debe poder evolucionar para continuar cumpliendo
con las especificaciones.
Confiable, el software no debe causar daños físicos o económicos en el caso
de que falle.
Eficiente, el software no debe desperdiciar los recursos del sistema.
Aceptable, el software debe ser aceptado por los usuarios para los que fue
diseñado. Debe ser entendible, utilizable y compatible con otros sistemas.
TERMINO
CONCEPTO
Ingeniería
Arte y técnica de aplicar los conocimientos científicos a la
invención, diseño, perfeccionamiento y manejo de nuevos
procedimientos en la industria y otros campos de aplicación
científicos.
software
Programas de cómputo y su documentación asociada:
requerimientos, modelos de diseño y manuales de usuario
El software puede ser desarrollado para un cliente en particular o
para un mercado general
Ingenieros de Software
Adoptar un enfoque sistemático para llevar a cabo su trabajo
Utilizar las herramientas y técnicas apropiadas para resolver el
problema planteado, de acuerdo a las restricciones de desarrollo y
a los recursos disponibles
Enfoque sistemático
Representa la secuencia lineal de acontecimientos. En el camino
pueden aparecer “ramas”, pero siempre es una secuencia de
pasos que necesitamos realizar.
mantenimiento del software
Es una actividad muy amplia que incluye la corrección de errores,
mejoras de las capacidades, eliminación de funciones obsoletas y
optimización. Debido a que el cambio es inevitable, se debe
desarrollar mecanismos para la evaluación, controlar y hacer
modificaciones.
Lenguaje unificado de modelado esto quiere decir que no
pretende definir un modelo estándar de desarrollo, sino
únicamente un lenguaje de modelado.
UML o LUM
Proceso de software
Representación formal y simplificada de un proceso de software,
presentada desde una perspectiva específica.
CASE
Programas que son usados para dar soporte automatizado a las
actividades del proceso de software:
Ciencias Computacionales
conciernen a la teoría y fundamentos de cualquier sistema de
cómputo (hardware o software).
Ingeniería de software
Concierne los aspectos prácticos del desarrollo y puesta en
marcha de productos útiles de software.
Descargar