View
34
Download
0
Embed Size (px)
Citation preview
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
Ao de la Diversificacin Productiva y del Fortalecimiento De la Educacin
DATOS PERSONALES
INTEGRANTES : 1.- Castillo Huancas Jess Salatiel
2.- Cunaique Aguirre Juan Alexander
3.- Herrera Cuniarache Marvin
4.- Urbina Solano Brayan
5.- Ponce Gutirrez Armando
CURSO : Ingeniera de Software I
DOCENTE : Ing. Vctor Ancajima Mian
CICLO : V
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
DEDICATORIA: Este trabajo se lo queremos dedicar a Dios, al creador de todas las cosas, quien nos da fuerzas para seguir adelante en nuestra carrera profesional. A mi profesor, quien dedica sus conocimientos para obtener un buen aprendizaje y nos orienta para que se lleve a cabo este presente trabajo. AGRADECIMIENTOS: A nuestros padres que gracias a su esfuerzo, hemos podido aprender muchas cosas nuevas, que nos ayudaran a ser mejores buenos profesionales. A la Universidad catlica Los ngeles de Chimbote, que nos brinda la oportunidad de estudiar en sus aulas adquiriendo nuevos conocimientos de bien para el futuro. Un agradecimiento especial al ing. Vctor Ancajima Mian, por la colaboracin, paciencia, apoyo y sobre todo por esa gran enseanza que nos brinda da a da.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
SUMARIO: Dedicatoria... Agradecimiento.............................................. Captulo I.. MARCO DE REFERNCIA.... 1.1 Introduccin: . 1.2 Formulacin del problema. 1.3 Objetivo
1.3.1Objetivos general....... 1.3.2Objetivos especficos....
1.4 Marco terico..... 1.6 Qu es un software de calidad?.......................................................................................................................... Captulo II..PROCESO DEL DESARROLLO DEL SOFTWAWE. 2.2 Etapas del proceso de desarrollo de software 2.2.1 Anlisis de requisitos..... 2.2.2 Principios de especificacin...... 2.2.3 Diseo y arquitectura.... 2.2.4 Programacin: ...... 2.2.5 Prueba: ...... 2.2.6 Documentacin..... 2.2.7 Mantenimiento: .... Captulo III... 3.3 Modelos del ciclo de vida: ... 3.3.1 Modelo en Cascada... 3.3.2 Modelo de desarrollo Evolutivo... 3.3.3 Modelo de Prototipado de Requerimientos. ....... 3.3.4 Modelo de desarrollo basado en reutilizacin: . 3.3.5 Modelo de desarrollo en espiral: ... 3.3.6 Modelo de desarrollo incremental. Conclusiones..................................... Bibliografas.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
La Metodologa de Desarrollo del Software
CAPITULO I:
1.1- Introduccin:
Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su empresa y desea que sea solucionado, para esto existe el analista de sistema quien es el encargado de hacerle llegar todos los requerimientos y necesidades que tiene el cliente a los programadores quienes son las personas encargadas de realizar lo que es la codificacin y diseo del sistema para despus probarlo y lo instalan al cliente.
Es as como intervienen varias personas ya que una sola persona no podra determinar todo lo necesario lo ms seguro que le haga falta algn requerimiento o alguna parte del nuevo sistema y entre ms estn involucradas mejor para cubrir con todos los requerimientos del sistema.
1.2- Formulacin del problema:
Cul es la utilidad de la medida del software?
1.3- Objetivos:
3.1. Objetivo general:
En la construccin y desarrollo de proyectos se aplican mtodos y tcnicas para resolver los problemas, la informtica aporta herramientas y procedimientos sobre los que se apoya la ingeniera de software.
3.2. Objetivos especficos:
* Disear aplicaciones informticas que se ajusten a las necesidades de las organizaciones.
* Mejorar la calidad de los productos de software.
* Aumentar la productividad y trabajo de los ingenieros del software.
* Facilitar el control del proceso de desarrollo de software.
* Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.
* Definir una disciplina que garantice la produccin y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.
* Organizar la realizacin de pruebas que verifiquen el correcto funcionamiento de los programas y que se ajustan a los requisitos de anlisis y diseo.
* Organizar y supervisar el trabajo de su equipo de los tcnicos de mantenimiento y los ingenieros de sistemas y redes.
* Que sea accesible a travs de Internet.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
1.4- Marco Terico:
La ingeniera de Software es una de las ramas de las ciencias de la computacin, la cual nos brinda conocimientos, tcnicas y metodologas para desarrollar software de calidad brindndonos un enfoque sistemtico, disciplinado y cuantificable.
El proceso de desarrollo de software por lo tanto es el conjunto de actividades necesarias para transformar los requisitos del cliente en un sistema de software
1.5- Qu es software de calidad?:
Los requisitos del software constituyen la calidad del mismo. Debemos estar claros que el software no se certifica con calidad, no se puede medir la calidad del software de forma correcta debido a su naturaleza lo que se certifica son los procesos de desarrollo, la correcta consecucin de los mismos.
El usuario final mide la calidad del software segn los resultados que este le. de quien la juzgue. Existen tambin formas ms objetivas de evaluar el software, estas son: mtricas, estadsticas, etc.
CAPITULO II: PROCESO DEL DESARROLLO DEL SOFTWARE. 2.1 Etapas del proceso de desarrollo de software: Estas etapas son un reflejo del proceso que se sigue a la hora de resolver cualquier tipo de problema.
Ya en 1945, mucho antes de que existiese la Ingeniera del Software, el matemtico George Polya
describi este proceso en su libro How to solve it (el primero que describe la utilizacin de tcnicas
heursticas en la resolucin de problemas). Bsicamente, resolver un problema requiere:
- Comprender el problema (anlisis)
- Plantear una posible solucin, considerando soluciones alternativas (diseo)
- Llevar a cabo la solucin planteada (implementacin)
- Comprobar que el resultado obtenido es correcto (pruebas)
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
2.1.1 Anlisis de requisitos: El anlisis global de los requisitos de una aplicacin es un proceso de conceptualizacin y
formulacin de los conceptos que involucra de forma concreta. Es una parte fundamental del
proceso de desarrollo de una aplicacin, la mayor parte de los defectos encontrados en el software
entregado se originan en la fase de anlisis de requisitos, y adems son los mas caros de reparar.
Siempre se ha discutido quin es el dueo de los requisitos: el cliente o el desarrollador. Para
gestionar esto, es habitual presentar el anlisis de requisitos en dos secciones:
Requisitos de cliente: documentan los deseos y necesidades de los clientes y se expresan en lenguaje claro para l.
.Requisitos detallados: Determina los requisitos de manera especfica y estructurada y estn destinadas especficamente hacia los desarrolladores.
Los objetivos de este tema son:
Distinguir entre requisitos de clientes y requisitos detallados. Disponer de recursos para formular de forma clara y sistemtica los requisitos del cliente
En ingeniera de sistemas existen dos tipos de requisitos.
Un requisito funcional:
Puede ser una descripcin de lo que un sistema debe hacer. Este tipo de requisito especifica algo
que el sistema entregado debe ser capaz de realizar.
Un requisito no funcional:
De rendimiento, de calidad, etc; especifica algo sobre el propio sistema, y cmo debe realizar
sus funciones. Algunos ejemplos de aspectos solicitables son la disponibilidad, el testeo, el
mantenimiento, la facilidad de uso, etc.
2.1.2 Principios de especificacin: Es la tarea de describir detalladamente el software a ser escrito, de una forma rigurosa. Se describe
el comportamiento esperado del software y su interaccin con los usuarios y/o otros sistemas.
La especificacin, independientemente del modo en que se realice, puede ser vista como un proceso
de representacin. Los requerimientos se representan de forma que conduzcan finalmente a una
correcta implementacin del software.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
Una buena especificacin debe procurar:
- Separar funcionalidad de implementacin. Una especificacin es una descripcin de lo que se
desea, en vez de cmo se realiza. Esto en la prctica puede llegar a no suceder del todo, sin embargo
es un buen lineamiento a seguir.
- Una especificacin debe abarcar el entorno en el que el sistema opera. Similarmente, el entorno en
el que opera el sistema y con el que interacta debe ser especificado.
- Debe ser modificable. Ninguna especificacin puede ser siempre totalmente completa. El entorno
en el que existe es demasiado complejo para ello. Una especificacin es un modelo, una abstraccin,
de alguna situacin real (o imaginada). Por tanto, ser incompleta. Adems, al ser formulada
existirn muchos niveles de detalle.
2.1.3 Diseo y arquitectura Esta etapa Consiste en el diseo de los componentes del sistema que dan respuesta a las
funcionalidades tambin conocidas como las entidades de negocio. Generalmente se realiza en base
a diagramas que permitan describir las interacciones entre las entidades y su secuenciado.
Mientras que los modelos utilizados en la etapa de anlisis representan los requisitos del usuario
desde distintos puntos de vista (el qu), los modelos que se utilizan en la fase de diseo representan
las caractersticas del sistema que nos permitirn implementarlo de forma efectiva (el cmo). Un
software bien diseado debe exhibir determinadas caractersticas. Su diseo debera ser modular en
vez de monoltico.
En la fase de diseo se han de estudiar posibles alternativas de implementacin para el sistema de
informacin que hemos de construir y se ha de decidir la estructura general que tendr el sistema (su
diseo arquitectnico).
El diseo de un sistema es complejo y el proceso de diseo ha de realizarse de forma iterativa. La
solucin inicial que propongamos probablemente no resulte la ms adecuada para nuestro sistema de
informacin, por lo que deberemos refinarla. Afortunadamente, tampoco es necesario que
empecemos desde cero. Existen autnticos catlogos de patrones de diseo que nos pueden servir
para aprender de los errores que otros han cometido sin que nosotros tengamos que repetirlos.
El diseo de un sistema de informacin tambin presenta distintas facetas:
- Por un lado, es necesario abordar el diseo de la base de datos, un tema que trataremos
detalladamente ms adelante.
- Por otro lado, tambin hay que disear las aplicaciones que permitirn al usuario utilizar el sistema
de informacin. Tendremos que disear la interfaz de usuario del sistema y los distintos
componentes en que se descomponen las aplicaciones. De esto ltimo hablaremos en las dos
secciones siguientes.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
2.1.4 Programacin: Es la implementacin de un lenguaje de programacin para crear las funciones definidas durante la
etapa de diseo.Se traduce el diseo a cdigo. Es la parte ms obvia del trabajo de ingeniera de
software y la primera en que se obtienen resultados tangibles. No necesariamente es la etapa ms larga ni la ms compleja aunque una especificacin o diseo incompletos/ambiguos pueden exigir
que, tareas propias de las etapas anteriores se tengan que realizarse en esta.
En esta etapa, a cada uno de los procesos definidos en la etapa de revisin de diseo lgico y diseo
fsico, se le realiza su codificacin en trminos del Cliente y Servidor.Para esta etapa se consideran
los siguientes hitos que corresponden a los pasos a seguir, pero no definen un proceso
necesariamente secuencial, ya que algunas de ellas deben ser construidas en forma paralela para
lograr el objetivo de comunicacin deseado entre el programa Cliente, y el programa Servidor.
Se debe considerar:
Programacin de la Base de Datos
Debemos mencionar la programacin de la base de datos como uno de los hitos ms importantes del desarrollo, es en el servidor, y en particular en la programacin de la
base de datos donde se concentra la inteligencia del sistema a desarrollar.
En resumen esta etapa incluye:
- La especificacin de tipos, campos, tablas, mdulos, valores por defecto, reglas de validacin y otros en el repositorio de la herramienta de desarrollo propuesta para el
desarrollo.
- La generacin de procedimientos que permiten cargar las tablas, triggers, y procedimientos de apoyo a la Base de Datos generada.
- La programacin de los servicios a construir y la prueba de cada uno de ellos en forma individual.
Programacin de las Aplicaciones Cliente.
En esta fase, nuevamente la herramienta de productividad juega un papel fundamental en mejorar los tiempos y la productividad de los desarrolladores, ya que al tener las
especificaciones claramente definidas en el repositorio de la herramienta, es posible
generar parte del cdigo del Form necesario para la interfaz cliente, dejando al
programador el complemento de esta programacin, y la preocupacin de entregar
una interfaz amigable al usuario.
Adems, esta etapa contempla el enlace con los servicios ya programados en el
servidor de datos, y la generacin de su correcto llamado utilizando los parmetros de
entrada y salida necesarios.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
Fases de la Programacin
Los programas que se escriben con instrucciones, a este proceso se pueden dividir en pasos:
1. Comprender el problema
2. Plantear la lgica
3. Codificar el programa
4. Traducir el programa a lenguaje mquina
5. Prueba del programa
6. Ejecucin del programa
2.1.5 Prueba: Consiste en comprobar que el software responda/realice correctamente las tareas indicadas en la
especificacin. Es una buena praxis realizar pruebas a distintos niveles (por ejemplo primero a nivel
unitario y despus de forma integrada de cada componente) y por equipos diferenciados del de
desarrollo (pruebas cruzadas entre los programadores o realizadas por un rea de test
independiente).
En esta etapa el errar es humano y la etapa de pruebas tiene como objetivo detectar los errores que
se hayan podido cometer en las etapas anteriores del proyecto (y, eventualmente, corregirlos). Lo
suyo, adems, es hacerlo antes de que el usuario final del sistema los tenga que sufrir. De hecho, una
prueba es un xito cuando se detecta un error (y no al revs, como nos gustara pensar).
La bsqueda de errores que se realiza en la etapa de pruebas puede adaptar distintas formas, en
funcin del contexto y de la fase del proyecto en la que nos encontremos:
- Las pruebas de unidad sirven para comprobar el correcto funcionamiento de un componente
concreto de nuestro sistema.
- Las pruebas de integracin son las que se realizan cuando vamos juntando los componentes que
conforman nuestro sistema.
- Sirven para detectar errores en sus interfaces. En algunas empresas, como Microsoft, se hace una
compilacin diaria utilizando los componentes del sistema tal como estn en ese momento (daily
build) y se somete al sistema a una serie de pruebas bsicas (la prueba de humo, smoke test) que
garanticen que el proyecto podr seguir avanzando al da.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
2.1.6 Documentacin: Realizacin del manual de usuario, y posiblemente un manual tcnico con el propsito de
mantenimiento futuro y ampliaciones al sistema. Las tareas de esta etapa se inician ya en el primera
fase pero slo finalizan una vez terminadas las pruebas.
En general se habla mucho de la documentacin, pero no se la hace, no se le asigna presupuesto, no
se la mantiene y casi nunca est al da en los proyectos de desarrollo de software. Lo importante es
la disponibilidad de la documentacin que se necesita en el momento en que se la necesita.
Muchas veces se hace porque hay que hacerla y se escribe, con pocas ganas, largos textos, a la vez
que se est convencido de estar haciendo un trabajo intil. A veces se peca por exceso y otras por
defecto. Ocurre mucho en la Web y con productos RAD. En ocasiones se olvida que el
mantenimiento tambin debe llegar a la documentacin.
La documentacin se suele clasificar en funcin de las personas o grupos a los cuales est dirigida:
Documentacin para los desarrolladores Documentacin para los usuarios Documentacin para los administradores o soporte tcnico.
La documentacin para desarrolladores es aqulla que se utiliza para el propio desarrollo del
producto y, sobre todo, para su mantenimiento futuro. Se documenta para comunicar estructura y
comportamiento del sistema o de sus partes, para visualizar y controlar la arquitectura del sistema,
para comprender mejor el mismo y para controlar el riesgo, entre otras cosas. Obviamente, cuanto
ms complejo es el sistema, ms importante es la documentacin. En este sentido, todas las fases de
un desarrollo deben documentarse: requerimientos, anlisis, diseo, programacin, pruebas, etc..
Una herramienta muy til en este sentido es una notacin estndar de modelado, de modo que
mediante ciertos diagramas se puedan comunicar ideas entre grupos de trabajo.
2.1.7Mantenimiento:
Mantenimiento del Software es la modificacin de un producto software despus de haber sido
entregado [a los usuarios o clientes] con el fin de corregir defectos, mejorar el rendimiento u
otros atributos, o adaptarlo a un cambio en el entorno.
En esta etapa se realizan un mantenimiento correctivo (resolver errores) y un mantenimiento
evolutivo (mejorar la funcionalidades y/o dar respuesta a nuevos requisitos).
Tambiem tenemos al Mantenimiento Adaptativo, Mantenimiento Perfectivo, Mantenimiento
Preventivo.
Mantenimiento Correctivo:
El mantenimiento correctivo tiene por objetivo localizar y eliminar los posibles defectos de los
programas. Un defecto en un sistema es una caracterstica del sistema con el potencial de
causar un fallo. Un fallo ocurre cuando el comportamiento de un sistema es diferente del
establecido en la especificacin.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
Entre otros, los fallos en el software pueden ser de:
Procesamiento, por ejemplo, salidas incorrectas de un programa.
Rendimiento, por ejemplo, tiempo de respuesta demasiado alto en una bsqueda de informacin.
Programacin, por ejemplo, inconsistencias en el diseo de un programa.
Documentacin, por ejemplo, inconsistencias entre la funcionalidad de un programa y el manual de usuario.
Mantenimiento Adaptativo:
Este tipo de mantenimiento consiste en la modificacin de un programa debido a cambios en el entorno (hardware o software) en el cual se ejecuta.
Estos cambios pueden afectar al sistema operativo (cambio a uno ms moderno), a la arquitectura fsica del sistema informtico (paso de una arquitectura de red de rea
local a Internet/Intranet) o al entorno de desarrollo del software (incorporacin de
nuevos elementos o herramientas como ODBC).
El tipo de cambio necesario puede ser muy diferente: desde un pequeo retoque en la estructura de un mdulo hasta tener que re escribir prcticamente todo el programa
para su ejecucin en un ambiente distribuido en una red.
Mantenimiento Perfectivo:
Cambios en la especificacin, normalmente debidos a cambios en los requisitos de un producto software, implican un nuevo tipo de mantenimiento llamado perfectivo.
Desde algo tan simple como cambiar el formato de impresin de un informe, hasta la incorporacin de un nuevo mdulo aplicativo. Podemos definir el mantenimiento perfectivo
como el conjunto de actividades para mejorar o aadir nuevas funcionalidades requeridas por
el usuario. Mantenimiento Preventivo:
Este ltimo tipo de mantenimiento consiste en la modificacin del software para mejorar sus propiedades (por ejemplo, aumentando su calidad y/o su mantenimiento) sin alterar sus
especificaciones funcionales. Por ejemplo, se pueden incluir sentencias que comprueben la
validez de los datos de entrada, re estructurar los programas para mejorar su legibilidad, o
incluir nuevos comentarios que faciliten la posterior comprensin del programa.
En algunos casos se ha planteado el Mantenimiento para la Reutilizacin, consistente en modificar el software (buscando y modificando componentes para incluirlos en bibliotecas)
para que sea ms fcilmente reutilizable. En realidad este tipo de mantenimiento es
preventivo, especializado en mejorar la propiedad de reusabilidad del software.
Universidad Catlica los ngeles de Chimbote - Piura
Ingeniera de Sistemas - Ingeniera de Software I
Conclusiones
Leer ms:
http://www.monografias.com/trabajos39/desarrollo-del-software/desarrollo-del-
software2.shtml#concl#ixzz3ZmWBDFc1
Bibliografas
1.- http : / / books . google . com . pe / book sid = MY0zo XYFVd8C & printsec = front
cover&d q= software & hl = es &s a= X & e i = 6PUdVLP g N
YH9ygOuzoGQBA&ved=0CCMQ6AEwAA#v=onepage&q=software&f=false.
2.- http : / / www . monogafias . com / trabajos 3 9 / desarrollo - del - software / desarrollo - del
- software . shtml # i xzz3 Dt4 x EfXv