jehanweerasuriya/uni-ai-dataset huggingface dataset:
Essentials of Software Engineering
Authors: Frank Tsui, Orlando Karam, Barbara Bernal
Published in:  (2006-05-18)

Updated with new case studies and content, the fully revised Third Edition of Essentials of Software Engineering offers a comprehensive, accessible, and concise introduction to core topics and methodologies of software development. Designed for undergraduate students in introductory courses, the text covers all essential topics emphasized by the IEEE Computer Society-sponsored Software Engineering Body of Knowledge (SWEBOK). In-depth coverage of key issues, combined with a strong focus on software quality, makes Essentials of Software Engineering, Third Edition the perfect text for students entering the fast-growing and lucrative field of software development. The text includes thorough overviews of programming concepts, system analysis and design, principles of software engineering, development and support processes, methodologies, and product management. The revised and updated Third Edition includes all-new sections on SCRUM and HTML-Script-SQL Design Examples, as well as expanded discussions of User-Interface Design, Flow of Interactions, Cognitive Models, and other UI Design issues. Covering all phases of the software production lifecycle and emphasizing quality throughout, Essentials of Software Engineering is a superb resource for students of software engineering. Key Features: Revised and fully updated throughout, with all-new sections on SCRUM and HTML-Script-SQL Design Examples, as well as expanded discussions of other central topics Provides coverage of all essential topics emphasized by SWEBOK Covers essential topics required for students to complete individual and team projects in an affordable and accessible paperback format. Contains an all-new Appendix with examples of Essential Software Development Plan (SDP), Essential Software Requirements Specifications (SRS), Essential Software Design, and Essential Test Plan
Embedded software engineering: The state of the practice
Authors: B. Graaf, M. Lormans, Hans Toetenel
Published in: IEEE Software (2003-11-01)

Technologies for the development of embedded systems should address specific constraints such as hard timing constraints, limited memory and power use, predefined hardware platform technology, and hardware costs. Existing development technologies don't address their specific impact on, or necessary customization for, the embedded domain. Nor do these technologies give developers any indication of how to apply them to specific areas in this domain, for example, automotive systems, telecommunications, or consumer electronics. Consequently, tailoring a technology for a specific use is difficult. Furthermore, the embedded domain is driven by reliability factors, cost factors, and time to market. So, this embedded domain needs specifically targeted development technologies. An inventory of eight European companies reveals what tools developers of embedded-systems software are and aren't using, and why. The need exists for more specific, yet flexible, tools.
Closing the Gap Between Software Engineering Education and Industrial Needs
Authors: Vahid Garousi, Görkem Giray, Eray Tüzün, Cagatay Catal, Michael Felderer
Published in: IEEE Software (2019-03-11)

Many recent software engineering graduates often face difficulties when beginning their professional careers, due to misalignment of the skills learned in their university education with what is needed in industry. In this article, we report a literature review of the studies that have been done to make improvements on this issue.
Methodologies and Software Engineering for Agent Systems: the Agent-oriented Software Engineering Handbook
Authors: Federico Bergenti, Marie-Pierre Gleizes, Franco Zambonelli
Published in:  (2003-01-01)

A collection of papers in the area from leading researchers in the field.
Perspectives in Software Engineering
Authors: Marvin V. Zelkowitz
Published in: ACM Computing Surveys (1978-06-01)

Software engineering refers to the process of creating software systems. It applies loosely to techniques which reduce high software cost and complexity while increasing reliability and mochfiability. This paper outlines the procedures used in the development of computer software, emphasizing large-scale software development, and pmpomtmg areas where problems exist and solutions have been proposed Solutions from both the management and the programmer points of vtew are then given for many of these problem areas.
Usability Engineering
Authors: Jakob Nielsen
Published in:  (1993-01-01)

From the Publisher: Written by the author of the best-selling HyperText & HyperMedia, this book provides an excellent guide to the methods of usability engineering. Special features: emphasizes cost-effective methods that will help developers improve their user interfaces immediately, shows you how to avoid the four most frequently listed reasons for delay in software projects, provides step-by-step information about which methods to use at various stages during the development life cycle, and offers information on the unique issues relating to informational usability. You do not need to have previous knowledge of usability to implement the methods provided, yet all of the latest research is covered.
Software engineering code of ethics
Authors: Don Gotterbarn, Keith Miller, Simon Rogerson
Published in: Communications of the ACM (1997-11-01)

ACM and the IEEE Computer Society created a code of professional practices within the industry. The contains eight keyword principles related to the behavior of and decisions made by professional software engineers, as well as trainees and students of the profession. The principles identify the various relationships in which individuals, groups, and organizations participate and the primary obligations within these relationships.
Software Engineering : Rekayasa Perangkat Lunak
Authors: Ian Sommerville
Published in:  (2003-01-01)

Rekayasa perangkat lunak menyajikan perspektif yang luas terhadap sistem rekayasa perangkat lunak, dengan konsentrasi pada teknik-teknik yang digunakan secara luas untuk membangun sistem perangkat lunak skala besar. Dalam tujuh bagian, buku best seller ini merangkum spektrum yang luas dari proses-proses perangkat lunak, mulai dari spesifikasi awal yang di butuhkan ke perancangan dan pengembangan sampai pada evolusi sistem. Buku ini membantu mahasiswa yang mengambil studi sarjana dan pascasarjana di bidang rekayasa perangkat lunak dan juga bagi insinyur perangkat lunak dalam industri, yang perlu meningkatkan pengetahuannya tentang teknik-teknik baru seperti rekayasa persyaratan, arsitektur sistem terdistribusi, dan kebergantungan sistem.
Software engineering: Theory and practice
Authors: Rodolfo Alfredo Bertone
Published in: DOAJ (DOAJ: Directory of Open Access Journals) (2005-04-01)

A book that describes and applies Software Engineering methods according to the state of the art of the subject matter; it is integrated with a proper exemplification and evolves as each topic is introduced. The material is designed for undergraduates of the initial course of Software Engineering and/or professionals who wish to improve their techniques for the development of software systems.
Software Engineering Metrics: What Do They Measure and How Do We Know?
Authors: Cem Kaner, Walter P. Bond
Published in:  (2004-01-01)

Abstract—Construct validity is about the question, how we know that we&amp;apos;re measuring the attribute that we think we&amp;apos;re measuring? This is discussed in formal, theoretical ways in the computing literature (in terms of the representational theory of measurement) but rarely in simpler ways that foster application by practitioners. Construct validity starts with a thorough analysis of the construct, the attribute we are attempting to measure. In the IEEE Standard 1061, direct measures need not be validated. &amp;quot;Direct &amp;quot; measurement of an attribute involves a metric that depends only on the value of the attribute, but few or no software engineering attributes or tasks are so simple that measures of them can be direct. Thus, all metrics should be validated. The paper continues with a framework for evaluating proposed metrics, and applies it to two uses of bug counts. Bug counts capture only a small part of the meaning of the attributes they are being used to measure. Multidimensional analyses of attributes appear promising as a means of capturing the quality of the attribute in question. Analysis fragments run throughout the paper, illustrating the breakdown of an attribute or task of interest into sub-attributes for grouped study.
Happy software developers solve problems better: psychological measurements in empirical software engineering
Authors: Daniel Graziotin, Xiaofeng Wang, Pekka Abrahamsson
Published in: PeerJ (2014-03-11)

For more than thirty years, it has been claimed that a way to improve software developers' productivity and software quality is to focus on people and to provide incentives to make developers satisfied and happy. This claim has rarely been verified in software engineering research, which faces an additional challenge in comparison to more traditional engineering fields: software development is an intellectual activity and is dominated by often-neglected human factors (called human aspects in software engineering research). Among the many skills required for software development, developers must possess high analytical problem-solving skills and creativity for the software construction process. According to psychology research, affective states-emotions and moods-deeply influence the cognitive processing abilities and performance of workers, including creativity and analytical problem solving. Nonetheless, little research has investigated the correlation between the affective states, creativity, and analytical problem-solving performance of programmers. This article echoes the call to employ psychological measurements in software engineering research. We report a study with 42 participants to investigate the relationship between the affective states, creativity, and analytical problem-solving skills of software developers. The results offer support for the claim that happy developers are indeed better problem solvers in terms of their analytical abilities. The following contributions are made by this study: (1) providing a better understanding of the impact of affective states on the creativity and analytical problem-solving capacities of developers, (2) introducing and validating psychological measurements, theories, and concepts of affective states, creativity, and analytical-problem-solving skills in empirical software engineering, and (3) raising the need for studying the human factors of software engineering by employing a multidisciplinary viewpoint.
Navigating the Complexity of Generative AI Adoption in Software Engineering
Authors: Daniel Russo
Published in: ACM Transactions on Software Engineering and Methodology (2024-03-28)

This article explores the adoption of Generative Artificial Intelligence (AI) tools within the domain of software engineering, focusing on the influencing factors at the individual, technological, and social levels. We applied a convergent mixed-methods approach to offer a comprehensive understanding of AI adoption dynamics. We initially conducted a questionnaire survey with 100 software engineers, drawing upon the Technology Acceptance Model, the Diffusion of Innovation Theory, and the Social Cognitive Theory as guiding theoretical frameworks. Employing the Gioia methodology, we derived a theoretical model of AI adoption in software engineering: the Human-AI Collaboration and Adaptation Framework. This model was then validated using Partial Least Squares–Structural Equation Modeling based on data from 183 software engineers. Findings indicate that at this early stage of AI integration, the compatibility of AI tools within existing development workflows predominantly drives their adoption, challenging conventional technology acceptance theories. The impact of perceived usefulness, social factors, and personal innovativeness seems less pronounced than expected. The study provides crucial insights for future AI tool design and offers a framework for developing effective organizational implementation strategies.
Metamodelling for software engineering
Authors: César González-Pérez, Brian Henderson‐Sellers
Published in:  (2008-01-01)

This book focuses on metamodelling as a discipline, exploring its foundations, techniques and results. It presents a comprehensive metamodel that covers process, product and quality issues under a common framework. Issues covered include: * An explanation of what metamodelling is and why it is necessary in the context of software engineering. * Basic concepts and principles of traditional metamodelling, and some existing results of this approach. * Problems associated with traditional approaches to Metamodelling are discussed, alongside an exploration of possible solutions and alternative approaches. * Advanced topics such as the extension of the object-oriented paradigm for metamodelling purposes or the foundations of powertype-based tool development will be studied. * Finally, a comprehensive case study is introduced and developed, showing how to use many of the concepts explained in the previous chapters. This book provides a comprehensive conceptual framework for metamodelling and includes case studies and exercises which will demonstrate practical uses of metamodelling. For lecturers and educators, the book provides a layered repository of contents, starting from the basics of metamodelling in the first chapters, through specific issues such as trans-layer control or non-strict approaches, up to advanced topics such as universal powertyping or extensions to the object-oriented paradigm. The book also serves as an in-depth reference guide to features and technologies to consider when developing in-house software development methods or customising and adopting off-the-shelf ones. Software tool developers and vendors can benefit from the book by finding in it a comprehensive guide to the implementation of frameworks and toolsets for computer-aided software modelling and development.
Computer-Aided Software Engineering in a distributed workstation environment
Authors: David B. Leblang, Robert Chase
Published in: ACM SIGPLAN Notices (1984-04-25)

Computer-Aided Software Engineering environments are becoming essential for complex software projects, just as CAD systems have become essential for complex hardware projects. DSEE, the DOMAIN Software Engineering Environment, is a distributed, production quality, software development environment that runs on Apollo workstations. DSEE provides source code control, configuration management, release control, advice management, task management, and user-defined dependency tracking with automatic notification. DSEE incorporates some of the best ideas from existing systems. This paper describes DSEE, contrasts it other systems, and discusses some of the technical issues involved in the construction of a highly-reliable, safe, efficient, and distributed development environment.
Challenges for Software Engineering in Automation
Authors: Birgit Vogel‐Heuser, Christian Diedrich, Alexander Fay, Sabine Jeschke, Stefan Kowalewski, Martin Wollschlaeger, Peter Göhner
Published in: Journal of Software Engineering and Applications (2014-01-01)

This paper gives an introduction to the essential challenges of software engineering and requirements that software has to fulfill in the domain of automation. Besides, the functional characteristics, specific constraints and circumstances are considered for deriving requirements concerning usability, the technical process, the automation functions, used platform and the well-established models, which are described in detail. On the other hand, challenges result from the circumstances at different points in the single phases of the life cycle of the automated system. The requirements for life-cycle-management, tools and the changeability during runtime are described in detail.
Software engineering with agents: pitfalls and pratfalls
Authors: Michael Wooldridge, Nicholas R. Jennings
Published in: IEEE Internet Computing (1999-01-01)

While the theoretical and experimental foundations of agent-based systems are becoming increasingly well understood, comparatively little effort has been devoted to understanding the everyday reality of carrying out an agent-based development project. As a result, agent system developers needlessly repeat the same mistakes. At best, this wastes resources; at worst, projects fail. The authors identify the main pitfalls awaiting the agent system developer and recommend ways to avoid or rectify them where possible.
Where's the Theory for Software Engineering?
Authors: Pontus Johnson, Mathias Ekstedt, Ivar Jacobson
Published in: IEEE Software (2012-08-28)

Darwin's theory of natural selection, Maxwell's equations, the theory of demand and supply; almost all established academic disciplines place great emphasis on what their core theory is. This is not, however, the case in software engineering. What is the reason behind the software engineering community's apparent indifference to a concept that is so important to so many others?
Component‐based software engineering — new challenges in software development
Authors: Ivica Crnković
Published in: Software Focus (2001-12-01)

Abstract The primary role of component‐based software engineering is to address the development of systems as an assembly of parts (components), the development of parts as reusable entities, and the maintenance and upgrading of systems by customising and replacing such parts. This requires established methodologies and tool support covering the entire component and system lifecycle including technological, organisational, marketing, legal, and other aspects. The traditional disciplines from software engineering need new methodologies to support component‐based development. IVICA CRNKOVIC assesses the challenges of this emerging technology and discusses its implications for the software development process. Copyright © 2002 John Wiley &amp; Sons, Ltd.
Crowdsourcing in Software Engineering: Models, Motivations, and Challenges
Authors: Thomas D. LaToza, André van der Hoek
Published in: IEEE Software (2015-12-29)

Almost surreptitiously, crowdsourcing has entered software engineering practice. In-house development, contracting, and outsourcing still dominate, but many development projects use crowdsourcing-for example, to squash bugs, test software, or gather alternative UI designs. Although the overall impact has been mundane so far, crowdsourcing could lead to fundamental, disruptive changes in how software is developed. Various crowdsourcing models have been applied to software development. Such changes offer exciting opportunities, but several challenges must be met for crowdsourcing software development to reach its potential.
Software engineering programs are not computer science programs
Authors: David Lorge Parnas
Published in: IEEE Software (1999-01-01)

Software Engineering programs have become a source of contention in many universities. Computer Science departments, many of which have used that phrase to describe individual courses for decades, claim SE as part of their discipline. Yet some engineering faculties claim it as a new specialty among the engineering disciplines. This article discusses the differences between traditional CS programs and most engineering programs, and argues that we need SE programs that follow the traditional engineering approach to professional education.
Object-Oriented Software Engineering: Measuring And Controlling The Development Process
Authors: Fernando Brito e Abreu, Rogério Carapuça
Published in:  (1994-10-04)

Although the benefits of Object-Orientation are manifold and it is, for certain, one of the mainstays for software production in the future, it will only achieve widespread practical acceptance when the management aspects of the software development process using this technology are carefully addressed. Here, software metrics play an important role allowing, among other things, better planning, the assessment of improvements, the reduction of unpredictability, early identification of potential problems and productivity evaluation. This paper proposes a set of metrics suitable for evaluating the use of the main abstractions of the Object-Oriented paradigm such as inheritance, encapsulation, information hiding or polymorphism and the consequent emphasis on reuse that, together, are believed to be responsible for the increase in software quality and development productivity. Those metrics are aimed at helping to establish comparisons throughout the practitioners’ community and setting design recommendations that may eventually become organization standards. Some desirable properties for such a metrics set are also presented. Future lines of research are envisaged.
Socio-Technical Grounded Theory for Software Engineering
Authors: Rashina Hoda
Published in: IEEE Transactions on Software Engineering (2021-08-20)

Grounded Theory (GT), a sociological research method designed to study social phenomena, is increasingly being used to investigate the human and social aspects of software engineering (SE). However, being written by and for sociologists, GT is often challenging for a majority of SE researchers to understand and apply. Additionally, SE researchers attempting ad hoc adaptations of traditional GT guidelines for modern socio-technical (ST) contexts often struggle in the absence of clear and relevant guidelines to do so, resulting in poor quality studies. To overcome these research community challenges and leverage modern research opportunities, this paper presentsSocio-Technical Grounded Theory(STGT) designed to ease application and achieve quality outcomes. It defines what exactly is meant by an ST research context and presents the STGT guidelines that expand GT's philosophical foundations, provide increased clarity and flexibility in its methodological steps and procedures, define possible scope and contexts of application, encourage frequent reporting of a variety of interim, preliminary, and mature outcomes, and introduce nuanced evaluation guidelines for different outcomes. It is hoped that the SE research community and related ST disciplines such as computer science, data science, artificial intelligence, information systems, human computer/robot/AI interaction, human-centered emerging technologies (and increasingly other disciplines being transformed by rapid digitalisation and AI-based augmentation), will benefit from applying STGT to conduct quality research studies and systematically produce rich findings and mature theories with confidence.
Writing research article introductions in software engineering: how accurate is a standard model?
Authors: Laurence Anthony
Published in: IEEE Transactions on Professional Communication (1999-03-01)

A standard model for describing the structure of research article introductions, the CARS (Create A Research Space) model, is evaluated in terms of how well it can be applied to 12 articles which have received "best paper" awards in the field of software engineering. The results indicate that, although the model adequately describes the main framework of the introductions, a number of important features are not accounted for, in particular: an extensive review of background literature, the inclusion of many definitions and examples, and an evaluation of the research in terms of application or novelty of the results.