Академический Документы
Профессиональный Документы
Культура Документы
Proceso de
Desarrollo de
Software.
Profesor: Alumno:
La diferencia entre un objeto y una clase es que un objeto es una entidad concreta que
existe en tiempo y espacio, mientras que una clase representa una abstracción, la
“esencia” de un objeto, tal como son. De aquí que un objeto no es una clase, sin embargo,
una clase puede ser un objeto.
Características
Las metodologías de programación son modelos sobre como diseñar e implementar los
programas. Diferentes modelos tienen como resultado diferentes técnicas. Que cada
técnica sea distinta no implica que una sea la verdadera y que las demás falsas. Por el
contrario, las metodologías se complementan entre sí. Lo que todas las metodologías
tienen en común es la premisa de que hay que partir de abstracciones que corresponden
a elementos del problema a resolver, y que la implementación de la solución se debe
realizar mediante un conjunto de módulos preferiblemente reutilizables.
Las metodologías orientadas a objetos se centran en las estructuras de datos que sin
embargo se relegan a un segundo plano en los modelos procedurales. La base de esta
metodología es que una estructura de datos debe contener las operaciones que los
modifican. La técnica que se utiliza para obtener esta <<abstracción de datos>> es la
encapsulación de los mismos en una estructura conocida como clase.
El acceso a los datos contenidos en la clase se realiza mediante las operaciones que la
propia clase define. Por tanto, la metodología orientada a objetos complementa el punto
de vista procedural de operaciones realizadas sobre un flujo de datos, al asociar a cada
dato el conjunto de operaciones que lo modifican. Como podrá ver, ambos enfoques son
complementarios.
Para ilustrar las diferencias entre las aproximaciones orientadas a procedimientos y las
orientadas a objetos, considere el diseño de un <<compilador>>
El compilador es un programa que a partir de un conjunto de fichero fuente (programa)
construye el código objeto que posteriormente se convierte en programa. Para realizar su
trabajo, el compilador lee el fichero fuente y separa de él las variables y las instrucciones.
Las variables constituyen la tabla de símbolos del programa, mientras que las
instrucciones se organizan en un árbol sintáctico donde se plasman todas la referencias
que realizan los mandatos y funciones entre sí
Mensaje: Una comunicación dirigida a un objeto, que le ordena que ejecute uno de
sus métodos con ciertos parámetros asociados al evento que lo generó.
Estado interno: Es una variable que se declara privada, que puede ser
únicamente accedida y alterada por un método del objeto, y que se utiliza para
indicar distintas.
ESTÁNDARES EN EL PROCESO DE DESARROLLO DE SOFTWARE
Planificación.
La documentación del diseño interno del software con el objetivo de facilitar su mejora y
su mantenimiento se realiza a lo largo del proyecto. Esto puede incluir la documentación
de un, tanto interior como exterior.
Despliegue y mantenimiento.
METODOLOGÍAS EMPLEADAS
Son las más tradicionales, se centran en la definición detallada de los procesos y tareas
a realizar, herramientas a utilizar, y requiere una extensa documentación, ya que
pretende prever todo de antemano. Este tipo de metodologías son mas eficaces y
necesarias cuanto mayor es el proyecto que se pretende realizar respecto a tiempo y
recursos que son necesarios emplear, donde una gran organización es requerida. Una
de las metodologías pesadas más conocidas y utilizadas es la Metodología RUP
(Rational Unified Process) que divide el desarrollo en 4 fases que definen su ciclo de
vida:
Inicio: El objetivo es determinar la visión del proyecto y definir lo que se desea realizar.
Elaboración: Etapa en la que se determina la arquitectura óptima del proyecto.
Construcción: Se obtiene la capacidad operacional inicial.
Transmisión: Obtener el producto acabado y definido
Actualmente no existe una metodología de desarrollo de software que sea global, es decir
que encierre características que puedan Introducción a las Metodologías Pesadas.
Metodología RUP
Centrado en la arquitectura
La arquitectura muestra la visión común del sistema completo en la que el equipo
de proyecto y los usuarios deben estar de acuerdo, por lo que describe los
elementos del modelo que son más importantes para su construcción, los cimientos
del sistema que son necesarios como base para comprenderlo, desarrollarlo y
producirlo económicamente.
Filosofía RUP
Colaboración entre equipos: Debe haber una comunicación fluida para coordinar
requerimientos, desarrollo, evaluaciones, planes,resultados, etc.,...
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.
Metodología XP
y consiste básicamente en ajustarse estrictamente a una serie de reglas que se centran
en las necesidades del cliente para lograr un producto de buena calidad en poco tiempo.
La Programación Extrema es una metodología ágil centrada en potenciar las relaciones
interpesonales como clave para el éxito en el desarrollo de software. Promueve el trabajo
en equipo, preocupándose en todo momento del aprendizaje de los desarrolladores y
estableciendo un buen clima de trabajo. Este tipo de método se basa en una
realimentación continuada entre el cliente y el equipo de desarrollo con una comunicación
fluida entre todos los participantes, también busca simplificar las soluciones
implementadas y coraje para los múltiples cambios. Este tipo de programación es la
adecuada para los proyectos con requisitos imprecisos, muy cambiantes y con un riesgo
técnico excesivo.
Según la propuesta de Beck los roles que nos podemos encontrar son los siguientes:
Cliente: Escribe las historias de los usuarios y las pruebas funcionales para validar
su implementación. El cliente da una gran prioridad a las historias de usuarios y
decide cual implementar en cada iteración centrandose en aportar mayor valor al
negocio.
Metodología Scrum:
El mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su
selección tiene origen en un estudio de la manera de trabajar de equipos altamente
productivos. Scrum, más que una metodología de desarrollo software, es una forma de
auto-gestión de los equipos de programadores. Un grupo de programadores deciden
cómo hacer sus tareas y cuánto van a tardar en ello. Scrum ayuda a que trabajen todos
juntos, en la misma dirección, con un objetivo claro. Scrum permite además seguir de
forma clara el avance de las tareas a realizar, de forma que los "jefes" puedan ver día a
día cómo progresa el trabajo. “En Scrum se realizan entregas parciales y regulares del
resultado final del proyecto, priorizadas por el beneficio que aportan al receptor del
proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos
complejos, donde se necesita obtener resultados pronto, donde los requisitos son
cambiantes o poco definidos, donde la innovación, la competitividad y la productividad son
fundamentales. Scrum también se utiliza para resolver situaciones en que no se está
entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los
costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de
reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta,
cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se
quiere trabajar utilizando un proceso especializado en el desarrollo de producto.” 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.
DIAGRAMAS
- Casos de Uso
- Clases
- Objetos
- Secuencia
- Colaboración
- Estados
- Actividades
- Componentes
- Despliegues