231 |
Accident versus Essence: Investigating the Relationship Among Information Systems Development and Requirements Capabilities and Perceptions of Enterprise ArchitectureSalmans, Brian R. 08 1900 (has links)
Information systems (IS) are indelibly linked to the global economy and are indispensable to society and organizations. Despite the decisive function of IS in organizations today, IS development problems continue to plague organizations. The failure to get the system requirements right is considered to be one of the primary, if not the most significant, reasons for this high IS failure rate. Getting requirements right is most notably identified with Frederick Brooks' contention that requirements are the essence of what IT professionals do, all the rest being accidents or risk management. However, enterprise architecture (EA) may also provide the discipline to bridge the gap between effective requirements, organizational objectives, and the actual IS implementations. The intent of this research is to examine the relationship between IS development capabilities and requirements analysis and design capabilities within the context of enterprise architecture. To accomplish this, a survey of IT professionals within the Society for Information Management (SIM) was conducted. Results indicate support for the hypothesized relationship between IS development and requirements capabilities. The hypothesized relationships with the organizational demographics were not supported nor was the hypothesized positive relationship between requirements capabilities and EA perceptions. However, the nature of the relationship of requirements and EA provided important insight into the relationship leading to several explanations as to its meaning and contributions to research and practice. This research contributes to IS development knowledge by providing evidence of the essential role of requirements in IS development capabilities and in IS development maturity. Furthermore, contributions to the nascent field of EA research and practice include key insight into EA maturity, EA implementation success, and the role of IT professionals in EA teams. Moreover, these results provide a template and research plan of action to pursue further EA research in exploring EA maturity models and critical success factors, and the state of practice of EA in organizations
|
232 |
An interpretive case study into the application of software engineering theoryOdendaal, Maria Elizabeth 22 June 2012 (has links)
Even before software engineering was formally defined as a discipline, software projects were notorious for being behind schedule and over budget. The resulting software systems were also often described as unreliable. Researchers in the field have, over the years, theorised and proposed many standards, methods, processes and techniques to improve software project outcomes. Based on allegorical evidence, however, it would seem that these proposals are often not applied in practice. This study was inspired by a desire to probe this general theme, namely of the extent to which (if at all) software engineering theory is adopted in practice. The core of this research is an interpretive case study of a software project in the financial services industry that ran from end 2006 to mid 2008. I was one of a team of approximately 20 developers, analysts and development managers working on the project, until I left the company in 2009. Results are reported in a two-phase fashion over several themes. Firstly, the literature of recommended software engineering practices relating to a particular theme is reviewed. This is regarded as the "theory". Thereafter, the observations and evidence collected from the interpretive study in regard to the relevant theme is presented and discussed. The first theme investigated is the notion of "project outcome". Definitions of successful and failed software projects are considered from the perspective of the various stakeholders. Also considered are factors that contribute to project success or failure. After examining how case study participants viewed the project’s outcome, it is argued that the project could neither be labelled as a complete success nor as a complete failure. Two areas were identified as problematic: the requirements gathering process; and the system architecture that had been chosen. Improvements in these areas would arguably have most benefitted the project’s outcome. For this reason, recommended practices were probed in the literature relating both to requirements engineering and also to software architecture design. The case study project was then evaluated against these recommended practices to determine the degree to which they were implemented. In cases where the recommended practices were not implemented or only partially implemented, a number of reasons for the lack of adoption are considered. Of course, the conclusions made in this study as to why the recommended practices were not implemented cannot be naïvely generalized to the software engineering field as a whole. Instead, in line with the interpretive nature of the study, an attempt was made to gain in depth knowledge of a particular project, to show how that project’s individual characteristics influenced the adoption of software engineering theory, and to probe the consequences of such adoption or lack thereof. The study suggested that the complex and individual nature of software projects will have a substantial influence on the extent to which theory is adopted in practice. It also suggested that the impact such adoption will have on a project’s outcome will be critically influenced by the nature of the software project. Copyright / Dissertation (MSc)--University of Pretoria, 2012. / Computer Science / unrestricted
|
233 |
Supporting architectural design of acknowledged SoS / Suporte ao projeto arquitetural de SoS reconhecidosMarcelo Benites Gonçalves 12 December 2016 (has links)
System-of-Systems (SoS) refer to complex, large-scale, and sometimes critical software-intensive systems that has raised as a promising class of systems in several application domains. In parallel, software architectures play a significant role in the development of software-intensive systems, dealing with both functional and non-functional requirements. In particular, systematic processes to design SoS software architectures can tackle challenges from SoS development, including to handle collaboration of independent constituent systems with different owners, missions, and interests. Despite the relevance and necessity of software-intensive SoS for diverse application domains, most of their software architectures have been still developed in an ad hoc manner. In general, there is a lack of structured processes for architecting SoS, hindering the secure adoption of SoS, reducing possibilities of sharing common architectural solutions, and negatively impacting in the success rate for these systems. This thesis presents SOAR (\\General Process for Acknowledged SoS Software Architectures\") that supports the establishment of architectural design processes for acknowledged SoS. Conceived to provide different levels of support according to each SoS development context, it comprises a high level kernel that describes what must be done when architecting SoS and also three practices with specific activities and work products to guide how to perform architectural analysis, synthesis, and evaluation. To evaluate SOAR, three surveys, a viability study, and an experiment were conducted. Results achieved in these evaluation studies indicate that SOAR can positively support the instantiation of architecting processes for acknowledged SoS and, as a consequence, contribute to the development and evolution of these complex, software-intensive systems. / Sistemas-de-sistemas ou SoS (do inglês, \"Systems-of-Systems\"), são sistemas complexos de larga escala e, algumas vezes, críticos e intensivos a software que têm se mostrado uma classe de sistemas promissora em vários domínios de aplicação. Em paralelo, arquiteturas de software têm um papel importante no desenvolvimento de sistemas intensivos a software, tratando requisitos funcionais e não-funcionais. Processos sistemáticos para o design de arquiteturas de software de SoS podem lidar com desafios do desenvolvimento desses sistemas, incluindo a promoção da colaboração de sistemas constituintes independentes, envolvendo diferentes proprietários, missões e interesses. Embora SoS intensivos a software sejam relevantes e necessários em diversos domínios de aplicação, a maior parte de suas arquiteturas tem sido desenvolvidas de forma ad hoc. Há uma ausência de processos estruturados para arquitetar SoS, dificultando a adoção segura de SoS, reduzindo possibilidades de compartilhamento de soluções arquiteturais para problemas comuns e impactando negativamente no sucesso desses sistemas. Esta tese apresenta um processo geral para SoS reconhecidos chamado SOAR (do inglês, \"General Process for Acknowledged SoS Software Architectures\") que dá suporte ao estabelecimento de instâncias de processos para o design arquitetural desses sistemas. Concebido para prover diferentes níveis de suporte de acordo com o contexto de desenvolvimento de cada SoS, o SOAR é constituído por um kernel de alto nível que descreve o que precisa ser feito para arquitetar SoS e também por três práticas que descrevem atividades e produtos de trabalho para guiar como conduzir a análise, a síntese e a avaliação arquitetural. Na avaliação do SOAR, foram realizados três surveys, um estudo de viabilidade e um experimento. Os resultados obtidos indicam que o SOAR pode oferecer um suporte positivo na instanciação de processos para o design de SoS reconhecidos e, como consequência, contribuir para o desenvolvimento e a evolução destes sistemas complexos intensivos a software.
|
234 |
Uma proposta de arquitetura de software para a simulação e experimentação de veículos autônomos / A software architecture for simulation and experimentation of autonomous vehiclesTiago Cesar dos Santos 01 April 2016 (has links)
Sistemas de Transportes Inteligentes representam um imenso impacto social e aos poucos tem modificado o paradigma de mobilidade atual. Desde a década de 80, veículos autônomos vêm sendo desenvolvidos e estudados pela comunidade científica e hoje atrai o interesse de grandes empresas automobilísticas. Esses sistemas têm como objetivo a redução do número de acidentes de trânsito, aumento da eficiência dos transportes e inclusão social, sendo que neste contexto surge o projeto CaRINA. Através do desenvolvimento de uma plataforma robótica móvel pretende-se realizar a navegação completamente autônoma em ambiente urbano. Contudo, os experimentos realizados com a plataforma real são custosos, demorados e perigosos. A logística dos testes é complexa, uma vez que necessitam de local apropriado e disponibilidade de recursos. Portanto, o objetivo deste trabalho é desenvolver uma arquitetura de simulação para veículos autônomos que seja capaz de realizar experimentos em laboratório e facilite a portabilidade dos programas desenvolvidos em simulação para o veículo real. A flexibilidade da arquitetura do simulador também permite realizar experimentos utilizando múltiplos veículos. / Intelligent Transportation Systems represent a huge social impact and has gradually modified the current mobility paradigm. Since the1980s, autonomous vehicles have been developed and investigated by the scientific community and today attracts the interest of major automotive companies. These systems aims to reduce the number of traffic accidents, increase the transports efficiency and social inclusion, in this context the CaRINA project started. Through the development of amobile robotic platformis intended to performa fully autonomous navigation in urban environments. However, the experiments with the platform are costly, time-consuming and dangerous. The logistics of the tests are complex, since that require the appropriate location and availability of resources. Therefore, the purpose of this work is to develop a simulation architecture for autonomous vehicles to be able to perform experiments in the laboratory and to facilitate the portability of programs developed in simulation to the real vehicle. The flexibility of the simulator architecture also allows to perform experiments using multiple vehicles.
|
235 |
AGIRA - Um processo ágil de desenvolvimento de software baseado em arquiteturas de referência / AGIRA - An agile software development method based on reference architecturesVinícius Augusto Tagliatti Zani 04 March 2013 (has links)
A área de pesquisa de Arquitetura de Software tem recebido cada vez mais atenção dentro da Engenharia de Software, visto que arquiteturas de software têm tido papel determinante para a qualidade de sistemas de software. Nesse contexto, arquiteturas de referência surgiram como um tipo especial de arquitetura que provê diretrizes para construção de arquiteturas de software de uma dada classe de sistemas, promovendo também o reúso do conhecimento sobre um dado domínio de aplicação. Considerando sua relevância, arquiteturas de referência têm sido propostas e utilizadas com sucesso em diferentes domínios. Em outra perspectiva, a indústria de software tem cada vez mais adotado métodos ágeis de desenvolvimento de software, visando, entre outros aspectos, diminuir o tempo de entrega de seus produtos. De um modo geral, esses métodos têm como característica comum ciclos curtos de produção e entrega no desenvolvimento de software. Consequentemente, minimizam a quantidade de documentação gerada no processo. Dessa forma, parece ser conflitante a adoção de arquiteturas de referência no contexto de métodos ágeis. No entanto, iniciativas já podem ser encontradas, apesar de haver uma carência de trabalhos que propõem a utilização de ambas de forma integrada. Dessa forma, o principal objetivo desse projeto de mestrado foi o estabelecimento um processo ágil de desenvolvimento de software, denominado AGIRA, que explora as vantagens do uso de arquiteturas de referência. A avaliação de tal processo foi realizada em duas frentes. A primeira foi por meio da condução de um action case com alunos de uma disciplina de Arquitetura de Software da Universidade de Bolzano. A segunda frente foi conduzida através de um questionário com especialistas da indústria. Resultados alcançados mostram que o AGIRA tem potencial para ser utilizado pela indústria e que, dessa forma, arquiteturas de referência podem ser aplicadas juntamente com métodos ágeis / Software architectures and reference architectures have been playing a significant role in determining the success of software systems. In particular, reference architectures have emerged, achieving well-recognized understanding of specific domains, promoting reuse of design expertise and facilitating the development of systems. In another perspective, agile methods have been widely adopted as a promising iterative, incremental and collaborative software development process, including by the software industry. However, it is observed that reference architectures have not been widely used together with agile methods. Therefore, the main advantage of reference architectures, i.e., the reuse of knowledge contained in such architectures, has not been combined with the agility promoted by these methods. In this sense, the main objective of this master´s project was to establish an agile software development process, named AGIRA, that aims at exploring the advantages of the use of reference architectures. The evaluation of the process was done in two parts. The first one was through the conduction of an action case with students of a Software Architecture course in the University of Bolzano. The second part of the evaluation was done in the industry context, through the conduction of a survey with experts in software architecture and agile methods. Results point out that AGIRA has potential to be used by the industry and, consequently, reference architectures can be used in the context of agile methods
|
236 |
RAModelTI: agregando informações de teste de software no Modelo para Arquiteturas de Referência (RAModel) / RAModelTI : towards embodying test information into the Reference Architecture Model (RAModel)Nilton Mendes de Souza 12 September 2017 (has links)
Arquitetura de software e teste de software são importantes áreas com o objetivo comum de prover meios para que sistemas de software sejam desenvolvidos com alta qualidade. Foi constatado, por meio de um mapeamento sistemático, que existem poucos estudos relacionando essas duas áreas de modo que uma possa contribuir para a outra, principalmente em arquiteturas de referência e teste de software. Esse projeto tem por objetivo estender o modelo para arquiteturas de referência (RAModel), para que arquiteturas de referência sejam estabelecidas com informações de teste de software. Assim, além de promover padronização, uniformização e reúso a informações relacionadas a arquiteturas de software, promove-se também o reúso, a padronização e a uniformização das informações de teste de software no desenvolvimento das soluções para um dado domínio de aplicação. Para isso, elementos de teste relacionados ao planejamento de teste foram extraídos do TMMi e da norma ISO/IEC/IEEE 29119 e inseridos no RAModel, definindo, assim, o RAModelT . Dessa forma, a atividade de teste é incorporada aos estágios iniciais do desenvolvimento de software. Um estudo de viabilidade realizado para avaliar a extensão do RAModelT e um exemplo de aplicação são apresentados. / Software architecture and software testing are important areas with the common goal of providing the means to develop high-quality software systems. It was found through a systematic mapping that there are few studies relating these two areas so that one can contribute to the other, especially in reference architectures and software testing. This project aims at extending the Reference Architecture Model (RAModel), so that reference architectures are established with software test information. Thus, in addition to promoting standardization, standardization, and reuse of information related to software architectures, it is also promoted the reuse, standardization, and standardization of software test information in the development of solutions for a given application domain. For this, test elements related to the test planning were extracted from the TMMi and the ISO/IEC/IEEE 29119 standard and inserted into the RAModel, thus defining the RAModelT . In this way, the test activity is incorporated into the early stages of software development. A feasibility study performed to evaluate the extent of the RAModelT and an application example are presented.
|
237 |
Distributed Queries: An Evaluation of the Microservice ArchitectureHolmström, Jesper January 2020 (has links)
The microservice architecture is a new architectural style that structures an application into a set of small, independently deployable microservices, as opposed to the traditional monolith approach with a single executable. The microservice architecture is a distributed system that results in new challenges and increased complexity. This study expands the previous related research and investigates the implications of using the one-database-per-service pattern and a solution to the introduced need of queries spanning multiple microservices. In this thesis, two applications are presented, one with the microservice architecture and one monolithic counterpart, which are compared in terms of response time and throughput. As a solution for the distributed queries, the API Composition pattern was chosen. The results of the experiments conclude in a greater understanding of the difficulty in distributed queries as well as the benefits and limitations of the API composition pattern. It shows that the API composition pattern is a valid solution for distributed queries. However, it does perform worse in terms of response time and throughput than the monolith prototype. This results in the insights that one must carefully choose, with respect to the requirements of the system, when to apply it.
|
238 |
Architectural Implications of Serverless and Function-as-a-Service / 无服务器和功能服务化的架构含义Andell, Oscar January 2020 (has links)
Serverless or Function-as-a-Service (FaaS) is a recent architectural style that is based on the principles of abstracting infrastructure management and scaling to zero, meaning application instances are dynamically started and shut down to accommodate load. This concept of no idling servers and inherent autoscaling comes with benefits but also drawbacks. This study presents an evaluation of the performance and implications of the serverless architecture and contrasts it with the so-called monolith architectures. Three distinct architectures are implemented and deployed on the FaaS platform Microsoft Azure Functions as well as the PaaS platform Azure Web App. Results were produced through experiments measuring cold starts, response times, and scaling for the tested architectures as well as observations of traits such as cost and vendor lock-in. The results indicate that serverless architectures, while it is subjected to drawbacks such as vendor lock-in and cold starts, provides several benefits to a system such as reliability and cost reduction.
|
239 |
Software Source Code Readability : A Mapping StudyBexell, Andreas January 2020 (has links)
Background: Building software systems is an iterative and collaborative project, requiring developers not only to write code, but to maintain, expand, fix and enhance code already written. In order to do so, reading code is a central activity, and therefore it is important that code is written in a manner that makes it readable. Objectives: To map the state-of-the-art of software source code readability and find the definitions and methods to measure it, and provide an overview of the kinds of factors considered to impact software source code readability, and to compare this to practitioners' experiences of software source code readability. Methods: A systematic literature review of 76 studies in 72 papers from the last 40 years, explicitly concerning software source code readability, is compared with the results of five interviews with practitioners, of which three are case studies of commits explicitly targeting readability. Results: While individual factors' contribution towards readability is studied with some success, more general modelling studies often suffer from methodological problems, making them difficult to apply in practice or in studies of the correlation between software source code readability and other metrics. Conclusions: Key elements of the state-of-the-art have been implemented in practice, however, readability models are not used by the practitioners in this study. Several factors mentioned by practitioners are not considered by the studies included, and further qualitative study of software development practitioners may be needed.
|
240 |
[en] A DEONTIC APPROACH TO DEVELOP AUTONOMOUS NORMATIVE AGENTS / [pt] UMA ABORDAGEM DEONTICA PARA O DESENVOLVIMENTO DE AGENTES NORMATIVOS AUTÔNOMOSBALDOINO FONSECA DOS SANTOS NETO 14 June 2012 (has links)
[pt] Normas sociais têm se tornado uma das abordagens mais promissoras
para garantir uma ordem social desejável em sistemas multiagentes. Nestes
sistemas, agentes autônomos trabalham a fim de atingir objetivos comuns
ou diferentes. Normas regulam o comportamento de tais agentes definindo
obrigações e proibições, fornecendo recompensas e estabelecendo punições a
fim de incentivá-los a se comportarem de acordo com as normas. Embora o
uso de normas seja um mecanismo promissor para regular o comportamento
de agentes, o desenvolvimento de agentes capazes de atuar em um sistema,
adotar as normas e lidar com as mesmas autonomamente tem sido mais
difícil do que o desenvolvimento de agentes tradicionais. A razão para esta
dificuldade é a falta de mecanismos que possibilitem o desenvolvimento de
agentes autônomos capazes de lidar com questões relacionadas a normas. Nesta
tese, apresenta-se uma abordagem para desenvolvimento de agentes capazes
de lidar autonomamente com questões normativas. Para tanto, a abordagem
fornece um modelo arquitetural para apoiar um agente no raciocínio sobre
as normas. Tal modelo estende o modelo Belief-Desire-Intention adicionando
um conjunto de funções que auxiliam o agente na adoção de novas normas,
na verificação da ativação, desativação, cumprimento e violação das normas,
na seleção de quais normas devem ser cumpridas ou violadas, na detecção
e resolução de conflitos entre normas, na geração de novos objetivos e na
seleção de objetivos, planos e intenções, levando em consideração as normas
do sistema. Além disto, a abordagem fornece os mecanismos necessários
para implementação de agentes projetados a partir do modelo arquitetural
proposto. Dois cenários são utilizados para exemplificar a abordagem proposta.
O primeiro está relacionado ao planejamento de missões de resgate reguladas
por normas. O segundo está relacionado ao suporte ao desenvolvimento de
software regulado por normas. Por fim, experimentos são apresentados que
demonstram a importância de desenvolver agentes a partir da abordagem
proposta seja na visão do agente ou da sociedade. / [en] Social norms have become one of the most promising approaches toward
ensuring a desirable social outcome in multi-agent systems. In these systems,
autonomous and heterogeneous agents work toward common or different goals.
Norms regulate the behaviour of these agents by defining obligations and
prohibitions, and by creating rewards and penalties to encourage the agents to
behave so as to meet these norms. Although the use of norms is a promising
mechanism to regulate the agents’ behavior, the development of agents able to
join an agents society, to adopt the norms and to work with them autonomously
has shown to be significantly more challenging than traditional agents. The
reason for this difficulty is the lack of agent models that allow developing of
autonomous agents able to cope with issues related to norms. In this thesis,
we introduce an approach to develop agents able to deal with normative
questions in an autonomous way. The approach extends the Belief-Desire-
Intention model including functions that assist the agent in adopting new
norms, in verifying norm activation, deactivation, fulfillment and violation, in
selecting the norms to be fulfilled or violated by the agent, in identifying and
overcoming conflicts among norms, in generating new goals from norms and
in selecting goals, plans and intentions while taking into account the system
norms. In addition, the approach provides mechanisms that are necessary
to implement agents designed from the proposed architectural model. Two
scenarios are used in order to exemplify the proposed approach. The first is
related to the planning of rescue missions regulated by norms. The second is
related to the support to software development regulated by norms. Finally,
experiments that demonstrate the importance of developing agent by using the
proposed architectural model, both in the agent and society point of view, are
presented.
|
Page generated in 0.0276 seconds