Sunteți pe pagina 1din 14

Unidad 1 Fundamentos de Ingeniera de Software

1.1 Conceptos bsicos

Software

Conjunto de programas y rutinas que permiten a la computadora realizar


determinadas tareas.

Ingeniera de software

La ingeniera de software es una disciplina formada por un conjunto de mtodos,


herramientas y tcnicas que se utilizan en el desarrollo de los programas

CASE

CASE es computer-aided software engineering programas que son usados para dar
soporte automatizado a las actividades del proceso de software

Paradigma

Conjunto de unidades que pueden sustituir a otra en un mismo contexto porque


cumplen la misma funcin.

Metodologa

El trmino metodologa se define como el grupo de mecanismos o procedimientos


racionales, empleados para el logro de un objetivo

Adaptabilidad

Adaptabilidad es la capacidad del producto software de ser adaptado a diferentes


entornos sin la aplicacin de acciones o medios distintos

Cuantificable

Lo cuantificable es aquello a lo cual hay que tomarle medidas y por medio de


operaciones matemticas concluir sus caractersticas
Portabilidad

Caracterstica que posee un software para ejecutarse en diferentes plataformas

Rentabilidad

La rentabilidad hace referencia a los beneficios que se han obtenido o se pueden


obtener de una inversin

Heterogeneidad

Desarrollar tcnicas para construir software que pueda hacer frente a plataformas
y ambientes de ejecucin heterogneos (diferentes tipos de Hw y Sw)

Sistema

Es una coleccin de componentes/subsistemas dispuestos de acuerdo con un diseo


dado con el propsito de lograr el cumplimiento de unas determinadas funciones
con una adecuacin y fiabilidad aceptables.

Tecnologa

La tecnologa es el conjunto de conocimientos tcnicos, cientficamente ordenados,


que permiten disear y crear bienes

Requisitos

En la ingeniera de sistemas, un requisito es una necesidad documentada sobre el


contenido, forma o funcionalidad de un producto o servicio

Programacin

Es el proceso de disear, codificar, depurar y mantener el cdigo fuente de


programas de computadora.

Clase

Es un modelo que define un conjunto de variables el estado, y mtodos apropiados


para operar con dichos datos el comportamiento de un objeto.
Mtricas

Es cualquier medida o conjunto de medidas destinadas a conocer o estimar el


tamao u otra caracterstica de un software o un sistema de informacin

Fiabilidad

Es la probabilidad de que ese sistema funcione o desarrolle una cierta funcin, bajo
condiciones fijadas y durante un perodo determinado.

Ciclo de vida

Describe el desarrollo de software, desde la fase inicial hasta la fase final.

1.2 Fases de la ingeniera de software

Anlisis de requisitos

Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras
que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de
habilidad y experiencia en la ingeniera de software para reconocer requisitos incompletos,
ambiguos o contradictorios.

Diseo y arquitectura

Se refiere a determinar cmo funcionar de forma general sin entrar en detalles. Consiste
en incorporar consideraciones de la implementacin tecnolgica, como el hardware, la red,
etc.

Programacin

Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de
software, La complejidad y la duracin de esta etapa est ntimamente ligada a los lenguajes
de programacin utilizados.
Pruebas

Consiste en comprobar que el software realice correctamente las tareas indicadas en la


especificacin. Una tcnica de prueba es probar por separado cada mdulo del software, y
luego probarlo de forma integral, para as llegar al objetivo.

Documentacin

Todo lo concerniente a la documentacin del propio desarrollo del software y de la gestin


del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario,
manuales tcnicos, etc.; todo con el propsito de eventuales correcciones, usabilidad,
mantenimiento futuro y ampliaciones al sistema.

Mantenimiento

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos.


Esto puede llevar ms tiempo incluso que el desarrollo inicial del software.

1.3 Metodologas de desarrollo de software

1.3.1 Clsicas

Una metodologa de desarrollo de software se refiere a un entorno de trabajo el cual se usa


para estructurar, planear y controlar el proceso de desarrollo en sistemas de informacin.

Comnmente se usa el siguiente esquema de trabajo en metodologas clsicas.


Cascada

Incremental

Aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el


calendario.

Evolutivo

Se caracterizan por la forma en que permiten a los ingenieros del software desarrollar
versiones cada vez ms completas del software.
Espiral

Es un proceso evolutivo que conjuga la naturaleza iterativa de construccin de prototipos con los
aspectos controlados y sistemticos del modelo lineal secuencial. En el modelo espiral, el software
se desarrolla en una serie de versiones incrementales.

Prototipos

El prototipo lo evala el cliente/usuario y se utiliza para refinar los requisitos del software
a desarrollar. La iteracin ocurre cuando el prototipo se pone a punto para satisfacer las
necesidades del cliente, permitiendo al mismo tiempo que el desarrollador comprenda
mejor lo que se necesita hacer.
Desarrollo basado en componentes

El desarrollo de software basado en componentes permite reutilizar piezas de cdigo pre-


elaborado que permiten realizar diversas tareas, conllevando a diversos beneficios como
las mejoras a la calidad, la reduccin del ciclo de desarrollo y el mayor retorno sobre la
inversin.

1.3.2 Agiles

Su objetivo fue esbozar los valores y principios que deberan permitir a los equipos
desarrollar software rpidamente y respondiendo a los cambios que puedan surgir a lo largo
del proyecto.

El punto de partida fue el Manifiesto gil, un documento que resume la filosofa gil.

Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las


herramientas.
Desarrollar software que funciona ms que conseguir una buena documentacin.
La colaboracin con el cliente ms que la negociacin de un contrato.
Responder a los cambios ms que seguir estrictamente un plan.
Los valores anteriores inspiran los doce principios del manifiesto, Los principios son:

1. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de


software que le aporte un valor.
2. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga
una ventaja competitiva.
3. Entregar frecuentemente software que funcione desde un par de semanas a un par
de meses, con el menor intervalo de tiempo posible entre entregas.
4. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del
proyecto.
5. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo
que necesitan y confiar en ellos para conseguir finalizar el trabajo.
6. El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar
informacin dentro de un equipo de desarrollo.
7. El software que funciona es la medida principal de progreso.
8. Los procesos giles promueven un desarrollo sostenible. Los promotores,
desarrolladores y usuarios deberan ser capaces de mantener una paz constante.
9. La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad.
10. La simplicidad es esencial.
11. Las mejores arquitecturas, requisitos y diseos surgen de los equipos organizados
por s mismos.
12. En intervalos regulares, el equipo reflexiona respecto a cmo llegar a ser ms
efectivo, y segn esto ajusta su comportamiento.

PROGRAMACIN EXTREMA (EXTREME PROGRAMMING, XP)

Es una metodologa gil centrada en potenciar las relaciones interpersonales como clave
para el xito en desarrollo de software, promoviendo el trabajo en equipo, preocupndose
por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo.
XP se basa en realimentacin continua entre el cliente y el equipo de desarrollo,
comunicacin fluida entre todos los participantes, simplicidad en las soluciones
implementadas y coraje para enfrentar los cambios.

RAD

En la dcada del 90, surgi un enfoque revolucionario para su momento ya que iba en
contra de toda creencia de que mediante procesos altamente definidos se iba a lograr
obtener software en tiempo, costo y con la requerida calidad.

En la comunidad de Ingeniera de Software conocido como RAD o Rapid Application


Development.
Entorno de desarrollo altamente productivo
Grupos pequeos de programadores
Herramientas que generaban cdigo en forma automtica tomando como entradas
sintaxis de alto nivel.
CRYSTAL

Se trata de un conjunto de metodologas para el desarrollo de software caracterizadas por


estar centradas en las personas que componen el equipo y la reduccin al mximo del
nmero de artefactos producidos.

El desarrollo de software se considera un juego cooperativo de invencin y comunicacin,


limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que se
deben invertir esfuerzos en mejorar sus habilidades y destrezas, as como tener polticas
de trabajo en equipo definidas.
1.4 Importancia de las herramientas CASE

Conjunto de aplicaciones informticas.

Proporcionan asistencia a los analistas y desarrolladores.

Aumentan la productividad
Reducen costos
Generan estructuras de cdigo

Ayudan:

Automatizando
Documentacin
Desarrollo de Software

Actividades que se automatizan:

1- Desarrollo de modelos grficos.

2.-Comprensin del diseo

3.-generacion de interfaces de usuarios

4.-depuracion de programas.

5.-Conversion automtica de programas.

Caractersticas de las herramientas case

permiten a los usuarios dibujar diagramas

-Planificacin.

-El anlisis.

-El diseo.

-Almacenan el significado del diagrama en ves del diagrama en si mismo.


Objetivos de CASE:

la tecnologa case supone la automatizacin del desarrollo de software contribuyendo as a


mejorar

La Calidad.
La Productividad.

OBJETIVOS PARA ASI LOGRAR SU CORRECTO FUNCIONAMIENTO

1.-permitir la aplicacin practica de metodologa estructurada

2.-Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones

3.- simplificar el mantenimiento de los programas

4.- mejorar y estandarizar la documentacin

5.- aumentar la portabilidad de las aplicaciones

6.- facilitar la reutilizacin de componentes de software

7.- permitir el desarrollo de aplicaciones mediante grficos

Las herramientas CASE permiten 3 cosas principalmente.

Reutilizacin del software.


Portabilidad del Software.
Estandarizacin de la documentacin.

1.4.1 CLASIFICACIN DE LAS HERRAMIENTAS CASE

La primera herramienta CASE fue Excelerator que sali a la luz en el ao de 1984 y


trabajaba bajo plataforma PC

Clasificacin

Se pueden clasificar teniendo en cuenta los siguientes parmetros:


Las plataformas que soportan.
Las fases del ciclo de vida del desarrollo de sistemas que cubren.
La arquitectura de las aplicaciones que producen.
Su funcionalidad.

La siguiente clasificacin es la mas habitual basada en las fases del clico de desarrollo que
cubren:

Upper CASE (U-CASE)

Herramientas que ayudan en las fases de planificacin y estrategia del desarrollo,


usando diagramas UML.

Middle CASE (M-CASE)

Herramientas para automatizar tareas en el anlisis y diseo de la aplicacin.

Lower CASE (L-CASE)

Herramientas que semi-automatizan la generacin de cdigo, crean programas de


deteccin de errores, soportan la depuracin de programas y pruebas.

Otras clasificaciones:

Integrated CASE (I-CASE)

Herramientas que engloban todo el proceso de desarrollo software, desde el


anlisis hasta la implementacin.

MetaCASE

Herramientas que permiten la definicin de nuestra propia tcnica de modelado,


los elementos permitidos del meta-modelo generado se guardan en un repositorio
y pueden ser usados por otros analistas.

CAST

(Computer-Aided Software Testing), herramientas de soporte a la prueba de software.

S-ar putea să vă placă și