5 research outputs found

    DESARROLLO DE SOFTWARE, HACIA UNA PROFESIÓN

    Get PDF
    RESUMEN Este trabajo de investigación describe un modelo de componentes para una profesión de ingeniería de software. El modelo se organiza en cuatro tipos de elementos: conocimiento documentado, educación, profesión y actividades, para cada componente se presenta una serie de aspectos que influyen en la consolidación de una profesión. El artículo se enfoca en la presentación de los componentes, entre los cuales se cuentan: el cuerpo de conocimientos, los estándares, las publicaciones, los aspectos curriculares, los programas educativos, aspectos relacionados con certificación y licenciamiento, y el código de ética de los ingenieros de software, con el fin de establecer un fundamento conceptual de múltiples referentes que permita visualizar como el desarrollo de software se ha venido consolidando como profesión. Como soporte se mencionan importantes organizaciones que han protagonizado el desarrollo de los componentes y se dan referencias sobre su contribución. Se pretende con este artículo ofrecer información suficiente para que los lectores posean elementos de juicio sobre cómo se constituye una profesión y puedan dar cuenta de cómo la actividad de desarrollo de software se consolida como una profesión de ingeniería de software.  PALABRAS CLAVESDesarrollo de SoftwareModelo de profesiónIngeniería de Software   ABSTRACT In this research, it is described a model of components of a profession of software engineering. The description of the model is organized in four kinds of elements: documented knowledge, education, profession and activities. For every kind of element a group of components that makes influence in the consolidation of a profession is presented. The paper aims the presentation of the components for the software engineering profession. Some of them are: body of knowledge, standards, publications, aspects of the curricula, education programs, some issues related with certification and licensing, and the code of ethic of software engineers. The main goal of the paper is to establish a conceptual foundation from different sources to bring a view of how the activity of software development has been concreting as a profession. As a support, important organizations that have worked in the development of components are mentioned, and some references of its contribution are given. The paper aims to offer sufficient information to the reader, in order to know how a profession is built up, and to provide the certainty that software development is transforming itself in a real profession of software engineering.  KEYWORDSSoftware DevelopmentModel of professionSoftware Engineerin

    DESARROLLO DE SOFTWARE, HACIA UNA PROFESIÓN

    Get PDF
    RESUMEN Este trabajo de investigación describe un modelo de componentes para una profesión de ingeniería de software. El modelo se organiza en cuatro tipos de elementos: conocimiento documentado, educación, profesión y actividades, para cada componente se presenta una serie de aspectos que influyen en la consolidación de una profesión. El artículo se enfoca en la presentación de los componentes, entre los cuales se cuentan: el cuerpo de conocimientos, los estándares, las publicaciones, los aspectos curriculares, los programas educativos, aspectos relacionados con certificación y licenciamiento, y el código de ética de los ingenieros de software, con el fin de establecer un fundamento conceptual de múltiples referentes que permita visualizar como el desarrollo de software se ha venido consolidando como profesión. Como soporte se mencionan importantes organizaciones que han protagonizado el desarrollo de los componentes y se dan referencias sobre su contribución. Se pretende con este artículo ofrecer información suficiente para que los lectores posean elementos de juicio sobre cómo se constituye una profesión y puedan dar cuenta de cómo la actividad de desarrollo de software se consolida como una profesión de ingeniería de software.  PALABRAS CLAVESDesarrollo de SoftwareModelo de profesiónIngeniería de Software   ABSTRACT In this research, it is described a model of components of a profession of software engineering. The description of the model is organized in four kinds of elements: documented knowledge, education, profession and activities. For every kind of element a group of components that makes influence in the consolidation of a profession is presented. The paper aims the presentation of the components for the software engineering profession. Some of them are: body of knowledge, standards, publications, aspects of the curricula, education programs, some issues related with certification and licensing, and the code of ethic of software engineers. The main goal of the paper is to establish a conceptual foundation from different sources to bring a view of how the activity of software development has been concreting as a profession. As a support, important organizations that have worked in the development of components are mentioned, and some references of its contribution are given. The paper aims to offer sufficient information to the reader, in order to know how a profession is built up, and to provide the certainty that software development is transforming itself in a real profession of software engineering.  KEYWORDSSoftware DevelopmentModel of professionSoftware Engineerin

    Stable Marriage Problem Based Adaptation for Clone Detection and Service Selection

    Get PDF
    Current software engineering topics such as clone detection and service selection need to improve the capability of detection process and selection process. The clone detection is the process of finding duplicated code through the system for several purposes such as removal of repeated portions as maintenance part of legacy system. Service selection is the process of finding the appropriate web service which meets the consumer’s request. Both problems can be converted into a matching problem. Matching process forms an essential part of software engineering activities. In this research, a well-known mathematical algorithm Stable Marriage Problem (SMP) and its variations are investigated to fulfil the purposes of matching processes in software engineering area. We aim to provide a competitive matching algorithm that can help to detect cloned software accurately and ensure high scalability, precision and recall. We also aim to apply matching algorithm on incoming request and service profile to deal with the web service as a clever independent object so that we can allow the services to accept or decline requests (equal opportunity) rather than the current state of service selection (search-based), in which service lacks of interacting as an independent candidate. In order to meet the above aims, the traditional SMP algorithm has been extended to achieve the cardinality of many-to-many. This adaptation is achieved by defining the selective strategy which is the main engine of the new adaptations. Two adaptations, Dual-Proposed and Dual-Multi-Allocation, have been proposed to both service selection and clone detection process. The proposed approach (SMP-based) shows very competitive results compare to existing software clone approaches, especially in identifying type 3 (copy with further modifications such update, add and delete statements) of cloned software. It performs the detection process with a relatively high precision and recall compare to the CloneDR tool and shows good scalability on a middle sized program. For service selection, the proposed approach has several advantages such as service protection and service quality. The services gain equal opportunity against the incoming requests. Therefore, the intelligent service interaction is achieved, and both stability and satisfaction of the candidates are ensured. This dissertation contributes to several contributions firstly, the new extended SMP algorithm by introducing selective strategy to accommodate many-to-many matching problems, to improve overall features. Secondly, a new SMP-based clone detection approach to detect cloned software accurately and ensures high precision and recall. Ultimately, a new SMPbased service selection approach allows equal opportunity between services and requests. This led to improve service protection and service quality. Case studies are carried out for experiments with the proposed approach, which show that the new adaptations can be applied effectively to clone detection and service selection processes with several features (e.g. accuracy). It can be concluded that the match based approach is feasible and promising in software engineering domain.Royal Embassy of Saudi Arabi

    Common Attack Surface Detection

    Get PDF
    In the current software development market, many software is being developed using a copy-paste mechanism with little to no change made to the reused code. Such a practice has the potential of causing severe security issues since one fragment of code containing a vulnerability may cause the same vulnerability to appear in many other software with the same cloned fragment. The concept of relying on software diversity for security may also be compromised by such a trend, since seemingly different software may in fact share vulnerable code fragments. Although there exist efforts on detecting cloned code fragments, there lack solutions for formally characterizing the specific impact on security. In this thesis, we revisit the concept of software diversity from a security viewpoint. Specifically, we define the novel concept of common attack surface to model the relative degree to which a pair of software may be sharing potentially vulnerable code fragments. To implement the concept, we develop an automated tool, Dupsec, in order to efficiently identify common attack surface between any given pair of software applications with minimum human intervention. Finally, we conduct experiments by applying our tool to a large number of open source software. Our results demonstrate many seemingly unrelated real-world software indeed share significant common attack surface

    Automatização de feedback para apoiar o aprendizado no processo de resolução de problemas de programação.

    Get PDF
    No ensino de programação, é fundamental que os estudantes realizem atividades práticas. Para que sejam bem sucedidos nessas atividades, os professores devem guiá-los, especialmente os iniciantes, ao longo do processo de programação. Consideramos que o processo de programação, no contexto do ensino desta prática, engloba as atividades necessárias para resolver um problema de computação. Este processo é composto por uma série de etapas que são executadas de forma não linear, mas sim iterativa. Nós consideramos o processo de programação adaptado de Polya (1957) para a resolução de problemas de programação, que inclui os seguintes passos [Pól57]: (1) Entender o problema, (2) Planejar a solução, (3) Implementar o programa e (4) Revisar. Com o foco no quarto estágio, nós almejamos que os estudantes tornem-se proficientes em corrigir as suas estratégias e, através de reflexão crítica, serem capazes de refatorar os seus códigos tendo em vista a boa qualidade de programação. Durante a pesquisa deste doutorado, nós desenvolvemos uma abordagem para gerar e fornecer feedback na última fase do processo de programação: avaliação da solução. O desafio foi entregar aos estudantes feedback elaborado e a tempo, referente ás atividades de programação, de forma a estimulá-los a pensar sobre o problema e a sua solução e melhorar as suas habilidades. Como requisito para a geração de feedback, comprometemo-nos a não impormais carga de trabalho aos professores, evitando-os de criar novos artefatos. Extraímos informações a partir do material instrucional já desenvolvido pelos professores quando da criação de uma nova atividade de programação: a solução de referência. Implementamos e avaliamos nossa proposta em um curso de programação introdutória em um estudo longitudinal. Os resultados obtidos no nosso estudo vão além da desejada melhoria na qualidade de código. Observamos que os alunos foram incentivados a melhorar as suas habilidades de programação estimulados pelo exercício de raciocinar sobre uma solução para um problema que já está funcionando.In programming education, the development of students’ programming skills through practical programming assignments is a fundamental activity. In order to succeed in those assignments, instructors need to provide guidance, especially to novice learners, about the programming process. We consider that this process, in the context of programming education, encompasses steps needed to solve a computer-programming problem. We took into consideration the programming process adapted from Polya (1957) to computer programming problem-solving, that includes the following stages [Pól57]: (1) Understand the problem; (2) Plan the solution; (3) Implement the program and (4) Look Back. Focusing on the fourth stage, we want students to be proficient in correcting strategies and, with critical reflection, being able to refactor their code caring about good programming quality. During this doctoral research, we developed an approach to generate formative feedback to leverage programming problem-solving in the last stage of the programming process: targeting the solution evaluation. The challenge was to provide timely and elaborated feedback, referring to programming assignments, to stimulate students to reason about the problem and their solution, aiming to improve their programming skills. As a requirement for generating feedback, we compromised not to impose the creation of new artifacts or instructional materials to instructors, but to take advantage of a usual resource already created when proposing a new programming assignment: the reference solution. We implemented and evaluated our proposal in an introductory programming course in a longitudinal study. The results go beyond what we initially expected: the improved assignments’ code quality. We observed that students felt stimulated, and in fact, improved their programming abilities driven by the exercise of reasoning about their already functioning solution
    corecore