Sie sind auf Seite 1von 10

ase 1 proyecto

Presentar tarea
Hora lmite 31 jul hasta 23:58 Puntos 5 Presentando un cuadro de entrada de texto,
una grabacin de contenido de medios, o una carga de archivo Disponible 13 jul en
0:00-31 jul en 23:59 19 das
La primera fase del proyecto consiste en identificar elementos que sern tiles
durante el semestre para el desarrollo del proyecto.

Los elementos a identificar son:

Modelo de control de versiones


Herramientas
Tecnologa y arquitectura
Propuesta de proyecto(s) a desarrollar
Modelo de control de versiones

Para utilizar una herramienta de control de versiones, se debe establecer acuerdos


acerca de la forma en que se utilizar dicha herramienta por un grupo de trabajo.
En ese sentido, se debe definir para esta fase:

Esquema de identificacin de objetos (tipos de archivos, nombres, estndares)


Esquema de nomenclatura de versiones
Flujo de trabajo a utilizar (elegir uno de los presentados ac
https://www.atlassian.com/pt/git/workflows#!workflow-overview (Enlaces a un sitio
externo.)Enlaces a un sitio externo. ), explicando las razones de la eleccin
Herramientas

Todo proyecto de desarrollo de software requiere herramientas que apoyen al mismo.


Dependiendo del tiempo y metodologa utilizada, es til definir herramientas para
planificacin, requerimientos, desarrollo, control de versiones, integracin,
pruebas y diseo. En esta fase del proyecto cada grupo decidir que herramientas
utilizar para las siguientes fases del proyecto, justificando la eleccin de
herramientas.

Los aspectos del proyecto que deben apoyarse con el uso de una herramienta son:

Planificacin y seguimiento de historias de usuario


Control de versiones
Pruebas unitarias
IDE
Como parte de este entregable, se debe incluir en los entregables evidencias que
las herramientas ya estn instaladas o configuradas para uso de los integrantes del
grupo.

Tecnologa y arquitectura.

Cada grupo decidir la tecnologa que usar para desarrollo (java, .net, etc.), el
IDE de apoyo y una arquitectura preliminar para el desarrollo sobre dicha
tecnologa. Tambin se definir la plataforma de despliegue a utilizar (Tomcat
sobre Linux, por ejemplo).

Propuesta de proyecto(s) a desarrollar

Finalmente, cada grupo debe Identificar 2 propuestas de proyectos a desarrollar. La


eleccin de los proyectos debe considerar:

Se tendr al menos 4 iteraciones (de 2 semanas cada una) para el desarrollo del
proyecto, aplicando las prcticas de las metodologas cubiertas en el curso
Se espera que al final de las iteraciones se generen productos de software
terminados
Funcionalidades que pudieran ser de utilidad para el grupo en el futuro.
Entregables

Un documento que tenga el siguiente contenido:

Modelo de control de versiones


Herramientas
Tecnologa y arquitectura
Propuesta de proyecto(s) a desarrollar
Referencias
___________________________________________________________
What is version control
Benefits of version control
Version control systems are a category of software tools that help a software team
manage changes to source code over time. Version control software keeps track of
every modification to the code in a special kind of database. If a mistake is made,
developers can turn back the clock and compare earlier versions of the code to help
fix the mistake while minimizing disruption to all team members.

For almost all software projects, the source code is like the crown jewels - a
precious asset whose value must be protected. For most software teams, the source
code is a repository of the invaluable knowledge and understanding about the
problem domain that the developers have collected and refined through careful
effort. Version control protects source code from both catastrophe and the casual
degradation of human error and unintended consequences.

Software developers working in teams are continually writing new source code and
changing existing source code. The code for a project, app or software component is
typically organized in a folder structure or "file tree". One developer on the team
may be working on a new feature while another developer fixes an unrelated bug by
changing code, each developer may make their changes in several parts of the file
tree.

Version control helps teams solve these kinds of problems, tracking every
individual change by each contributor and helping prevent concurrent work from
conflicting. Changes made in one part of the software can be incompatible with
those made by another developer working at the same time. This problem should be
discovered and solved in an orderly manner without blocking the work of the rest of
the team. Further, in all software development, any change can introduce new bugs
on its own and new software can't be trusted until it's tested. So testing and
development proceed together until a new version is ready.

Good version control software supports a developer's preferred workflow without


imposing one particular way of working. Ideally it also works on any platform,
rather than dictate what operating system or tool chain developers must use. Great
version control systems facilitate a smooth and continuous flow of changes to the
code rather than the frustrating and clumsy mechanism of file locking - giving the
green light to one developer at the expense of blocking the progress of others.

Software teams that do not use any form of version control often run into problems
like not knowing which changes that have been made are available to users or the
creation of incompatible changes between two unrelated pieces of work that must
then be painstakingly untangled and reworked. If you're a developer who has never
used version control you may have added versions to your files, perhaps with
suffixes like "final" or "latest" and then had to later deal with a new final
version. Perhaps you've commented out code blocks because you want to disable
certain functionality without deleting the code, fearing that there may be a use
for it later. Version control is a way out of these problems.
Version control software is an essential part of the every-day of the modern
software team's professional practices. Individual software developers who are
accustomed to working with a capable version control system in their teams
typically recognize the incredible value version control also gives them even on
small solo projects. Once accustomed to the powerful benefits of version control
systems, many developers wouldn't consider working without it even for non-software
projects.

Benefits of version control

Developing software without using version control is risky, like not having
backups. Version control can also enable developers to move faster and it allows
software teams to preserve efficiency and agility as the team scales to include
more developers.

Version Control Systems (VCS) have seen great improvements over the past few
decades and some are better than others. VCS are sometimes known as SCM (Source
Code Management) tools or RCS (Revision Control System). One of the most popular
VCS tools in use today is called Git. Git is a Distributed VCS, a category known as
DVCS, more on that later. Like many of the most popular VCS systems available
today, Git is free and open source. Regardless of what they are called, or which
system is used, the primary benefits you should expect from version control are as
follows.

A complete long-term change history of every file. This means every change made by
many individuals over the years. Changes include the creation and deletion of files
as well as edits to their contents. Different VCS tools differ on how well they
handle renaming and moving of files. This history should also include the author,
date and written notes on the purpose of each change. Having the complete history
enables going back to previous versions to help in root cause analysis for bugs and
it is crucial when needing to fix problems in older versions of software. If the
software is being actively worked on, almost everything can be considered an "older
version" of the software.
Branching and merging. Having team members work concurrently is a no-brainer, but
even individuals working on their own can benefit from the ability to work on
independent streams of changes. Creating a "branch" in VCS tools keeps multiple
streams of work independent from each other while also providing the facility to
merge that work back together, enabling developers to verify that the changes on
each branch do not conflict. Many software teams adopt a practice of branching for
each feature or perhaps branching for each release, or both. There are many
different workflows that teams can choose from when they decide how to make use of
branching and merging facilities in VCS.
Traceability. Being able to trace each change made to the software and connect it
to project management and bug tracking software such as JIRA, and being able to
annotate each change with a message describing the purpose and intent of the change
can help not only with root cause analysis and other forensics. Having the
annotated history of the code at your fingertips when you are reading the code,
trying to understand what it is doing and why it is so designed can enable
developers to make correct and harmonious changes that are in accord with the
intended long-term design of the system. This can be especially important for
working effectively with legacy code and is crucial in enabling developers to
estimate future work with any accuracy.
While it is possible to develop software without using any version control, doing
so subjects the project to a huge risk that no professional team would be advised
to accept. So the question is not whether to use version control but which version
control system to use.

There are many choices, but here we are going to focus on just one, Git.
___________________________________________________________

La ingeniera de software es la aplicacin de un enfoque sistemtico, disciplinado


y cuantificable al desarrollo, operacin y mantenimiento de software,1? y el
estudio de estos enfoques, es decir, la aplicacin de la ingeniera al software.2?
Integra matemticas, ciencias de la computacin y prcticas cuyos orgenes se
encuentran en la ingeniera.3?

Se citan las definiciones ms reconocidas, formuladas por prestigiosos autores:

Ingeniera de software es el estudio de los principios y metodologas para el


desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978).
Ingeniera de software es la aplicacin prctica del conocimiento cientfico al
diseo y construccin de programas de computadora y a la documentacin asociada
requerida para desarrollar, operar y mantenerlos. Se conoce tambin como desarrollo
de software o produccin de software (Bohem, 1976).
La ingeniera de software trata del establecimiento de los principios y mtodos de
la ingeniera a fin de obtener software de modo rentable, que sea fiable y trabaje
en mquinas reales (Bauer, 1972).
La ingeniera de software es la aplicacin de un enfoque sistemtico, disciplinado
y cuantificable al desarrollo, operacin, y mantenimiento del software.1?
En 2004, la U. S. Bureau of Labor Statistics (Oficina de Estadsticas del Trabajo
de Estados Unidos) cont 760 840 ingenieros de software de computadora.4?
[actualizar]

El trmino "ingeniero de software", sin embargo, se utiliza de manera genrica en


el ambiente empresarial, y no todos los que se desempean en el puesto de ingeniero
de software poseen realmente ttulos de ingeniera de universidades reconocidas.

Algunos autores consideran que "desarrollo de software" es un trmino ms apropiado


que "ingeniera de software" para el proceso de crear software. Personas como Pete
McBreen (autor de "Software Craftmanship") cree que el trmino IS implica niveles
de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de
software.

Indistintamente se utilizan los trminos "ingeniera de software" o "ingeniera del


software"; aunque menos comn tambin se suele referenciar como "ingeniera en
software".5?6?7? En Hispanoamrica los trminos ms comnmente usados son los dos
primeros.

La creacin del software es un proceso intrnsecamente creativo y la ingeniera del


software trata de sistematizar este proceso con el fin de acotar el riesgo de
fracaso en la consecucin del objetivo, por medio de diversas tcnicas que se han
demostrado adecuadas sobre la base de la experiencia previa.

La ingeniera de software se puede considerar como la ingeniera aplicada al


software, esto es, por medios sistematizados y con herramientas preestablecidas, la
aplicacin de ellos de la manera ms eficiente para la obtencin de resultados
ptimos; objetivos que siempre busca la ingeniera. No es slo de la resolucin de
problemas, sino ms bien teniendo en cuenta las diferentes soluciones, elegir la
ms apropiada.

La produccin de software utiliza criterios y normas de la ingeniera de software,


lo que permite transformarlo en un producto industrial usando bases de la
ingeniera como mtodos, tcnicas y herramientas para desarrollar un producto
innovador regido por metodologas y las buenas practicas. Dicho producto es un
medio que interviene en las funciones de sus usuarios para obtener un proceso
productivo ms eficaz y eficiente; hoy en da las empresas no podran funcionar sin
software por que este es un producto de uso masivo; por lo cual, el nivel de una
empresa est determinado por la calidad de su infraestructura tecnolgica y los
productos desarrollados o adquiridos de acuerdo a sus necesidades.

___________________________________________________________

Ingeniera del Software. La Ingeniera del Software es una disciplina o rea de la


Informtica que ofrece mtodos y tcnicas para desarrollar y mantener software de
calidad que resuelven problemas de todo tipo. Existen varias definiciones sobre
esta ciencia de la computacin que permiten describir este proceso.

Contenido
[ocultar]
1 Estado del arte de la Ingeniera del Software
2 Trmino Ingeniera del Software
3 Definiciones de Ingeniera de Software
4 El producto y el proceso de la Ingeniera del Software
4.1 El producto
4.2 El proceso
5 Modelos de desarrollo de software
6 Ver adems
7 Fuentes
Estado del arte de la Ingeniera del Software
La Ingeniera del Software es una disciplina o rea de la Informtica o Ciencias de
la Computacin, que ofrece mtodos y tcnicas para desarrollar y mantener software
de calidad que resuelven problemas de todo tipo. Hoy da es cada vez ms frecuente
la consideracin de la Ingeniera del Software como una nueva rea de la
ingeniera, y el ingeniero del software comienza a ser una profesin implantada en
el mundo laboral internacional, con derechos, deberes y responsabilidades que
cumplir, junto a una, ya, reconocida consideracin social en el mundo empresarial
y, por suerte, para esas personas con brillante futuro.

La Ingeniera del Software trata con reas muy diversas de la Informtica y de las
ciencias de la computacin, tales como construccin de compiladores, sistemas
operativos o desarrollos de Intranet/Internet, abordando todas las fases del ciclo
de vida del desarrollo de cualquier tipo de sistemas de informacin y aplicables a
una infinidad de reas tales como: negocios, investigacin cientfica, medicina,
produccin,logstica, banca, control de trfico, meteorologa, el mundo del
derecho, la red de redes Internet, redes Intranet y Extranet, etc.

Trmino Ingeniera del Software


Segn Diccionario de la Real Academia Espaola de la Lengua

El trmino Ingeniera se define en el Diccionario de la Real Academia Espaola de


la Lengua (DRAE) como: Conjunto de conocimientos y tcnicas que permiten aplicar el
saber cientfico a la utilizacin de la materia y de las fuerzas de energa.

Profesin y ejercicio del ingeniero, y el trmino ingeniero se define como: Persona


que profesa o ejerce la ingeniera.

Segn la Real Academia de Ciencias Exactas, Fsicas y Naturales

Ingeniera: Es el conjunto de conocimientos y tcnicas cuya aplicacin permite la


utilizacin racional de los materiales y de los recursos naturales, mediante
invenciones, construcciones u otras realizaciones provechosas para el hombre.

Evidentemente, si la Ingeniera del Software es una nueva ingeniera, parece lgico


que rena las propiedades citadas en las definiciones anteriores. Sin embargo, ni
el DRAE ni la Real Academia Espaola de Ciencias han incluido todava el trmino es
sus ltimas ediciones; en consecuencia vamos a recurrir para su definicin ms
precisa a algunos de los autores ms acreditados que comenzaron en su momento a
utilizar el trmino o bien en las definiciones dadas por organismos internacionales
profesionales de prestigio tales como IEEE o ACM.

Definiciones de Ingeniera de Software


Definicin 1: Ingeniera de Software es el estudio de los principios y metodologas
para desarrollo y mantenimiento de sistemas de software.

Definicin 2: Ingeniera de Software es la aplicacin prctica del conocimiento


cientfico en el diseo y construccin de programas de computadora y la
documentacin asociada requerida para desarrollar, operar (funcionar) y
mantenerlos. Se conoce tambin como desarrollo de software o produccin de
software.

Definicin 3: Ingeniera de Software trata del establecimiento de los principios y


mtodos de la Ingeniera a fin de obtener software de modo rentable que sea fiable
y trabaje en mquinas reales.

Definicin 4: La aplicacin de un enfoque sistemtico, disciplinado y cuantificable


al desarrollo, operacin (funcionamiento) y mantenimiento del software; es decir,
la aplicacin de ingeniera al software.

El producto y el proceso de la Ingeniera del Software


El producto

El software de computadora se ha convertido en el alma mter. Es la mquina que


conduce a la toma de decisiones comerciales. Sirve para la investigacin cientfica
moderna y de resolucin de problemas de ingeniera. Es el factor clave que
diferencia los productos y servicios modernos. Est inmerso en sistemas de todo
tipo: de transportes, mdicos, de telecomunicaciones, militares, procesos
industriales, entretenimientos, productos de oficina, la lista es casi
interminable. El software es casi ineludible en un mundo moderno. A medida que nos
adentremos en el siglo XXI, ser el que nos conduzca a nuevos avances en todo,
desde la educacin elemental a la ingeniera gentica.

El software de computadora es el producto que disean y construyen los ingenieros


del software. Esto abarca programas que se ejecutan dentro de una computadora de
cualquier tamao y arquitectura, documentos que comprenden formularios virtuales e
impresos y datos que combinan nmeros y texto y tambin incluyen representaciones
de informacin de audio, vdeo e imgenes.

Los ingenieros de software lo construyen, y virtualmente cualquier persona en el


mundo industrializado lo utiliza, bien directa o indirectamente. Es importante
porque afecta muy de cerca cualquier aspecto de la vida y est muy extendido en el
comercio y en las actividades cotidianas.

Los pasos son construir software de computadora como construimos cualquier otro
producto satisfactorio, aplicando un proceso que conduce a un resultado de alta
calidad, que satisface las necesidades de las personas que usarn el producto.
Debes aplicar un enfoque de ingeniera de software.

Desde el punto de vista de un ingeniero de software, el producto obtenido son los


programas, documentos y los datos que configuran el software de computadora. Pero
desde el punto de vista de los usuarios el producto obtenido es la informacin
resultante que de algn modo mejora el mundo de los usuarios.

El proceso
Como el software, al igual que el capital, es el conocimiento incorporado, y puesto
que el conocimiento est inicialmente disperso, el desarrollo del software
implcito, latente e incompleto en gran medida, es un proceso social de
aprendizaje.

El proceso es un dilogo en el que se rene el conocimiento y se incluye en el


software. El proceso proporciona una interaccin entre los usuarios y los
diseadores, entre los usuarios y las herramientas de desarrollo, y entre los
diseadores y las herramientas de desarrollo [tecnologa]. Es un proceso
interactivo donde la herramienta de desarrollo se usa como medio de comunicacin,
con cada iteracin del dilogo se obtiene mayor conocimiento de las personas
involucradas.

Cuando se trabaja para construir un producto o un sistema, es importante seguir una


serie de pasos predecibles, un mapa de carreteras que le ayude a obtener el
resultado oportuno de calidad. El mapa de carreteras a seguir es llamado proceso
del software.

Lo construyen los ingenieros del software y sus gestores adaptan el proceso a sus
necesidades y entonces lo siguen. Adems las personas que han solicitado el
software tienen un papel a desempear en el proceso del software. Es importante
porque proporciona estabilidad, control y organizacin a una actividad que puede,
si no se controla, volverse catica.

Los pasos son a un nivel detallado, el proceso que adoptemos depende del software
que estamos construyendo. Un proceso puede ser apropiado para crear software de un
sistema de aviacin, mientras que un proceso diferente por completo puede ser
adecuado para la creacin de un sitio web.

Desde el punto de vista de un ingeniero de software, los productos obtenidos son


programas, documentos y datos que se producen como consecuencia de las actividades
ingenieriles definidas por el proceso.

Hay una cantidad de mecanismos de evaluacin del proceso de software que permiten a
las organizaciones determinar la madurez de su proceso. Sin embargo, la calidad,
oportunidad y viabilidad a largo plazo del producto que se est construyendo, son
los mejores indicadores de la eficiencia del proceso que estamos utilizando.

Modelos de desarrollo de software


Existen varios modelos, paradigmas y filosofas de desarrollo, en los cuales se
apoya la ingeniera de software para la construccin del software, entre ellos se
puede citar:

Modelo en cascada (modelo tradicional)


Modelo de prototipos
Modelo Espiral
Desarrollo por etapas
Desarrollo iterativo y creciente o Iterativo e Incremental
Modelo de desarrollo rpido de aplicaciones (Rapid Application Development, RAD
DRA)
Desarrollo concurrente

Proceso Unificado de Desarrollo RUP (Proceso Unificado de Rational)


Ver adems
___________________________________________________________

En el mbito del software cada vez es ms comn escuchar el trmino arquitectura


de software, y encontrar oportunidades de empleo para arquitectos de software.
An as, este concepto tiende a ser malentendido y la falta de comprensin al
respecto de sus principios frecuentemente repercute de manera negativa en la
construccin de sistemas de software.

El concepto de arquitectura de software se refiere a la estructuracin del sistema


que, idealmente, se crea en etapas tempranas del desarrollo. Esta estructuracin
representa un diseo de alto nivel del sistema que tiene dos propsitos primarios:
satisfacer los atributos de calidad (desempeo, seguridad, modificabilidad), y
servir como gua en el desarrollo. Al igual que en la ingeniera civil, las
decisiones crticas relativas al diseo general de un sistema de software complejo
deben de hacerse desde un principio. El no crear este diseo desde etapas tempranas
del desarrollo puede limitar severamente el que el producto final satisfaga las
necesidades de los clientes. Adems, el costo de las correcciones relacionadas con
problemas en la arquitectura es muy elevado. Es as que la arquitectura de software
juega un papel fundamental dentro del desarrollo.

Qu es la arquitectura de software?
Antes de elaborar sobre el tema, es conveniente definir el concepto ya que hoy en
da el trmino de arquitectura se usa para referirse a varios aspectos relacionados
con las TI. De acuerdo al Software Engineering Institute (SEI), la Arquitectura de
Software se refiere a las estructuras de un sistema, compuestas de elementos con
propiedades visibles de forma externa y las relaciones que existen entre ellos.[1]

El trmino elementos dentro de la definicin del SEI es vago a propsito, pues


puede referirse a distintas entidades relacionadas con el sistema. Los elementos
pueden ser entidades que existen en tiempo de ejecucin (objetos, hilos), entidades
lgicas que existen en tiempo de desarrollo (clases, componentes) y entidades
fsicas (nodos, directorios). Por otro lado, las relaciones entre elementos
dependen de propiedades visibles (o pblicas) de los elementos, quedando ocultos
los detalles de implementacin. Finalmente, cada conjunto de elementos relacionados
de un tipo particular corresponde a una estructura distinta, de ah que la
arquitectura esta compuesta por distintas estructuras.

Por qu es importante la arquitectura de software?


La arquitectura de software es de especial importancia ya que la manera en que se
estructura un sistema tiene un impacto directo sobre la capacidad de este para
satisfacer lo que se conoce como los atributos de calidad del sistema. Ejemplos de
atributos de calidad son el desempeo, que tiene que ver con el tiempo de respuesta
del sistema a las peticiones que se le hacen, la usabilidad, que tiene que ver con
qu tan sencillo les resulta a los usuarios realizar operaciones con el sistema, o
bien la modificabilidad, que tiene que ver con qu tan simple resulta introducir
cambios en el sistema. Los atributos de calidad son parte de los requerimientos (no
funcionales) del sistema y son caractersticas que deben expresarse de forma
cuantitativa. No tiene sentido, por ejemplo, decir que el sistema debe devolver una
peticin de manera rpida, o presentar una pgina ligera, ya que no es posible
evaluar objetivamente si el sistema cubre o no esos requerimientos.

La manera en que se estructura un sistema permitir o impedir que se satisfagan


los atributos de calidad. Por ejemplo, un sistema estructurado de tal manera que
una peticin deba transitar por muchos componentes antes de que se devuelva una
respuesta podra tener un desempeo pobre. Por otro lado, un sistema estructurado
de tal manera que los componentes estn altamente acoplados entre ellos limitar
severamente la modificabilidad. Curiosamente, la estructuracin tiene un impacto
mucho menor respecto a los requerimientos funcionales del sistema. Por ejemplo, un
sistema difcil de modificar puede satisfacer plenamente los requerimientos
funcionales que se le imponen.

Adems de los atributos de calidad, la arquitectura de software juega un papel


fundamental para guiar el desarrollo. Una de las mltiples estructuras que la
componen se enfoca en partir el sistema en componentes que sern desarrollados por
individuos o grupos de individuos. La identificacin de esta estructura de
asignacin de trabajo es esencial para apoyar las tareas de planeacin del
proyecto.

Finalmente, los diseos arquitectnicos que se crean en una organizacin pueden ser
reutilizados para crear sistemas distintos. Esto permite reducir costos y aumentar
la calidad, sobre todo si dichos diseos han resultado previamente en sistemas
exitosos.

El ciclo de desarrollo de la arquitectura


Dentro de un proyecto de desarrollo, e independientemente de la metodologa que se
utilice, se puede hablar de desarrollo de la arquitectura de software. Este
desarrollo, que precede a la construccin del sistema, esta dividido en las
siguientes etapas: requerimientos, diseo, documentacin y evaluacin. Cabe sealar
que las actividades relacionadas con el desarrollo de la arquitectura de software
generalmente forman parte de las actividades definidas dentro de las metodologas
de desarrollo.

A continuacin se describen dichas etapas.

Requerimientos. La etapa de requerimientos se enfoca en la captura, documentacin y


priorizacin de requerimientos que influencian la arquitectura. Como se mencion
anteriormente, los atributos de calidad juegan un papel preponderante dentro de
estos requerimientos, as que esta etapa hace nfasis en ellos. Otros
requerimientos, sin embargo, son tambin relevantes para la arquitectura, estos son
los requerimientos funcionales primarios y las restricciones.

Diseo. La etapa de diseo es la etapa central en relacin con la arquitectura y


probablemente la ms compleja. Durante esta etapa se definen las estructuras que
componen la arquitectura. La creacin de estas estructuras se hace en base a
patrones de diseo, tcticas de diseo y elecciones tecnolgicas. El diseo que se
realiza debe buscar ante todo satisfacer los requerimientos que influencian a la
arquitectura, y no simplemente incorporar diversas tecnologas por que estn de
moda.

Documentacin. Una vez creado el diseo de la arquitectura, es necesario poder


comunicarlo a otros involucrados dentro del desarrollo. La comunicacin exitosa del
diseo muchas veces depende de que dicho diseo sea documentado de forma apropiada.
La documentacin de una arquitectura involucra la representacin de varias de sus
estructuras que son representadas a travs de distintas vistas. Una vista
generalmente contiene un diagrama, adems de informacin adicional, que apoya en la
comprensin de dicho diagrama.

Evaluacin. Dado que la arquitectura de software juega un papel crtico en el


desarrollo, es conveniente evaluar el diseo una vez que este ha sido documentado
con el fin de identificar posibles problemas y riesgos. La ventaja de evaluar el
diseo es que es una actividad que se puede realizar de manera temprana (an antes
de codificar), y que el costo de correccin de los defectos identificados a travs
de la evaluacin es mucho menor al costo que tendra el corregir estos defectos una
vez que el sistema ha sido construido.

El rol de arquitecto
Las actividades descritas anteriormente requieren de habilidades particulares que
son la responsabilidad del arquitecto de software. El arquitecto es un lder
tcnico que debe conocer los principios relacionados con la arquitectura de
software, tener un amplio conocimiento respecto a la tecnologa, y tener excelentes
habilidades de comunicacin escrita y oral.
Desafortunadamente, en la actualidad pocos arquitectos de software que laboran en
la industria han recibido una formacin terica respecto al tema. Esto se debe a
que no es sino hasta pocas recientes que se han establecido de manera ms formal
los conceptos relacionados con la arquitectura de software, y que actualmente pocas
instituciones ofrecen cursos enfocados en el tema. El desconocimiento de los
principios relativos a la arquitectura de software frecuentemente impacta de manera
negativa a los proyectos de desarrollo.

Apenas empezamos
A lo largo de las distintas entregas de esta columna que inicia se buscar dar una
panormica del tema de arquitectura de software y se discutir de manera ms
detallada aspectos como:

requerimientos que influyen en la arquitectura,


el diseo, documentacin y evaluacin de la arquitectura,
los retos relacionados con la introduccin de prcticas de arquitectura de software
en un contexto organizacional,
la arquitectura de software dentro de las metodologas de desarrollo,
el perfil del arquitecto de software.

Das könnte Ihnen auch gefallen