the present work describes a technology for developing software in unique and large projects. the present model-based technology supports the projects where a single software product is developed. this is different fr...
详细信息
the present work describes a technology for developing software in unique and large projects. the present model-based technology supports the projects where a single software product is developed. this is different from the block languages and model-based softwaretools on the market, which provide a set of components where the reusability of the components is an important requirement. A distinguished feature of the technology is a support that it gives to the software design at an early stage of the design process. the design process begins on the architectural level where implementation details can be ignored. Components are introduced considering their functionality, but the implementability of a component is taken into account at the early stage of the design process only based on an experience of a designer.
Due to the limitations of anti-phishing software and limitations in creating such software, we propose the usage of metamodelling frameworks and softwaretools for implementing software systems where phishing preventi...
详细信息
Due to the limitations of anti-phishing software and limitations in creating such software, we propose the usage of metamodelling frameworks and softwaretools for implementing software systems where phishing prevention is already designed as a part of the system itself. An expressive computational, verifiable and validatable metamodel is created that captures user behaviour. Next it is shown through examples that the metamodel follows and describes reported phishing scams accurately. the model is then used to create specification in an executable formal specification tool. the formal specification, which can be executed to observe user behaviour, can be used as a building block in the specification of a larger software system, resulting in an inherently phishing- resilient software system design in the form of a formal specification.
software security is a combination of security methods, techniques and tools, aiming to promote data confidentiality, integrity, usability, availability and privacy. In order to achieve concrete and measurable levels ...
详细信息
software security is a combination of security methods, techniques and tools, aiming to promote data confidentiality, integrity, usability, availability and privacy. In order to achieve concrete and measurable levels of software security, several international, national and industry-level regulations have been established. Finnish governmental security standard collection, VAHTI, is one of the most extensive example of these standards. this paper presents a selection of methods, tools, techniques and modifications to Scrum software development method to achieve the levels of security compliant with VAHTI instructions for software development. these comprise of security-specific modifications and additions to Scrum roles, modifications to sprints, and inclusion of special hardening sprints and spikes to implement the security items in the product backlog. Security requirements are transformed to security stories, abuse cases and other security-related tasks. Definition of done regarding the VAHTI requirements on is established and the steps to achieve it are described.
Github is an online platform for hosting projects that use the Git revision control system to manage code. Its lightweight issue tracker helps to maintain lists of issues identified during the development process, inc...
详细信息
Github is an online platform for hosting projects that use the Git revision control system to manage code. Its lightweight issue tracker helps to maintain lists of issues identified during the development process, including bugs, features, or other software artifacts. Although issue tracking software has been practically used in software industry, studies on using it to manage requirements remain insufficient. this pa- per tackles the issue by presenting a semi-formal guideline for managing requirements in agile software development projects using Github. the guideline is evaluated on a theoretical level by analyzing how well it guides to manage requirements and fits in an agile software development setting. It is compared against lean principles. In addition, the guideline is put into use in a case study. the studies indicate that the guideline and Github are well-suited for requirements management in an agile environment.
this research is based on three drivers. Firstly, software development and deployment cycles are getting shorter and require automatic building and deployment processes. Secondly, elastic clouds are available for both...
详细信息
this research is based on three drivers. Firstly, software development and deployment cycles are getting shorter and require automatic building and deployment processes. Secondly, elastic clouds are available for both hosting and development of applications. thirdly, the increasingly popular DevOps introduces new organizational and business culture. this paper presents a research prototype and demonstrator of an integrated development tool. the tool is cloud based and thus accessible from any Web-enabled terminal. Automation is maximized so that deployment cycles can be as fast as possible. Since the aim is to use cloud resources as a utility in a flexible manner, cloud brokering { i.e. finding the most suitable provider { is included in the system. the contributions of the paper include: an idea of a new kind of DevOps tool, description on how it can be implemented on top of standard components and implications to software development processes.
Testing has become an integral part of most software projects. It accounts for even as high a share as 40% of the overall work effort. At the same time software projects are systematically exceeding their effort and s...
详细信息
Testing has become an integral part of most software projects. It accounts for even as high a share as 40% of the overall work effort. At the same time software projects are systematically exceeding their effort and schedule forecasts. Regardless of the overruns and big share of testing, there is very little advice for estimating testing activities. this case study research assesses the current practice of estimating testing activities, and the impact of these practices on estimation and project success. Based on the interviews with 11 stakeholders involved in two case projects and examination of project documentation, this study shows that companies easily deviate from their standard procedures, when estimating testing. this may even lead to severe estimation errors. the deviations can be explained by negative attitudes towards testing. Furthermore, this study shows that the extant literature has sparsely addressed estimation of software testing.
Reuse is one of the classic ways to improve productivity in software development. Indeed, benefiting from software components, patterns, and solutions that have been developed in the company potentially leads to savin...
详细信息
Reuse is one of the classic ways to improve productivity in software development. Indeed, benefiting from software components, patterns, and solutions that have been developed in the company potentially leads to savings in all phases of software intensive work. However, putting such an approach to practice is far from being simple. In particular, when considering software companies that specialize in customer-specific software projects, it is common that similar designs and technology choices are made in parallel without project-crossing knowledge. In such settings, there is a lack of a systematic approach between projects to spread good practices or to eliminate bad ones. In this paper, we propose solving such problems with an information system that acts as a marketplace for promoting software reuse within a project organization, much to the same flavor as app stores are used to promote mobile applications. the paper provides insight to the design of our prototype system, as well as contains preliminary views from users in one organization.
Typical management strategies proven to work in already established businesses do not work as expected in startups. Startups do not yet have a business model and product that they could focus on, but are still looking...
详细信息
Typical management strategies proven to work in already established businesses do not work as expected in startups. Startups do not yet have a business model and product that they could focus on, but are still looking for a working business model. Lean Startup is a method for startup management that focuses on quick iteration and on fast learning to find an iterable business model. As a method, Lean Startup is still quite novel. It does not have much scientific literature written about it, but it is used by startups. the two case study companies were both positive about Lean Startup and felt that the method had given them a helpful approach.
Large software development organizations put enormous amount of effort not only for responding to continuous requests of customers but also for reengineering and refactoring activities to keep their product maintainab...
详细信息
Large software development organizations put enormous amount of effort not only for responding to continuous requests of customers but also for reengineering and refactoring activities to keep their product maintainable. Often rapid and immature feature deliveries over long period of time gradually decrease the product quality, and therefore the refactoring activities become costly and effort-intensive. this situation is described by the concept of "technical debt", which represents the accumulated rework that organization has to do in order to prevent the slowdown of the development. In this paper we report results of a case study at Ericsson on using software metrics for moving towards proactive management of technical debt. Our observations show that there are four distinguishable maturity phases of quality management over the eight years of development time of two large products: Start-n-stop, Reactive, Systematic, and Proactive quality management. three sophisticated metrics are applied to help the organizations to move towards Proactive management of technical debt. these metrics are used on a systematic basis to provide information on the areas of the product that have tendency of accumulating technical debt. software engineers use this information for making decisions on whether or not the pinpointed areas should be refactored.
Regression test suites of evolving software systems are often crucial to maintaining software quality in the long term. they have to be effective in terms of detecting faults and helping their localization. However, t...
详细信息
Regression test suites of evolving software systems are often crucial to maintaining software quality in the long term. they have to be effective in terms of detecting faults and helping their localization. However, to gain knowledge of such capabilities of test suites is usually difficult. We propose a method for deeper understanding of a test suite and its relation to the program code it is intended to test. the basic idea is to decompose the test suite and the program code into coherent logical groups which are easier to analyze and understand. Coverage and partition metrics are then extracted directly from code coverage information to characterize a test suite and its constituents. We also use heat-map tables for test suite assessment both at the system level and at the level of logical groups. We employ these metrics to analyze and evaluate the regression test suite of the WebKit system, an industrial size browser engine with an extensive set of 27,000 tests.
暂无评论