Aunque es en apariencia una cuestión académica, el diseño de lenguajes es de vital importancia para el ingeniero de software. Los lenguajes de programación son sus instrumentos básicos, y debe retroalimentar información sobre la confiabilidad y utilidad de los lenguajes de programación a los diseñadores de los lenguajes de programación a los diseñadores. El ingeniero de software debe tener conocimiento de los lenguajes de programación para poder tomar decisiones razonadas sobre el lenguaje más adecuado a sus aplicaciones particulares.
2. ¿Cómo debe ser el estilo de codificación?
El código debe ser comprensible (debe mezclarse la simplicidad con la claridad).
3. ¿Cuáles son los criterios que se aplican para la evaluación de lenguajes disponibles?
• Los requisitos del contratista del sistema.
• Disponibilidades de compiladores del lenguaje.
• Disponibilidad de instrumentos de software para apoyar el desarrollo de los programas.
• Tamaño del proceso.
• Conocimiento del personal de programación existente.
• Lenguaje de programación utilizado en proyectos previos.
• Necesidad de transportar el software.
• La aplicación que se está programando.
DOCUMENTACIÓN DE CODIGO
Autoevaluación
1. ¿Cómo debe ser la documentación del código?
La documentación comienza con la elección de los nombres de los identificadores (variables y etiquetas), continúa con la localización y composición de los comentarios y termina con la organización visual del programa.
2. ¿Qué es la documentación interna?
Los comentarios permiten al programador comunicarse con otros lectores de código fuente. Los comentarios pueden también resultar una clara guía de comprensión durante la última fase de la ingeniería de software –el mantenimiento -.
3. ¿Cuáles son las características que deben contener los comentarios descriptivos?
• Describir los bloques de código en vez de describir cada línea.
• Usar líneas en blanco o tabulaciones de forma que sean fácilmente distinguibles del código.
• Que sean correctos, un comentario incorrecto o que se pueda interpretar mal es peor que no ponerlo.
1.¿En que se basa el enfoque de diseño orientado a objetos?
Este enfoque de diseño orientado al objeto que se basa en una descripción del problema el lenguaje natural parece ser útil en algunas circunstancias. Sin embargo, no está claro como se puede aplicar al diseño de sistemas grandes y complejos. Cuando un sistema es complejo y con muchas funciones en relación reciproca, es en verdad muy difícil producir una descripción del lenguaje natural y de manera concisa y completa. Por lo tanto, es probable que se presenten errores, omisiones e inconsistencias en la descripción informal de un problema.
2.¿Cuáles son los tipos de datos abstractos?
Dada esta descripción, se extraen nombres comunes, con fechas, mensajes, documentos, diccionarios, etc., y se consideran tipos de datos abstractos.
3.En que se basa el diseño orientado a objeto
El diseño orientado a objetos se basa en la idea de utilizar ocultamiento de información como principal criterio de descomposición y en la noción de los tipos de datos abstractos. Esta metodología ha sido adoptada de manera entusiasta de algunos desarrolladores y educadores. Abbot ha llegado a decir que "los programas bien escritos en Ada suelen ser orientados al objeto", no está bien escrito. Tales generalizaciones sin comprobar no son de ayuda, y es poco probable que haya alguna metodología de diseño que sea superior a todas las circunstancias.
DISEÑO DE LA SALIDA
Autoevaluación
1.¿Cuál es el diseño de salida?
Diseñar la salida para que sirva al propósito deseado.
Diseñar la salida para que se ajuste al usuario.
Entregar la cantidad adecuada de salida.
Asegurarse de que la salida se encuentra donde se necesita.
Entregar la salida a tiempo.
Seleccionar el método de salida adecuado.
2.¿Cómo seleccionar la tecnología de salida?
El producir diferentes tipos de salida requiere el uso de diferentes tecnologías para la salida de la computadora impresa. Las opciones incluyen impresoras de impacto o no. Para la salida en pantalla las opciones incluyen tubos de rayos catódicos conectados o aislados o pantallas de cristal líquido. La salida de audio puede ser amplificada y emitida por un altavoz o escuchada por medio de bocinas pequeñas en una PC. Las microformas de salida son creadas por cámaras especialmente equipadas y películas en microficha o microfilm.
3.¿Cómo debe ser la relación del contenido de la salida con el método de salida?
El contenido de la salida de los sistemas de información debe considerarse interrelacionado con el método de salida. Cada vez que se diseña una salida, es necesario pensar sobre cómo la función influencia la forma y cómo el propósito influencia la salida que se escoge. Se debe pensar en forma general sobre la salida, para que en cualquier información que salga del sistema de cómputo y que sea útil de alguna forma a las gentes, pueda ser considerada la salida.
4.¿Cuáles son los factores a considerar cuando se selecciona la tecnología de salida?
¿Quién usara la salida? Descubrir quien usara la salida es importante, debido a que los requerimientos de trabajo ayudan a indicar cuál es el medio de salida es adecuado. También se aplican diferentes estándares, dependiendo si el receptor de la salida es interno (clientes, vendedores, accionistas y agencias reglamentadoras) requerirán diferente salida que los usuarios internos del negocio.
DISEÑO DE ENTRADA
Autoevaluación
1.¿Cuál es el diseño de entrada?
La calidad de la entrada de un sistema determina la calidad de la salida del sistema.
Es vital que las formas y pantallas de entrada sean diseñadas con esta relación crítica en mente.
Al asistir en entrada bien diseñada, el analista de sistemas está reconociendo que la entrada pobre plantea preguntas sobre la confiabilidad del sistema completo.
2.¿Cuales son algunas desventajas del uso de formas especiales?
3.¿Cómo debe ser el diseño de formas atractivas?
Para ser atractivas, las formas deben solicitar la información en el orden esperado, las convenciones indican que se pida el nombre, la calle, la ciudad, estado y el código postal y el país, en caso necesario.
4.¿Cuáles son las secciones de una pantalla?
·La parte superior de la pantalla tiene una sección de encabezado, parte de la cual está escrita en el software para describir al usuario en que parte del paquete se encuentra.
·La sección media es llamada el cuerpo de la pantalla. Este puede ser usado para la captura de datos, y es organizado de izquierda a derecha y de arriba hacia abajo.
·La tercera sección de la pantalla es la sección de comentarios e instrucciones: esta sección puede desplegar un menú corto de comandos que recuerden al usuario los puntos básicos, tales como cambiar pantallas o funciones, guardar el archivo o terminar la captura. La inclusión de estos puntos básicos puede hacer que los usuarios sin experiencia se encuentren mucho más seguros acerca de su habilidad para operar la computadora sin causar un error fatal.
DISEÑO DE BASES DE DATOS
Autoevaluación
1.¿Cuál es el diseño de base de datos?
Primero, los datos tienen que estar disponibles cuando el usuario quiere usarlos. Segundo, los datos deben ser precisos y consistentes (deben poseer integridad). Aparte de esto, los objetivos del diseño de base de datos incluyen el almacenamiento eficiente de los datos, así como su eficiente actualización y recuperación. Por último, es necesario que la recuperación de información tenga un propósito. La información obtenida de los datos almacenados debe estar en un formato útil para la administración, planeación, control o toma de decisiones.
2.¿Qué son las bases de datos?
Es una fuente central de datos que está pensada para que sea compartida por muchos usuarios con una diversidad de aplicaciones.
3.¿cuáles son los tipos de archivos?
Los archivos maestros y los archivos de tablas son usados para guardar datos durante un periodo largo. Los archivos temporales son llamados, por lo general, archivos de transacciones, archivos de trabajo o archivos de reporte.
4.¿En qué consiste la organización secuencial?
Cuando los registros están físicamente en orden en un archivo se dice que el archivo es un archivo secuencial. Cuando es actualizado un archivo secuencial es necesario recorrer todo el archivo. Debido a que los registros no pueden ser insertados en la parte media del archivo, el archivo secuencial es por lo general, copiado durante el proceso de actualización.
5.¿Cuáles son las listas encadenadas?
Cuando se guardan archivos en dispositivos de acceso directo, tales como disco o tambor, las opciones se expanden. Los registros pueden ser ordenados en forma lógica, en vez de física, usando listas encadenadas. Las listas encadenadas se logran usando un juego de apuntadores para dirigirse al siguiente registro lógico que se encuentre ubicado en cualquier parte del archivo.
DISEÑO DE LA INTERFAZ HOMBRE-MAQUINA
Autoevaluación
1.¿Qué es el diseño de la interfaz hombre-máquina?
El diseño de la interfaz hombre-máquina es la función en donde se definen las tareas orientadas al hombre y a la maquina, requeridas para conseguir la función del sistema
2.¿Para qué sirven los modelos de diseño de interfaz?
Sirven para saber en qué aspectos se puede mejorar el diseño desde la perspectiva del usuario y el diseñador.
3.¿Cuáles son los 4 aspectos comunes del diseño que casi siempre emergen a medida que evoluciona el diseño de la interfaz del usuario?
El tiempo de respuesta del sistema, las facilidades de ayuda al usuario, la manipulación de la información de errores y el etiquetado de órdenes.
4.¿Cuál es el papel del diseñador de interfaces?
Conocer las necesidades del usuario y satisfacerlas.
Los requerimientos son la Pieza fundamental en un proyecto de desarrollo de software, es ellos se basan muchos participantes del proyecto para:
Planear el proyecto y los recursos que se usarán en él. Los lideres de proyecto usan los requerimientos como una base para la estimación del esfuerzo necesario en un proyecto.
Especificar el tipo de verificaciones que se habrán de realizar al sistema. Por ejemplo: cuando se esta tratando de alinearse a cierta norma oficial o estándar.
Planear la estrategia de prueba a la que habrá de ser sometido el sistema. Los requerimientos son la base sobre la cual se decide si un caso de prueba fue ejecutado exitosamente por el sistema o no.
Son el fundamento del ciclo de vida del proyecto. Los requerimientos documentados son la base para crear la documentación del sistema
De ahí su importancia y la importancia de que deban de ser definidos y manejados de la forma mas adecuada posible.
Desde los inicios de la informática se han estado utilizando distintas formas de representar los diseños de una manera más bien personal o con algún modelo gráfico, La falta de estandarización en la representación gráfica de un modelo impedía que los diseños gráficos realizados se pudieran compartir fácilmente entre distintos diseñadores, con este objetivo se creo el Lenguaje Unificado de Modelado (UML: Unified Modeling Language).
UML es el lenguaje de modelado de sistemas de software más conocido en la actualidad; es el estándar internacional aprobado por la OMG (Object Managment Group), consorcio creado en 1989 responsable de la creación, desarrollo y revisión de especificaciones para la industrial del software.
UML son un grupo de especificaciones de notación orientadas a Objeto, las cuales están compuesta por distintos diagramas, que representan las diferentes etapas del desarrollo de un proyecto de software. Este trabajo se centra en un Sistema de Control de Citas Médicas. Se han usados varios de los diagramas de UML, de modo que se muestre el uso de los mismos, enfocado desde una perspectiva práctica.
Un análisis es la distinción y la separación de las partes de un todo hasta llegar a conocer sus principios o elementos. También se trata de un examen que se hace de una obra, de un escrito o de cualquier realidad susceptible de estudio intelectual, y de un tratamiento psicoanalítico.
Por otra parte, un análisis puede ser un estudio de los límites, las características y las posibles soluciones de un problema al que se aplica un tratamiento por computadora.
Diseño
Del italianodisegno, la palabra diseño se refiere a la traza o delineación de un edificio o de una figura. Se trata, por ejemplo, de la concepción original de un objeto u obra destinados a la producción en serie. También puede referirse a un proyecto o plan, a la descripción verbal de algo, a la disposición de manchas, colores o dibujos que caracterizan a animales y plantas, y a la forma de los objetos.
El concepto de diseño suele utilizarse en el contexto de las artes, la ingeniería, la arquitectura y diversas disciplinas creativas. Así, el diseño es el proceso previo de configuración mental en la búsqueda de una solución. En otras palabras, el diseño consiste en una visión representada en forma gráfica de una obra futura.
De esta forma, el diseño implica plasmar el pensamiento a través de esbozos, dibujos, bocetos y esquemas trazados en cualquier soporte. El acto de diseñar puede ser considerado como creatividad (el acto de la creación), innovación (cuando el objeto no existe) o una modificación de algo ya existente (a través de la abstracción, la síntesis, la ordenación o la transformación).
Puede distinguirse entre el verbo diseñar, que se refiere al proceso de creación y desarrollo para producir un nuevo objeto para uso humano, y el sustantivo diseño, que nombra al plan final o a la proposición resultante del proceso de diseñar (que puede expresarse por medio de un dibujo, una maqueta o un plano, por ejemplo).
Los especialistas afirman que el acto de diseñar requiere de consideraciones funcionales y estéticas, que a su vez necesitan de investigación, análisis, modelado y adaptaciones hasta la producción definitiva del objeto.
Sistema
Un sistema es un conjunto de partes o elementos organizadas y relacionadas que interactúan entre sí para lograr un objetivo. Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen (salida) información, energía o materia.
Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro más grande, por lo tanto un sistema puede estar formado por subsistemas y partes, y a la vez puede ser parte de un supersistema.
Los sistemas tienen límites o fronteras, que los diferencian del ambiente. Ese límite puede ser físico (el gabinete de una computadora) o conceptual. Si hay algún intercambio entre el sistema y el ambiente a través de ese límite, el sistema es abierto, de lo contrario, el sistema es cerrado.
El ambiente es el medio en externo que envuelve física o conceptualmente a un sistema. El sistema tiene interacción con el ambiente, del cual recibe entradas y al cual se le devuelven salidas. El ambiente también puede ser una amenaza para el sistema.
Un grupo de elementos no constituye un sistema si no hay una relación e interacción, que de la idea de un "todo" con un propósito (ver holismo y sinergía).
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:
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.
El Diseño Arquitectónico
Define la relación entre cada uno de los elementos estructurales del programa.
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.
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 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.
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.
Procedimientos, o pasos que definen el uso especifico 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.
El analista de sistemas generalmente valora la manera que funcionan los negocios examinando la entrada, el procesamiento de datos y la salida de información con el propósito de mejorar los procesos organizacionales.
Muchas mejoras involucran mejor apoyo para las funciones de los negocios por medio del uso de sistemas de información computarizados. Esta definición enfatiza un enfoque sistemático y metódico para analizar, y posiblemente mejorar, lo que esta sucediendo con el contexto especifico creado por un negocio.
Se requiere que los analistas de sistemas desempeñen muchos paquetes en el curso de su trabajo. Algunos de estos papeles son:
Consultores externos para negocios.
Experto de soporte dentro de un negocio.
Agente de cambio en situaciones tanto internas como externas.
Los analistas poseen un amplio rango de habilidades. La primera y principal es que le analista soluciona problemas, le gusta el reto de analizar un problema y encontrar una respuesta funcional. Los analistas de sistemas requieren habilidades de comunicación que les permitan relacionarse en forma significativa con muchos tipos de gente diariamente, así como habilidades de computación. Para su éxito es necesario que se involucre el usuario final.
Los analistas proceden sistemáticamente. El marco de referencia para su enfoque sistemático es proporcionado por lo que es llamado el ciclo de vida del desarrollo de sistemas (SDLC). Este puede ser dividido en siete fases secuenciales, aunque en realidad las fases están interrelacionadas y frecuentemente se llevan a cabo simultáneamente. Las siete fases son:
Identificación de problemas.
Oportunidades y objetivos
Determinación de los requerimientos de información
Análisis de las necesidades de sistemas
Diseño del sistema recomendado
Desarrollo y documentación del software
Prueba y mantenimiento del sistema e implementación del mismo.
Los paquetes de software basados en microcomputadora automatizado para el análisis y diseño de sistemas son llamados herramientas CASE. Las cuatro razones para la adopción de herramientas CASE son:
El incremento de la productividad del analista
La mejora de la comunicación entre analistas y usuarios
La integración de actividades del ciclo de vida y el análisis.
La valoración del impacto de los cambios por mantenimiento.
Los analistas también usan enfoque CARE (Reingeniería Asistida por Computadora) para hacer ingeniería inversa y reingeniería de software para extender la vida del software legado.
Un enfoque nuevo y diferente al análisis y diseño de sistemas es el análisis y diseño de sistemas orientados a objetos (O-O). Estas técnicas están basadas en conceptos de programación orientada a objetos en los cuales los objetos, que son creados incluyen no solamente código acerca de los datos sino también instrucciones acerca de las operaciones que se pueden realizar con ellos.
Cuando la situación organizacional lo demanda, el analista puede apartarse del SDLC para intentar una metodología alterna, tal como la elaboración de prototipos, ETHICS, el enfoque de campeón de proyecto, la metodología Soft Systems o Multiview.
El objetivo global de la ingeniería de la información es aplicar tecnología de información de la mejor manera que satisfaga las necesidades generales del negocio. Para conseguirlo la ingeniería de la información debe empezar por analizar los objetivos y metas del negocio, después debe definir las necesidades de la información de cada área de negocio y del negocio en su totalidad. Solo después de hacer esto la ingeniería de la información hace la transición al dominio más técnico de la ingeniería de software; el proceso, donde los sistemas de información, aplicaciones y programas son analizados, diseñados y construidos.