Capítulo 1 resumen de ingenieria software Pressman PDF

Title Capítulo 1 resumen de ingenieria software Pressman
Author David Vergara
Course Administración Y Organización De Proyectos De Software
Institution Universidad Autónoma del Estado de México
Pages 5
File Size 84.5 KB
File Type PDF
Total Downloads 77
Total Views 153

Summary

Es el resumen del capitulo 1 del libro de pressman, con tiene todos los apartados que se abordan en el primer capitulo, podrás encontrar todo lo que necesitas...


Description

Capítulo 1. El software y la ingeniería de software. Introducción del capitulo El software es el producto de una construcción de programadores profesionales quienes posteriormente le darán mantenimiento, sin importar el tamaño o la arquitectura siempre será así. A partir de este concepto surge otro nuevo, la “ingeniería del software”, cuyo objetivo es el de elaborar software de computo de alta calidad, para ello se utilizan procesos, prácticas y herramientas afines para lograrlo. De aquí surgen los ingenieros de software, quienes elaboran y dan mantenimiento al software. La ingeniería es importante debido a que afecta a todos los aspectos de nuestras vidas, en la actualidad se pueden apreciar esto en ramas totalmente diferentes sin relación en algunas veces, la ingeniería de software nos ha permitido construir sistemas complejos en tiempos razonables con una calidad excepcional. Para un ingeniero en software su producto final es el conjunto de programas y su contenido que constituyen al software de computadora, sin embargo, el producto final para el usuario final cambia al ser la información resultante del software que de algún modo hace mejor al mundo en el que vive. Actualmente hay software en todas partes, a medida que ha crecido la importancia del software, la comunidad de programadores ha buscado continuamente desarrollar tecnologías que hagan que sea más fácil, rápido y económico escribir programas de computadora de alta calidad. Sin embargo, aún no se ha desarrollado una tecnología de software que haga todo esto y hay pocas posibilidades de que aparezca en el futuro. La naturaleza del Software El autor mismo nos dice que el software tiene hoy un doble papel puesto que funge como producto al mismo tiempo es un medio para entregar un producto. En su forma de producto, proporciona poder de cómputo integrado en el hardware de cómputo o, más ampliamente, en una red de computadoras a las que se accede a través del hardware local. Ya sea que el software esté ubicado en un teléfono móvil o funcione dentro de una computadora central, es un transformador de información que crea, administra, adquiere, modifica, muestra o transmite información que puede ser tan simple como un bit o tan compleja como presentaciones multimedia generadas a partir de datos obtenidos de decenas de fuentes independientes. Como vehículo utilizado para distribuir el producto, el software actúa como base para controlar la computadora, para comunicar información y para crear y controlar otros programas. El software distribuye el producto más importante de nuestro tiempo: la información. Transformar la información personal para que pueda ser más útil en el contexto local, administrar la información comercial para mejorar la competitividad, proporcionar una vía para las redes de información global y proporcionar los medios para obtener información en todas sus formas. El papel de los programas informáticos ha cambiado drásticamente en el último medio siglo. Las notables mejoras en el rendimiento del hardware, los profundos cambios en la arquitectura de la computadora, los enormes aumentos en la memoria y la capacidad de almacenamiento, y una amplia gama de opciones exóticas de entrada y salida han llevado a sistemas basados en computadora más sofisticados y complejos. Cuando un sistema tiene éxito, su sofisticación y complejidad brindan resultados brillantes, pero también plantea grandes problemas para aquellos que tienen que construir sistemas complejos. Definición de software Siempre se nos presentan definiciones poco completas sobre el software como “Conjunto de instrucción que al ser ejecutadas proporcionan las características, funciones o desempeños buscados”.

En este sentido el libro nos proporciona un panorama más completo de lo que implica el software puesto que el software es un elemento de un sistema lógico y no de uno físico como el hardware, las características que difieren de estos dos son presentadas para brindar una definición más clara sobre el software. Primero el software se desarrolla o modifica con intelecto, es decir que no se manufactura en el mismo sentido clásico del hardware a pesar de que ambas comparten similitudes, en ambas se logra una alta calidad a partir de un buen diseño. Aunque existen algunas similitudes entre el desarrollo de software y la fabricación de hardware, las dos actividades son fundamentalmente diferentes. Ambos negocios dependen de las personas, pero la relación entre las personas dedicadas y el trabajo realizado es completamente diferente. Los costos de software se concentran en la ingeniería. Otra diferenciación entre el software y el hardware es que el software no se desgasta, debido a factores ambientales, temperaturas extremas, vibración, abuso de uso, suciedad el hardware resiente todos estos efectos lo que genera que comience a desgastarse. En contraparte, el software no resiente estos factores ambientales, es decir que no se desgasta, pero si se deteriora, un software sufrirá cambios durante su vida lo cual implica que durante la introducción de nuevas características se introduzcan nuevos errores lo cual significa que se esta deteriorando como consecuencia del cambio. La ultima diferenciación que nos brinda el autor es sobre la construcción de componentes, la cual se basa en componentes, mientras que la mayor parte del software se construya para un uso individualizado. Un componente de software debe diseñarse e implementarse de modo que pueda reutilizarse en muchos programas diferentes. Los componentes reutilizables modernos incorporan tanto los datos como los procesos que se les aplican, lo que permite al ingeniero de software crear nuevas aplicaciones a partir de piezas reutilizables. Por ejemplo, las interfaces de usuario interactivas existentes están construidas con componentes reutilizables que permiten la creación de ventanas gráficas, menús desplegables y una amplia variedad de mecanismos de interacción. Dominios de aplicación de software Se nos describen a sietes grandes categorías del software que realmente representan un gran reto para los ingenieros del software. 1. Software del sistema: un conjunto de programas escritos para operar otros programas. Algunos sistemas de software procesan estructuras de información complejas pero deterministas. Otras aplicaciones de sistemas procesan principalmente datos imprecisos. En cualquier caso, el campo del software de sistema se caracteriza por: amplia interacción con el hardware de la computadora, uso intensivo de múltiples usuarios, operación concurrente que requiere secuenciación, recursos compartidos y control de proceso sofisticado, datos complejos y muchas interfaces externas. 2. Software de aplicación: programas independientes que satisfacen necesidades comerciales específicas. Las aplicaciones en este dominio procesan datos comerciales o técnicos de una manera que facilita las operaciones comerciales o las decisiones administrativas o técnicas. Además de las aplicaciones de procesamiento de datos tradicionales, el software de aplicación se utiliza para administrar funciones comerciales en tiempo real. 3. Software de ingeniería y ciencia: Caracterizado por algoritmos de "alimentación de números". Las aplicaciones van desde la astronomía hasta la vulcanología, el análisis de la tensión de los automóviles, la dinámica orbital del transbordador espacial y la biología molecular hasta la fabricación automatizada. Sin embargo, las aplicaciones

4.

5.

6. 7.

modernas en ingeniería y ciencia están abandonando los algoritmos numéricos tradicionales. Software integrado: Ubicado dentro del producto o sistema y utilizado para implementar y controlar características y funciones para el usuario final y el propio sistema. El software a bordo realiza funciones limitadas y específicas o proporciona una capacidad significativa para operar y controlar las funciones digitales a bordo, como la gestión de combustible, desde el tablero. Software de línea de productos: es diseñado para proporcionar una capacidad específica para uso de muchos consumidores diferentes. El software de línea de productos se centra en algún mercado limitado y particular (por ejemplo, control del inventario de productos) o se dirige a mercados masivo. Software de la línea de productos está diseñado para proporcionar una capacidad específica para el uso de muchos consumidores diferentes. Software de inteligencia artificial: utiliza algoritmos no numéricos para resolver problemas complejos que no son fáciles de tratar computacionalmente o con análisis directo.

Software heredado Un sistema heredado es un sistema informático que está desactualizado pero que los usuarios aún usan y no se desea o no se puede reemplazar o actualizar fácilmente. Desafortunadamente con esto se acarrea una característica llamada “mala calidad”, no siempre estará presente, pero es importante saberlo. La naturaleza única de las webapps En los primeros días de la World Wide Web, los sitios web contenían poco más que una serie de archivos de hipertexto vinculados que presentaban información en forma de texto y gráficos limitados. Con el tiempo, el auge de HTML a través de herramientas de desarrollo ha permitido a los ingenieros web proporcionar potencia informática y contenido informativo. Nacieron los sistemas y aplicaciones web. Hoy en día, las aplicaciones web se han convertido en herramientas informáticas complejas que no solo brindan funcionalidad aislada al usuario final, sino que también se integran con bases de datos empresariales y aplicaciones de línea de negocios. El autor nos presenta que las webapps contienen generalmente atributos lo cuales son: 1. Uso intensivo de redes: Una aplicación web reside en una red y debe satisfacer las necesidades de una comunidad diversa de clientes. La red permite acceso y comunicación a nivel mundial o tiene acceso y comunicación limitados. 2. Concurrencia: Muchos usuarios pueden acceder al mismo tiempo. 3. Rendimiento: Si un usuario de la webapp debe esperar demasiado él mismo decidirá irse a otro sitio. 4. Disponibilidad: No siempre se brindará una disponibilidad al 100% pero es importante tenerlo en cuenta. 5. Orientadas a los datos: La función principal de muchas aplicaciones web es el uso de hipermedia para presentar contenido en forma de texto, gráficos, audio y video al usuario final. Además, las aplicaciones web se utilizan comúnmente para acceder a información que existe en bases de datos que no forman parte del entorno web. 6. Contenido sensible: La calidad y naturaleza estética del contenido constituye un rasgo importante de la calidad de una webapp. 7. Evolución continua: A diferencia del software de aplicación convencional que evoluciona a lo largo de una serie de etapas planeadas y separadas cronológicamente,

las aplicaciones web evolucionan en forma continua. No es raro que ciertas webapp (específicamente su contenido) se actualicen minuto a minuto o que su contenido se calcule en cada solicitud. 8. Inmediatez: Aunque la inmediatez necesidad apremiante de que el software llegue con rapidez al mercado es una característica en muchos dominios de aplicación, es frecuente que las webapps tengan plazos de algunos días o semanas para llegar al mercado. 9. Seguridad: Debido a que las webapps se encuentran disponibles con el acceso a una red, es difícil o imposible limitar la población de usuarios finales que pueden acceder a la aplicación. Con el fin de proteger el contenido sensible y brindar modos seguros de transmisión de los datos, deben implementarse medidas estrictas de seguridad a través de la infraestructura de apoyo de una webapp y dentro de la aplicación misma. 10. Estética: Parte innegable del atractivo de una webapp es su apariencia y percepción. Cuando se ha diseñado una aplicación para comercializar o vender productos o ideas, la estética tiene tanto que ver con el éxito como el diseño técnico. Ingeniería de software El software se ha arraigado profundamente en casi todos los aspectos de nuestras vidas y, como resultado, la cantidad de personas interesadas ha crecido significativamente. en las características y funcionalidades proporcionadas por una determinada aplicación. Cuando se va a instalar una nueva aplicación o sistema embebido, es necesario escuchar muchas opiniones. Se concluyó que se debe hacer un esfuerzo concertado para comprender el problema antes de desarrollar una aplicación de software. Los requisitos de tecnología de la información exigidos por individuos, empresas y gobiernos se vuelven más complejos cada año que pasa. Hoy en día, grandes grupos de personas crean programas de computadora que antes eran escritos por una sola persona. Las personas, las empresas y los gobiernos confían cada vez más en el software para tomar decisiones estratégicas y tácticas, así como para las operaciones y los controles diarios. Se concluye que el software debe ser de alta calidad. • A medida que aumenta el valor percibido de una aplicación en particular, también aumenta la probabilidad de la base de usuarios y la vida útil de esa aplicación. La práctica de la ingeniería de software Se nos presenta a un libro que fue redactado aun antes de la existencia de las computadoras, este libro se llama “How to solve it” y justamente nos presenta la esencia de la ingeniería de software que el autor nos define de la siguiente forma. 1. 2. 3. 4.

Entender el problema (comunicación y análisis). Planear la solución (modelado y diseño del software). Ejecutar el plan (generación del código). Examinar la exactitud del resultado (probar y asegurar la calidad).

Principios generales Primer principio – La razón de que exista todo: Debemos tener siempre en mente que el software siempre existirá para dar valor a los usuarios, esto quiere decir que todas las decisiones deben tomarse en cuenta con eso en mente. Si no agrega valor real al usuario entonces la respuesta siempre será no. Segundo principio – MSE (Mantenlo sencillo estúpido…): Nos dice que el proceso de diseño de un software es un proceso caprichoso y por ello siempre debemos considerar

siempre realizar un diseño simple en la medida de lo que sea posible. Considerar esto siempre nos facilitara a un sistema que sea comprendido y más susceptible a recibir mantenimiento. Tercer principio – Mantener la visión: Una visión clara siempre será esencial para el éxito de un proyecto de software, si no somos capaces de mantener la integridad de nuestro concepto entonces se convertirá en una urdimbre de diseños incompatibles que son unidos por un tornillo equivocado. Cuarto principio – Otros consumirán lo que usted produce: De algún modo u otro alguien más usara, mantendrá, documentara o de alguna forma dependerá de su capacidad para entender a un sistema. Hay que pensar en aquellos quienes darán mantenimiento, en fin, facilitar el trabajo de los demás agrega valor a un sistema. Quinto principio – Abrase al futuro: Mientras mas larga sea la vida útil de un software entonces más valor tendrá, principalmente porque vivimos en un ambiente donde las especificaciones cambian de un momento a otro y las plataformas de hardware quedan obsoletas en poco tiempo. Sexto principio – Planee por anticipado la reutilizacion: Como ya se sabe, la reutilización ahorra tiempo y esfuerzo, hay que tener en mente eso al momento de desarrollar un software, lograr un alto nivel de reutilización se puede dar tanto en diseños como en código y hay que reflexionar y planear este proceso. Séptimo principio – ¡Piense!: Emprender y pensar todo con claridad antes de emprender la acción casi siempre producirá mejores resultados. Incluso al pensar en algo y hacerlo mal sirve, ya que se convierte en valiosa experiencia....


Similar Free PDFs