Sobre a Importância da Arquitetura de Software no Desenvolvimento de Sistemas de Software

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

Download "Sobre a Importância da Arquitetura de Software no Desenvolvimento de Sistemas de Software"

Transcrição

1 Sobre a Importância da Arquitetura de Software no Desenvolvimento de Sistemas de Software Antonio Mendes da Silva Filho 1 1 União dos Institutos Brasileiros de Tecnologia Recife PE Brasil Antonio.mendes@unibratec.com.br Abstract. A key attribute to achieve maturity in the engineering field is to use in a usual way the existing solutions for developing new systems. In a reuse strategy, the main focus is on the architecture-centered reuse aiming the software systems development. Within this context, software architecture supports the system organization, allowing its understanding in terms of components, relationships, and properties consistent throughout the time and implementations. This work presents an introduction to this topic. Resumo. Um dos principais atributos para se alcançar a maturidade em uma disciplina de engenharia é o uso rotineiro de soluções existentes no desenvolvimento de novos sistemas. Em uma estratégia de reuso de software, enfatiza-se a importância do reuso centrado na arquitetura, objetivando o desenvolvimento de sistemas de software. Dentro deste contexto, a arquitetura de software serve como uma organização do sistema, permitindo seu entendimento em termos de componentes, inter-relacionamentos e propriedades consistentes ao longo do tempo e implementações. Este trabalho apresenta uma introdução a este tópico. 1. Introdução Há, aproximadamente, quatro décadas atrás, software constituía uma pequena senão ínfima parcela dos sistemas computacionais quando comparado ao hardware. Naquela época, os custos de desenvolvimento e manutenção de software eram desprezíveis. Hoje, porém, software é responsável por significativa porção dos sistemas computacionais. Encontramos software nas mais diversas aplicações. No uso doméstico, fazemos uso de processadores de texto e planilhas eletrônicas. Entretanto, software tem sido elemento chave e muito utilizado em sistemas de grande porte. Podemos exemplificar seu uso no controle e supervisão dos sistemas de geração/distribuição de energia bem como em sistemas de telecomunicações, onde ele é encarregado do roteamento e controle de milhares de ligações telefônicas. Hoje em dia, empresas e pessoas têm conseguido otimizar suas atividades, geralmente, fazendo uso de sistemas computacionais. O computador tem se tornado um companheiro e sido uma ferramenta fundamental em nosso cotidiano. Todavia, ao mesmo tempo em que os sistemas computacionais têm tornado-se quase ubíquos em inúmeras aplicações, tamanho e complexidade do software têm aumentado tanto que as técnicas de abstração utilizadas até o final do anos 80 (como,

2 por exemplo, tipos de dados abstratos, linguagens de programação de alto nível e técnicas de decomposição modular) já não são mais suficientes para lidar com esses novos problemas envolvendo o projeto de software a nível de sistema. Isto refere-se ao nível de organização de um sistema ou, mais propriamente, o nível de arquitetura de software. Perceba que abstração é uma forma de lidar com a complexidade de problemas e sistemas. Como seres humanos, costumamos reconhecer que estamos, regularmente, reconstruindo um padrão já utilizado em um contexto diferente. Exemplo disso seria a especificação ou parte de um código. Poderíamos dizer que a essência da abstração é reconhecer um padrão, atribuindo-lhe nome e definindo seu uso, e analisá-lo buscando formas para especificá-lo. Diferentemente do uso de técnicas que empregam algoritmos, estruturas de dados e as linguagens de programação que as implementam, o crescimento em escala dos sistemas de software demandou notações para conectar módulos, técnicas para gerenciar configurações e controlar versões. Entretanto, à medida que os sistemas tornavam-se maiores e mais complexos, outros fatores como, por exemplo desempenho e qualidade, passaram a ser considerados também. Tais fatores estão intimamente relacionados à organização global do sistema de software o qual será objeto de estudo deste artigo. 2. Evolução Tecnológica A busca incessante do conhecimento é uma característica peculiar do ser humano. Ao longo de séculos, o homem tem buscado respostas a muitas questões que lhe vêm à mente bem como encontrado soluções a uma enorme de gama de problemas que lhe são apresentados. Resultado disto, têm sido as grandes invenções tecnológicas que testemunhamos no século XX e tantos outros que remontam às origens humana. Já o século XXI é vislumbrado como século do conhecimento onde a informação é praticamente ubíqua, as fronteiras de tempo e espaço já não parecem mais existir, e passamos a viver num mundo caracterizado cada vez mais por uma interdependência global. Dentre as tecnologias que surgiram no século passado, destacamos os primeiros esforços para construir o primeiro computador (ENIAC 1 ) de propósito geral completamente eletrônico que ocorreu na Universidade da Pensilvânia (EUA), entre 1942 e Participaram do projeto e desenvolvimento do ENIAC J. Presper Eckert e John W. Mauchly. Em 1944, John von Neumann integrou a equipe que havia desenvolvido inicialmente o ENIAC e então o grupo deu início ao desenvolvimento do EDVAC 2. No período de 1946 a 1952, von Neumann e seus colaboradores desenvolveram o computador do Instituto de Estudos Avançados de Princeton (EUA). Durante a década de 50 até quase metade da década de 1960, havia um produção limitada de software e naquela época o tamanho dos programas eram geralmente pequeno. 1 Electronic Numeric Integrator and Computer. 2 Electronic Discrete Variable Computer.

3 Entretanto, pouco a pouco, software passa a constituir uma tecnologia chave, sendo usada nas mais diversas áreas, desde aplicações financeiras e comerciais a aplicações complexas, tais como controle de usinas de energia e missões espaciais. Aos poucos, a indústria de computadores passa a ser um dos ramos de negócios mais competitivos do planeta e o componente software torna-se a força prevalecente em termos de inovação tecnológica. Apesar da importância que esta nova tecnologia passa a ter na época, inexiste ferramentas oferecendo suporte ao desenvolvimento de software e pouco se conhece sobre seu processo de desenvolvimento. Concomitante a estes fatos, as aplicações começam a tornar-se maiores e mais complexas, demandando uma parcela cada vez maior de software. Ademais, outro fator a destacar é o crescente papel da manutenção. Todos esses fatores contribuíram para o surgimento da Engenharia de Software, termo que foi cunhado numa conferência seminal do NATO em Garmisch, Alemanha, em 1968 [Naur 69]. A idéia central de engenharia de software é a de fazer uso de princípios de engenharia a fim de produzir a baixo custo software que operem corretamente e com eficiência em equipamentos, onde o software seja instalado. Assim, à medida que a tecnologia de software conquistava mais espaço, diversos paradigmas de engenharia de software e programação surgiam. Face à necessidade de lidar com sistemas de software cada vez maiores e mais complexos, a técnica de abstração foi utilizada objetivando reconhecer padrões, analisar e especificar sistemas. De fato, o desenvolvimento de técnicas de abstração tem sido uma das principais fontes da melhoria nas práticas de programação. Contudo, o crescimento continuado do tamanho de sistemas de software aliada à complexidade tem requerido em conjunto mais confiabilidade, economia e desempenho. Estes requisitos estão associados a organização global dos sistemas de software e será abordado ao longo desse texto. 3. A Natureza dos Sistemas de Software O termo software não se restringe apenas aos programas de computadores associados com uma aplicação, mas também envolve toda a documentação necessária para instalação, uso, desenvolvimento e manutenção dos programas. Uma questão que vem à mente é: quando um sistema pode ser considerado como bem arquitetado (i.e., concebido e desenvolvido utilizando-se princípios de engenharia)? Alguém poderia dizer que um sistema é bem bolado se ele faz o que o(s) usuário(s) quer(em). Todavia, uma avaliação mais geral da qualidade e quão bem projetado é um sistema requer a identificação de atributos os quais desejaríamos encontrar num software bem arquitetado. Há dois atributos importantes que merecem nossa atenção: confiabilidade e manutenibilidade. Um nível adequado de confiabilidade é essencial a um sistema de software independente de seu uso. A confiabilidade é um importante atributo da qualidade de software, implicando que a aplicação associada a ele realizará suas funções como esperado. Geralmente, a confiabilidade de software é definida em termos de

4 comportamento estatístico, ou seja, da probabilidade de que o software irá operar como desejado ao longo de um período especificado de tempo. A exemplo de outros sistemas, software é sujeito à mudanças regulares e, portanto, torna-se importante que o software seja codificado e documentado de modo a não incorrer em custos proibitivos. Neste contexto, a manutenebilidade possui dois aspectos distintos: a necessidade de reparo e evolução dos sistemas. Um sistema de software precisará de reparo se existe defeitos que pedem correção. Por outro lado, os sistemas podem evoluir a fim de satisfazer novos requisitos de usuários. Perceba que embora um sistema de software possa deteriorar-se, requerendo novas versões a fim de atender a natureza evolutiva dos sistemas e a demanda por novas características, ele não sofre de desgaste como ocorre com outros dispositivos e sistemas. Hardware, por exemplo, desgasta-se com o decorrer do tempo pela ação de uso indevido, acúmulo de poeira e funcionamento em temperaturas elevadas. Adicionalmente, é importante observar que (componente de) software existe em duas formas básicas: código executável ou não executável. Contudo, apesar de podermos, hoje em dia, trabalhar a nível de componentes, ainda não podemos encomendar um componente de software da forma que fazemos com o hardware. A idéia é que um componente deveria ser projetado e implementado de modo que pudesse ser reutilizado em muitas aplicações. A reusabilidade é um atributo importante em componentes de software com elevada qualidade. Como exemplo, poderíamos citar o utilização de componentes reutilizáveis de interfaces gráficas que permitem a criação de janelas, menus e outras formas de interação com usuário. Apesar dos avanços alcançados até o presente momento em termos de reusabilidade, tem havido um crescimento continuado tanto em termos de tamanho quanto da complexidade dos sistemas de software. Aliados a esses aumentos, há uma demanda cada vez mais acentuada por sistemas com maior confiabilidade e desempenho bem como menor custo. Tais ocorrências redirecionam a ênfase do processo de desenvolvimento de software para o nível de organização ou arquitetural do sistema. 4. O que é Arquitetura de Software? Para lidar com a complexidade e o tamanho de sistemas, engenheiros de software têm feito uso de princípios de projeto como, por exemplo, a ocultação de informações. Entretanto, à medida que os sistemas tornam-se cada vez maiores, o uso de uma disciplina deve ser enfatizado de modo a obter resultados de baixo custo e maior qualidade. Dentro deste contexto, arquitetura de software tem entrado em cena de modo a lidar com sistemas grandes e complexos. Perceba que o crescimento em termos de tamanho e complexidade dos sistemas de software faz com que o problema de desenvolvimento extrapole o projeto das estruturas de dados e algoritmos para o sistema. Em outras palavras, projetar a estrutura global de um sistema emerge como um problema novo, ou seja, desenvolvimento de

5 software baseado na arquitetura. O desenvolvimento de software no nível arquitetural compreende questões estruturais, dentre as quais, destacam-se: seleção de alternativas de projeto; escalabilidade e desempenho; organização e estrutura geral de controle; protocolos de comunicação, sincronização; atribuição de funcionalidade a componentes de projeto. Ademais, torna-se cada vez mais evidente que processos de engenharia de software requerem projeto arquitetural de software. Primeiro, é importante ser capaz de reconhecer estruturas comuns utilizadas em sistemas já desenvolvidos possibilitando aos projetistas de software compreender as relações existentes entre sistemas e desenvolver novos sistemas baseado em variações de sistemas antigos. Segundo, o entendimento de arquiteturas de software existentes permite aos engenheiros tomarem decisão sobre alternativas de projeto. Terceiro, uma descrição arquitetural do sistema é essencial a fim de analisar e descrever propriedades de um sistema complexo. Quarto, o conhecimento de notações formais para descrição de paradigmas arquiteturais permite que engenheiros possam apresentar novos projetos de sistemas para outras pessoas e instituições. Fica claro que a estrutura global ou, mais propriamente, a arquitetura de software constitui-se num fator de suma importância no projeto de sistemas de software de grande porte. Baseado em discussões realizadas no Software Engineering Institute da Carnegie Mellon University, David Garlan e Dewayne Perry [Garlan 95] definiram arquitetura de software como: A estrutura dos componentes de um programa/sistema, seus interrelacionamentos, e princípios e diretrizes guiando o projeto e evolução ao longo do tempo. Arquitetura de software é uma área relativamente nova dentro da engenharia de software. Este tópico não havia despertado o interesse de pesquisadores e profissionais até final da década de 80 quando Mary Shaw [Shaw 89] aponta a necessidade de considerar o nível organizacional ou arquitetural dos sistemas. Em seguida, em meados da década de 90, foi publicado o livro seminal sobre arquitetura de software de Mary Shaw e David Garlan [Shaw 96] que tratou de muitas questões desta nova área. Note ainda que arquitetura de software tem foco no estudo da organização global dos sistemas de software bem como do relacionamento entre subsistemas e componentes. Desde suas origens, quando descrições qualitativas de organizações de sistemas eram consideradas como úteis, arquitetura de software tem amadurecido ao longo da última década, buscando englobar e explorar notações, ferramentas e técnicas de análise. Também, tem-se observado sobreposição e interação da pesquisa de arquitetura de software com trabalhos sobre reuso baseado em componentes, projeto de software, classes de componentes, análise de programas e linhas de produto. Embora não se considere muito produtivo tentar fazer distinções entre essas áreas, sempre que oportuno as diferenças serão salientadas.

6 5. A Necessidade e o Papel da Arquitetura de Software Baseado no que foi apresentado até aqui, tem-se que a idéia básica de arquitetura de software é aquela de que um sistema de software em elevado nível de abstração pode ser descrito através de subsistemas ou componentes distintos, sendo estes interrelacionados. Note quão fundamental a arquitetura de um sistema de software é e quão essencial também é o projeto arquitetural dentro do processo de desenvolvimento de um sistema. Perceba ainda que uma arquitetura de referência ou base constitui um elemento fundamental para o desenvolvimento de linhas de produção de software, onde múltiplos sistemas com funcionalidades distintas podem ser concebidos. A arquitetura de software tenta analisar as propriedades do software a nível de subsistema ou módulo. Examinando o papel da arquitetura em um contexto mais amplo do gerenciamento de processo de software e da tentativa de ordenar as diversas técnicas novas que têm surgido, alguns possíveis benefícios podem ser apontados. Dessa forma, tem-se que a arquitetura pode: atuar como uma estrutura a fim de atender as requisitos de sistema; ser utilizada como aspecto técnico para o projeto de sistema bem como suporte na estimação de custos e gerência de processo; servir de base para análise de consistência e dependência; prover suporte ao reuso. Vamos tentar entender mais o seu papel. Considere a Figura 1 que ilustra um afunilamento nas descrições arquiteturais de um sistema. requisitos decomposição da funcionalidade possíveis soluções arquiteturas (de referência) implementação arquitetura selecionada Figura 1 Níveis de descrição de um sistema. O processo de desenvolvimento de um sistema de software vai desde a concepção do sistema, quando requisitos são elicitados e analisados até sua concreta implementação. Conforme mostrado na Figura 1, na fase inicial do processo há um interesse em compreender a funcionalidade que o sistema deverá prover sem que haja

7 necessidade de se tomar qualquer decisão a nível estrutural ou arquitetural. Uma forma de entender a funcionalidade e serviços a serem oferecidos pelo sistema é compreendendo a funcionalidade oferecida por sistemas similares. É fácil perceber que nesta fase inicial existe uma maior gama de soluções. Por outro lado, durante a implementação, decisões já foram tomadas e uma única arquitetura é implementada. Entretanto, antes da implementação de uma arquitetura, a funcionalidade do sistema é particionada a fim de identificar possíveis subsistemas ou módulos. Isto permitirá analisar os módulos compondo o sistema bem como os requisitos, visando encontrar ou apresentar uma arquitetura que satisfaça às necessidades do sistema. Neste caso, as arquiteturas podem ser vislumbradas como referências que retratam as funcionalidades levantadas durante a decomposição funcional, acarretando numa alocação funcional a uma descrição arquitetural. Em outras palavras, a arquitetura de um sistema envolve a divisão de funções entre subsistemas ou módulos bem como os mecanismos de interação entre os módulos e a representação da informação compartilhada. As alternativas de arquiteturas disponíveis a um projetista poderiam ser descritas e classificadas, compondo assim as arquiteturas de referência. Considerando as arquiteturas de referência, poderíamos formular regras de projeto que indicariam boas e más opções de projeto. Estas regras podem ser norteadas por requisitos funcionais e não funcionais. Desse modo, este texto pode ser visto como uma forma de codificar conhecimento de projeto de software, possibilitando seu uso na educação de novos engenheiros de software bem como em atividades cotidianas de profissionais da área. Considerando o que vimos até agora, percebe-se que um arquiteto de software possui uma posição estratégica. Ele precisa ter de conhecimento profundo do domínio onde o sistema a ser desenvolvido será utilizado, das tecnologias relevantes e de processos de desenvolvimento. Além disso, o arquiteto de software deverá ter um foco nas implicações que os objetivos organizacionais terão sobre as opções técnicas, isto é, uma visão global do sistema. Ele deverá construir modelos para o problema em mãos, buscando achar uma solução e explorando abordagens alternativas. Documentação é imprescindível a fim de apresentar e discutir com os demais membros da equipe de desenvolvimento e com o gerente responsável pelo projeto. Resumindo, poderíamos dizer que um arquiteto de software deveria reunir um conjunto de habilidades a fim de realizar satisfatoriamente as funções que lhe são atribuídas. A Tabela 1 apresenta habilidades desejadas de um arquiteto de software juntamente com possíveis tarefas que este deveria realizar. Embora não tenha sido explicitamente acrescentado à tabela acima, um arquiteto deve ter facilidade em trabalhar em vários níveis de abstração (fazendo uso de técnicas de abstração) bem como ser hábil em buscar múltiplas alternativas de projeto. Ser criativo e fazer investigações devem ser habilidades inerentes ao arquiteto.

8 Habilidades desejadas compreensão profunda do domínio e tecnologias pertinentes entendimento de aspectos técnicos para desenvolver sistema com sucesso técnicas de elicitação, técnicas de modelagem e métodos de desenvolvimento entendimento das estratégias de negócios da instituição onde atua conhecimento de produtos, processos e estratégias de concorrentes Tarefas atribuídas modelagem análise de compromissos/viabilidade prototipação, simulação, realização de experimentos análise de tendências de tecnologias atuar como mentor de arquitetos novatos Tabela 1 Habilidades e tarefas de um arquiteto de software. As seções subsequentes apresenta um sumário de um conjunto de tópicos pertinentes a arquitetura de software, tais como estilos arquiteturais e análise arquitetural. Essa apresentação tem como objetivo despertar o interesse do leitor, motivando-o a conhecer mais sobre esse novo campo de estudo. A apresentação detalhada pode ser encontrada em [Silva Filho 2002]. 7. Sumário de Temas de Arquitetura de Software Na seção anterior, verificamos que a arquitetura de software de um sistema possui papel importante na obtenção de metas de qualidade e manutenibilidade. A arquitetura de software de um sistema é composta de subsistemas ou componentes (responsáveis pelo comportamento do sistema), de conectores (interligando os componentes) e de padrões de conexão (possibilitando vários tipos de interação e compartilhamento de informações entre esses componentes). Objetivando apresentar temas importantes desse novo campo de estudo ao leitor, é apresentado um sumário de 7 dos principais tópicos de arquitetura de software os quais são detalhados em [Silva Filho 2002]. A seção anterior deste texto fez uma introdução de um novo tópico de estudo, dentro da engenharia de software, o qual é visto como um aspecto crítico no projeto de qualquer sistema de software de grande porte - a arquitetura de software - caracterizando o nível arquitetural do projeto de software. Arquitetura de software é a estrutura global do sistema capturada através da organização deste descrita em elevado nível de abstração, em termos dos elementos computacionais pertinentes e das interações entre esses elementos. Numa discussão sobre a evolução tecnológica, vê-se que ao longo das três últimas décadas, a estrutura de software tem tornado-se numa das questões de maior interesse. Apesar disto, apenas recentemente a arquitetura de software tem surgido com novo campo de estudo para pesquisadores e profissionais de engenharia de software. Evidência desta tendência é visível face à grande quantidade de trabalhos em diversas áreas, tais como linguagem de interface de módulos, arquiteturas específicas de domínio, linguagens para descrição de arquiteturas, e padrões de projeto, temas estes explorados nos capítulos subsequentes.

9 Um dos principais aspectos do projeto arquitetural é o uso de padrões de organização de um sistema. Muitos desses padrões, também chamados de estilos arquiteturais, têm sido desenvolvidos ao longo do tempo à medida que projetistas de sistemas reconhecem o valor de princípios de organização bem como estruturas para certas categorias de software. Assim, no capítulo 2 de [Silva Filho 2002] é feito a introdução de um novo tópico de estudo apresentado um conjunto de estilos arquiteturais. São apontados compromissos e características associadas à várias opções de estilo arquitetural. Outro aspecto importante envolve um processo genérico de elicitação de requisitos arquiteturais. Elementos de entrada desse processo compreende os principais influenciadores do sistema, envolvendo projetista, arquiteto e usuários. A experiência do arquiteto de software é grande importância. Como saída deste processo tem-se um conjunto de requisitos funcionais identificados com o suporte de casos de uso, uma lista de requisitos arquiteturais específicos e um conjunto de cenários de qualidade. Um conjunto de atributos de projeto e atributos de qualidade (ou requisitos não funcionais) são apresentados. Esses requisitos são utilizados para desenvolver cenários de qualidade que caracteriza o uso do sistema de software em situações específicas e permite que haja a validação de uma arquitetura de software proposta. O leitor é referenciado ao capítulo 3 de [Silva Filho 2002]. Além disso, torna-se importante discutir um conjunto de propriedades de arquitetura de software consideradas intrínsecas à estrutura do sistema. Essa apresentação é feita no capítulo 4 de [Silva Filho 2002]. Estas propriedades juntamente com os requisitos arquiteturais, envolvendo requisitos não funcionais e atributos de projeto, apresentados no capítulo 3 servem de base para a análise arquitetural. Neste capítulo, dois métodos de análise arquitetural (SAAM e ATAM) são apresentados, ilustrando-se os passos a proceder a análise. Adicionalmente, discute-se o papel do requisitos não funcionais ou atributos de qualidade como mecanismo para indicar tendências na qualidade do sistema. Finalmente, considera-se como estes métodos de análise poderiam ser aplicados sob a óptica de minimizar custos e agregar benefícios. Um outro tópico abordado engloba a estrutura global ou modelo arquitetural de sistemas de software a qual pode ser estudada através do uso de dimensões de projeto. Isto é discutido do capítulo 5 de [Silva Filho 2002]. Uma dimensão de projeto identifica as opções funcionais e arquiteturais feitas durante o projeto de um sistema e classifica as alternativas existentes para cada escolha. Adicionalmente, regras em formato de narrativa são formuladas, objetivando correlacionar as opções existentes a uma dimensão de projeto. O conjunto dessas regras constituem uma ferramenta de projeto e oferece uma solução promissora para uma orientação automática de projeto arquitetural. Exemplos de regras de projeto para sistema interativos são apresentadas. O projeto arquitetural é discutido, observando-se o uso de requisitos arquiteturais e dimensões de projeto bem como sua natureza altamente iterativa. Tem havido considerável interesse em se desenvolver arquiteturas de software para domínios específicos ou DSSAs (Domain Specific Software Architectures). Uma DSSA oferece suporte a uma abordagem de desenvolvimento de domínio específico que

10 possibilita a configuração de componentes reutilizáveis. Verifica-se que uma DSSA é composta de: (i) um modelo de domínio, (ii) requisitos de referência, (iii) uma arquitetura de referência, (iv) a infra-estrutura ou ambiente de suporte, e (v) um processo de desenvolvimento. Essas DSSAs fornecem uma organização estrutural adequada para uma classe de aplicações ou domínio como, por exemplo, sistemas de informações (envolvendo processamento de dados e computação heterogênea distribuída), sistemas de tempo real, sistemas inteligentes e sistemas de comunicações. Essas classes de aplicações são apresentadas e discutidas no capítulo 6 de [Silva Filho 2002]. Adicionalmente, um conjunto de benefícios decorrentes do uso de DSSAs são apresentados. Os desenvolvedores de sistemas interativos necessitam tomar decisões de projeto, objetivando otimizar o processo de desenvolvimento desses sistemas bem como melhorar a qualidade do produto final. A tomada de decisão tem de ser feita entre metas desejáveis, embora algumas vezes conflitantes, tais como a necessidade de minimizar os futuros efeitos de alterar a tecnologia e melhorar o desempenho do tempo de execução de um sistema. O capítulo 7 apresenta aos desenvolvedores de sistemas interativos um conjunto de arquiteturas de software candidatas que podem ser utilizadas em tais sistemas. Também, discute-se os compromissos oriundos quando da escolha de uma arquitetura candidata em detrimento de outra. Finalizando, pode-se observar que a idéia principal deste texto é servir o leitor e motivá-lo a conhecer uma nova área dentro da Ciência da Computação. Adicionalmente, busca-se apresentar uma breve retrospectiva do campo de arquitetura de software discutindo os problemas iniciais de organização de sistemas de software bem como discutindo os caminhos explorados até os dias atuais. Referências Garlan, D. and Perry, D., Introduction to the Special Issue on Software Architecture, IEEE Transactions on Software Engineering, April 1995, pp Naur, P., Randell, B. and Buxton, J. (Eds.), Software Engineering: A Report on a Conference Sponsored by NATO Science Committee, NATO, Parnas, D. L., On the Criteria To Be Used in Decomposing Systems into Modules, Communications of the ACM, Vol. 15, No. 12, Dec. 1972, pp Shaw, M. Larger Scale Systems Require Higher-Level Abstractions, Proc. of the International Workshop on Software Specification and Design, Pittsburgh, PA, May 1989, pp Shaw, M. and Garlan, D. Software Architecture Perspectives on na Emerging Discipline, Prentice Hall, Upper Saddle River, New Jersey, Silva Filho, A. M., Arquitetura de Software, Editora Campus, 2002.

Relatório do GPES. Arquitetura Geral do Framework

Relatório do GPES. Arquitetura Geral do Framework Relatório do GPES UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Relatório referente ao desenvolvimento da arquitetura geral do framework de preço de venda. Realizado no período de 29 de junho de 2010 a 30

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

MODELO CMM MATURIDADE DE SOFTWARE

MODELO CMM MATURIDADE DE SOFTWARE MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014 IntroduçãoaoGuia SWEBOK Ernani Lopes Isensee 2014 Conhecendo o SWEBOK Guide to the Software Engineering Body of Knowledge IEEE Institute of Electrical and Electronic Engineers Conhecendo o SWEBOK O guia

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA 2º SEMESTRE 2002 CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software Prof. Dr. Adilson Marques da Cunha Conceitos de Qualidade CES-32 / CE-230

Leia mais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Arquitetura de Software. Silvia Regina Vergilio

Arquitetura de Software. Silvia Regina Vergilio Arquitetura de Software Silvia Regina Vergilio Atividades de Projeto Projeto Geral ou Preliminar: fase que traduz a especificação do sistema em termos da arquitetura de dados e de módulos. Descreve a organização

Leia mais

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

Leia mais

Professor: Disciplina:

Professor: Disciplina: Professor: Curso: Esp. Marcos Morais de Sousa marcosmoraisdesousa@gmail.com Sistemas de informação Disciplina: Introdução a SI 19/04 Recursos e Tecnologias dos Sistemas de Informação Turma: 01º semestre

Leia mais

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira PLANEJAMENTO E GERENCIAMENTO DE PROJETOS Lílian Simão Oliveira Contexto Gerentes lutam com projetos assustadores e com prazos finais difíceis de serem cumpridos Sistemas não satisfazem aos usuários Gastos

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE PARTE 2 LINGUAGEM DE MODELAÇÃO UML CAP. 8 UML MODELAÇÃO DA ARQUITETURA Tópicos Conceito de Diagramas Físicos Fundamentos dos Diagramas de Componentes componentes interface quando

Leia mais

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br Gerenciamento de projetos cynaracarvalho@yahoo.com.br Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina

Leia mais

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da Informação e Documentação Disciplina: Planejamento e Gestão

Leia mais

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti. TI Aplicada Aula 02 Áreas e Profissionais de TI Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma Ciência da Computação ENGENHARIA DE SOFTWARE Recursos e Cronograma Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução; Recursos; Pessoal; Software; Hardware; Outros recursos;

Leia mais

Gerenciamento de Projeto

Gerenciamento de Projeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Gerenciamento de Projeto Engenharia de Software 2o. Semestre/ 2005

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados 1021 X Salão de Iniciação Científica PUCRS Engenharia de Domínio baseada na Reengenharia de Sistemas Legados Cássia Zottis¹, Profa. Dra. Ana Paula Terra Bacelo 1 (orientadora) 1 Faculdade de Informática,

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

Mapas de Rotas Tecnológicas Roadmaps Conceitos, Tipos e Etapas de Elaboração. LELIO FELLOWS FILHO 05 de julho de 2007

Mapas de Rotas Tecnológicas Roadmaps Conceitos, Tipos e Etapas de Elaboração. LELIO FELLOWS FILHO 05 de julho de 2007 Mapas de Rotas Tecnológicas Roadmaps Conceitos, Tipos e Etapas de Elaboração LELIO FELLOWS FILHO 05 de julho de 2007 ROADMAP: do quê se trata Os mapas tecnológicos ou technology roadmaps fazem parte das

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Modelo de Qualidade CMMI

Modelo de Qualidade CMMI Modelo de Qualidade CMMI João Machado Tarcísio de Paula UFF - Campus Rio das Ostras Resumo Este trabalho tem como objetivo explicar de forma simples o que é e como funciona o modelo de qualidade CMMI,

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr. A Chave para o Sucesso Empresarial José Renato Sátiro Santiago Jr. Capítulo 1 O Novo Cenário Corporativo O cenário organizacional, sem dúvida alguma, sofreu muitas alterações nos últimos anos. Estas mudanças

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

A Gestão, os Sistemas de Informação e a Informação nas Organizações

A Gestão, os Sistemas de Informação e a Informação nas Organizações Introdução: Os Sistemas de Informação (SI) enquanto assunto de gestão têm cerca de 30 anos de idade e a sua evolução ao longo destes últimos anos tem sido tão dramática como irregular. A importância dos

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Profissões de TI Prof. MSc. Edilberto Silva edilms@yahoo.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos respectivos

Leia mais

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas Introdução Visão Geral Processos de gerenciamento de qualidade Entradas Ferramentas e Técnicas Saídas O que é qualidade? Qualidade é a adequação ao uso. É a conformidade às exigências. (ISO International

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Análise do Ambiente estudo aprofundado

Análise do Ambiente estudo aprofundado Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Disciplina Gestão Estratégica e Serviços 7º Período Administração 2013/2 Análise do Ambiente estudo aprofundado Agenda: ANÁLISE DO AMBIENTE Fundamentos Ambientes

Leia mais

Pequenas e Médias Empresas no Canadá. Pequenos Negócios Conceito e Principais instituições de Apoio aos Pequenos Negócios

Pequenas e Médias Empresas no Canadá. Pequenos Negócios Conceito e Principais instituições de Apoio aos Pequenos Negócios Pequenas e Médias Empresas no Canadá Pequenos Negócios Conceito e Principais instituições de Apoio aos Pequenos Negócios De acordo com a nomenclatura usada pelo Ministério da Indústria do Canadá, o porte

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 Índice 1. Importância do ERP para as organizações...3 2. ERP como fonte de vantagem competitiva...4 3. Desenvolvimento e implantação de sistema de informação...5

Leia mais

IDÉIAS SOBRE IMPLANTAÇÃO DE SISTEMAS EMPRESARIAIS INTEGRADOS. Prof. Eduardo H. S. Oliveira

IDÉIAS SOBRE IMPLANTAÇÃO DE SISTEMAS EMPRESARIAIS INTEGRADOS. Prof. Eduardo H. S. Oliveira IDÉIAS SOBRE IMPLANTAÇÃO DE SISTEMAS EMPRESARIAIS INTEGRADOS Introdução Nos últimos seis anos, tem ocorrido no Brasil uma verdadeira revolução na área de gestão empresarial. Praticamente, todas as grandes

Leia mais

Notas de Aula 02: Processos de Desenvolvimento de Software

Notas de Aula 02: Processos de Desenvolvimento de Software Notas de Aula 02: Processos de Desenvolvimento de Software Objetivos da aula: Introduzir os conceitos de um processo de desenvolvimento de software Definir os processos básicos Apresentar as vantagens

Leia mais

Engenharia de Software Unidade I Visão Geral

Engenharia de Software Unidade I Visão Geral Conteúdo programático Engenharia de Software Unidade I Visão Geral Prof. Francisco Gerson A. de Meneses O que é Produtos de Software Distribuição de Software Um sistema de Software O software em um cenário

Leia mais

Qualidade de Software. Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br

Qualidade de Software. Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br Qualidade de Software Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br Verificação x validação Verificação prova que o produto vai ao encontro dos requerimentos especificados no desenvolvimento

Leia mais

Apresentação 24/12/2014. Professor Wilker Bueno

Apresentação 24/12/2014. Professor Wilker Bueno Apresentação 1 Wilker Bueno Técnico em Magistério Colégio Estadual José Cipriano Varjão/GO Graduado em Administração de Empresas Universidade do Norte do Paraná Londrina/PR Especialista em RH e suas Atribuições

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

O processo de melhoria de processo

O processo de melhoria de processo O processo de melhoria de processo Prof.ª Dra. Aida Araújo Ferreira aidaferreira@recife.ifpe.edu.br Modelos de Melhoria de Processo de Software Tecnologia em Análise e Desenvolvimento de Sistemas IFPE

Leia mais

Integração dos Modelos de Gestão de TI

Integração dos Modelos de Gestão de TI Integração dos Modelos de Gestão de TI Olá servidores!! (Acredite você será!). Temos agora uma bateria com a integração dos modelos de gestão de TI, vamos rever o que vem sendo pedido? Ajeite-se na cadeira,

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

Oficina de Gestão de Portifólio

Oficina de Gestão de Portifólio Oficina de Gestão de Portifólio Alinhando ESTRATÉGIAS com PROJETOS através da GESTÃO DE PORTFÓLIO Gestão de portfólio de projetos pode ser definida como a arte e a ciência de aplicar um conjunto de conhecimentos,

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Planejamento e Gerenciamento

Ciência da Computação ENGENHARIA DE SOFTWARE. Planejamento e Gerenciamento Ciência da Computação ENGENHARIA DE SOFTWARE Planejamento e Gerenciamento Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução; Pessoas, Produto, Processo e Projeto; Gerência de

Leia mais

Implantação de um Processo de Medições de Software

Implantação de um Processo de Medições de Software Departamento de Informática BFPUG Brazilian Function Point Users Group Implantação de um Processo de Medições de Software Claudia Hazan, MSc., CFPS claudinhah@yahoo.com Agenda Introdução Processo de Medições

Leia mais

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Modernização e Evolução do Acervo de Software Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Tópicos 1. Estudo Amplo sobre Modernização 2. Visão IBM Enterprise Modernization 3. Discussão - Aplicação

Leia mais

Análise da Arquitetura de Software

Análise da Arquitetura de Software Análise da Arquitetura de Software Essencial para Arquitetura de Software De que se trata o artigo? Apresenta o uso de requisitos arquiteturais na análise da arquitetura de software e a destaca no desenvolvimento

Leia mais

Sistemas de Gerenciamento de Banco de Dados

Sistemas de Gerenciamento de Banco de Dados Sistemas de Gerenciamento de Banco de Dados A U L A : C R I A Ç Ã O D E B A N C O D E D A D O S - R E Q U I S I T O S F U N C I O N A I S E O P E R A C I O N A I S P R O F. : A N D R É L U I Z M O N T

Leia mais

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1 CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MISSÃO DO CURSO A concepção do curso de Análise e Desenvolvimento de Sistemas está alinhada a essas novas demandas

Leia mais

Sociedade da Informação

Sociedade da Informação Sociedade da Revolução Tecnológica Revolução industrial: ampliação dos músculos m dos homens em forma de equipamentos Mecanização ão. Responsável por mudanças as nas formas de produção existentes Revolução

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

Automação de Bancada Pneumática

Automação de Bancada Pneumática Instituto Federal Sul-rio-grandense Campus Pelotas - Curso de Engenharia Elétrica Automação de Bancada Pneumática Disciplina: Projeto Integrador III Professor: Renato Allemand Equipe: Vinicius Obadowski,

Leia mais

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 ÍNDICE Introdução...3 A Necessidade do Gerenciamento e Controle das Informações...3 Benefícios de um Sistema de Gestão da Albi Informática...4 A Ferramenta...5

Leia mais