Sobre a Importância da Arquitetura de Software no Desenvolvimento de Sistemas de Software
|
|
- Aníbal Nunes Gama
- 8 Há anos
- Visualizações:
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 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 maisSistemas 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 maisProcessos 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 maisEngenharia 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 maisENGENHARIA 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 maisNa 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 maisPROCESSO 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 maisEngenharia 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 maisMODELO 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 maisUFG - 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 maisTó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 maisRoteiro 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 maisConcepçã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 maisRequisitos 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 maisIntroduçã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 maisDesenvolvendo 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 maisEngenharia 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 maisProcessos 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 maisGARANTIA 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 maisAUTOR: 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 maisCES-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 maisEngenharia 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 maisFeature-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 maisArquitetura 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 maisUniversidade 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 maisProjeto 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 maisMó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 maisProfessor: 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 maisPLANEJAMENTO 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 maisArquitecturas 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 maisUNIVERSIDADE 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 maisRequisitos 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 maisAula 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 maisARCO - 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 maisAPLICACAÇÃ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 maisMetodologias 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 maisENGENHARIA 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 maisGerenciamento 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 maisUniversidade 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 maisTI 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 maisCiê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 maisGerenciamento 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 maisAná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 maisUNIVERSIDADE 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 maisEngenharia 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 maisPó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 maisdo 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 maisMapas 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 maisDadas 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 maisModelo 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 maisAPOO 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 maisMÓ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 maisIntroduçã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 maisPadrõ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 maisAná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 maisGestã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 maisc. 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 maisA 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 maisIntroduçã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 maisIntroduçã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 maisGlossá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 maisMUDANÇ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 maisPó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 maisFá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 maisFACULDADE 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 maisOrientaçã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 maisAná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 maisPequenas 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 mais2 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 maisGESTÃ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 maisIDÉ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 maisNotas 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 maisEngenharia 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 maisQualidade 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 maisApresentaçã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 maisIntroduçã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 maisDIMENSIONANDO 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 maisO 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 maisIntegraçã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 maisO 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 maisEngenharia 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 maisIntroduçã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
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 maisOficina 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 maisCiê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 maisImplantaçã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 maisModernizaçã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 maisAná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 maisSistemas 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 maisCENTRO 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 maisSociedade 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 maisGUIA 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 maisExtraçã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 maisAutomaçã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 maisSISTEMAS 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