926 resultados para Software engineering
Resumo:
The new degrees in Spanish universities generated as a result of the Bologna process, stress a new dimension: the generic competencies to be acquired by university students (leadership, problem solving, respect for the environment, etc.). At Universidad Politecnica de Madrid a teaching model was defined for two degrees: Graduate in Computer Engineering and Graduate in Software Engineering. Such model incorporates the training, development and assessment of generic competencies planned in these curricula. The aim of this paper is to describe how this model was implemented in both degrees. The model has three components. The first refers to a set of seven activities for introducing mechanisms for training, development and assessment of generic competencies. The second component aims to coordinate actions that implement the competencies across courses (in space and time). The third component consists of a series of activities to perform quality control. The implementation of generic competencies was carried out in first year courses (first and second semesters), together with the planning for second year courses (third and fourth semesters). We managed to involve a high percentage of first-year courses (80%) and the contacts that have been initiated suggest a high percentage in the second year as well.
Resumo:
In this paper we want to point out, by means of a case study, the importance of incorporating some knowledge engineering techniques to the processes of software engineering. Precisely, we are referring to the knowledge eduction techniques. We know the difficulty of requirements acquisition and its importance to minimise the risks of a software project, both in the development phase and in the maintenance phase. To capture the functional requirements use cases are generally used. However, as we will show in this paper, this technique is insufficient when the problem domain knowledge is only in the "experts? mind". In this situation, the combination of the use case with eduction techniques, in every development phase, will let us to discover the correct requirements.
Resumo:
Research into software engineering teams focuses on human and social team factors. Social psychology deals with the study of team formation and has found that personality factors and group processes such as team climate are related to team effectiveness. However, there are only a handful of empirical studies dealing with personality and team climate and their relationship to software development team effectiveness. Objective We present aggregate results of a twice replicated quasi-experiment that evaluates the relationships between personality, team climate, product quality and satisfaction in software development teams. Method Our experimental study measures the personalities of team members based on the Big Five personality traits (openness, conscientiousness, extraversion, agreeableness, neuroticism) and team climate factors (participative safety, support for innovation, team vision and task orientation) preferences and perceptions. We aggregate the results of the three studies through a meta-analysis of correlations. The study was conducted with students. Results The aggregation of results from the baseline experiment and two replications corroborates the following findings. There is a positive relationship between all four climate factors and satisfaction in software development teams. Teams whose members score highest for the agreeableness personality factor have the highest satisfaction levels. The results unveil a significant positive correlation between the extraversion personality factor and software product quality. High participative safety and task orientation climate perceptions are significantly related to quality. Conclusions First, more efficient software development teams can be formed heeding personality factors like agreeableness and extraversion. Second, the team climate generated in software development teams should be monitored for team member satisfaction. Finally, aspects like people feeling safe giving their opinions or encouraging team members to work hard at their job can have an impact on software quality. Software project managers can take advantage of these factors to promote developer satisfaction and improve the resulting product.
Resumo:
Comprender y estimular la motivacin resulta crucial para favorecer el rendimiento de los estudiantes universitarios y profesionales de diversos mbitos de conocimiento, como el de la Ingeniera del Software. Actualmente, este sector est demandando soluciones cientfico-tecnolgicas para trabajar de una manera prctica y sistemtica sobre elementos motivacionales como la satisfaccin por el estudio y el trabajo, el aprendizaje activo o las relaciones interpersonales. El objetivo de esta Tesis Doctoral es definir y validar soluciones para evaluar y mejorar la motivacin de los estudiantes y profesionales en Ingeniera del Software. Para ello, se han creado instrumentos, metodologas y tecnologas que se han aplicado con un total de 152 estudiantes y 166 profesionales. Esta experiencia emprica ha servido para mejorar de manera continua dichas aportaciones, as como para comprobar en un entorno real su validez y utilidad. Los datos recogidos revelan que las soluciones provistas han resultado eficaces para comprender y estimular la motivacin tanto en el mbito acadmico como en el profesional. Adems, a raz de los datos recogidos se han podido explorar aspectos de inters sobre las caractersticas y particularidades motivacionales asociadas a la Ingeniera del Software. Por tanto, esta Tesis Doctoral resulta de inters para las universidades y empresas de este sector sensibilizadas con el desarrollo motivacional de sus estudiantes y trabajadores. Abstract It is crucial to understand and encourage the motivation of students and professionals in order to enhance their performance. This applies to students and professionals from diverse fields such as Software Engineering. Currently this sector is demanding scientifictechnological solutions to work on motivational elements in a pragmatic and systematic way. Such elements are among others study and work satisfaction, active learning or interpersonal relationships. This Doctoral Thesis objective is to establish and validate solutions to evaluate and improve the motivation in the Software Engineering field. To achieve this goal, resources, methods and technologies have been created. They have been applied to 152 students and 166 professionals. This empirical experience served to, on one hand, enhance in a continuous way the provided contributions, and on the other hand, to test in a real environment their validity and utility. The collected data reveal that the provided solutions were effective to understand and encourage motivation both in the academic and in the professional area. In addition, the collected data enable to examine interesting aspects and motivational special features associated with Software Engineering. Therefore this Doctoral Thesis is relevant to universities and firms from this field which are aware of the significance of the motivational development of their students and employees.
Resumo:
La Ingeniera de Pruebas est especializada en la verificacin y validacin del Software,y formalmente se define como: Proceso de desarrollo que emplea mtodos rigurosos para evaluar la correccin y calidad del producto a lo largo de todo su ciclo de vida [3]. Este proceso comprende un conjunto de mtodos, procedimientos y tcnicas formalmente definidas las cuales, usadas de forma sistemtica, facilitan la identificacin de la mayor cantidad de errores y fallos posibles de un software. Un software que pase un proceso riguroso de pruebas es un producto de calidad que seguramente facilitar la labor del Ingeniero de Software en la correccin de futuras incidencias, algunas de ellas generadas tras la implantacin en el entorno real. Este proceso constituye un rea de la Ingeniera del Software y una especialidad por tanto, de la misma. De forma simple, la consecucin de una correcta Verificacin y Validacin del Software requiere de algunas actividades imprescindibles como: - Realizar un plan de pruebas del proyecto. - Actualizar dicho plan y corregirlo en caso necesario. - Revisar los documentos de anlisis de requisitos. - Ejecutar las pruebas en las diferentes fases del desarrollo del proyecto. - Documentar el diseo y la ejecucin de las pruebas. - Generar documentos con los resultados y anomalas de las pruebas ya ejecutadas. Actualmente, la Ingeniera de Pruebas no es muy reconocida como rea de trabajo independiente sino ms bien, un rea inmersa dentro de la Ingeniera de Software. En el entorno laboral existe el perfil de Ingeniero de Pruebas, sin embargo pocos ingenieros de software tienen claro querer ser Ingenieros de Pruebas (probadores o testers) debido a que nunca han tenido la oportunidad de enfrentarse a actividades prcticas reales dentro de los centros de estudios universitarios donde cursan la carrera. Al ser un rea de inherente ejercicio profesional, la parte correspondiente de la Ingeniera de Pruebas suele enfocarse desde un punto de vista terico ms que prctico. Hay muchas herramientas para la creacin de pruebas y de ayuda para los ingenieros de pruebas, pero la mayora son de pago o hechas a medida para grandes empresas que necesitan dicho software. Normalmente la gente conoce lo que es la Ingeniera de Pruebas nicamente cuando se empieza a adquirir experiencia en dicha rea en el ejercicio profesional dentro de una empresa. Con lo cual, el acercamiento durante la carrera no necesariamente le ha ofrecido al profesional en Ingeniera, la oportunidad de trabajar en esta rama de la Ingeniera del Software y en algunos casos, NOVATests: Metodologa y herramienta software de apoyo para los Ingenieros de Prueba Junior 4 los recin egresados comienzan su vida profesional con algn desconocimiento en este sentido. Es por el conjunto de estas razones, que mi intencin en este proyecto es proponer una metodologa y una herramienta software de apoyo a dicha metodologa, para que los estudiantes de carreras de Ingeniera Software y afines, e ingenieros recin egresados con poca experiencia o ninguna en esta rea (Ingenieros de Pruebas Junior), puedan poner en prctica las actividades de la Ingeniera de Pruebas dentro de un entorno lo ms cercano posible al ejercicio de la labor profesional. De esta forma, podran desarrollar las tareas propias de dicha rea de una manera fcil e intuitiva, favoreciendo un mayor conocimiento y experiencia de la misma. ABSTRACT The software engineering is specialized in the verification and validation of Software and it is formally defined as: Development process which by strict methods evaluates and corrects the quality of the product along its lifecycle. This process contains a number of methods, procedures and techniques formally defined which used systematically make easier the identification of the highest quantity of error and failures within a Software. A software going through this rigorous process of tests will become a quality product that will help the software engineer`s work while correcting incidences. Some of them probably generated after the deployment in a real environment. This process belongs to the Software engineering and therefore it is a specialization itself. Simplifying, the correct verification and validation of a software requires some essential activities such as: -Create a Test Plan of the project - Update this Test Plan and correct if necessary - Check Requirements specification documents -Execute the different tests among all the phases of the project - Create the pertinent documentation about design and execution of these tests. - Generate the result documents and all the possible incidences the tests could contain. Currently, the Test engineering is not recognized as a work area but an area immerse within the Software engineering. The professional environment includes the role of Test engineer, but only a few software engineers have clear to become Test engineers (testers) because they have never had the chance to face this activities within the university study centers where they take study of this degree. Since there are little professional environments, this area is focused from a theoretical way instead of a more practical vision. There are plenty of tools helping the Test engineer, but most of them are paid tools or bespoke tools for big companies in need of this software. Usually people know what test engineering is by starting working on it and not before, when people start acquiring experience in this field within a company. Therefore, the degree studied have not approach this field of the Software engineering before and in some cases the graduated students start working without any knowledge in this area. Because of this reasons explained, it is my intention to propose this Project: a methodology and a software tool supporting this methodology so the students of software engineering and similar ones but also graduated students with little experience in this area (Junior Test Engineers), can afford practice in this field and get used to the activities related with the test engineering. Because of this they will be able to carry out the proper tasks of this area easier, enforcing higher and better knowledge and experience of it.
Resumo:
Las compaas de desarrollo de software buscan reducir costes a travs del desarrollo de diseos que permitan: a) facilidad en la distribucin del trabajo de desarrollo, con la menor comunicacin de las partes; b) modificabilidad, permitiendo realizar cambios sobre un mdulo sin alterar las otras partes y; c) comprensibilidad, permitiendo estudiar un mdulo del sistema a la vez. Estas caractersticas elementales en el diseo de software se logran a travs del diseo de sistemas cuasi-descomponibles, cuyo modelo terico fue introducido por Simon en su bsqueda de una teora general de los sistemas. En el campo del diseo de software, Parnas propone un camino prctico para lograr sistemas cuasi-descomponibles llamado el Principio de Ocultacin de Informacin. El Principio de Ocultacin de Informacin es un criterio diferente de descomposicin en mdulos, cuya implementacin logra las caractersticas deseables de un diseo eficiente a nivel del proceso de desarrollo y mantenimiento. El Principio y el enfoque orientado a objetos se relacionan debido a que el enfoque orientado a objetos facilita la implementacin del Principio, es por esto que cuando los objetos empiezan a tomar fuerza, tambin aparecen paralelamente las dificultades en el aprendizaje de diseo de software orientado a objetos, las cuales se mantienen hasta la actualidad, tal como se reporta en la literatura. Las dificultades en el aprendizaje de diseo de software orientado a objetos tiene un gran impacto tanto en las aulas como en la profesin. La deteccin de estas dificultades permitir a los docentes corregirlas o encaminarlas antes que stas se trasladen a la industria. Por otro lado, la industria puede estar advertida de los potenciales problemas en el proceso de desarrollo de software. Esta tesis tiene como objetivo investigar sobre las dificultades en el diseo de software orientado a objetos, a travs de un estudio emprico. El estudio fue realizado a travs de un estudio de caso cualitativo, que estuvo conformado por tres partes. La primera, un estudio inicial que tuvo como objetivo conocer el entendimiento de los estudiantes alrededor del Principio de Ocultacin de Informacin antes de que iniciasen la instruccin. La segunda parte, un estudio llevado a cabo a lo largo del perodo de instruccin con la finalidad de obtener las dificultades de diseo de software y su nivel de persistencia. Finalmente, una tercera parte, cuya finalidad fue el estudio de las dificultades esenciales de aprendizaje y sus posibles orgenes. Los participantes de este estudio pertenecieron a la materia de Software Design del European Master in Software Engineering de la Escuela Tcnica Superior de Ingenieros Informticos de la Universidad Politcnica de Madrid. Los datos cualitativos usados para el anlisis procedieron de las observaciones en las horas de clase y exposiciones, entrevistas realizadas a los estudiantes y ejercicios enviados a lo largo del perodo de instruccin. Las dificultades presentadas en esta tesis en sus diferentes perspectivas, aportaron conocimiento concreto de un estudio de caso en particular, realizando contribuciones relevantes en el rea de diseo de software, docencia, industria y a nivel metodolgico. ABSTRACT The software development companies look to reduce costs through the development of designs that will: a) ease the distribution of development work with the least communication between the parties; b) changeability, allowing to change a module without disturbing the other parties and; c) understandability, allowing to study a system module at a time. These basic software design features are achieved through the design of quasidecomposable systems, whose theoretical model was introduced by Simon in his search for a general theory of systems. In the field of software design, Parnas offers a practical way to achieve quasi-decomposable systems, called The Information Hiding Principle. The Information Hiding Principle is different criterion for decomposition into modules, whose implementation achieves the desirable characteristics of an efficient design at the development and maintenance level. The Principle and the object-oriented approach are related because the object-oriented approach facilitates the implementation of The Principle, which is why when objects begin to take hold, also appear alongside the difficulties in learning an object-oriented software design, which remain to this day, as reported in the literature. Difficulties in learning object-oriented software design has a great impact both in the classroom and in the profession. The detection of these difficulties will allow teachers to correct or route them before they move to the industry. On the other hand, the industry can be warned of potential problems related to the software development process. This thesis aims to investigate the difficulties in learning the object-oriented design, through an empirical study. The study was conducted through a qualitative case study, which consisted of three parts. The first, an initial study was aimed to understand the knowledge of the students around The Information Hiding Principle before they start the instruction. The second part, a study was conducted during the entire period of instruction in order to obtain the difficulties of software design and their level of persistence. Finally, a third party, whose purpose was to study the essential difficulties of learning and their possible sources. Participants in this study belonged to the field of Software Design of the European Master in Software Engineering at the Escuela Tcnica Superior de Ingenieros Informticos of Universidad Politcnica de Madrid. The qualitative data used for the analysis came from the observations in class time and exhibitions, performed interviews with students and exercises sent over the period of instruction. The difficulties presented in this thesis, in their different perspectives, provided concrete knowledge of a particular case study, making significant contributions in the area of software design, teaching, industry and methodological level.
Resumo:
Hoy en da, existen numerosos sistemas (financieros, fabricacin industrial, infraestructura de servicios bsicos, etc.) que son dependientes del software. Segn la definicin de Ingeniera del Software realizada por I. Sommerville, la Ingeniera del Software es una disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste despus de que se utiliza. La ingeniera del software no slo comprende los procesos tcnicos del desarrollo de software, sino tambin actividades tales como la gestin de proyectos de software y el desarrollo de herramientas, mtodos y teoras de apoyo a la produccin 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 metodologas pesadas o tradicionales, pero con el avance del tiempo y la tecnologa, surgieron unas nuevas llamadas metodologas giles. En el marco de las metodologas giles cabe destacar una determinada prctica, la integracin continua. Esta prctica surgi de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integracin. La integracin continua se basa en la construccin automtica de proyectos con una frecuencia alta, promoviendo la deteccin 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 anlisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologas giles e integracin continua de una forma fcil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una caracterstica a destacar de este PFG es que las herramientas analizadas comparten una cualidad comn y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayora 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 integracin continua mediante herramientas de control de versiones, de gestin de historias de usuario, de anlisis de mtricas de software, y de automatizacin de la construccin de software. La configuracin del cliente nicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programacin Java y conexin 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:
The history of Software Engineering has been marked by many famous project failures documented in papers, articles and books. This pattern of lack of success has prompted the creation of dozens of software analysis, requirements definition, and design methods, programming languages, software development environments and software development processes all promoted as solving ?the software problem.? What we hear less about are software projects that were successful. This article reports on the findings of an extensive analysis of successful software projects that have been reported in the literature. It discusses the different interpretations of success and extracts the characteristics that successful projects have in common. These characteristics provide Software Project Managers with an agenda of topics to be addressed that will help ensure, not guarantee, that their software project will be successful.
Resumo:
El objetivo de sta tesis es estudiar cmo desarrollar una aplicacin informtica que implemente algoritmos numricos de evaluacin de caractersticas hidrodinmicas de modelos geomtricos representativos de carenas de buques. Se trata de especificar los requisitos necesarios que debe cumplir un programa para informtico orientado a dar solucin a un determinado problema hidrdinmico, como es simular el comportamiento en balance de un buque sometido a oleaje, de popa o proa. una vez especificada la aplicacin se realizar un diseo del programa; se estudiarn alternativas para implementar la aplicacin; se explicar el proceso que ha de seguirse para obtener la aplicacin en funcionamiento y se contrastarn los resultados obtenidos en la medida que sea posible. Se pretende sistematizar y sintetizar todo el proceso de desarrollo de software, orientado a la simulacin del comportamiento hidrodinmico de un buque, en una metodologa que se pondr a disposicin de la comunidad acadmica y cientfica en la forma que se considere ms adecuada. Se trata, por tanto, de proponer una metodologa de desarrollo de software para obetener una aplicacin que facilite la evaluacin de diferentes alternativas de estudio variando parmetros relativos al problema en estudio y que sea capaz de proporcionar resultados para su anlisis. As mismo se incide en cmo ha de conducirse en el proceso para que dicha aplicacin pueda crecer, incorporando soluciones existentes no implementadas o nuevas soluciones que aparezcan en este mbito de conocimiento. Como aplicacin concreta de la aplicacin se ha elegido implementar los algoritmos necesarios para evaluar la aparicin del balance paramtrico en un buque. En el anlisis de ste problema se considera de inters la representacin geomtrica que se hace de la carena del buque. Adems de la carena aparecen otros elementos que tienen influencia determinante en ste estudio, como son las situacin de mar y las situaciones de carga. Idealmente, el problema sera resuelto si se consiguiera determinar el ngulo de balance que se produce al enfrentar un buque a las diferentes condiciones de mar. Se pretende preparar un programa utilizando el paradigma de la orientacin a objetos. Considero que es la ms adecuada forma de modularizar el programa para poder utilizar diferentes modelos de una misma carena y as comparar los resultados de la evaluacin del balance paramtrico entre s. En una etapa posterior se podran comparar los resultados con otros obtenidos empricamente. Hablo de una nueva metodologa porque pretendo indicar cmo se ha de construir una aplicacin de software que sea usable y sobre la que se pueda seguir desarrollando. Esto justifica la seleccin del lenguaje de programacin C++. Se seleccionar un ncleo geomtrico de software que permita acoplar de forma verstil los distintos componentes de software que van a construir el programa. Este trabajo pretende aplicar el desarrollo de software a un aspecto concreto del rea de conocimiento de la hidrodinmica. No se pretende aportar nuevos algoritmos para resolver problemas de hidrodinmica, sino disear un conjunto de objetos de software que implementen soluciones existentes a conocidas soluciones numricas a dichos problemas. Se trata fundamentalmente de un trabajo de software, ms que de hidrodinmica. Lo que aporta de novedad es una nueva forma de realizar un programa aplicado a los clculos hidrodinmicos relativos a la determinacin del balance paramtrico, que pueda crecer e incorporar cualquier novedad que pueda surgir ms adelante. Esto ser posible por la programacin modular utilizada y los objetos que representan cada uno de los elementos que intervienen en la determinacin del balance paramtrico. La eleccin de aplicar la metodologa a la prediccin del balance paramtrico se debe a que este concepto es uno de los elementos que intervienen en la evaluacin de criterios de estabilidad de segunda generacin que estan en estudio para su futura aplicacin en el mbito de la construccin naval. Es por tanto un estudio que despierta inters por su prxima utilidad. ABSTRACT The aim of this thesis is to study how to develop a computer application implementing numerical algorithms to assess hydrodynamic features of geometrical models of vessels. It is therefore to propose a methodology for software development applied to an hydrodynamic problem, in order to evaluate different study alternatives by varying different parameters related to the problem and to be capable of providing results for analysis. As a concrete application of the program it has been chosen to implement the algorithms necessary for evaluating the appearance of parametric rolling in a vessel. In the analysis of this problem it is considered of interest the geometrical representation of the hull of the ship and other elements which have decisive influence in this phenomena, such as the sea situation and the loading condition. Ideally, the application would determine the roll angle that occurs when a ship is on waves of different characteristics. It aims to prepare a program by using the paradigm of object oriented programming. I think it is the best methodology to modularize the program. My intention is to show how face the global process of developing an application from the initial specification until the final release of the program. The process will keep in mind the spefici objetives of usability and the possibility of growing in the scope of the software. This work intends to apply software development to a particular aspect the area of knowledge of hydrodynamics. It is not intended to provide new algorithms for solving problems of hydrodynamics, but designing a set of software objects that implement existing solutions to these problems. This is essentially a job software rather than hydrodynamic. The novelty of this thesis stands in this work focuses in describing how to apply the whole proccess of software engineering to hydrodinamics problems. The choice of the prediction of parametric balance as the main objetive to be applied to is because this concept is one of the elements involved in the evaluation of the intact stability criteria of second generation. Therefore, I consider this study as relevant usefull for the future application in the field of shipbuilding.
Resumo:
Este trabalho analisa os principais mtodos geis utilizados em empresas startup, como scrum, extreme programming, kanban e lean, isolando suas prticas e mapeando-as no Kernel do SEMAT para escolher os elementos essenciais da engenharia de software que esto relacionados a cada prtica de forma independente. Foram identificadas 34 prticas que foram reduzidas a um conjunto de 26 pelas similaridades. Um questionrio foi desenvolvido e aplicado no ambiente de startups de software para a avaliao do grau de utilizao de cada determinada prtica. Atravs das respostas obtidas foi possvel a identificao de um subconjunto de prticas com utilizao acima de 60% onde todos os elementos essenciais da engenharia de software so atendidos, formando um conjunto mnimo de prticas capazes de sustentar este tipo especfico de ambiente.
Resumo:
Este trabalho identifica o Cdigo de tica e Prtica Profissional da engenharia de software como o conjunto de prticas para considerao de fatores humanos na engenharia de software. A seguir, estende o Kernel da especificao Essence, e o utiliza para conduzir a aplicao desse conjunto de prticas. A prova de conceito indica que o conjunto de prticas identificadas no garante a considerao de fatores humanos na engenharia de software. Considerar a tica nas interaes existentes na empreitada de engenharia de software no um simples caso de utilizao de checklists como forma de verificar o que deve ser feito para certificar que algo foi realizado. Considerar a tica mais do que isso. necessrio que todas as pessoas tenham conscincia da importncia da tica, do respeito de um ao outro e sociedade.
Resumo:
Nowadays, data mining is based on low-level specications of the employed techniques typically bounded to a specic analysis platform. Therefore, data mining lacks a modelling architecture that allows analysts to consider it as a truly software-engineering process. Here, we propose a model-driven approach based on (i) a conceptual modelling framework for data mining, and (ii) a set of model transformations to automatically generate both the data under analysis (via data-warehousing technology) and the analysis models for data mining (tailored to a specic platform). Thus, analysts can concentrate on the analysis problem via conceptual data-mining models instead of low-level programming tasks related to the underlying-platform technical details. These tasks are now entrusted to the model-transformations scaffolding.
Resumo:
Data mining is one of the most important analysis techniques to automatically extract knowledge from large amount of data. Nowadays, data mining is based on low-level specifications of the employed techniques typically bounded to a specific analysis platform. Therefore, data mining lacks a modelling architecture that allows analysts to consider it as a truly software-engineering process. Bearing in mind this situation, we propose a model-driven approach which is based on (i) a conceptual modelling framework for data mining, and (ii) a set of model transformations to automatically generate both the data under analysis (that is deployed via data-warehousing technology) and the analysis models for data mining (tailored to a specific platform). Thus, analysts can concentrate on understanding the analysis problem via conceptual data-mining models instead of wasting efforts on low-level programming tasks related to the underlying-platform technical details. These time consuming tasks are now entrusted to the model-transformations scaffolding. The feasibility of our approach is shown by means of a hypothetical data-mining scenario where a time series analysis is required.
Empirical study on the maintainability of Web applications: Model-driven Engineering vs Code-centric
Resumo:
Model-driven Engineering (MDE) approaches are often acknowledged to improve the maintainability of the resulting applications. However, there is a scarcity of empirical evidence that backs their claimed benefits and limitations with respect to code-centric approaches. The purpose of this paper is to compare the performance and satisfaction of junior software maintainers while executing maintainability tasks on Web applications with two different development approaches, one being OOH4RIA, a model-driven approach, and the other being a code-centric approach based on Visual Studio .NET and the Agile Unified Process. We have conducted a quasi-experiment with 27 graduated students from the University of Alicante. They were randomly divided into two groups, and each group was assigned to a different Web application on which they performed a set of maintainability tasks. The results show that maintaining Web applications with OOH4RIA clearly improves the performance of subjects. It also tips the satisfaction balance in favor of OOH4RIA, although not significantly. Model-driven development methods seem to improve both the developers objective performance and subjective opinions on ease of use of the method. This notwithstanding, further experimentation is needed to be able to generalize the results to different populations, methods, languages and tools, different domains and different application sizes.
Resumo:
Software Configuration Management is the discipline of managing large collections of software development artefacts from which software products are built. Software configuration management tools typically deal with artefacts at fine levels of granularity - such as individual source code files - and assist with coordination of changes to such artefacts. This paper describes a lightweight tool, designed to be used on top of a traditional file-based configuration management system. The add-on tool support enables users to flexibly define new hierarchical views of product structure, independent of the underlying artefact-repository structure. The tool extracts configuration and change data with respect to the user-defined hierarchy, leading to improved visibility of how individual subsystems have changed. The approach yields a range of new capabilities for build managers, and verification and validation teams. The paper includes a description of our experience using the tool in an organization that builds large embedded software systems.