Clase 1 Origen de la IS y calidad PDF

Summary

This document provides an introduction to Software Engineering, covering key concepts like the definition of software and software engineering, explanations on the different types of software, and challenges involved in software development. It also touches upon the history and importance of software engineering.

Full Transcript

Introducción a la Ingeniería del Software Lección 1 ¿Qué es Ingeniería del software? ¿Qué es Ingeniería Software? El termino Ingenieria de software es el producto de dos conceptos: software e ingeniería. Software es una colección de programas...

Introducción a la Ingeniería del Software Lección 1 ¿Qué es Ingeniería del software? ¿Qué es Ingeniería Software? El termino Ingenieria de software es el producto de dos conceptos: software e ingeniería. Software es una colección de programas integrados Ingeniería es la aplicación de conocimiento científico y práctico para inventar, diseñar. Construir, mantener y mejorar productos, procesos, servicios, ….. Definiciones Software: programa que tenemos instalados en nuestros artefactos (desktop, móviles) o que usamos vía web. Y que será puesto al dia de manera continua hasta su retirada En adelante (Sw = software) ¿Qué es un producto software? Un conjunto de elementos u objetos. Incluye cosas como: Múltiples programas separados Los archivos de configuración que se utilizan para establecer estos programas La documentación del sistema que describe la estructura del sistema Documentación de usuario y desarrolladores que explica cómo utilizar el sistema Los datos para el sistema Sitios Web para los usuarios descargar información más reciente del producto Servidor web Software Código Fuente Código Ejecutable Documentación “.java” “.class” Técnica No técnica Software vs. Hardware No se puede tocar o sentir Software es desarrollado, no fabricado Software no se desgasta Software es complejo Software es un diferenciador Software evoluciona puede envejecer Definición de Ingeniería de Software La ingeniería de software trata del establecimiento de principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972) Ingeniería del Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de ordenador y la documentación necesaria para desarrollar, operar y mantenerlos (Boehm, 1976) Definición de Ingeniería de Software Una disciplina de ingeniería que trata con todos los aspectos de la producción software (Sommerville) La IEEE define “software engineering” como: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in the above statement ¿Qué estudia la Ingeniería de software? Productos producidos Los productos finales son componentes de software. Pueden ser componentes totalmente ejecutables, programas, módulos, sistemas, o simplemente métodos Estados intermedios (productos intermedios) entre la especificación de lo que necesita el usuario hasta el software entregado Procesos usados para producir esos productos (p.ej. actividades, equipos, gestión,…). Origen de la ingeniería Origen de la Ingeniería de Software Durante los primeros años la programación era un “arte” Toda programación se realizaba a medida, no existían sistemas operativos, ni bases de datos, …. A partir de la mitad de la década de 1960 se estableció el software como producto Origen de la Ingeniería de Software El origen del término se estableció en reuniones de la OTAN entre 1967 y1968 Peter Naur, 1968 http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/index.html Origen de la Ingeniería de Software Problemas mencionados en la reunión de la OTAN Baja fiabilidad de los sistemas software Dificultades de cumplir calendarios y especificaciones La educación de los ingenieros de software ¿Por qué surge la Ingeniería del Software? Años 60-70 se desarrollaba software sin tener control de calidad Finalmente los compradores decidieron que había que hacer algo para alcanzar más calidad Es lo que denominamos “crisis del software” ¿Por qué surge la Ingeniería del Software? Establecer conocimiento científico sobre desarrollo software. Comprender y organizar la construcción de sistemas software. Poner de relieve la importancia del diseño sistemático del software. Amateur vs. Profesional Desarrollo Amateur vs. Desarrollo Profesional Estudiante ▪ Industria El desarrollador es el ▪ Otros van a ser los usuarios usuario ▪ Se busca robustez Se centra en el caso ▪ Los errores no se toleran típico la mayor parte ▪ IU es una cuestión muy del tiempo importante Los errores se ▪ Se necesita toleran documentación tanto para Interfaz de usuario no el usuario como para la organización y el proyecto es crítico Sin documentación Desarrollo Amateur vs. Desarrollo Profesional ▪ Industria Estudiante ▪ Soporta funciones de la El SW no es de uso operativa del negocio crítico básicas e importantes La fiabilidad, robustez ▪ La fiabilidad, robustez no son importantes son importantes ▪ La inversión es fuerte No hay inversión ▪ La portabilidad es una La portabilidad no cuestión clave importa Desarrollo Amateur Los programas de los estudiantes NO SON software industrial La diferencia clave es la calidad La alta calidad requiera pruebas rigurosas, que consumirán el 30-50% del esfuerzo, para conseguir fiabilidad, portabilidad, etc Requiere que el desarrollo se divida en etapas para que se puedan detectar los errores Un buen interfaz de usuario, tolerancia a fallos, seguir estándares, El tamaño del software industrial es mucho mayor ¿Qué hace el ingeniero del software? Los ingenieros de software producen proyectos de software de alta calidad de acuerdo a unos costes y una planificación Por tanto el ingeniero software sólo programa….. Definitivamente NO. Se distingue y diferencia por cuestiones como el diseño, gestión de proyectos, habilidades no técnicas Principal handicap: los métodos llevan tiempo aprenderlos y practicarlos pero ayudan toda la vida ¿Qué es un ingeniero del software? Es alguien que sabe cómo hacer un trabajo de calidad, de forma consistente y predecible Usando métodos y tecnología probada Si queréis ser llamados ingenieros, debeis ser capaces de producir software de calidad en el calendario estimado y con el presupuesto asignado De modo que se deben de adquirir tanto habilidades técnicas como de gestión que os permitan salir airosos del reto de construir software fiable. ¿Porqué se necesita la ingeniería? La ingeniería del software es necesaria debido a las siguientes razones: Para manejar software de gran escala Para conseguir escalabilidad Gestión del coste Para manejar la naturaleza dinamica del software Para mejor calidad y seguridad del software ¿Qué es un buen Software? Calidad La calidad del software Para ser utilizado, el software debe Instalarse rápidamente y de manera fácil Funcionar de manera consistente Operar de manera apropiada en casos normales y anormales No realizar cosas destructivas ni inesperadas Estar principalmente libre de defectos Tipos de calidad Externa, la percibida por el cliente, usuario Interfaz de usuario Defectos Interna, la que no ve el cliente ni usuario Organización interna, arquitectura ¿Cuales son los atributos de un buen software? El software debe ofrecer la funcionalidad y el rendimiento necesarios para el usuario y debe ser mantenible, confiable y aceptable. Mantenibilidad El software debe evolucionar para satisfacer las necesidades cambiantes; Confianza El software debe ser digno de confianza Eficiencia El software no debe hacer despilfarro de los recursos del sistema Aceptabilidad El software debe aceptado por los usuarios para los que fue diseñado. Esto significa que debe ser comprensible, útil y compatible con otros sistemas. Calidad ▪ Estándar ISO 25000 más Estándar ISO 9126 amplio tiene seis atributos ▪ En producto software Funcionalidad tiene 8 atributos Confiabilidad ▪ Funcionalidad Eficiencia Usabilidad ▪ ▪ Compatibilidad Eficiencia ▪ Usabilidad Mantenibilidad ▪ Confiabilidad Portabilidad ▪ ▪ Seguridad Mantenibilidad ▪ Portabilidad ¿Cuáles son los atributos de un buen software? Desde la perspectiva del usuario Exactitud Confiabilidad Eficiencia Usabilidad Robustez Desde la perspectiva del desarrollador Mantenibilidad Consistencia Comprensibilidad Capaz de ser probado Compacidad (ocupe poco) Compatibilidad Ofuscación https://js1k.com/2018-coins/demos Estándar Calidad Software ¿Cuales son las retos de la ingeniería del software? La meta de la ingeniería del software es: Producir buen software, dentro del calendario y dentro del presupuesto Siendo ‘buen software’ Fiable/correcto (pocos errores) Eficiente (funcione rápido) Mantenible Buena usabilidad Buena seguridad Importante para el Test Qué es la IS Cuándo nace y por qué Desarrollo amateur vs. profesional Atributos de calidad del sw

Use Quizgecko on...
Browser
Browser