994 resultados para software production
Resumo:
"UILU-ENG 81 1702"--Cover.
Resumo:
RESUMO: Hoje em dia o software tornou-se num elemento útil na vida das pessoas e das empresas. Existe cada vez mais a necessidade de utilização de aplicações de qualidade, com o objectivo das empresas se diferenciarem no mercado. As empresas produtoras de software procuram aumentar a qualidade nos seus processos de desenvolvimento, com o objectivo de garantir a qualidade do produto final. A dimensão e complexidade do software aumentam a probabilidade do aparecimento de não-conformidades nestes produtos, resultando daí o interesse pela actividade de testes de software ao longo de todo o seu processo de concepção, desenvolvimento e manutenção. Muitos projectos de desenvolvimento de software são entregues com atraso por se verificar que na data prevista para a sua conclusão não têm um desempenho satisfatório ou por não serem confiáveis, ou ainda por serem difíceis de manter. Um bom planeamento das actividades de produção de software significa usualmente um aumento da eficiência de todo o processo produtivo, pois poderá diminuir a quantidade de defeitos e os custos que decorrem da sua correcção, aumentando a confiança na utilização do software e a facilidade da sua operação e manutenção. Assim se reconhece a importância da adopção de boas práticas no desenvolvimento do software. Para isso deve-se utilizar uma abordagem sistemática e organizada com o intuito de produzir software de qualidade. Esta tese descreve os principais modelos de desenvolvimento de software, a importância da engenharia dos requisitos, os processos de testes e principais validações da qualidade de software e como algumas empresas utilizam estes princípios no seu dia-a-dia, com o intuito de produzir um produto final mais fiável. Descreve ainda alguns exemplos como complemento ao contexto da tese. ABSTRACT: Nowadays the software has become a useful element in people's lives and it is increasingly a need for the use of quality applications from companies in order to differentiate in the market. The producers of software increase quality in their development processes, in order to ensuring final product quality. The complexity and size of software, increases the probability of the emergence of non-conformities in these products, this reason increases of interest in the business of testing software throughout the process design, development and maintenance. Many software development projects are postpone because in the date for delivered it’s has not performed satisfactorily, not to be trusted, or because it’s harder to maintain. A good planning of software production activities, usually means an increase in the efficiency of all production process, because it can decrease the number of defects and the costs of it’s correction, increasing the reliability of software in use, and make it easy to operate and maintenance. In this manner, it’s recognized the importance of adopting best practices in software development. To produce quality software, a systematic and organized approach must be used. This thesis describes the main models of software development, the importance of requirements engineering, testing processes and key validation of software quality and how some companies use these principles daily, in order to produce a final product more reliable. It also describes some examples in addition to the context of this thesis.
Resumo:
Dissertação de mestrado integrado em Engenharia e Gestão de Sistemas de Informação
Resumo:
This master’s thesis aims to study and represent from literature how evolutionary algorithms are used to solve different search and optimisation problems in the area of software engineering. Evolutionary algorithms are methods, which imitate the natural evolution process. An artificial evolution process evaluates fitness of each individual, which are solution candidates. The next population of candidate solutions is formed by using the good properties of the current population by applying different mutation and crossover operations. Different kinds of evolutionary algorithm applications related to software engineering were searched in the literature. Applications were classified and represented. Also the necessary basics about evolutionary algorithms were presented. It was concluded, that majority of evolutionary algorithm applications related to software engineering were about software design or testing. For example, there were applications about classifying software production data, project scheduling, static task scheduling related to parallel computing, allocating modules to subsystems, N-version programming, test data generation and generating an integration test order. Many applications were experimental testing rather than ready for real production use. There were also some Computer Aided Software Engineering tools based on evolutionary algorithms.
Resumo:
Reusable and evolvable Software Engineering Environments (SEES) are essential to software production and have increasingly become a need. In another perspective, software architectures and reference architectures have played a significant role in determining the success of software systems. In this paper we present a reference architecture for SEEs, named RefASSET, which is based on concepts coming from the aspect-oriented approach. This architecture is specialized to the software testing domain and the development of tools for that domain is discussed. This and other case studies have pointed out that the use of aspects in RefASSET provides a better Separation of Concerns, resulting in reusable and evolvable SEEs. (C) 2011 Elsevier Inc. All rights reserved.
Resumo:
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
Resumo:
Hoy en día, existen numerosos sistemas (financieros, fabricación industrial, infraestructura de servicios básicos, etc.) que son dependientes del software. Según la definición de Ingeniería del Software realizada por I. Sommerville, “la Ingeniería del Software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza.” “La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software, sino también actividades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.” Los modelos de proceso de desarrollo software determinan una serie de pautas para poder desarrollar con éxito un proyecto de desarrollo software. Desde que surgieran estos modelos de proceso, se investigado en nuevas maneras de poder gestionar un proyecto y producir software de calidad. En primer lugar surgieron las metodologías pesadas o tradicionales, pero con el avance del tiempo y la tecnología, surgieron unas nuevas llamadas metodologías ágiles. En el marco de las metodologías ágiles cabe destacar una determinada práctica, la integración continua. Esta práctica surgió de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integración. La integración continua se basa en la construcción automática de proyectos con una frecuencia alta, promoviendo la detección de errores en un momento temprano para poder dar prioridad a corregir dichos errores. Sin embargo, una de las claves del éxito en el desarrollo de cualquier proyecto software consiste en utilizar un entorno de trabajo que facilite, sistematice y ayude a aplicar un proceso de desarrollo de una forma eficiente. Este Proyecto Fin de Grado (PFG) tiene por objetivo el análisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologías ágiles e integración continua de una forma fácil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una característica a destacar de este PFG es que las herramientas analizadas comparten una cualidad común y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayoría de proyectos software se desarrollan en equipo, de tal forma que el servidor proporciona a los distintos clientes/desarrolladores acceso al conjunto de herramientas que constituyen el entorno de trabajo. La parte servidora del entorno propuesto proporciona soporte a la integración continua mediante herramientas de control de versiones, de gestión de historias de usuario, de análisis de métricas de software, y de automatización de la construcción de software. La configuración del cliente únicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programación Java y conexión con el servidor. ABSTRACT Nowadays, numerous systems (financial, industrial production, basic services infrastructure, etc.) depend on software. According to the Software Engineering definition made by I.Sommerville, “Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.” “Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production.” Software development process models determine a set of guidelines to successfully develop a software development project. Since these process models emerged, new ways of managing a project and producing software with quality have been investigated. First, the so-called heavy or traditional methodologies appeared, but with the time and the technological improvements, new methodologies emerged: the so-called agile methodologies. Agile methodologies promote, among other practices, continuous integration. This practice was coined by Martin Fowler and aims to make teamwork easier as well as automate integration tasks. Nevertheless, one of the keys to success in software projects is to use a framework that facilitates, systematize, and help to deploy a development process in an efficient way. This Final Degree Project (FDP) aims to analyze different tools to configure a framework that enables to develop projects by applying agile methodologies and continuous integration in an easy and efficient way. Once tools are analyzed, a framework has been proposed and configured. One of the main features of this FDP is that the tools under analysis share a common and high-valued characteristic: they are open-source. The proposed framework presents a client-server architecture, as most of the projects are developed by a team. In this way, the server provides access the clients/developers to the tools that comprise the framework. The server provides continuous integration through a set of tools for control management, user stories management, software quality management, and software construction automatization. The client configuration only requires a Java integrated development environment and network connection to the server.
Resumo:
A tecnologização que a sociedade experimenta nas últimas décadas trouxe a profusão de máquinas informatizadas e seus sistemas de operação. Neste período a indústria desenvolveu sofisticados e caros softwares aplicativos proprietários para o pleno uso destas máquinas, o que colocou boa parte do mercado social nas mãos de poucas empresas multinacionais, entre elas, a Microsoft, e outras. Mas, o espírito libertário de membros das comunidades científicas e hackers promoveu o desenvolvimento do software livre e aberto, que pode ser usado como bem social mais amplo e, principalmente, evoluir no melhor do espírito colaborativo. O presente trabalho estuda os dois modelos de produção de software, os compara visando tornar evidentes as qualidades de cada um, seus custos, rendimentos e possibilidades de adoção. Projeta a possibilidade de que as habilitações da área da comunicação possam migrar para o modelo de software livre, dadas as plenas qualidades deste sistema, a radical redução de custos e as constatações que amplos segmentos da produção audiovisual os está adotando. Para tanto, compara as experiências aplicadas com ambos os sistemas em dois cursos de comunicação, em sua habilitação de Rádio e Televisão.(AU)
Resumo:
Thesis (Ph.D.)--University of Washington, 2016-08
Resumo:
The intensive character in knowledge of software production and its rising demand suggest the need to establish mechanisms to properly manage the knowledge involved in order to meet the requirements of deadline, costs and quality. The knowledge capitalization is a process that involves from identification to evaluation of the knowledge produced and used. Specifically, for software development, capitalization enables easier access, minimize the loss of knowledge, reducing the learning curve, avoid repeating errors and rework. Thus, this thesis presents the know-Cap, a method developed to organize and guide the capitalization of knowledge in software development. The Know-Cap facilitates the location, preservation, value addition and updating of knowledge, in order to use it in the execution of new tasks. The method was proposed from a set of methodological procedures: literature review, systematic review and analysis of related work. The feasibility and appropriateness of Know-Cap were analyzed from an application study, conducted in a real case, and an analytical study of software development companies. The results obtained indicate the Know- Cap supports the capitalization of knowledge in software development.
Resumo:
This paper presents how new paradigms and methodologies for software development are changing rapidly in the last two years. In the current scenario where we live on, occurs a transition that, although slight, reflects the rapid manner in which the software production paradigms are reinvented due to the change of display devices and interaction with the end user. Studies indicate that in 2013 was the turn out of the internet access domain for mobile devices over the traditional desktop device, which is currently at around 60% mobile, against 40% desktop. This field will tend to grow in the coming years and it is expected that the use of internet for a desktop terminal tends to be less each day (comScore). In this context, the software industry has been re-invented and updated with respect to technologies that promote software and mobile applications, building products capable of responding to the user market. The development of software products, such as applications, must be put into production for different user environments, such as Web, iOS and Android in a way to enhance efficiency, optimization and productivity in the software development cycle (Langer, Arthur M.).
Resumo:
Työn tavoitteena oli kehittää MaestroYhtiöiden liiketoimintaprosesseja. Ensin selvitettiin liiketoimintaprosessien nykytila, jonka perusteella kehitettiin, kuvattiin rajapintoineen ja ohjeistettiin uudet liiketoimintaprosessit. Lopuksi määriteltiin muutamia prosessimittareita lähinnä tuotantotiimin käyttöön. Prosessien kehittämisen lisäksi tehtiin toiminnan kehittämissuunnitelma ohjausryhmäksi kutsutun kehittämistiimin toimesta ulkopuolisen konsultin avustamana. Ohjausryhmä määritteli tavoitteita toiminnalle ja konkreettisia keinoja niiden saavuttamiseksi. Tämän jälkeen tehtiin aikataulu tavoitteiden toteuttamiseksi. Tavoitteiden toteutumista seurataan säännöllisesti. Yrityksen kasvaessa on henkilökunnan määrä lisääntynyt nopeasti. Henkilöstömäärän kasvuvauhti on edennyt siinä määrin, että toimintatapoja on kehitettävä ja vakinaistettava, jotta pystytään toimimaan tehokkaasti ja sujuvasti. Taustalla on myös kahden eri toimipisteen erilaiset vaiheet. Savonlinnan toimipisteessä toiminta on jo vakiintunutta, mutta siellä onkin toimittu ohjelmistotuotannon parissa useita vuosia pidempään kuin Lappeenrannassa. Lappeenrannassa puolestaan tuotanto aloitettiin noin puolet pienemmällä miehityksellä kuin mitä se nykyään on ja toiminta hakee vielä muotoaan. Tarvetta toimintojen yhtenäistämiseen ja kehittämiseen eri tiimeissä ja toimipisteissä on, sillä yhteiset toimintatavat parantavat työn laatua ja tehokkuutta. Tuloksena työstä syntyi uudet prosessit kaikille tiimeille. Uudet rajapintoineen kuvatut prosessit on myös ohjeistettuna. Uusitut prosessit ovat seuraavassa vaiheessa saatava käyttöön. Prosessien käyttöönotto on tiiminvetäjien vastuulla. Myös prosessimittareiden käyttö ja seuraaminen on tiiminvetäjien vastuulla. Ohjausryhmän toiminnasta syntyi lista tavoitteita ja aikataulu tavoitteiden saavuttamiseksi. Tämän työn aikana päästiin ensimmäiseen aikataulun mukaiseen etappiin ja tavoitteet olivat toteutuneet melko hyvin. Tämä ohjausryhmän toiminta jatkuu tulevaisuudessakin tavoitteiden seurannan muodossa. Mahdollisesti ohjausryhmä voi myös luoda uusia tavoitteita samalla tavalla ja seurata niiden toteutumista.
Resumo:
Sulautettujen järjestelmien projekti voidaan toteuttaa monella tavalla. Projektiin liittyy aina ohjelmiston, sekä laitteiston kehittäminen. Ohjelmiston suunnittelulla on suuri painoarvo ja tämä näkyy erityisesti varsinkin kulutuselektroniikassa. Kannettavien laitteiden räjähdysmäisesti lisääntynyt myynti ja käyttö ovat tuoneet markkinoille lisää rahaa ja mielenkiintoa. Tästä johtuen markkinoille tulee joka vuosi entistä kehittyneempiä laitteita. Laitteiston kehittymisen sekä asiakkaiden vaatimusten lisääntyessä ohjelmistojen koko on kasvanut. Tämä on luonut tarpeen myös sulautettujen järjestelmien projekteille ottaa käyttöön jokin tietty metodi ohjelmistojen tuotannossa. Ongelmana on kuitenkin se, että sulautettujen järjestelmien projekteihin on sovellettu metodeita, joita ei ole alun perin suunniteltu laitteiston ja ohjelmiston yhteissuunnitteluun ja toteuttamiseen. Miten voidaan valita oikea metodi sulautettujen järjestelmien projektiin? Tässä työssä esitellään perinteisiä ohjelmistotuotannon metodeita, sekä keskitytään eri ketterien metodien tutkimiseen. Tämä työ selvittää mikä vaikuttaa metodin valintaan sulautetun järjestelmän projektille. Tässä tutkimuksessa päädytään siihen johtopäätökseen, että sulautetuin järjestelmän suunnittelussa ja toteutuksessa ketterien menetelmien käyttö parantaa projektin mahdollisuutta onnistua täyttämään asiakkaan vaatimukset. Ketterien menetelmien käyttö ei poista tarvetta kehittää menetelmää, joka lähtökohtaisesti ottaa huomioon laitteiston ja ohjelmiston yhteissuunnittelun.
Resumo:
Nopeasti muuttuvissa kilpailutilanteissa varsinkin pienet ja keskisuuret ohjelmistoyritykset joutuvat kilpailuetuja saavuttaakseen tekemään strategisia päätöksiä, joiden vaikutukset voidaan todeta vasta pitkän ajan kuluttua. Sen vuoksi yritysjohto tarvitsee päätöksentekoa varten tukijärjestelmiä, jotka sekä tuottavat informaatiota päätöksenteon tueksi että auttavat vähentämään päätöksistä aiheutuneita riskejä. Tämän työn tavoitteena oli kehittää ohjelmistoyritysten ohjelmistotuoteliiketoimintaa varten elinkaarikustannusmalli, jonka avulla yritysjohto voi arvioida ohjelmistotuotteiden koko-naiskustannuksia koko elinkaaren ajalta. Elinkaarikustannusmallia tutkittiin sekä elinkaarikustannusten että ohjelmistotuotantoprosessien teoreettisissa viitekehyksissä. Empiirinen tieto kerättiin tutkimukseen osallistuneen ohjelmistoyrityksen avulla. Tutkimuksessa kehitetty elinkaarikustannusmalli eroaa monista muista tutkituista kustannusmalleista siinä, että se lähestyy elinkaarikustannusten problematiikkaa strategisesta näkökulmasta, kun taas monet muut mallit toteuttavat tietoteknistä lähestymistapaa. Siten ohjelmistoyrityksen johto voi ohjata tuoteliiketoimintaa osana strategista päätöksentekoa sekä tuotteen elinkaaren kokonaiskustannusten avulla että elinkaarikustannusmallin epäsuorien vaikutusten kautta
Resumo:
The control of industrial processes has become increasingly complex due to variety of factory devices, quality requirement and market competition. Such complexity requires a large amount of data to be treated by the three levels of process control: field devices, control systems and management softwares. To use data effectively in each one of these levels is extremely important to industry. Many of today s industrial computer systems consist of distributed software systems written in a wide variety of programming languages and developed for specific platforms, so, even more companies apply a significant investment to maintain or even re-write their systems for different platforms. Furthermore, it is rare that a software system works in complete isolation. In industrial automation is common that, software had to interact with other systems on different machines and even written in different languages. Thus, interoperability is not just a long-term challenge, but also a current context requirement of industrial software production. This work aims to propose a middleware solution for communication over web service and presents an user case applying the solution developed to an integrated system for industrial data capture , allowing such data to be available simplified and platformindependent across the network