Arquitectura de Software

Tamanho: px
Começar a partir da página:

Download "Arquitectura de Software"

Transcrição

1 Arquitectura de Software Gedai Disciplina de Engenharia de Software Instituto Superior de Engenharia do Porto Alunos: André Serafim da Silva Nogueira no David Alexandre Guimarães Costa nº Filipe Duarte Neves da Costa nº Turma: C

2 Índice Índice...2 Introdução... 3 Arquitectura e o seu significado... 4 O que é arquitectura?... 4 O que é arquitectura de software?... 4 Porque é que a arquitectura é importante?... 4 Estilos arquitecturais... 5 Tipos de arquitectura de software... 5 Centrada em dados... 5 Fluxo de dados... 6 Chamada e retorno... 6 Orientadas a objectos... 7 Camadas... 7 Analises de alternativas ao projecto arquitectural... 8 Resumo Bibliografia

3 Introdução Desde o momento, em que os programas foram divididos em módulos, os sistemas de software passaram a ter arquitecturas e os programadores têm sido responsáveis pelas interacções entre os módulos e as propriedades globais da montagem. Historicamente as arquitecturas têm estado implícitas tanto nos acidentes de implementação como nos sistemas que foram herdados ao longo do tempo. A arquitectura de software e a sua representação tornaram-se temas dominantes em engenharia de software hoje em dia. 3

4 Arquitectura e o seu significado O que é arquitectura? Arquitectura é a maneira pela qual os vários componentes de algo (edifício, hardware, software, etc.) são integrados para formar um todo coeso. O modo como o produto se ajusta ao ambiente e se mistura com os outros produtos já existentes interligando-se a esses e estabelecendo padrões das mais diversas formas, está implícito no conceito de arquitectura, tal como o sentido estético do produto, o modo pelo qual texturas, cores, materiais, etc. são combinados para criar o produto final. O que é arquitectura de software? Arquitectura de software de um programa ou de um sistema computacional é a estrutura ou estruturas do sistema que abrange os componentes de software, as propriedades externamente visíveis e as relações entre elas. A representação que permite ao engenheiro de software analisar a efectividade do projecto, satisfazer os seus requisitos declarados, considerar alternativas arquitecturais num estado em que fazer modificações de projecto é ainda relativamente fácil e além disso reduzir os riscos associados com a construção do software, faz também parte integral da arquitectura de software que ajuda assim o analista / programador a estruturar as suas ideias. Uma peça de software pode ser dividida em componentes de software, que podem ser algo tão simples como módulos do programa, mas também podem tomar formas mais complexas como bases de dados. As propriedades dos componentes são aquelas características necessárias para o entendimento de como os componentes interagem entre si. As propriedades internas como por exemplo o código, não são especificadas. Existe também uma relação entre componentes que pode ser simples ou mais complexa. Porque é que a arquitectura é importante? A arquitectura é de elevada importância devido a: Representações de arquitecturas de software constituem um facilitador da comunicação entre todas as partes envolvidas no desenvolvimento de um sistema baseado em computadores; A arquitectura destaca decisões iniciais do projecto que vão ter um impacto profundo em todo o trabalho que se segue e de igual modo no sucesso final do sistema como uma entidade operacional; A arquitectura constitui um modelo relativamente pequeno, intelectualmente legível de como o sistema é estruturado e como os seus componentes trabalham em conjunto. 4

5 Estilos arquitecturais Todo o tipo de produto pode ser definido usando vários tipos de padrões/estilos e como tal também uma peça de software pode ser definida usando vários estilos. Cada estilo deve descrever: Uma categoria de sistemas que abrange; Um conjunto de componentes que realizam a função que é o requisito do sistema; Um conjunto de ligações que possibilita a comunicação entre os vários componentes; Restrições que definem como os componentes podem ser integrados para formar o sistema; Modelos que permitem ao projectista entender quais as propriedades gerais de cada sistema pela sua análise. Tipos de arquitectura de software Centrada em dados Um depósito de dados (base de dados) fica no centro dessa arquitectura e os outros componentes que a manipulam (adicionam, retiram, actualizam, ) têm acesso a esse depósito. A seguinte figura ilustra um estilo típico centrado nos dados, diversos software-clientes têm acesso a uma base de dados. Este tipo de arquitectura promove a integração, ou seja, componentes existentes podem ser modificados e novos componentes-clientes podem ser adicionados à arquitectura sem preocupação com os outros clientes, porque estes operam independentemente. 5

6 Fluxo de dados Esta arquitectura aplica-se quando os dados de entrada devem ser transformados, por meio de uma série de componentes em dados de saída. Na seguinte figura (figura a) é mostrado o padrão de tubo e filtro, que têm um conjunto de componentes chamados filtros que estão conectados por tubos que transportam dados de um componente para outro. Os filtros trabalham independentes uns dos outros, espera pela entrada de dados e depois actua como lhe é pedido para transformar a informação. Se o fluxo de dados se degenera numa única linha de transformação, é denominado sequencial por lotes. Como é demonstrado na seguinte figura (figura b). Este padrão recebe os dados e faz a sua transformação ao longo do percurso, todos os dados passam por todos os filtros neste padrão. Chamada e retorno Este estilo arquitectural permite ao projectista conseguir uma estrutura do programa que é fácil de modificar e ampliar. Existem vários sub-estilos nesta categoria, entre os quais: Arquitecturas de programa principal/subprogramas, esta estrutura clássica de programa decompõe a função numa hierarquia de controlo em que um programa principal invoca um certo número de componentes de programa, em que por sua vez invocam outros componentes; Arquitectura de chamada de procedimentos remotos, os componentes de uma arquitectura de programa principal/subprogramas são divididos entre os vários computadores de uma rede. 6

7 Orientadas a objectos Os componentes de um sistema encapsulam os dados e as operações que devem ser aplicadas para manipular dados. A comunicação e a coordenação entre os componentes são conseguidas por meio de passagem de mensagens. Camadas Esta estrutura está ilustrada na figura seguinte. Um certo número de camadas diferentes são definidas, cada uma realizando operações que se tornam progressivamente mais próximas do conjunto de instruções da máquina (computador). Na camada exterior os componentes operam com interface com o utilizador, na camada mais interna os componentes interagem com o sistema operativo. 7

8 Analises de alternativas ao projecto arquitectural Para procedermos à análise de alternativas à arquitectura do projecto, podemos seguir duas vias: por um lado, usando uma analise iterativa para avaliar os vários pontos do projecto; por outro lado, podemos usar uma análise pseudo-quantitativa para avaliar a qualidade do projecto. O Instituto de Engenharia de Software (SEI) desenvolveu o ATAM (Architecture tradeoff analysis method, também conhecido por KAZ98) que estabelece alguns pontos para a análise: 1. Reunir cenários O sistema, sobre a vista do utilizador, é representado através de use-cases. 2. Listar requisitos, restrições e descrição do ambiente Este tipo de informação, é usado para que se possa garantir que todas as preocupações do cliente foram consideradas. 3. Descrever os padrões/estilos arquitecturais escolhidos Estes estilos devem ser descritos, usando perspectivas arquitecturais a. Visão de módulo b. Visão de processo c. Visão de fluxo de dado 4. Avaliar os atributos de qualidade isoladamente Os atributos de qualidade devem de ser avaliados segundo a relevância que têm para o sistema. Tais, podem ser confiabilidade, desempenho, segurança, manutenibilidade, flexibilidade, testabilidade, portabilidade, reusabilidade e interoperabilidade. 5. Identificar a susceptibilidade de atributos de qualidade aos diversos atributos arquitecturais. Útil, para descobrir pontos sensíveis no arquitectura, fazendo para isso, pequenas modificações na arquitectura, determinado quão sensível é um dado atributo. 6. Criticar arquitecturas candidatas Uma vez determinados os pontos sensíveis arquitecturais, deve-se identificar os elementos para os quais múltiplos atributos são susceptíveis. Por exemplo, uma arquitectura cliente-servidor, pode ser muito dependente do número de servidores. O desempenho pode melhorar com o aumento do número de servidores, mas a segurança pode piorar, uma vez que passam a existir mais pontos de ataque. Através deste método, podemos eliminar algumas arquitecturas que poderiam ser alternativas, assim como se pode alterar e representar as restantes com mais detalhe, aplicando-se outra vez os passos ATAM. Embora este método nos ajude muito na análise do projecto, trata-se dum método qualitativo, o que não nos permite uma análise quantitativa. Para isto, podemos usar algumas técnicas (conhecidas por ASA96) que podem complementar a abordagem ATAM. Estas técnicas ajudam o projectista a determinar se determinada arquitectura satisfaz determinados critérios previamente definidos, tais como a segurança, o desempenho, a flexibilidade, entre outros. Numa primeira fase, procede-se ao lançamento de dois casos para o projecto: o melhor e o pior caso (sendo que este deve poder ser aplicado ao problema, ainda que não seja a solução adequada), aos quais são atribuídas as notas máximas e mínimas (Sb e Sw respectivamente). De seguida, procede-se á soma das notas atribuídas a cada atributo do projecto proposto, ao qual se designa por S. 8

9 É então calculado o grau (Is) em que uma arquitectura se encontra próxima de um sistema óptimo, dentro dos limites propostos por Sw e Sb: Is=[(S-Sw)/(Sb-Sw)]*100 Se mais tarde forem feitas modificações ao projecto, uma forma de comparar se este foi melhorado ou não é comparar o resultado das suas análises através de um índice de melhoria (Imp): Imp=Is2-Is1 No caso deste ser positivo, significa que o sistema 2 foi melhorado em relação ao sistema 1. Procedemos então à análise de selecção de projecto. Esta permite-nos avaliar até que ponto o número de critérios alcançados pelo nosso projecto (Ns) se aproximam do número de critérios propostos pelo projecto ideal (Na). Este índice de selecção (D), pode ser calculado da seguinte forma: D=(Ns/Na)*100 Por fim, procedemos a uma analise de contribuição, na qual podemos identificar a razão de certo conjunto de opções ter uma nota mais baixa do que outro. Usando o QFD (Quality Function Deployment) é conduzido uma analise para determinar a prioridade relativa dos requisitos determinados á quando a descoberta de funções, informações e tarefas. É então identificado um conjunto de características arquitecturais, o qual é listado juntamente com os requisitos do cliente numa matriz de referências cruzadas. Cada célula da matriz representa a força da relação, numa escala de 1 a 10. A isto, também se pode designar de QDS (Quantified Design Space), que é fácil de ser implementado e pode ser usado para isolar e descobrir o porque de um conjunto de opções de projecto obter menor nota do que outro. Também podemos proceder à avaliação da complexidade global da arquitectura, usando uma técnica designada por ZHA98. Esta, sugere 3 tipos de dependências entre os componentes dentro da arquitectura: Dependências de compartilhamento representam as relações de dependência entre consumidores que utilizam o mesmo recurso. Para dois componentes U e V, se U e V referirem-se aos mesmos dados globais, então existe uma relação de dependência deste tipo. Dependências de fluxo representam as relações de dependência entre produtores e consumidores de recursos. Para dois componentes U e V, se U tiver que ser completado para que se possa executar V ou se U utilizar V parâmetros, então existe uma relação de dependência de fluxo. Dependências de restrição representam as restrições no fluxo relativo de controle, entre um dado conjunto de actividades. Para dois componentes U e V, se U e V não poderem ser executados ao mesmo tempo (exclusão mutua) então existe uma relação deste tipo. 9

10 Resumo A arquitectura de software fornece uma visão abstracta do sistema a ser construído mostrando a estrutura organizacional dos componentes, as propriedades vitais e as conexões entre estes componentes, representando essencialmente os fluxos de dados existentes ao longo da execução da aplicação. Esta arquitectura torna-se assim num conjunto de métodos que visam a estruturação da aplicação para que dessa forma sejam pensados os detalhes essenciais desta, os seus blocos e fluxos de transferência de maneira a que todas as dúvidas deste estejam previamente esclarecidas, antes que se torne demasiado tarde e que se torne dispendiosa a sua alteração. Da mesma forma que visa prever problemas futuros problemas, é também um modo de se desenhar possíveis formas que o projecto poderá levar e dessa forma escolher a melhor e mais económica. Existem vários estilos arquitecturais que poderão ser utilizados conforme as necessidades da especificação do projecto. O modelo orientado a objectos por exemplo, será melhor aplicado numa aplicação que implemente este tipo de sistema no seu núcleo principal, enquanto que o modelo centrado em dados é óptimo para descrever sistemas com vários módulos que acedem a uma base de dados e fazem cada qual uma determinada tarefa. Bibliografia Pressman R., Engenharia de Software, 5ª edição, MCGraw-Hill 10

Arquitetura de Software. Fatec ES III - Prof. Dinis 1

Arquitetura de Software. Fatec ES III - Prof. Dinis 1 Fatec ES III - Prof. Dinis 1 Segundo Shaw e Garlan Desde quando o primeiro programa foi dividido em módulos, os sistemas de software passaram a ter arquiteturas, e os programadores têm sido responsáveis

Leia mais

Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999

Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Este curso é baseado no livro Software Architecture in Practice, de Len Bass, Paul Clements and

Leia mais

Universidade Federal de Goiás Estilos Arquiteturais

Universidade Federal de Goiás Estilos Arquiteturais Universidade Federal de Goiás Estilos Arquiteturais Prof. Helder Brito Nascimento Instituto de Informática helderbn@gmail.com O que é um estilo de arquitetura Como você diferencia uma construção da outra?

Leia mais

Desenho de Software. Sumário

Desenho de Software. Sumário (QJHQKDULDGD3URJUDPDomR Desenho de Software Carla Ferreira Carla.Ferreira@dei.ist.utl.pt Sumário Objectivos Problemas Qualidades Técnicas Avaliação e Validação Casos Notáveis Exemplo Conclusões Desenho

Leia mais

Manutenção Leitura: Sommerville; Pressman

Manutenção Leitura: Sommerville; Pressman Manutenção Leitura: Sommerville; Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 1 Manutenção de software É modificar um programa depois que ele

Leia mais

Definição. Arquitecturas de Software. Modelo de Referência. Estilo Arquitectural. Arquitecturas de Software

Definição. Arquitecturas de Software. Modelo de Referência. Estilo Arquitectural. Arquitecturas de Software Arquitecturas de Software Arquitecturas de Software António Rito Silva Rito.Silva@inesc-id.pt Definição A arquitectura de software de um programa ou sistema computacional é a estrutura ou estruturas do

Leia mais

Engenharia da Programação

Engenharia da Programação Engenharia da Programação LEIC 4º ano, 1º Semestre, ano lectivo de 2002-03 2º Exame (o exame é composto por 10 perguntas (1-10) cotadas com 1 valor cada) Data: 8 de Fevereiro de 2003 Duração Exame: 1h30

Leia mais

Modelos de design arquitetural

Modelos de design arquitetural Modelos de design arquitetural Jair C Leite Modelos de design arquitetural Objetivo Guiar o arquiteto nas etapas para desenhar a arquitetura Deve considerar diferentes visões arquiteturais Atualmente existem

Leia mais

Manutenção de Software

Manutenção de Software Manutenção de Software Engenharia de Software Rosana Braga (material produzidos por docentes do Labes-ICMC/USP) Manutenção do software O propósito do processo manutenção do sistema e software é modificar

Leia mais

2. Modelos de Desenvolvimento de Software

2. Modelos de Desenvolvimento de Software 2. Modelos de Desenvolvimento de Software Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/06 EST, Setúbal Ciclo de Vida do Software Um sistema de software é desenvolvido gradualmente

Leia mais

Padrões. Arquitetura de Software Thaís Batista

Padrões. Arquitetura de Software Thaís Batista Padrões Endereçam uma classe de problemas recorrentes e apresenta uma solução para eles (podem ser considerados um par problema-solução) Permitem a construção de software com propriedades definidas Ajudam

Leia mais

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros Estilos Arquiteturais Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros

Leia mais

Introdução ao RUP Rational Unified Process

Introdução ao RUP Rational Unified Process Introdução ao RUP Rational Unified Process UML Diagramas de Classes v.1.1, João Pascoal Faria, 2001 1 O que é Um processo (de engenharia) de software é a definição de um conjunto completo de actividades

Leia mais

Leitura: Cap : Sommerville; cap20: Pressman

Leitura: Cap : Sommerville; cap20: Pressman Leitura: Cap26-27 - 28: Sommerville; cap20: Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1/47 Manutenção de software É modificar um programa depois que

Leia mais

Introdução à Análise e Projeto de Sistemas

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência Diagramas Os diagramas utilizados pela UML são compostos de nove tipos: diagrama de use case, de classes, de objecto, de estado, de sequência, de colaboração, de actividade, de componente e o de instalação/execução.

Leia mais

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos Processos de engenharia de requisitos Processos de Engenharia de Requisitos Os requisitos e as formas de obtê-los e documentálos variam drasticamente de um projeto para o outro Contudo, existe uma série

Leia mais

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001 PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes

Leia mais

Técnicas Avançadas de Programação

Técnicas Avançadas de Programação Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 26 http://www.ic.uff.br/~bianca/engsoft2/ Aula 26-21/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

Processo de Desenvolvimento. Edjandir Corrêa Costa

Processo de Desenvolvimento. Edjandir Corrêa Costa Processo de Desenvolvimento Edjandir Corrêa Costa edjandir.costa@ifsc.edu.br Processo de Desenvolvimento Definição: É um roteiro que determina quais são as tarefas necessárias e em que ordem elas devem

Leia mais

REENGENHARIA E ENGENHARIA REVERSA

REENGENHARIA E ENGENHARIA REVERSA REENGENHARIA E ENGENHARIA REVERSA Manutenção de Software Profa. Cynthia Pinheiro Definição: É o exame, análise e/ou reestruturação de um sistema de software para reconstruí-lo em uma nova forma. Objetivos:

Leia mais

Arquitetura de Software: Introdução

Arquitetura de Software: Introdução Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SCE 526 Análise e Projeto Orientados a Objeo Profa. Elisa Yumi Nakagawa 2. Semestre de 2013

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

2

2 ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina

Leia mais

Função Fundamental do SO

Função Fundamental do SO Função Fundamental do SO Gestão do Hardware Uma das funções fundamentais do sistema operativo é gerir os recursos do hardware de um modo o mais transparente possível ao utilizador Recursos principais a

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e

Leia mais

Arquitetura de Software Parte 3/3 Architecture Business Cycle. Jorge H. C. Fernandes Junho de 1999

Arquitetura de Software Parte 3/3 Architecture Business Cycle. Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Parte 3/3 Architecture Business Cycle Jorge H. C. Fernandes Junho de 1999 Arquiteturas e Desenvolvimento de Software Processo de Software Baseado em Arquitetura: Etapas 1 - Criando

Leia mais

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários

Leia mais

Desenho. Indice. 1. Introdução. 2. Definição da Arquitectura. 3. Interfaces e desenho da Arquitectura

Desenho. Indice. 1. Introdução. 2. Definição da Arquitectura. 3. Interfaces e desenho da Arquitectura Desenho Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal Indice 1. Introdução 2. Definição da Arquitectura 3. s e desenho da Arquitectura Engenharia de Software

Leia mais

Arquitecturas de Software Enunciado de Projecto 2007 2008

Arquitecturas de Software Enunciado de Projecto 2007 2008 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Enunciado de Projecto 2007 2008 1 Introdução Na primeira metade da década de 90 começaram a ser desenvolvidas as primeiras

Leia mais

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento.

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento. Universidade Federal de Santa Catarina Centro Tecnológico Disciplina: PROJETOS I Aluno: Cleosvaldo G. Vieira Jr cgvjr@inf.ufsc.br Resumo parcial da Tese de Doutorado Um modelo de Sistema de Gestão do Conhecimento

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade I - Engenharia de Requisitos Definição de Requisitos Tipos de Requisitos Processos de Engenharia de Requisitos - Levantamento ou elicitação 1 Processo de software Engenharia

Leia mais

CONCEITOS DE PROJETOS - 2. Profa. Reane Franco Goulart

CONCEITOS DE PROJETOS - 2. Profa. Reane Franco Goulart 1 CONCEITOS DE PROJETOS - 2 Profa. Reane Franco Goulart MODULARIDADE A arquitetura do software incorpora a modularidade, isto é, o software é dividido em componentes nomeados separadamente e endereçáveis,

Leia mais

Metodologia Simplified. António Rocha

Metodologia Simplified. António Rocha Metodologia Simplified António Rocha - 2003 Metodologias As empresas precisam de uma metodologia simples e eficaz para realizarem o seu primeiro projecto OO Uma metodologia tem mais probabilidades de ser

Leia mais

1. Conceitos Básicos de Sistemas de Informação

1. Conceitos Básicos de Sistemas de Informação Administração de Sistemas de Informação 2 1. Conceitos Básicos de Sistemas de Informação A importância dos Sistemas de Informação Entender a administração e o uso responsável e eficaz dos sistemas de informação

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Qualidade de : Visão Geral Engenharia de Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017 Qualidade de Qualidade é um termo que pode ter diferentes interpretações. Existem muitas definições de qualidade

Leia mais

Engenharia de Software 2006/2007

Engenharia de Software 2006/2007 Instituto Superior Técnico Engenharia de Software 2006/2007 Segundo Teste (perguntas 5-10, 70 minutos) Primeiro Exame (perguntas 1-10, 120 minutos) 29/6/2007 Nome: Número: Escreva o seu número em todas

Leia mais

Engenharia de Software

Engenharia de Software Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação

Leia mais

FATORES E MÉTRICAS DE QUALIDADE

FATORES E MÉTRICAS DE QUALIDADE FATORES E MÉTRICAS DE QUALIDADE 1 2 FATORES DE QUALIDADE OPERAÇÃO DO PRODUTO CORRETITUDE (FAZ O QUE EU QUERO?) CONFIABILIDADE (SE COMPORTA COM PRECISÃO?) EFICIÊNCIA (RODARÁ TÃO BEM QUANTO POSSÍVEL?) INTEGRIDADE

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini   / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: QUALIDADE DE SOFTWARE Tema: Teste de Software:

Leia mais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura

Leia mais

Ciclo de Vida de Sistemas de Informação

Ciclo de Vida de Sistemas de Informação Ciclo de Vida de Sistemas de Informação PROCESSO DE DESEN. DE SIs Todo desenvolvimetno de SI pode ser caracterizado como um ciclo de solução de problema. Definição do Problema Situação atual Desenvolvimento

Leia mais

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação

Leia mais

Arquitetura de Software: Introdução

Arquitetura de Software: Introdução Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo

Leia mais

Engenharia de Software

Engenharia de Software Introdução Engenharia de Software O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; QUALIDADE DE SOFTWARE Empresas que desenvolvem software de qualidade são

Leia mais

Aula 12. Aquisição de Hardware

Aula 12. Aquisição de Hardware Aula 12 Tecnologias de informação para construção de sistemas de informação. Sistemas de Informação TADS 4. Semestre Prof. André Luís 1 2 Implantação de Sistemas Assim que o sistema de informação tiver

Leia mais

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação

Leia mais

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br Nome da disciplina:

Leia mais

Unidade 1 Introdução à Análise de Sistemas. Objectivos

Unidade 1 Introdução à Análise de Sistemas. Objectivos Unidade 1 Introdução à Análise de Sistemas Objectivos 1 2 Objectivos Definir a análise de sistemas Reconhecer as funções do analista de sistemas Definir conceitos de sistema Reconhecer a finalidade do

Leia mais

CONCEITOS BÁSICOS E MODELO DE PROJETO

CONCEITOS BÁSICOS E MODELO DE PROJETO CONCEITOS BÁSICOS E MODELO DE PROJETO Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Na aula passada... Abstração Arquitetura Padrões de Projeto Separação por interesses (por afinidades) Modularidade

Leia mais

Documento de Requisitos*

Documento de Requisitos* * Rosana T. Vaccare Braga *slides adaptados a partir do material da Profa Ellen Francine Barbosa Processo de Engenharia de Requisitos Documento de requisitos Processo de Engenharia de Requisitos Estudo

Leia mais

Estilos Arquiteturais

Estilos Arquiteturais Estilos Arquiteturais Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as

Leia mais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Desenvolvimento de Aplicações Paralelas (gec.di.uminho.pt/lesi/ap10203/aula06aplicaçõespar.pdf) João Luís Ferreira Sobral Departamento

Leia mais

5 Processo de Reificação e de Desenvolvimento com ACCA

5 Processo de Reificação e de Desenvolvimento com ACCA Uma Arquitetura para a Coordenação e a Composição de Artefatos de Software 53 5 Processo de Reificação e de Desenvolvimento com ACCA Resumo Este capítulo visa esclarecer e descrever atividades existentes

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Escola Superior de Tecnologia e Gestão de Felgueiras Engenharia Informática 3º ano - 2003/2004 Ana Maria Madureira Informação Informação informatióne conjunto de dados em princípio

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Teste de Software Verificação e validação Testes de desenvolvimento Testes de release Testes de usuário Desenvolvimento dirigido a testes Kele Teixeira Belloze kelebelloze@gmail.com

Leia mais

Prof. Emiliano S. Monteiro

Prof. Emiliano S. Monteiro Prof. Emiliano S. Monteiro O que é qualidade? Existem diversas definições... 1. Qualidade é estar em conformidade com os requisitos dos clientes 2. Qualidade é antecipar e satisfazer os desejos dos clientes

Leia mais

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES LIVRO ENGENHARIA FUNDAMENTOS, MÉTODOS E PADRÕES WILSON PADUA PAULA FILHO CAPÍTULO REQUISITOS 1 REQUISITOS TECNICO E GERENCIAL ESCOPO (RASCUNHO) CARACTERISTICAS 2 O que são Requisitos? São objetivos ou

Leia mais

2 O Modelo: SetModel. 2.1 Modelo de Informação

2 O Modelo: SetModel. 2.1 Modelo de Informação O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser

Leia mais

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa Qualidade de : Visão Geral SSC 121-Engenharia de 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Qualidade de Qualidade é um termo que pode ter diferentes interpretações Existem muitas definições

Leia mais

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

Definição. Análise de sistemas de informação. Classificação. Sistemas Abertos

Definição. Análise de sistemas de informação. Classificação. Sistemas Abertos Análise de sistemas de informação Definição É o processo de estudo de uma organização que se procura realizar o levantamento exaustivo de como funciona e desta forma descrever os processos de resolução

Leia mais

3. Engenharia dos requisitos de software

3. Engenharia dos requisitos de software Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG renato@cpdee.ufmg.br Engenharia de Software 3. Engenharia dos requisitos de software.......... 3.1. Visão Geral O fluxo de Requisitos reúne

Leia mais

Introdução a Orientação a Objetos

Introdução a Orientação a Objetos Introdução a Orientação a Objetos Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 01 - Introdução 1 Qualidade de Software Obter

Leia mais

Rui Carneiro, Rui Pereira, Tiago Orfão

Rui Carneiro, Rui Pereira, Tiago Orfão Geração de Gráficos SVG através de PHP Rui Carneiro, Rui Pereira, Tiago Orfão Faculdade de Engenharia da Universidade do Porto, R. Dr. Roberto Frias, 4200-465 Porto. {ei04073,ei04077,ei03102}@fe.up.pt

Leia mais

ISO/IEC Prof. Alexandre Luís Franco

ISO/IEC Prof. Alexandre Luís Franco ISO/IEC 9126 Prof. Alexandre Luís Franco ISO/IEC 9126 Contém as seguintes partes, sobre o título genérico de Engenharia de Software Qualidade do Produto Parte 1 Modelo de Qualidade Parte 2 Métricas Externas

Leia mais

3 Medição de Software

3 Medição de Software 3 Medição de Software À medida que a engenharia de software amadurece, a medição de software passa a desempenhar um papel cada vez mais importante no entendimento e controle das práticas e produtos do

Leia mais

UFCD 0781 Análise de Sistemas de Informação. Formadora: Sónia Rodrigues. Conteúdos. Conteúdos. Conteúdos. Conteúdos. Objectivos da UFCD:

UFCD 0781 Análise de Sistemas de Informação. Formadora: Sónia Rodrigues. Conteúdos. Conteúdos. Conteúdos. Conteúdos. Objectivos da UFCD: UFCD 0781 Análise de Sistemas de Informação Objectivos da UFCD: Reconhecer e utilizar as diferentes metodologias de análise de sistemas de informação, no âmbito do processo de informatização de uma organização.

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 O desenvolvimento de software envolve usuários, clientes e desenvolvedores. Avalie as seguintes afirmações

Leia mais

Cadeira: Engenharia de Software

Cadeira: Engenharia de Software Cadeira: Engenharia de Software Aulas 9, 10 15/08/15 Docente: Cláudia Ivete F. Jovo cifjovo@gmail.com or cjovo@up.ac.mz M.Sc. Cláudia Jovo 2017/DI 0 Definição de Eng. Software; Eng. Software Tecnologia

Leia mais

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001 PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções

Leia mais

27/08/2013. Aula 05 Análise Estruturada de Sistemas

27/08/2013. Aula 05 Análise Estruturada de Sistemas Aula 05 Análise Estruturada de Sistemas A maior parte do trabalho do analista de sistema está baseada na construção de modelagem dos sistemas, ou seja, representar de forma gráfica aquilo que o usuário

Leia mais

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU Aula 2 POO 1 Introdução Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

AULA 01: APRESENTAÇÃO

AULA 01: APRESENTAÇÃO ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 01: APRESENTAÇÃO Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAIS OS OBJETIVOS DESSA DISCIPLINA?

Leia mais

O Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009

O Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009 O Processo Unificado: Workflow de Análise Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009 Workflow de Análise Objetivos da análise: manter uma especificação precisa dos requisitos

Leia mais

3. análise e negociação de requisitos

3. análise e negociação de requisitos 3. documento de requisitos identificação, descoberta de requisitos análise e negociação de requisitos documentação de requisitos problemas, necessidades, oportunidades,... validação dos requisitos 2 objectivos

Leia mais

Arquitetura de Software visão emergente

Arquitetura de Software visão emergente Arquitetura de Software visão emergente Objetivos Visão abstrata do software através de componentes e interfaces Independência de plataforma Independência de paradigma de programação Técnicas Estilos Arquiteturais

Leia mais

Análise de Sistemas 4º Bimestre (material 3)

Análise de Sistemas 4º Bimestre (material 3) Análise de Sistemas 4º Bimestre (material 3) Permite a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos, bem como demonstrar como elas se relacionam, complementam

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo. Lista de Exercício 1 Algoritmo e Programação 29/08/2018 (Solução) 1) Escreva conforme a premissas computacionais, o que vem a ser, lógica. R: São as premissas básicas para se executar instruções, alocadas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Apresentação Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof. Sérgio CECHIN (cechin at inf.ufrgs.br)

Leia mais

Introdução às Bases de Dados

Introdução às Bases de Dados O Sistema de Base de Dados através do SGBD permite controlar de forma centralizada os dados armazenados. Base de Dados Ficheiro 1 Ficheiro 2 Ficheiro 3 Sistema de Gestão de Bases de Dados (SGBD) Prog.1

Leia mais

Introdução à Interface Pessoa-Máquina

Introdução à Interface Pessoa-Máquina Instituto Superior Politécnico de Ciências e Tecnologia Introdução à Interface Pessoa-Máquina Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 SUMÁRIO Capítulo V METODOLOGIAS DE DESENVOLVIMENTO DE

Leia mais

3 Ferramenta Proposta 3.1. Objetivos

3 Ferramenta Proposta 3.1. Objetivos 3 Ferramenta Proposta 3.1. Objetivos O objetivo deste trabalho é a criação de um framework de testes que incorpore algumas das novas idéias encontradas na literatura. Sua principal característica deve

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2012 Paradigmas e Processo de Software Engenharia de Software: Abrangência Engenharia de Software possui

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Para Sommerville a arquitetura de sistemas descreve o sistema em termos de um conjunto de unidades

Leia mais

Fábio Amado João Maio 33306

Fábio Amado João Maio 33306 Fábio Amado 33637 João Maio 33306 Universidade de Aveiro Especificação, Modelação e Projecto de Sistemas Embutidos 21-11-2009 1. UML - o que é? 2. A Natureza dos Sistemas Embutidos 1. Heterogeneidade 2.

Leia mais

Normalização de dados

Normalização de dados 1 Normalização de dados Vantagens da normalização A normalização permite: Agrupar os atributos de uma entidade de forma a reduzir o número de dependências funcionais existentes entre os dados numa base

Leia mais

ARQUITETURA DE SOFTWARE

ARQUITETURA DE SOFTWARE ARQUITETURA DE SOFTWARE Em seu livro, que constitui um referencial sobre o assunto, Shaw e Garlan discutem arquitetura de software da seguinte maneira: Desde quando o primeiro programa foi dividido em

Leia mais

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída Nome: Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída 1. A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

AVALIAÇÃO DE PRODUTOS DE SOFTWARE AVALIAÇÃO DE PRODUTOS DE SOFTWARE SSC-546 Avaliação de Sistemas Computacionais Profa. Rosana Braga (material profas Rosely Sanches e Ellen F. Barbosa) Qualidade de Produto de Software Modelo de Qualidade

Leia mais