Formal Specifications of Software Model Evolution Using Contracts

Author(s):  
Claudia Pons ◽  
Gabriel Baum

During the object-oriented software development process, a variety of models of the system is built. All these models are semantically overlapping and together represent the system as a whole. In this chapter, we present a classification of relationships between models along three different dimensions, proposing a formal description of them in terms of mathematical contracts, where the software development process is seen as involving a number of agents (the development team and the software artifacts) carrying out actions with the goal of building a software system that meets the user requirements. In this way, contracts can be used to reason about correctness of the development process, and to compare the capabilities of various groupings of agents in order to accomplish a particular contract. The goal of the proposed formalization is to provide formal foundations for tools that perform intelligent analysis on models assisting software engineers through the software life cycle.

Author(s):  
Pankaj Kamthan

There are various reasons for discussing the issue of ethics within a software engineering context. By participating in a software development process, software engineers can influence the final product, namely the software itself, in different ways including those that may be contrary to public interest. In other words, they could engage in an unethical behavior, inadvertently or deliberately. This could lead to personal harm, and potentially result in loss of confidence in software and loss of trust in organizations that own them. This can adversely affect the acceptance of software as a useful product, question the credibility of software engineering as a profession, lead to legal implications, and impact the bottom line of the software industry at-large.


2011 ◽  
Vol 403-408 ◽  
pp. 4495-4498
Author(s):  
K. Madhuri ◽  
M. Suman ◽  
M. Nalini Sri ◽  
K. Ravi Kumar ◽  
U. Jyothi Kameswari

Security testing involves two approaches; the question of who should do it has two answers. Standard testing organizations using a traditional approach can perform functional security testing. For example, ensuring that access control mechanisms work as advertised is a classic functional testing exercise. Systematic security testing approaches should be seamlessly incorporated into software engineering curricula and software development process. Traditional software engineering textbooks failed to provide adequate methods and techniques for students and software engineers to bring security engineering approaches to software development process generating secure software as well as correct software. This paper argues that a security testing phase should be added to software development process with systematic approach to generating and conducting destructive security test sets following a complete coverage principle. Software engineers must have formal training on writing secure code. The security testing tasks include penetrating and destructive tests that are different from functional testing tasks currently covered in software engineering textbooks Moreover, component-based development and formal methods could be useful to produce secure code, as well as automatic security checking tools. Some experience of applying security testing principles in our software engineering method teaching is reported.


Author(s):  
M. Hanefi Calp ◽  
M. Ali Akcayol

<p>Today, software industry has a rapid growth. In order to resist the competition increased by this growth, software projects ne0ed to be developed with higher quality and especially user friendly. Therefore, the importance of human-computer interaction emerges clearly. In design and development phases of software projects, the properties of human –which is an important agent for interaction- such as behavioral, cognitive, perceptive, efficiency and physical factors have to be considered. This study aims to express the importance of developing softwares by taking into consideration the human-computer interaction applications. In this context, firstly a wide literature review is made to examine software development process and human-computer interaction in detail, the results obtained by using design methods in this process are explicated and the importance of said interaction is openly expressed with the exemplary applications in the literature. According to the results of the research, especially in software life cycle, it is observed that rules of interaction must be implemented before software development, however, these methods are usually included in software life cycle in the latter stages of software development process. This situation causes the developed softwares to be user unfriendly and of low quality. Furthermore, it is observed that when the design methods used in the scope of human-computer interaction are integrated into software development process during the life cycle, the developed projects are more successful, have better quality and are more user friendly.</p><p> Keywords: Human-computer interaction, software projects, life cycle, software design.</p>


Author(s):  
Sofia Azevedo ◽  
Ricardo J. Machado ◽  
Alexandre Bragança ◽  
Hugo Ribeiro

Software patterns are reusable solutions to problems that occur often throughout the software development process. This chapter formally states which sort of software patterns shall be used in which particular moment of the software development process and in the context of which Software Engineering professionals, technologies and methodologies. The way to do that is to classify those patterns according to the proposed multilevel and multistage pattern classification based on the software development process. The classification is based on the OMG modeling infrastructure or Four-Layer Architecture and also on the RUP (Rational Unified Process). It considers that patterns can be represented at different levels of the OMG modeling infrastructure and that representing patterns as metamodels is a way of turning the decisions on their application more objective. Classifying patterns according to the proposed pattern classification allows for the preservation of the original advantages of those patterns and avoids that the patterns from a specific category are handled by the inadequate professionals, technologies and methodologies. The chapter illustrates the proposed approach with the classification of some patterns.


Author(s):  
Bruce I. Blum

This book provides a unique examination of the software development process, arguing that discipline, still dominated by methods conceived in the framework of older technologies, must undergo a fundamental reexamination of its guiding principles in order for significant progress to take place. To gain fresh insights into how we ought to direct future research, the author begins with a search for first principles. The book begins with an exploration of the scientific foundations of computer technology, then examines design from the perspective of practitioners. The book also offers a critique of the methods employed in software development and an evaluation of an alternate paradigm that has been used successfully for 14 years. The concepts reviewed here comprise a set of core readings for understanding the research and development challenges that will confront computer technology in the 21st century and will be of great interest to computer science researchers and educators, graduate students, and software engineers.


Author(s):  
Anton Chernichkin ◽  
Oksana Nikiforova

An approach to classification of MDA tools Nowadays there is a wide variety of tools, supporting the idea of software development process to be enriched by the principles of modelling—the source code is being generated from the model. Many of these purporting to be "MDA complaint" as well. Model driven architecture offers an approach to software development process that provides a separation of concerns, keeping the appropriate level of abstraction on each stage of development. Furthermore, the source code can be generated in a formal way, requiring no interference from the developer. There are two types of software development tools: the former type represents the semiautomatic approach, where the software is supposed to be created using system's model and code transformations, also considering different types of routines, which are done manually, while the latter type is an automatic solution, where no manual steps or routines are required. The original article defines various perspectives on positioning of MDA tools among CASE tools for software development, as well as proposes a methodological approach on classification of MDA tools. One of the perspectives that can be used in the MDA tool classification approach corresponds with the Model Driven Development life cycle, while the other one defines the role of modelling and model application levels in a whole development process. In addition, various sets of features have been defined, in order to clarify the accordance level of these tools from the MDA perspective.


2018 ◽  
Vol 11 (2) ◽  
pp. 68-87 ◽  
Author(s):  
Priyanka Chandani ◽  
Chetna Gupta

Requirement defects are one of the major sources of failure in any software development process as they prevent smooth operation and is taxing both in terms of tracking and validation. The objective of this article is to make requirement analysis phase exhaustive by estimating risk at requirement level using requirement defect information and execution flow dependency as early as possible to inhibit them from being incorporated in design and implementation. The proposed approach works as a two-fold process which computes risk involved with each requirement twice. The whole process is divided into a three-layered framework to finalize requirements with clear vision and scope of a project. The entire process has been supported by a software case study. The results of the proposed work are promising and will help software engineers in ensuring that all business requirements are captured correctly with clear vision and scope. It will also help in decreasing the chances of failure, risk, and conflicts between stakeholder and developer and other challenges involved to develop the project.


Author(s):  
Danar Ardhito ◽  
Abba Suganda Girsang

Computer bug elimination is an important phase in the software development process. A ticketing system is usually used to classify the identified bug type and to assign a suitable developer. This system is handled manually and error prone. This paper proposes a new bug classification method using the fast string search algorithm. The method searches the error string and compares it to the full text. The approach is deployed to the software development process at PT. Selaras Anugerah Lestari and it results in a significant reduction in the average value of the time required to handle the bugs.


Sign in / Sign up

Export Citation Format

Share Document