You are on page 1of 12

Desarrollo de

Aplicaciones
Computacionales
I Semestre 2009

Computación III

Docente: Sara Naminao

snaminao@cftandresbello.cl
I. Introducción
I.1 ¿Qué es el software?

Son programas, documentos y datos, pero además:

• Es Ingeniería (Estudio y aplicación, por especialistas, de las diversas


ramas de la tecnología.)

• No se gasta

• Es complejo

• Es negocio

I.2 Tipos de software

Software de sistemas.

Está formado por todos aquellos programas cuya finalidad es servir al


desarrollo o al funcionamiento de otros programas. Estos programas son muy
variados: editores, compiladores, sistemas operativos, entornos gráficos,
programas de telecomunicaciones, etc. pero se caracterizan por estar muy
próximos al hardware, por ser utilizados concurrentemente por numerosos
usuarios y por tratarse de programas de amplia difusión, no estando diseñados
normalmente a medida. Esto permite un mayor esfuerzo en su diseño y
optimización, pero también les obliga a ser muy fiables, cumpliendo
estrictamente las especificaciones para las que fueron creados.

Software de tiempo real.

Está formado por todos aquellos programas que miden, analizan y controlan
los sucesos del mundo real a medida que ocurren, debiendo reaccionar de
forma correcta a los estímulos de entrada en un tiempo máximo prefijado.
Deben, por tanto, cumplir unos requisitos temporales muy estrictos y, dado
que los procesos que controlan pueden ser potencialmente peligrosos, tienen
que ser fiables y tolerantes a fallos. Por otro lado, no suelen ser muy complejos
y precisan de poca interacción con el usuario.

Software de gestión.

El procesamiento de información de gestión constituye, casi desde los inicios


de la informática la mayor de las áreas de aplicación de los ordenadores. Estos
programas utilizan grandes cantidades de información almacenadas en bases
de datos con objeto de facilitar las transacciones comerciales o la toma de
decisiones. Además de las tareas convencionales de procesamiento de datos,
2|Página
en las que el tiempo de procesamiento no es crítico y los errores pueden ser
corregidos a posteriori, incluyen programas interactivos que sirven de soporte
a transacciones comerciales.

Software científico y de ingeniería.

Otro de los campos clásicos de aplicación de la informática. Se encarga de


realizar complejos cálculos sobre datos numéricos de todo tipo. En este caso la
corrección y exactitud de las operaciones que realizan es uno de los requisitos
básicos que deben de cumplir.

El campo del software científico y de ingeniería se ha visto ampliado


últimamente con el desarrollo de los sistemas de diseño, ingeniería y
fabricación asistida por ordenador (CAD, CAE y CAM), los simuladores gráficos
y otras aplicaciones interactivas que lo acercan más al software de tiempo real
e incluso al software de sistemas.

Software de ordenadores personales.

El uso de ordenadores personales y de uso doméstico se ha generalizado a lo


largo de la pasada década. Aplicaciones típicas son los procesadores de textos,
las hojas de cálculo, bases de datos, aplicaciones gráficas, juegos, etc. Son
productos de amplia difusión orientados a usuarios no profesionales, por lo que
entre sus requisitos se encuentran la facilidad de uso y el bajo coste.

Software empotrado.

Software empotrado es aquel que va instalado en otros productos industriales,


como por ejemplo la electrónica de consumo, dotando a estos productos de un
grado de inteligencia cada vez mayor. Se aplica a todo tipo de productos,
desde un vídeo doméstico hasta un misil con cabeza atómica, pasando por
algunos sistemas de control de los automóviles, y realiza funciones muy
diversas, que pueden ir desde complicados cálculos en tiempo real a sencillas
interacciones con el usuario facilitando el manejo del aparato que los
incorpora. Comparten características con el software de sistemas, el software
de tiempo real, el software de ingeniería y científico y el software de
ordenadores personales.

Software de inteligencia artificial.

El software basado en lenguajes procedimentales es útil para realizar de forma


rápida y fiable operaciones que para el ser humano son tediosas e incluso
inabordables. Sin embargo, es difícilmente aplicable a problemas que
requieran la aplicación de funciones intelectuales más elevadas, por triviales
que nos puedan parecer. El software de inteligencia artificial trata de dar
3|Página
respuesta a estas deficiencias, basándose en el uso de lenguajes declarativos,
sistemas expertos y redes neuronales.

Como vemos, el software permite aplicaciones muy diversas, pero en todas


ellas podemos encontrar algo en común: el objetivo es que el software
desempeñe una determinada función, y además, debe hacerlo cumpliendo una
serie de requisitos. Esos pueden ser muy variados: corrección, fiabilidad,
respuesta en un tiempo determinado, facilidad de uso, bajo coste, etc., pero
siempre existen y no podemos olvidarnos de ellos a la hora de desarrollar el
software.

Planificación

El objetivo de la Planificación del proyecto de Software es proporcionar un


marco de trabajo que permita al gestor hacer estimaciones razonables de
recursos costos y planificación temporal

Definición de Ingeniería del Software.

El desarrollo de sistemas de software complejos no es una actividad trivial, que


pueda abordarse sin una preparación previa. El considerar que un proyecto de
desarrollo de software podía abordarse como cualquier otro ha llevado a una
serie de problemas que limitan nuestra capacidad de aprovechar los recursos
que el hardware pone a nuestra disposición.

Los problemas tradicionales en el desarrollo de software no van a desaparecer


de la noche a la mañana, pero identificarlos y conocer sus causas es el único
método que nos puede llevar hacia su solución.

No existe una fórmula mágica para solucionar estos problemas, pero


combinando métodos aplicables a cada una de las fases del desarrollo de
software, construyendo herramientas para automatizar estos métodos,
utilizando técnicas para garantizar la calidad de los productos desarrollados y
coordinando todas las personas involucradas en el desarrollo de un proyecto,
podremos avanzar mucho en la solución de estos problemas. De ello se
encarga la disciplina llamada Ingeniería del Software.

Una de las primeras definiciones que se dio de la ingeniería del software es la


siguiente:

El establecimiento y uso de principios de ingeniería robustos, orientados a


obtener software económico, que sea fiable y funcione de manera eficiente
sobre máquinas reales.

La ingeniería del software abarca un conjunto de tres elementos clave:


métodos, herramientas y procedimientos, que faciliten al gestor el control el

4|Página
proceso de desarrollo y suministren a los implementadores bases para
construir de forma productiva software de alta calidad.

Los métodos indican cómo construir técnicamente el software, y abarcan una


amplia serie de tareas que incluyen la planificación y estimación de proyectos,
el análisis de requisitos, el diseño de estructuras de datos, programas y
procedimientos, la codificación, las pruebas y el mantenimiento. Los métodos
introducen frecuentemente una notación específica para la tarea en cuestión y
una serie de criterios de calidad.

Las herramientas proporcionan un soporte automático o semiautomático para


utilizar los métodos. Existen herramientas automatizadas para cada una de las
fases vistas anteriormente, y sistemas que integran las herramientas de cada
fase de forma que sirven para todo el proceso de desarrollo. Estas
herramientas se denominan CASE (Computer Assisted Software Engineering).

Los procedimientos definen la secuencia en que se aplican los métodos, los


documentos que se requieren, los controles que permiten asegurar la calidad y
las directrices que permiten a los gestores evaluar los progresos.

 El desarrollo de software es un proceso complejo, no solo por cómo


se construye sino en primera instancia por cómo se elabora.

 Para esto participan varias etapas de avance desde el punto inicial


el cual es determinar que se necesita algo de lo que se parte para
superar dos etapas cruciales que determinan los primeros pasos de la
construcción. Claro está, sin implicar necesariamente elaborar líneas de
código pero sin dejar de tener en cuenta lo que efectivamente se tendrá
que construir y como construirlo.

 De lo anterior surgen dos preguntas: ¿Cuales son estas etapas?, y


¿cómo abordarlas?

 La respuesta a primera pregunta es sencilla, solo al mencionarlos,


son el análisis y el diseño, sin embargo la respuesta de la segunda no es
tan sencilla.

5|Página
II. Análisis
2.1 Conceptos y Análisis:

Es un conjunto o disposición de procedimientos o programas relacionados de


manera que juntos forman una sola unidad. Un conjunto de hechos, principios y
reglas clasificadas y dispuestas de manera ordenada mostrando un plan lógico
en la unión de las partes. Un método, plan o procedimiento de clasificación
para hacer algo. También es un conjunto o arreglo de elementos para realizar
un objetivo predefinido en el procesamiento de la Información. Esto se lleva a
cabo teniendo en cuenta ciertos principios:

• Debe presentarse y entenderse el dominio de la información de un


problema.
• Defina las funciones que debe realizar el Software.
• Represente el comportamiento del software a consecuencias de
acontecimientos externos.
• Divida en forma jerárquica los modelos que representan la información,
funciones y comportamiento.

El proceso debe partir desde la información esencial hasta el detalle de la


Implementación.

La función del Análisis puede ser dar soporte a las actividades de un negocio, o
desarrollar un producto que pueda venderse para generar beneficios. Para
conseguir este objetivo, un Sistema basado en computadoras hace uso de seis
(6) elementos fundamentales:

• Software, que son Programas de computadora, con estructuras de datos


y su documentación que hacen efectiva la logística metodología o
controles de requerimientos del Programa.
• Hardware, dispositivos electrónicos y electromecánicos, que
proporcionan capacidad de cálculos y funciones rápidas, exactas y
efectivas (Computadoras, Censores, maquinarias, bombas, lectores,
etc.), que proporcionan una función externa dentro de los Sistemas.
• Personal, son los operadores o usuarios directos de las herramientas del
Sistema.
• Base de Datos, una gran colección de informaciones organizadas y
enlazadas al Sistema a las que se accede por medio del Software.
• Documentación, Manuales, formularios, y otra información descriptiva
que detalla o da instrucciones sobre el empleo y operación del
Programa.

6|Página
• Procedimientos, o pasos que definen el uso específico de cada uno de
los elementos o componentes del Sistema y las reglas de su manejo y
mantenimiento.

Un Análisis de Sistema se lleva a cabo teniendo en cuenta los


siguientes objetivos en mente:

• Identifique las necesidades del Cliente.


• Evalúe que conceptos tiene el cliente del sistema para establecer su
viabilidad.
• Realice un Análisis Técnico y económico.
• Asigne funciones al Hardware, Software, personal, base de datos, y otros
elementos del Sistema.
• Establezca las restricciones de presupuestos y planificación temporal.
• Cree una definición del sistema que forme el fundamento de todo el
trabajo de Ingeniería.

Para lograr estos objetivos se requiere tener un gran conocimiento y


dominio del Hardware y el Software, así como de la Ingeniería humana
(Manejo y Administración de personal), y administración de base de
datos.

2.2 Objetivos del Análisis.

2.2.1 Identificación de Necesidades.

Es el primer paso del análisis del sistema, en este proceso en Analista se reúne
con el cliente y/o usuario (un representante institucional, departamental o
cliente particular), e identifican las metas globales, se analizan las perspectivas
del cliente, sus necesidades y requerimientos, sobre la planificación temporal y
presupuestal, líneas de mercadeo y otros puntos que puedan ayudar a la
identificación y desarrollo del proyecto.

Algunos autores suelen llamar a esta parte ¨ Análisis de Requisitos ¨ y lo


dividen en cinco partes:

• Reconocimiento del problema.

Reconocer los elementos básicos del problema tal y como los perciben
los usuarios finales.

• Evaluación y Síntesis.

Definir todos los objetos de datos observables externamente, evaluar el


flujo y contenido de la información, definir y elaborar todas las funciones
del software, entender el comportamiento del software en el contexto de
acontecimientos que afectan al sistema.

• Modelado.
7|Página
Crear modelos del sistema con el fin de entender mejor el flujo de datos
y control, el tratamiento funcional y el comportamiento operativo y el
contenido de la información.

• Especificación.

Realizar la especificación formal del software, es decir, es una


descripción completa del comportamiento del sistema que se va a
desarrollar. Se describe todas las interacciones que tendrán los usuarios
con el software.

• Revisión

Un último chequeo general de todo el proceso.

Antes de su reunión con el analista, el cliente prepara un documento


conceptual del proyecto, aunque es recomendable que este se elabore durante
la comunicación Cliente – analista, ya que de hacerlo el cliente solo de todas
maneras tendría que ser modificado, durante la identificación de las
necesidades.

2.3 Requerimientos del Sistema

Los requerimientos de sistema que se definen en la etapa de análisis de un


proceso de Ingeniería de Software generalmente se clasifican como
requerimientos funcionales y requerimientos no funcionales.

Requerimientos Funcionales

Los requerimientos funcionales son los que se encargan de definir lo que la


herramienta de software debe hacer. Definen los alcances del sistema en
cuanto a las acciones que debe de realizar, y en cuanto a la transferencia de
datos entre todas las diferentes funciones del sistema

Requerimientos No Funcionales

Los requerimientos no funcionales son aquellos que definen lo que la


herramienta de software debe tener en cuanto a apariencia, sensación,
operabilidad, y mantenimiento

8|Página
III. Diseño
3.1. Conceptos y principios:

El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y


principios con el propósito de definir un dispositivo, un proceso o un
Sistema, con suficientes detalles como para permitir su interpretación y
realización física.

La etapa del Diseño del Sistema encierra cuatro etapas:

1. El diseño de los datos.

Trasforma el modelo de dominio de la información, creado durante


el análisis, en las estructuras de datos necesarios para implementar
el Software.

2. El Diseño Arquitectónico.

Define la relación entre cada uno de los elementos estructurales del


programa.

3. El Diseño de la Interfaz.

Describe como se comunica el Software consigo mismo, con los


sistemas que operan junto con el y con los operadores y usuarios
que lo emplean.

4. El Diseño de procedimientos.

Transforma elementos estructurales de la arquitectura del programa. La


importancia del Diseño del Software se puede definir en una sola
palabra Calidad, dentro del diseño es donde se fomenta la calidad del
Proyecto. El Diseño es la única manera de materializar con precisión los
requerimientos del cliente.

El Diseño del Software es un proceso y un modelado a la vez. El proceso


de Diseño es un conjunto de pasos repetitivos que permiten al diseñador
9|Página
describir todos los aspectos del Sistema a construir. A lo largo del diseño
se evalúa la calidad del desarrollo del proyecto con un conjunto de
revisiones técnicas:

El diseño debe implementar todos los requisitos explícitos contenidos en


el modelo de análisis y debe acumular todos los requisitos implícitos que
desea el cliente.

Debe ser una guía que puedan leer y entender los que construyan el
código y los que prueban y mantienen el Software.

El Diseño debe proporcionar una completa idea de lo que es el Software,


enfocando los dominios de datos, funcional y comportamiento desde el
punto de vista de la Implementación.

Para evaluar la calidad de una presentación del diseño, se deben


establecer criterios técnicos para un buen diseño como son:

• Un diseño debe presentar una organización jerárquica que haga un uso


inteligente del control entre los componentes del software.
• El diseño debe ser modular, es decir, se debe hacer una partición lógica
del Software en elementos que realicen funciones y subfunciones
especificas.
• Un diseño debe contener abstracciones de datos y procedimientos.
• Debe producir módulos que presenten características de funcionamiento
independiente.
• Debe conducir a interfaces que reduzcan la complejidad de las
conexiones entre los módulos y el entorno exterior.
• Debe producir un diseño usando un método que pudiera repetirse según
la información obtenida durante el análisis de requisitos de Software.

Estos criterios no se consiguen por casualidad. El proceso de Diseño del


Software exige buena calidad a través de la aplicación de principios
fundamentales de Diseño, Metodología sistemática y una revisión
exhaustiva.

Cuando se va a diseñar un Sistema de Computadoras se debe tener


presente que el proceso de un diseño incluye, concebir y planear algo en
la mente, así como hacer un dibujo o modelo o croquis.

3.2. Diseño de la Salida.

En este caso salida se refiere a los resultados e informaciones generadas


por el Sistema, Para la mayoría de los usuarios la salida es la única razón
para el desarrollo de un Sistema y la base de evaluación de su utilidad.
Sin embargo cuando se realiza un sistema, como analistas deben
realizar lo siguiente:
10 | P á g i n a
• Determine qué información presentar. Decidir si la información será
presentada en forma visual, verbal o impresora y seleccionar el medio
de salida.
• Disponga la presentación de la información en un formato aceptable.
• Decida como distribuir la salida entre los posibles destinatarios.

3.3. Diseño de Archivos.

Incluye decisiones con respecto a la naturaleza y contenido del propio


archivo, como si se fuera a emplear para guardar detalles de las
transacciones, datos históricos, o información de referencia. Entre las
decisiones que se toman durante el diseño de archivos, se encuentran
las siguientes:

• Los datos que deben incluirse en el formato de registros contenidos en


el archivo.
• La longitud de cada registro, con base en las características de los datos
que contenga.
• La secuencia a disposición de los registros dentro del archivo (La
estructura de almacenamiento que puede ser secuencial, indexada o
relativa).

No todos los sistemas requieren del diseño de todos los archivos, ya que
la mayoría de ellos pueden utilizar los del viejo Sistema y solo tenga que
enlazarse el nuevo Sistema al Archivo maestro donde se encuentran los
registros.

3.4. Diseño de Interacciones con la Base de Datos.

La mayoría de los sistemas de información ya sean implantado en


sistemas de cómputos grandes o pequeños, utilizan una base de datos
que pueden abarcar varias aplicaciones, por esta razón estos sistemas
utilizan u administrador de base de datos, en este caso el diseñador no
construye la base de datos sino que consulta a su administrador para
ponerse de acuerdo en el uso de esta en el sistema.

3.5 Herramientas para el Diseño de Sistemas.

Apoyan el proceso de formular las características que el sistema debe


tener para satisfacer los requerimientos detectados durante las
actividades del análisis:

3.5.1 Herramientas de especificación.

Apoyan el proceso de formular las características que debe tener una


aplicación, tales como entradas, Salidas, procesamiento y

11 | P á g i n a
especificaciones de control. Muchas incluyen herramientas para crear
especificaciones de datos.

3.5.2 Herramientas para presentación.

Se utilizan para describir la posición de datos, mensajes y encabezados


sobre las pantallas de las terminales, reportes y otros medios de entrada
y salida.

3.5.3 Herramientas para el desarrollo de Sistemas.

Estas herramientas nos ayudan como analistas a trasladar diseños en


aplicaciones funcionales.

3.5.4 Herramientas para Ingeniería de Software.

Apoyan el Proceso de formular diseños de Software, incluyendo


procedimientos y controles, así como la documentación correspondiente.

3.5.5 Generadores de códigos.

Producen el código fuente y las aplicaciones a partir de especificaciones


funcionales bien articuladas.

3.5.6 Herramientas para pruebas.

Apoyan la fase de la evaluación de un Sistema o de partes del mismo


contra las especificaciones. Incluyen facilidades para examinar la
correcta operación del Sistema así como el grado de perfección
alcanzado en comparación con las expectativas.

La revolución del procesamiento de datos de manera computarizada,


junto con las practicas de Diseño sofisticadas están cambiando de forma
dramática la manera en que se trasladan las especificaciones de Diseño
d Sistemas de Información funcionales.

12 | P á g i n a

You might also like