Ingenieria Del Software
Ingenieria Del Software
Ingenieria Del Software
El contexto del Enfoque Orientado a Objetos (EOO) un objeto es una entidad que encapsula
datos (atributos) y acciones o funciones que los manejan (métodos). También para el EOO
un objeto se define como una instancia o particularización de una clase.
Los objetos de interés durante el desarrollo de software no sólo son tomados de la vida real
(objetos visibles o tangibles), también pueden ser abstractos. En general son entidades que
juegan un rol bien definido en el dominio del problema. Un libro, una persona, un carro, un
polígono, son apenas algunos ejemplos de objeto.
Cada objeto puede ser considerado como un proveedor de servicios utilizados por otros
objetos que son sus clientes. Cada objeto puede ser a al vez proveedor y cliente. De allí que
un programa pueda ser visto como un conjunto de relaciones entre proveedores clientes.
Los servicios ofrecidos por los objetos son de dos tipos:
CARACTERÍSTICAS
METODOLOGÍAS EMPLEADAS
Fases de desarrollo
Fase de Inicio: Esta fase tiene como propósito definir y acordar el alcance del
proyecto con los patrocinadores, identificar los riesgos asociados al proyecto,
proponer una visión muy general de la arquitectura de software y producir el plan de
las fases y el de iteraciones posteriores.
Fase de elaboración: En la fase de elaboración se seleccionan los casos de uso que
permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se
realiza la especificación de los casos de uso seleccionados y el primer análisis del
dominio del problema, se diseña la solución preliminar.
Fase de Desarrollo: El propósito de esta fase es completar la funcionalidad del
sistema, para ello se deben clarificar los requisitos pendientes, administrar los
cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las
mejoras para el proyecto.
Fase de Transición: El propósito de esta fase es asegurar que el software esté
disponible para los usuarios finales, ajustar los errores y defectos encontrados en las
pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico
necesario. Se debe verificar que el producto cumpla con las especificaciones
entregadas por las personas involucradas en el proyecto.
Esta metodología nace en febrero del 2001 en una reunión celebrada en Utah - EEUU.
Principales ideas de la metodología ágil:
Se encarga de valorar al individuo y las iteraciones del equipo más que a las
herramientas o los procesos utilizados.
Se hace mucho más importante crear un producto software que funcione que
escribir mucha documentación.
El cliente está en todo momento colaborando en el proyecto.
Es más importante la capacidad de respuesta ante un cambio realizado que el
seguimiento estricto de un plan.
Según la propuesta de Beck los roles que nos podemos encontrar son los siguientes:
Scrum
Metodología Scrum:
Esta metodología tiene algunas desventajas, como el hecho de que genera muy poca
documentación en comparación con otras metodologías, no es apto para todos los proyectos
y en muchas ocasiones es necesario completarlo con otros procesos de XP.
Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en inglés, Unified
Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y
utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un
lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML
ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos
conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos
como expresiones de lenguajes de programación, esquemas de bases de datos y
componentes reutilizables.
Se puede aplicar en el desarrollo de software entregando gran variedad de formas para dar
soporte a una metodología de desarrollo de software (tal como el Proceso Unificado
Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.
CARACTERÍSTICAS DE LOS LENGUAJE DE MODELADOS
TIPOS DE DIAGRAMAS
SÍMBOLOS Y NOTACIÓN DE LOS DIAGRAMAS
USO DE HERRAMIENTAS CASE EN EL MODELADO
Hay un gran número de Herramientas CASE disponibles para simplificar varias etapas en el
desarrollo del ciclo vital del Software, como por ejemplo herramientas de análisis, diseño
de herramientas, Gestión de proyectos de herramientas, Proyectos de gestión de
herramientas de Bases de datos, gestión de herramientas de Bases de datos, deben
nombrarse también algunas Herramientas de Documentación.
El uso de Herramientas CASE acelera el desarrollo del proyecto con tal de producir los
resultados deseados y ayuda a encontrar imperfecciones antes de proseguir con la siguiente
etapa del desarrollo de Software.
Las herramientas CASE se pueden dividir en las siguientes partes en base a a su uso en una
etapa concreta del SDLC:
Herramientas Upper CASE - Las Herramientas Upper CASE se usan en las etapas
de planificación, análisis y diseño del SDLC.
La Herramientas CASE se pueden agrupar todas juntas si tienen una funcionalidad similar,
y procesa actividades y la capacidad de integrarse con otras Herramientas.
Estas herramientas se usan para representar componentes del sistema, datos, y a controlar la
fluidez de varios componentes y estructura del software de manera gráfica. Por ejemplo, la
herranmienta 'Flow Chart Maker' para crear los más novedosos Diagramas de flujos.
Herramientas para modelado de procesos
Estas herramientas se usan para la planificación del proyecto, el coste y esfuerzo estimados,
la temporalización y la organización de los recursos. Los Directivos deben coordinar de
manera muy estricta la ejecución del proyecto con cada uno de los pasos mencionados con
anterioridad para la buena gestión del proyecto software. Herramientas de administración
de procesos ayudan a almacenar y a compartir información sobre el proyecto en tiempo real
durante su organización. Ejemplos de este tipo de herramienta son 'Creative Pro Office',
'Trac Project', o 'Basecamp'.
Herramientas de documentación
Herramientas de análisis
Estas herramientas ayudan a cumplir con los requisitos, de manera automática examinan si
hay alguna inconsistencia, o informaciones no acuradas en los diagramas, buscan posibles
redundancias o omisiones erróneas. Ejemplos de este tipo de herramienta son Accept 360,
Accompa, CaseComplete para análisis de requisitos, y Visible Analysts para análisis total.
Herramientas de diseño
Control de versiones
Línea base
Gestión del control de cambios
Las herramientas CASE ayudan en esto usando un rastreo automático, control de versiones
y gestión de versiones. Por ejemplo, Fossil, Git, Accu REV.
Programming Tools
Estas herramientas ayudan en el diseño de páginas Web con todos los elementos
relacionados como impresos, textos, secuencias de comando, gráficos y demás. Las
herramientas Web también producen una vista preliminar en directo de lo que se está
desarrollando y cómo será una vez terminado. Por ejemplo Fontello, Adobe Edge Inspect,
Foundation 3, Brackets.
Herramientas de mantenimiento