Está en la página 1de 33

Fundamentos

de

ingeniería

de software
UNIDAD 1
CONTENIDO DE LA PRESENTACION

1.1. Conceptos basicos

1.4. Importancia de las

1.2. Fases de la

herramientas CASE en la

Ingeniería de software. Ingeniería de software.

1.3 Metodologías de

desarrollo de software
1.1 CONCEPTOS

BASICOS
Herramientas
Metodos
Procesos
Enfoque de
calidad
HERRAMIENTAS.
En el desarrollo formal de software

Esta etapa es de las más laboriosas y


complicadas, dependiendo claro de tu equipo
de trabajo, pero también del lenguaje de
programación que estés dispuesto a utilizar.

Pero por ejemplo, para la mayoría de los


lenguajes conocidos, contamos con sus
respectivos IDE
Metodos Los métodos formales son un
En el desarrollo de software

conjunto de tendencias de
desarrollo de software y
hardware en donde la
especificación,
verificación y diseño de
componentes se realiza
mediante notaciones,
lenguajes, herramientas y
técnicas basadas en teorías
con sólido fundamento
matemático.
PROCESOS.
En el desarrollo formal de software

El proceso de software se puede definir como la


secuencia de pasos o actividades que se deben
seguir para construir una serie de productos, uno de
los cuales es el programa o software que se desea
desarrollar, según los requerimientos de un cliente
en particular o un objetivo propuesto. La idea
principal del proceso es mejorar el entendimiento del
problema a solucionar, generar los canales de
comunicación adecuados entre los involucrados del
proyecto, el mantenimiento y retroalimentación del
sistema.
Enfoque de
calidad. Implica la utilización de

metodologías o procedimientos

En el desarrollo formal de software estándares para el análisis, diseño,

programación y prueba del

software que permitan uniformar

la filosofía de trabajo, en aras de

lograr una mayor confiabilidad,

mantenibilidad y facilidad de

prueba, a la vez que eleven la

productividad, tanto para la labor

de desarrollo como para el

control de la calidad del

software.
1.2. Fases de

la Ingeniería

de software.

Análisis de requerimientos
Especificación
Diseño y Arquitectura
Programación
Prueba
Documentación
Mantenimiento
ANALISIS DE

REQUERIMENTOS

Se extraen los requisitos del producto de

software.
En esta etapa la habilidad y experiencia en

la ingeniería del software es crítica para


reconocer requisitos incompletos, ambiguos o

contradictorios. Usualmente el

cliente/usuario tiene una visión

incompleta/inexacta de lo que necesita y es

necesario ayudarle para obtener la visión

completa de los requerimientos. El contenido

de comunicación en esta etapa es muy intenso

ya que el objetivo es eliminar la ambigüedad

en la medida de lo posible.
ESPECIFICACION
Es la tarea de describir detalladamente el

software a ser escrito, de una forma

rigurosa. Se describe el comportamiento

esperado del software y su interacción con

los usuarios y/o otros sistemas.


DISEÑO Y

ARQUITECTURA
Determinar cómo funcionará de forma
general sin entrar en detalles
incorporando consideraciones de la
implementación tecnológica, como el
hardware, la red, etc. Consiste en el
diseño de los componentes del sistema
que dan respuesta a las funcionalidades
descritas en la segunda etapa también
conocidas como las entidades de negocio.
Generalmente se realiza en base a
diagramas que permitan describir las
interacciones entre las entidades y su
secuenciado.
PROGRAMACION

Se traduce el diseño a código. Es la parte


más obvia del trabajo de ingeniería de

software y la primera en que se obtienen

resultados “tangibles”. No necesariamente es

la etapa más larga ni la más compleja,

aunque una especificación o diseño

incompletos/ambiguos pueden exigir que,

tareas propias de las etapas anteriores se


tengan que realizarse en esta.
PRUEBA
Consiste en comprobar que el software

responda/realice correctamente las tareas

indicadas en la especificación. Es una buena

praxis realizar pruebas a distintos niveles

(por ejemplo, primero a nivel unitario y

después de forma integrada de cada

componente) y por equipos diferenciados del

de desarrollo (pruebas cruzadas entre los

programadores o realizadas por un área de

test independiente).
DOCUMENTACION
Realización del manual de usuario, y
posiblemente un manual técnico con el
propósito de mantenimiento futuro y
ampliaciones al sistema. Las tareas de
esta etapa se inician ya en la primera
fase, pero sólo finalizan una vez
terminadas las pruebas.
MANTENIMIENTO

En esta etapa se realizan un mantenimiento


correctivo (resolver errores) y un

mantenimiento evolutivo (mejorar las

funcionalidades y/o dar respuesta a nuevos


requisitos).
1.3 Metodologías
de desarrollo de
software
1. METODO El método es aquel proceso
utilizado de manera sistemática,
orientando nuestra práctica en
base a principios pautados
previamente. El método científico
es aquel utilizado por la
comunidad científica toda con el
fin de garantizar un grado alto de
veracidad en sus procedimientos
e investigaciones, son normas que
garantizan que un proceso y/o
resultado sea científico y no una
mera creencia.
2. MODELO
El concepto de modelo proviene
del italiano modello, siendo un
diminutivo de modus, que significa
manera. Lo cierto es que el término
tiene una inmensa cantidad de
usos, pero todas tienen en común
que un modelo es una manera, es
algo que es capaz de ser abstraído y
analizado por fuera de su simple
aplicación práctica.
3. METODOLOGIA Como metodología se
denomina la serie de métodos y
EN DESARROLLO DE técnicas de rigor científico que
SOFTWARE se aplican sistemáticamente
durante un proceso de
investigación para alcanzar un
resultado teóricamente válido.
En este sentido, la metodología
funciona como el soporte
conceptual que rige la manera
en que aplicamos los
procedimientos en una
investigación.
1.4. IMPORTANCIA

DE LAS

HERRAMIENTAS CASE

Concepto básico
Ventajas y desventajas
Estructura general de una

herramienta CASE
Algunas herramientas para

levantamiento de
requerimientos y de las etapas

de desarrollo de software.
CONCEPTO BASICO

Herramienta de ingeniería de sistemas

asistida por computadora (CASE) es un

software que ayuda con el desarrollo de

software. El propósito principal de usar una

herramienta CASE es producir un código de

programa libre de errores y fácil de

mantener. También permite a los usuarios

desarrollar sistemas de software más

rápidamente de lo que sería posible sin el


uso de dicha herramienta.
ESTRUCTURA

GENERAL DE UNA

HERRAMIENTA CASE
CASE de alto nivel son aquellas herramientas que

automatizan o apoyan las fases finales o superiores del

ciclo de vida del desarrollo de sistemas como la

planificación de sistemas, el análisis de sistemas y el

diseño de sistemas.
CASE de bajo nivel son aquellas herramientas que

automatizan o apoyan las fases finales o inferiores del

ciclo de vida como el diseño detallado de sistemas, la

implantación de sistemas y el soporte de sistemas.


CASE cruzado de ciclo de vida se aplica a aquellas

herramientas que apoyan actividades que tienen lugar a

lo largo de todo el ciclo de vida, se incluyen

actividades como la gestión de proyectos y la

estimación.
VENTAJAS
Se pueden llegar a obtener las siguientes ventajas:
Menor tiempo de mantenimiento
Mayor independencia entre análisis, diseño y programación
Mayor independencia del análisis y diseño con respecto a
un entorno en particular.
Trabajar con tareas de mayor nivel que la codificación
pura.
Mejora de la calidad del producto de software
Aplicaciones más productivas para la empresa.
DESVENTAJAS
Muchas veces las herramientas CASE no cumplen los

objetivos esperados, o simplemente no resultan atractivas

para las empresas. Las razones pueden ser muchas, entre

ellas:
Dificultades para adaptarse al cambio, pues es un

cambio cultural, no solo técnico.


Es difícil pasar de un análisis realizado en solitario

a la realización del análisis en colaboración con los

usuarios o con un equipo.


Muchas empresas no cumplen o no tienen prácticas de

gestión de software organizadas, sin las cuales la

automatización del proceso de análisis y diseño suele

resultar ineficaz o imposible.


A veces se cree que las nuevas herramientas son

soluciones mágicas, cuando en realidad el resultado se

ve a mediano y largo plazo.


Muchos sectores de software están tan atrasados en el

cumplimiento de sus trabajos que no disponen de tiempo

para pensar en nuevas políticas de desarrollo.


Falsas expectativas creadas por los vendedores que

originan desengaños y frustraciones.


HERRAMIENTAS CASE
PARA LEVANTAMIENTO
DE REQUERIMENTOS

IRQA4
Herramienta CASE de Ingeniería de Requisitos,
diseñada para soportar las actividades
realizadas en el proceso de especificación de
sistemas. Ésta facilita y formaliza la
comunicación entre el cliente, el proveedor y
los distintos miembros del equipo de desarrollo.
Facilita la captura, organización y análisis de
las condiciones, así como la especificación de
la solución mediante el apoyo metodológico
adaptable a cada cliente.
HERRAMIENTAS CASE

PARA MODELADO

Permiten crear y modificar diagramas Entidad-


Relación, de flujo de datos, de clases, etc. Son
importantes también las herramientas de
prototipado. Éstas incluyen diseñadores de
formularios, de menúes, de informes, y lenguajes
de especificación ejecutables. Alguno de ellos
es:
Diagramas UML Online de Lucidchart.
Herramienta UML de Altova.
MagicDraw UML.
HERRAMIENTAS CASE

PARA DISEÑO DE

SOFTWARE

PLATAFORMAS IDE
Los ambientes IDE no solamente están diseñados
para escribir código, hacer pruebas, y
depuraciones, sino que, además, nos permiten
disfrutar de la posibilidad de diseñar una Herramientas de

interfaz para nuestra aplicación. Diseño Gráfico.


Con ellas podrás armar no solamente la interfaz
de un bonito programa, incluso puedes armar lo
que son sitios web completos, en caso de que el
software que estés desarrollando sea algo en
Web. La ventaja de estas herramientas
profesionales como Photoshop o Corel Draw, es
que se adaptan a muchos lenguajes de
programación, permitiéndote obtener el código
fuente del diseño para implementarlo desde
cualquier plataforma que estés utilizando.
HERRAMIENTAS CASE

PARA PROGRAMAR

EDITORES DE TEXTO
Estas aplicaciones ofrecen un espacio de trabajo
donde el programador puede escribir código. Esta
tarea se puede realizar desde un simple editor
de texto, o en un entorno especializado con
pareo de llaves, herramientas de autocompletado
preinstaladas y resalte de sintaxis.

Además, tenemos las herramientas para compilar


y/o interpretar esos códigos que generamos con
los editores de texto, los enlazadores y por
ultimo los depuradores para arreglar problemas
de lógica y sintaxis.
HERRAMIENTAS CASE

PARA PRUEBAS

XRAY TEST MANAGEMENT


Proporciona la estructura adecuada para
organizar y clasificar conjuntos de pruebas y
proporciona resultados de prueba eficientes en
menos tiempo. Se integra perfectamente con
marcos de prueba como Jira, Selenium, Junit,
etc. Puede establecer condiciones previas
personalizadas que se pueden reutilizar y
asociar con diferentes pruebas. Xray facilita
las integraciones de CI con Bamboo, Jenkins y
proporciona una trazabilidad perfecta y una
correspondencia entre requisitos, pruebas,
errores y ejecución.
También tiene la posibilidad de configurar
entornos de prueba, planes de prueba y la
generación de informes integrados.
CONCLUSIONES
Zúñiga Gómez José Alberto

El desarrollo de software va mas

allá de generar códigos fuentes

y diseños llamativos para

entregar en tiempo y forma a un

cliente, también se debe

considerar muchísimo el área

administrativa, comprender la

naturaleza en si del software,

como el simple hecho de aplicar

los métodos y herramientas para

hacer mas llevadero el

cumplimiento de los

requerimientos del sistema a

crear.
CONCLUSIONES
García Regalado Ricardo Alejandro

En conclusión, en el
desarrollo de software hay
muchas herramientas y
concepto de los que
solemos creer o podemos
imaginar y suelen ser de
gran ayuda conocer esta
misma información como las
herramientas y ayudas que
podemos aplicar para una
biuena gestion a futuro
con nuestros proyectos.
GRACIAS POR

LA ATENCION

También podría gustarte