Search results for "ohjelmistosuunnittelu"
showing 10 items of 19 documents
Cargo-Cult Containerization : A Critical View of Containers in Modern Software Development
2022
Software is increasingly developed and deployed using containers. While the concept of a container is conceptually straightforward, there are various issues to be considered while using them, ranging from technical details inside containers to the orchestration of containers that jointly form a meaningful application. In recent years, the use of containers has become so prevalent that developers have a tendency to resort to cargo-cult containerization - ritual adherence to the use of containers just because so many others are doing the same thing. In this paper, we study advantages and downsides of containers in modern-day software development. We foresee the use of containers to spread int…
The Essence Theory of Software Engineering – Large-Scale Classroom Experiences from 450+ Software Engineering BSc Students
2018
Software Engineering as an industry is highly diverse in terms of development methods and practices. Practitioners employ a myriad of methods and tend to further tailor them by e.g. omitting some practices or rules. This diversity in development methods poses a challenge for software engineering education, creating a gap between education and industry. General theories such as the Essence Theory of Software Engineering can help bridge this gap by presenting software engineering students with higher-level frameworks upon which to build an understanding of software engineering methods and practical project work. In this paper, we study Essence in an educational setting to evaluate its usefuln…
Introducing Traceability in GitHub for Medical Software Development
2021
Assuring traceability from requirements to implementation is a key element when developing safety critical software systems. Traditionally, this traceability is ensured by a waterfall-like process, where phases follow each other, and tracing between different phases can be managed. However, new software development paradigms, such as continuous software engineering and DevOps, which encourage a steady stream of new features, committed by developers in a seemingly uncontrolled fashion in terms of former phasing, challenge this view. In this paper, we introduce our approach that adds traceability capabilities to GitHub, so that the developers can act like they normally do in GitHub context bu…
Continuous design control for machine learning in certified medical systems
2022
AbstractContinuous software engineering has become commonplace in numerous fields. However, in regulating intensive sectors, where additional concerns need to be taken into account, it is often considered difficult to apply continuous development approaches, such as devops. In this paper, we present an approach for using pull requests as design controls, and apply this approach to machine learning in certified medical systems leveraging model cards, a novel technique developed to add explainability to machine learning systems, as a regulatory audit trail. The approach is demonstrated with an industrial system that we have used previously to show how medical systems can be developed in a con…
A Decision Model for Selecting Patterns and Strategies to Decompose Applications into Microservices
2021
Microservices Architecture (MSA) style is a promising design approach to develop software applications consisting of multiple small and independently deployable services. Over the past few years, researchers and practitioners have proposed many MSA patterns and strategies covering various aspects of microservices design, such as application decomposition. However, selecting appropriate patterns and strategies can entail various challenges for practitioners. To this end, this study proposes a decision model for selecting patterns and strategies to decompose applications into microservices. We used peer-reviewed and grey literature to collect the patterns, strategies, and quality attributes f…
Omission of Quality Software Development Practices : A Systematic Literature Review
2018
Software deficiencies are minimized by utilizing recommended software development and quality assurance practices. However, these recommended practices (i.e., quality practices) become ineffective if software professionals purposefully ignore them. Conducting a systematic literature review (n = 4,838), we discovered that only a small number of previous studies, within software engineering and information systems literature, have investigated the omission of quality practices. These studies explain the omission of quality practices mainly as a result of organizational decisions and trade-offs made under resource constraints or market pressure. However, our study indicates that different aspe…
Learning via Summarizing Infographics Assignment in Software Engineering Management e-Course?
2020
This Research-to-Practice, Work in Progress Paper focuses on how learners experience creation of infographics as a summarizing assignment in an advanced level e-course on software engineering management (SEM). We have previously investigated how learners perceive infographics as a repeated reflection assignment during a requirements engineering e-course. To complement this research project, we studied how learners experience the use of infographics as a method for summarizing a whole software engineering management course in e-education setting. The SEM course participants (N=36) found that infographics as a summarizing assignment required complex learning that was altogether deemed highly …
Challenges in Geographically Distributed Information System Development : A Case Study
2021
Geographically distributed information system development (ISD) projects are more and more common, especially among organisations operating in global markets. Distributed ISD yields potential competitive advantages by developing new products near the target markets, utilizing global labour markets, and exposing the organisation to innovations, ideas and new paradigms. However, distributed ISD also presents challenges and problems which organisations must take into consideration. The pivotal challenge is usually communication. People working on the same project in different locations find it difficult to communicate due to lack of formal and informal face-to-face communication, different wor…
Self-management in distributed systems : smart adaptive framework for pervasive computing environments
2013
Towards Practical Cybersecurity Mapping of STRIDE and CWE — a Multi-perspective Approach
2021
Software vulnerabilities are identified during their whole life-cycle; some vulnerabilities may be caused by flaws on the design while other appear due to advances on the technologies around the systems. Frameworks such as OWASP are well- known and are used for testing a systems security before or after implementation, and such testing is carried out against the existing system. Threat modeling however focuses on the early stages of the system design when it is feasible and easy to fix security-related flaws and prevent possible damage caused by them. For example, STRIDE is one very popular threat modeling framework. A STRIDE threat modelling specialist deals with abstract categorizations o…