Software Development Crisis

Author(s):  
Sergey Zykov

Software development is critically dependent on a number of factors. These factors include techno-logical and anthropic-oriented ones. Software production is a multiple party process; it includes customer and developer parties. Due to different expectations and goals of each side, the human factors become mission-critical. Misconceptions in the expectations of each side may lead to misbalanced production; the product that the developers produce may significantly differ from what the customers expect. This misbalanced vision of the software product may result in a software de-livery crisis. To manage this crisis, the authors recommend using software engineering methods. Software engineering is a discipline which emerged from the so-called “software crisis” in the 1960s: it combines technical and anthropic-oriented “soft” skills. To conquer the crisis, this chapter discusses general architecture patterns for software and hardware systems; it provides instances of particular industries, such as oil and gas and nuclear power production.

Author(s):  
Sergey Zykov

Software development is critically dependent on a number of factors. These factors include techno-logical and anthropic-oriented ones. Software production is a multiple party process; it includes customer and developer parties. Due to different expectations and goals of each side, the human factors become mission-critical. Misconceptions in the expectations of each side may lead to misbalanced production; the product that the developers produce may significantly differ from what the customers expect. This misbalanced vision of the software product may result in a software de-livery crisis. To manage this crisis, the authors recommend using software engineering methods. Software engineering is a discipline which emerged from the so-called “software crisis” in the 1960s: it combines technical and anthropic-oriented “soft” skills. To conquer the crisis, this chapter discusses general architecture patterns for software and hardware systems; it provides instances of particular industries, such as oil and gas and nuclear power production.


Author(s):  
Sergey V. Zykov

Information technology is critically dependent on a number of technological and human factors. Software engineering processes are multi-sided; they include customer and developer parties. Conceptual misunderstanding by either party often results in the products which do not meet customer's expectations. This misconception of the software product scope usually leads to a crisis of software product delivery. To adequately manage and efficiently respond to this crisis, the authors recommend using software engineering models, methods, techniques, practices, and tools. Software engineering is a discipline which started in the 1960s as a response to the so-called “software crisis”; it combines technical and human-related skills. To manage the crisis, the authors suggest architecture patterns and instantiate them by implementation examples.


2011 ◽  
Vol 2011 ◽  
pp. 1-21 ◽  
Author(s):  
Peleg Yiftachel ◽  
Irit Hadar ◽  
Dan Peled ◽  
Eitan Farchi ◽  
Dan Goldwasser

This paper presents an economics-based approach for studying the problem of resource allocation among software development phases. Our approach is structured along two parallel axes: theoretical and empirical. We developed a general economic model for analyzing the allocation problem as a constrained profit maximization problem. The model, based on a novel concept of software production function, considers the effects of different allocations of development resources on output measures of the resulting software product. An empirical environment for evaluating and refining the model is presented, and a first exploratory study for characterizing the model's components and developers' resource allocation decisions is described. The findings illustrate how the model can be applied and validate its underlying assumptions and usability. Future quantitative empirical studies can refine and substantiate various aspects of the proposed model and ultimately improve the productivity of software development processes.


Author(s):  
Xavier Ferre ◽  
Natalia Juristo ◽  
Ana M. Moreno

Usability has become a critical quality factor in software systems, and it has been receiving increasing attention over the last few years in the SE (software engineering) field. HCI techniques aim to increase the usability level of the final software product, but they are applied sparingly in mainstream software development, because there is very little knowledge about their existence and about how they can contribute to the activities already performed in the development process. There is a perception in the software development community that these usability-related techniques are to be applied only for the development of the visible part of the UI (user interface) after the most important part of the software system (the internals) has been designed and implemented. Nevertheless, the different paths taken by HCI and SE regarding software development have recently started to converge. First, we have noted that HCI methods are being described more formally in the direction of SE software process descriptions. Second, usability is becoming an important issue on the SE agenda, since the software products user base is ever increasing and the degree of user computer literacy is decreasing, leading to a greater demand for usability improvements in the software market. However, the convergence of HCI and SE has uncovered the need for an integration of the practices of both disciplines. This integration is a must for the development of highly usable systems. In the next two sections, we will look at how the SE field has viewed usability. Following upon this, we address the existing approaches to integration. We will then detail the pending issues that stand in the way of successful integration efforts, concluding with the presentation of an approach that might be successful in the integration endeavor.


Author(s):  
Preeti Malik ◽  
Lata Nautiyal ◽  
Mangey Ram

Component-based software engineering has proved itself as a strong pillar in software engineering community. Large number of factors are involved in the success of software product developed using Component-based software engineering, for instance, security, reliability, quality, safety, and testability. As the component-based software is made up of large number of components put together, therefore components’ reliability influence the reliability of the complete software. Numerous models and principles have been established to estimate the reliability of software by applying information regarding architecture, quality and security attributes of the software. Many researchers overlooked a major factor while estimating reliability of component-based software and that is error-propagation. Although it can be a case that the components are not dependent on each other and they are supplemented with the wrappers. However it is not true for many component-based applications. In this paper, a framework for reliability estimation has been proposed. In our proposal we have considered error propagation. We have analyzed the program structure and also presented how they are handled in estimation process. Further sensitivity analysis is done to identify the most sensitive component of the system. A numerical simulation is also presented for better understanding of the proposed framework.


10.28945/4580 ◽  
2020 ◽  
Vol 19 ◽  
pp. 367-393 ◽  
Author(s):  
Ilenia Fronza ◽  
Luis Corral ◽  
Claus Pahl

Aim/Purpose: This work aims to introduce and evaluate an instructional strategy that aids end-users with developing their software products during intensive project-based events. Background: End-users produce software in the labor market, and one of the challenges for End-User Software Engineering (EUSE) is the need to create functional software products without a formal education in software development. Methodology: In this work, we present an instructional strategy to expose end-users to Agile-based Software Engineering (SE) practices and enhance their ability to developing high-quality software. Moreover, we introduce a SE approach for the collection of metrics to assess the effectiveness of the instructional strategy. We conducted two case studies to validate the effectiveness of our strategy; the comprehensive analysis of the outcome products evaluates the strategy and demonstrates how to interpret the collected metrics. Contribution: This work contributes to the research and practitioner body of knowledge by leveraging SE centric concepts to design an instructional strategy to lay the foundations of SE competencies in inexperienced developers. This work presents an instructional strategy to develop SE competencies through an intensive and time-bound structure that may be replicated. Moreover, the present work introduces a framework to evaluate these competencies from a product-centric approach, specialized for non-professional individuals. Finally, the framework contributes to understanding how to assess software quality when the software product is written in non-conventional, introductory programming languages. Findings: The results show the effectiveness of our instructional strategy: teams were successful in constructing a working software product. However, participants did not display a good command of source code order and structure. Recommendations for Practitioners: Our instructional strategy provides practitioners with a framework to lay foundations in SE competencies during intensive project-based events. Based on the results of our case studies, we provide a set of recommendations for educational practice. Recommendation for Researchers: We propose an assessment framework to analyze the effectiveness of the instructional strategy from a SE perspective. This analysis provides an overall picture of the participants’ performance; other researchers could use our framework to evaluate the effectiveness of their activities, which would contribute to increasing the possibility of comparing the effectiveness of different instructional strategies. Impact on Society: Given the number of end-user developers who create software products without a formal SE training, several professional and educational contexts can benefit from our proposed instructional strategy and assessment framework. Future Research: Further research can focus on improving the assessment framework by including both process and product metrics to shed light on the effectiveness of the instructional strategies.


Author(s):  
Sergey V. Zykov

Information technology is critically dependent on a number of technological and human factors. Software engineering processes are multi-sided; they include customer and developer parties. Conceptual misunderstanding by either party often results in the products which do not meet customer's expectations. This misconception of the software product scope usually leads to a crisis of software product delivery. To adequately manage and efficiently respond to this crisis, the authors recommend using software engineering models, methods, techniques, practices and tools. Software engineering is a discipline which started in the 1960s as a response to the so-called “software cri-sis”; it combines technical and human-related skills. To manage the crisis, the authors suggest architecture patterns and instantiate them by implementation examples.


Author(s):  
Vinicius Santos ◽  
João Gabriel Salgado ◽  
Érica Souza ◽  
Katia Felizardo ◽  
Nandamudi Vijaykumar

Knowledge Management (KM) is responsible for using the intellectual resources of an organization. KM principles are both determining and effective factors for the software product quality. Several KM process have been proposed in the literature. However, for a KM initiative to be successful, it is important to consider the current state of KM activities in a company. In this context, the objective of this work is to measure KM activities in software engineering companies by means of a tool that automates the process of KM diagnosis. This paper presents the Software Engineering KNOWledge management diagnosis (SEKNOW) tool, its main functionalities, the potential users profile and examples of use. In addition, we show how the architecture was implemented in order to make the tool extensible to multiple diagnostics and how the companies can employ the tool to fetch data to their systems. Finally, we present similar tools and compare their functionalities.


2013 ◽  
Vol 765-767 ◽  
pp. 1324-1327 ◽  
Author(s):  
Jian Li Dong

With the research and development of software product line and component-based software engineering methodology, it has become key technology how to build component assembly environment and realize heterogeneous component assembly. Thus, a new industrialized product line based integrated software engineering environment (PL-ISEE) model is firstly proposed, and the heterogeneity problems of developed components are analyzed and discussed. For removing components heterogeneity and realizing heterogeneous components assembly, the wrapper wrapping component is studied further. These researches and ideas will play significant role in promoting the formations of component-based software engineering methodology and future industrialized software production technology.


Sign in / Sign up

Export Citation Format

Share Document