998 resultados para Desenvolvimento de software
Resumo:
Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos científicos e tecnológicos do desenvolvimento de software. No desenvolvimento de software, a fase de especificação dos requisitos é uma das mais importantes, visto que erros não detectados nesta são propagados para as fases posteriores. Quanto mais avançado estiver o desenvolvimento, mais caro custa reparar um erro introduzido nas fases iniciais, pois isto envolve reconsiderar vários estágios do desenvolvimento. A prototipação permite que os requisitos do software sejam validados logo no início do desenvolvimento, evitando assim a propagação de erros. Paralelamente, a utilização de métodos formais visa revelar inconsistências, ambigüidades e falhas na especificação do software, que podem caso contrário, não serem detectadas. Usar a prototipação de software juntamente com uma notação formal enfatiza a especificação do problema e expõe o usuário a um sistema “operante” o mais rápido possível, de modo que usuários e desenvolvedores possam executar e validar as especificações dos requisitos funcionais. O objetivo principal deste trabalho é instanciar uma técnica da área de Prototipação de Software que capacite o engenheiro de software gerar automaticamente protótipos executáveis a partir de especificações formais de tipos abstratos de dados, na notação PROSOFT-algébrico, visando a validação dos requisitos funcionais logo no início do desenvolvimento do software. Para tanto foi proposto um mapeamento da linguagem PROSOFT-algébrico para OBJ. Como OBJ possui um eficiente sistema de reescrita de termos implementado, a utilização deste propicia a prototipação de tipos abstratos de dados, especificados em PROSOFT-algébrico. Os componentes envolvidos na definição deste trabalho, assim como o mapeamento entre as linguagens, foram especificados algebricamente e implementados no ambiente de desenvolvimento de software PROSOFT. A implementação serviu para validar o mapeamento proposto através de dois estudos de caso. Por fim, são apresentadas as conclusões alcançadas e as atividades adicionais vislumbradas a partir do trabalho proposto.
Resumo:
A tecnologia de processos de desenvolvimento de software ´e uma importante área de estudo e pesquisas na Engenharia de Software que envolve a construção de ferramentas e ambientes para modelagem, execução, simulação e evolução de processos de desenvolvimento de software, conhecidos como PSEEs (do inglês: Process-Centered Software Engineering Environments). Um modelo de processo de software é uma estrutura complexa que relaciona elementos gerenciáveis (i.e. artefatos, agentes, e atividades) que constituem o processo de software. Esta complexidade, geralmente, dificulta a percepção e entendimento do processo por parte dos profissionais envolvidos, principalmente quando estes profissionais têm acesso apenas a uma visão geral do modelo. Desta forma, há necessidade de mecanismos para visualização e acompanhamento dos processos, fornecendo informações adequadas aos diferentes estados, abstraindo as informações relevantes tanto as fases presentes no processo de desenvolvimento quanto ao agente envolvido, além de facilitar a interação e o entendimento humano sobre os elementos do processo. Estudos afirmam que a maneira como são apresentadas as informações do modelo de processo pode influenciar no sucesso ou não do desenvolvimento do software, assim como facilitar a adoção da tecnologia pela indústria de software. Este trabalho visa contribuir nas pesquisas que buscam mecanismos e cientes para a visualização de processos de software apresentando a abordagem APSEE-Monitor destinada ao apoio a visualização de processos de software durante a sua execução. O principal objetivo desta pesquisa é apresentar um modelo formal de apoio a visualização de processos capaz de extrair dados de processos e organizá-los em sub-domínios de informações de interesse do gerente de processos. Neste trabalho aplica-se o conceito de múltiplas perspectivas como uma estratégia viável para a abstração e organização das informações presentes no modelo de processos. A solução proposta destaca-se por estender a definção original de perspectivas e fornecer uma estratégia de extração dos dados através de uma especificação formal utilizando o paradigma PROSOFT-Algébrico. Além disso, o trabalho apresenta um conjunto de requisitos relativos a interação entre gerentes de processos e PSEEs, a definição formal das perspectivas, uma gramática que define a linguagem de consulta aos processos, e um protótipo da aplicação.
Resumo:
O gerenciamento de riscos constitui atualmente um dos principais fatores relacionados ao baixo índice de sucesso nos projetos de desenvolvimento de software. Neste contexto, dentre outras contribuições relevantes, pode-se considerar o levantamento de ações preventivas que auxiliem os profissionais da área de desenvolvimento de sistemas para a obtenção dos resultados definidos. Mais especificamente, de maneira a cobrir as principais situações problemáticas, é importante considerar ações relacionadas ao comprometimento da gerência sênior e do usuário, à indefinição e alteração de escopo, ao perfil e volatilidade da equipe, e ao orçamento e cronograma do projeto. A partir da utilização de questionários e da realização de entrevistas com profissionais da área, identificaram-se, para cada situação problemática de risco, as ações adotadas por empresas da área de tecnologia da informação e empresas de outras áreas de negócio, como telecomunicação, indústria de computadores, educação e financeira. Foi também analisado o modo de posicionamento das empresas (preventivo ou corretivo) nas situações de risco, acompanhado de uma apreciação relacionada tanto ao ambiente das empresas como às categorias de conceitos desenvolvidos pela literatura especializada. Espera-se, com os resultados deste trabalho, auxiliar as empresas que lidam com projetos de desenvolvimento de software na estruturação de seus processos de gerenciamento de risco.
Resumo:
The aim of this case study was to investigate how the evolutionary process of the development of software, especially the change of paradigm for the factory software, has affected the structure of the Board of Relacionamento, Desenvolvimento e Informações - DRD at a public company called Dataprev and also reflecting or not a return to the model taylorist-fordist of the organization on production. For this study, there were interviews and a questionnaire applied, as well as documentary and literature review on the following topics: organizational structure, factory software, taylorism and fordism. From the data collected and analyzed, in the perspective studied, it was understood that there is not a return to the model taylorist-fordist to organize the production in the process of adopting the concept of a software factory in Dataprev. In addition to that, there was a flexibility in the organizational structure of its units of development - the softwares factories Dataprev.
Resumo:
As Brazil wants to be perceived as a competitor in providing computer applications and system development services in the global market, the concept of Software Factory gains importance. The metaphor for the 'Factory', when applied to the activity of software development, is used to describe organizations which produce software with a minimum quality standard and at competitive costs. However, the term 'Factory' recalls Fordist concepts, which have been challenged for a few decades in the manufacturing industry. This study analyzed university curricula and how students and teachers perceive the concept of Software Factory and assessed them in relation to the Fordism ------------ post-Fordism /continuum/. It was observed that some of the teachers who have influence over curricula define Software Factories according to Fordist concepts. It was also observed that, despite opportunities for improvements, curricula are adequately structured with regards to the skills a professional at these organizations must possess. We conclude that education provided at the programs being analyzed is adequate, but that it must be supplemented by companies or by the professionals themselves so that the knowledge acquired in the programs may be put in practice.
Resumo:
Desde o início dos anos 90, uma tendência no desenvolvimento de software tem despertado a atenção dos pesquisadores: a distribuição do desenvolvimento. Esse fenômeno é um reflexo de mudanças sociais e econômicas, que têm levado organizações a distribuírem geograficamente seus recursos e investimentos, visando aumento de produtividade, melhorias na qualidade e redução de custos no desenvolvimento de software. Em virtude dessa distribuição, equipes geograficamente dispersas cooperam para a obtenção de um produto final de software. A distribuição física das equipes agrava problemas já inerentes à gerência do processo de software. O desenvolvimento de ambientes, modelos e ferramentas para gerenciar processos conduzidos nesse contexto é um desafio cada vez mais importante nos estudos em Tecnologia de Processos de Software. Os ambientes de suporte a processos devem prover infra-estrutura para processos distribuídos. Este trabalho propõe um modelo de gerência de processos distribuídos, denominado APSEE-Global, que estende o APSEE, um ambiente de engenharia de software centrado no processo desenvolvido no contexto do grupo de pesquisa Prosoft, provendo um conjunto de funcionalidades para suporte a processos distribuídos. O APSEE-Global viabiliza o aumento da autonomia das equipes que participam do projeto, pela possibilidade de adotarem modelos de processo distintos e pela gerência descentralizada do processo de desenvolvimento; permite a documentação e facilita a análise e a gerência das relações entre as equipes; e provê um canal de comunicação formal para acompanhamento da execução do processo distribuído. Os diferentes componentes do APSEE-Global foram especificados formalmente, o que constitui uma base semântica de alto nível de abstração que deu origem à implementação de um protótipo integrado ao ambiente de desenvolvimento de software Prosoft. A especificação do modelo foi realizada pela combinação dos formalismos Prosoft-Algébrico e Gramática de Grafos.
Resumo:
O crescimento experimentado pela indústria do software nas últimas décadas, trouxe consigo o aumento das exigências do mercado. É exigido das organizações de software, que os sistemas sejam construídos de acordo com prazo e custos determinados, obedecendo-se certos padrões de qualidade. Para atender tais exigências e assim obter o diferencial competitivo, tornou-se necessário investir no processo de desenvolvimento de software, dada a relação cada vez mais evidente entre a qualidade do produto de software e a eficiência e eficácia do processo de desenvolvimento adotado. Uma estratégia na busca pela maturidade em termos de processos é a definição e adoção de um processo único a ser seguido em todos os projetos de uma organização, denominado processo padrão. Levando-se em consideração a singularidade de cada novo projeto de software, é natural presumir que o processo padrão tenha de ser adaptado para as necessidades específicas de cada situação, de forma a ser aceito, ter seu uso maximizado e garantir a qualidade do software a ser produzido. Este trabalho apresenta, assim, o APSEE-Tail, um modelo para apoiar o engenheiro de processos na tarefa de adaptar o processo padrão de uma organização de software para as particularidades de cada um de seus projetos, possibilitando maior efetividade e eficiência no uso do mesmo. Sua abordagem de adaptação é livre, orientada à atividades e baseada no raciocínio, através da combinação das técnicas de interpretação de regras e CBR (Case Based Reasoning), sobre o conhecimento necessário. Tal conhecimento, neste trabalho, é agrupado em três categorias: diretrizes de adaptação do processo padrão, tipos de característica usados para definir os projetos de software e informações sobre adaptações realizadas anteriormente. Os diferentes componentes envolvidos na definição do APSEE-Tail foram especificados algebricamente, o que constituiu uma base semântica de alto nível de abstração e possibilitou a construção de um protótipo, implementado no ADS (Ambiente de Desenvolvimento de Software) Prosoft-Java e fracamente acoplado ao APSEE, um ambiente de engenharia de software centrado no processo também prototipado no Prosoft-Java, tornando-se assim parte do meta-processo adotado pelo mesmo. O texto apresenta ainda alguma fundamentação teórica sobre a área de Adaptação de Processos de Software, considerações sobre as abordagens pesquisadas, enfatizando as que mais influenciaram o APSEE-Tail, e um exemplo de aplicação do protótipo construído. Por fim, são apresentadas as contribuições e limitações da proposta, na visão do autor, bem como os trabalhos futuros vislumbrados.
Resumo:
Atualmente, um dos grandes desafios para qualquer desenvolvedor de software é projetar um sistema que reutilize ao máximo elementos de código e de projeto existentes, visando diminuir o tempo e o esforço exigidos na produção do software. Entre as inúmeras formas de possibilitar reuso no contexto do desenvolvimento segundo o paradigma da orientação a objetos, destaca-se a abordagem de frameworks. A grande importância da documentação de software utilizada no processo de desenvolvimento aliada às características de frameworks serviram como motivação para este trabalho. A documentação dentro do processo de desenvolvimento de software não faz parte de uma fase definida, mas ocorre durante toda sua existência, em paralelo com outras fases do ciclo de vida. A abordagem de frameworks dentro deste contexto enfoca o tratamento de templates e definições das características dos artefatos de software (incluindo não somente código mas também produtos de análise, projeto, frameworks, componentes, diagramas, entre outros), facilitando e acelerando o processo de documentação. Um framework, devido a suas características peculiares que serão examinadas e explicitadas no trabalho, contém uma série de informações que podem, além de apoiar a documentação, ser úteis para produção de outros artefatos (por exemplo, planejamentos de teste, scripts de bancos de dados, padrões de codificação, entre outros) do processo de desenvolvimento. Assim, em um processo de desenvolvimento evolutivo, que utiliza a geração de artefatos como recurso, a manutenção pode ser integralmente realizada somente na especificação e não diluída nos artefatos gerados. O objetivo deste trabalho é investigar, propor e desenvolver uma ferramenta de documentação e geração de artefatos de software, denominado FrameworkDoc. O termo documentação de software aqui utilizado se refere a documentação de desenvolvimento de software, incluindo artefatos, arquiteturas, ferramentas entre outros. Serão abordados dois principais aspectos: primeiramente, a geração automática de documentação dentro do processo de desenvolvimento de software e depois a geração de outros artefatos deste processo, a partir das definições de alto nível disponíveis através do framework. Exemplos de aplicações do FrameworkDoc em projetos reais são apresentados. No entanto, os documentos e artefatos de software considerados foram definidos de forma suficientemente genérica para serem aproveitados em outros contextos.
Resumo:
A capacidade das empresas multinacionais (EMN) de se adaptar às oportunidades e ameaças de seus mercados é um dos fatores estratégicos de maior importância na dinâmica dos negócios atuais. Essa necessidade de adaptação não se restringe apenas aos países desenvolvidos, mas também aos países emergentes. Nesse contexto faz-se necessário a compreensão da estratégia de empresas multinacionais dos países emergentes através do estudo das capacidades dinâmicas e de seus modelos de gestão. Assim este trabalho teve como objetivo geral analisar o desenvolvimento e a transferência das capacidades dinâmicas entre matriz e subsidiárias. Serviu como fundamento teórico deste estudo, a visão baseada em recursos, a ambidestralidade das organizações (exploration x explotation), as capacidades dinâmicas e os modelos estratégicos de gestão de EMNs. A definição escolhida para as capacidades dinâmicas, “habilidades sistemáticas da organização de integrar, construir e reconfigurar suas competências organizacionais de acordo com as ameaças e oportunidades do mercado”, serviu como base para toda a pesquisa. Em termos metodológicos foi utilizada a abordagem qualitativa, através de estudo de caso único como método de pesquisa. Após definição de alguns critérios (EMNs brasileiras, setor de tecnologia, mais de uma subsidiária e atuação em diversos segmentos) para definição da organização a ser estudada, optou-se pela escolha da empresa Alpha. A coleta de dados sobre a Alpha foi baseada em múltiplas fontes, através de informações secundárias e entrevistas em profundidade realizadas com pessoas chaves da organização para investigar de forma direta os processos, competências e recursos existentes na organização. Foram encontradas duas capacidades dinâmicas na Alpha: “processo de desenvolvimento de software” e “desenvolvimento de novos serviços”. A primeira CD está presente na matriz e nas subsidiarias. Sua transferência se deu de maneira integral a todas as subsidiárias e teve como fatores antecedentes à integração e o contexto competitivo. A segunda CD está presente somente na matriz e teve como principais fatores antecedentes a orientação empreendedora e as iniciativas. Sua transferência não ocorreu para qualquer subsidiária. Após a análise dos resultados pôde-se concluir que as duas capacidades dinâmicas, em especial a CD processo de desenvolvimento de software, é geradora de vantagem competitiva para a Alpha.
Resumo:
Este relatório pretende apresentar tanto o projeto desenvolvido assim como a ex-periência vivenciada durante a realização do estágio curricular de conclusão de curso do Mestrado em Engenharia Informática, da Universidade da Madeira. O objetivo de principal foi de desenvolver as minhas áreas de conhecimento, de forma a torna-las em ferramentas úteis para o âmbito profissional. Durante este estágio, foi desenvolvido um projeto de veiculação de anúncios pu-blicitários para toda a rede da empresa ad8biz. Este projeto aborda métodos e técnicas publicitárias assim como, através de Engenharia Reversa, uma possível implementação. Na realização deste projeto foram também abordadas áreas como a Engenharia de Software e Gestão de Projetos, pois foram considerados aspetos relacionados com boas práticas e metodologias de desenvolvimento de software, renegociação de requisitos, e gestão de tarefas.
Resumo:
A comunicação, escrita do ponto de vista do utente que, por dever de ofício, é avaliador implícito da adequabilidade educativa de software, pretende reflectir sobre alguns dos pressupostos que devem condicionar o design de software "educativo". Discute, sucintamente, esses pressupostos à luz de um enfoque construcionista e de algumas das contribuições consideradas relevantes oriundas da teoria histórico-cultural da actividade.
Resumo:
Sistemas Integrados de Gestão ou Enterprise Resources Planning - ERP possibilitam o processamento das informações necessárias em uma empresa usando um único banco de dados. Muito tem se escrito sobre este tipo de software, abordando questões como o alto custo da aquisição de licenças, e a dependência de consultoria para a sua adaptação e implantação nas empresas. Atualmente vem crescendo o desenvolvimento e uso de ERP Livre de Código Aberto (FOS-ERP). Porém verifica-se que este tipo de sistema ainda não é suficientemente explorado, mesmo no meio acadêmico. Este artigo relata alguns trabalhos publicados sobre o assunto e levanta questões que devem ser tratadas por pesquisadores e demais interessados para adequar e viabilizar o uso desses sistemas conforme a realidade nacional. Assim, após uma introdução ao tema, são apresentadas algumas diferenças entre o FOS-ERP e seus equivalentes proprietários (Proprietary ERP ou P-ERP) em termos de modelos de negócios, seleção, customização e evolução. em seguida são elencados alguns desafios e oportunidades que o FOS-ERP pode oferecer a usuários, fornecedores, pesquisadores e colaboradores individuais. Concluindo, este artigo busca ampliar a discussão sobre FOS-ERP, destacando fatores tais como seu potencial de inovação tecnológica e estratégias de negócios.
Resumo:
Software Product Line (SPL) consists of a software development paradigm, whose main focus is to identify features common and variability among applications in a specific domain. An LPS is designed to attend all products requirements from its product family. These requirements and LPS may have changes over time due to several factors, such as evolution of product requirements, evolution of the market, evolution of SLP process, evolution of the technologies used to develop the products. To handle these changes, LPS should be modified and evolve in order to not become obsolete, and adapt itself to new requirements. The Changes Impact Analysis is an activity that understand and identify what consequences these changes are cause on LPS. Impact Analysis on LPS may be supported by traceability relationships, which identify relationships between artefacts created during all phases of software development. Despite the solutions of change impact analysis based on traceability for software, there is a lack of solutions for assessing the change impact analysis based on traceability for LPS, since existing solutions do not include estimates specific to the artefacts of LPS. Thus, this paper proposes a process of change impact analysis and an tool for assessing the change impact through traceability of artefacts in LPS. For this purpose, we specified a process of change impact analysis that considers artifacts produced during the development of LPS. We have also implemented a tool which allows estimating and identifying artefacts and products of LPS affected from changes in other products, changes in class, changes in features, changes between releases of LPS and artefacts related to changes in core assets and variability. Finally, the results were evaluated through metrics
Resumo:
Software Products Lines (SPL) is a software engineering approach to developing software system families that share common features and differ in other features according to the requested software systems. The adoption of the SPL approach can promote several benefits such as cost reduction, product quality, productivity, and time to market. On the other hand, the SPL approach brings new challenges to the software evolution that must be considered. Recent research work has explored and proposed automated approaches based on code analysis and traceability techniques for change impact analysis in the context of SPL development. There are existing limitations concerning these approaches such as the customization of the analysis functionalities to address different strategies for change impact analysis, and the change impact analysis of fine-grained variability. This dissertation proposes a change impact analysis tool for SPL development, called Squid Impact Analyzer. The tool allows the implementation of change impact analysis based on information from variability modeling, mapping of variability to code assets, and existing dependency relationships between code assets. An assessment of the tool is conducted through an experiment that compare the change impact analysis results provided by the tool with real changes applied to several evolution releases from a SPL for media management in mobile devices
Resumo:
The component-based development of systems revolutionized the software development process, facilitating the maintenance, providing more confiability and reuse. Nevertheless, even with all the advantages of the development of components, their composition is an important concern. The verification through informal tests is not enough to achieve a safe composition, because they are not based on formal semantic models with which we are able to describe precisally a system s behaviour. In this context, formal methods provide ways to accurately specify systems through mathematical notations providing, among other benefits, more safety. The formal method CSP enables the specification of concurrent systems and verification of properties intrinsic to them, as well as the refinement among different models. Some approaches apply constraints using CSP, to check the behavior of composition between components, assisting in the verification of those components in advance. Hence, aiming to assist this process, considering that the software market increasingly requires more automation, reducing work and providing agility in business, this work presents a tool that automatizes the verification of composition among components, in which all complexity of formal language is kept hidden from users. Thus, through a simple interface, the tool BST (BRIC-Tool-Suport) helps to create and compose components, predicting, in advance, undesirable behaviors in the system, such as deadlocks