The What, How, and When of Formal Methods

Author(s):  
Aristides Dasso ◽  
Ana Funes

Questions such as what are formal methods, how are formal methods implemented, how are they used in software engineering, and when should they be used, among other related questions are the main objective of this chapter. Some definitions are given to answer some of these questions; the chapter also states the aims of FM as well as giving their main characteristics. An example that shows how formal methods can be used for specifying not only software requirements but also the rest of the stages in a software development process is given. A discussion about when they should be used, explaining the reasons why they should be applied when security and reliability are important requirements of the software under development, is presented. Finally, some arguments about how they can also be used as a complement to traditional development methods are provided.

Author(s):  
Aristides Dasso ◽  
Ana Funes

Questions such as what are Formal Methods, how are Formal Methods implemented, how are they used in Software Engineering and when should they be used, among other related questions, are the main objective of this article. Some definitions are given to answer some of these questions; the article also states the aims of FM as well as it gives their main characteristics. An example that shows how Formal Methods can be used for specifying not only software requirements but also the rest of the stages in a software development process is given. A discussion about when they should be used, explaining the reasons why they should be applied when security and reliability are important requirements of the software under development, is presented. Finally, some arguments about how they can also be used as a complement to traditional development methods are provided.


Complexity ◽  
2019 ◽  
Vol 2019 ◽  
pp. 1-20
Author(s):  
Paulo A. M. Barbosa ◽  
Plácido R. Pinheiro ◽  
Francisca R. V. Silveira ◽  
Marum Simão Filho

During the software development process, the decision maker (DM) must master many variables inherent in this process. Software releases represent the order in which a set of requirements is implemented and delivered to the customer. Structuring and enumerating a set of releases with prioritized requirements represents a challenging task because the requirements contain their characteristics, such as technical precedence, the cost required for implementation, the importance that one or more customers add to the requirement, among other factors. To facilitate this work of selection and prioritization of releases, the decision maker may adopt some support tools. One field of study already known to solve this type of problem is the Search-Based Software Engineering (SBSE) that uses metaheuristics as a means to find reasonable solutions taking into account a set of well-defined objectives and constraints. In this paper, we seek to increase the possibilities of solving the Next Release Problem using the methods available in Verbal Decision Analysis (VDA). We generate a problem and submit it so that the VDA and SBSE methods try to resolve it. To validate this research, we compared the results obtained through VDA and compared with the SBSE results. We present and discuss the results in the respective sections.


Author(s):  
Valerio Fernandes del Maschi ◽  
Luciano S. Souza ◽  
Mauro de Mesquita Spínola ◽  
Wilson Vendramel ◽  
Ivanir Costa ◽  
...  

The quality in software projects is related the deliveries that are adjusted to the use, and that they take care of to the objectives. In this way, Brazilian organizations of software development, especially the small and medium ones, need to demonstrate to future customers whom an initial understand of the business problem has enough. This chapter has as objective to demonstrate methodology, strategy, main phases and procedures adopted beyond the gotten ones of a small organization of development of software in the implantation of a Customized Software Engineering Process and of a Tool of Support to the Process in the period of 2004 to 2006 on the basis of rational unified process (RUP) and in the Microsoft solutions framework (MSF).


Author(s):  
Mirna Muñoz

Software has become the core of organizations in different domains because the capacity of their products, systems, and services have an increasing dependence on software. This fact highlights the research challenges to be covered by computer science, especially in the software engineering (SE) area. On the one way, SE is in charge of covering all the aspects related to the software development process from the early stages of software development until its maintenance and therefore is closely related to the software quality. On the other hand, SE is in charge of providing engineers able to provide technological-base solutions to solve industrial problems. This chapter provides a research work path focused on helping software development organizations to change to a continuous software improvement culture impacting both their software development process highlighting the human factor training needs. Results show that the implementation of best practices could be easily implemented if adequate support is provided.


2020 ◽  
Author(s):  
João Vitor Demaria Venâncio ◽  
Fabiane Barreto Vavassori Benitti

Requirements Engineering is concerned with identifying, analyzing,documenting and managing software requirements, which is an importantphase in the software development process. Research showsthat most software design failures are due to requirements engineeringissues. Thus, we propose a solution for the active learningof requirements specification techniques. Considering that the userstory technique is currently well accepted by IT companies, thispaper proposes a mobile game that supports learning and practicein writing user stories.


Author(s):  
Paulo A. M. Barbosa ◽  
Plácido R. Pinheiro ◽  
Francisca R. V. Silveira ◽  
Marum S. Filho

In the software development process, the decision-maker (DM) has a range of problems inherent to its function. Wrong choices during software planning can bring great risk to the project. Therefore, the planning of software releases to be delivered to the customer should be well done. This is not an easy task because releases are made up of many requirements that contain complex variables that must be considered, such as precedence, cost, requirement stability, among other features that make the requirements-selection process challenging. To make this process less exhaustive, DM can use tools that facilitate this work. In software engineering, we can find fields of research specialists in this context, such as Search-Based Software Engineering (SBSE). The SBSE makes use of advanced metaheuristics to search for optimal solutions or the closest to it. In this work, we try to use another field of research to solve this same problem type, the Verbal Decision Analysis (VDA). To do this, we elaborate a workflow that will use the same source data, execute two solutions using the two search fields (SBSE and VDA) and compare the results. In the end, we evaluated and commented on the results.


2018 ◽  
pp. 448-462
Author(s):  
Sanjay Misra ◽  
M. Omorodion ◽  
Amit Mishra ◽  
Luis Fernandez

The rapid growth in technology and the dynamism in our society today poses a lot of problems for Software Engineering practitioners. The result is a series of software development process methods that can be used to combat or meet up with the problems. What we can do is evolve, grow, and adapt to the changes that come along with development. This is the dynamism inherent in man—to adapt to change and improve ourselves and our existing systems—since the world is a far cry from what it was a few decades ago. On this basis lay the need to develop the model proposed in this chapter to meet the variations that exist as a result of technological development.


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.


Author(s):  
HONGHUA DAI ◽  
WEI DAI ◽  
GANG LI

To have an effective and efficient mechanism to store, manage and utilize software sources is essential to the automation of software engineering. The paper presents an innovative approach in managing software resources using software warehouse where software assets are systematically accumulated, deposited, retrieved, packaged, managed and utilized, driven by data-mining and OLAP technologies. The results lead to streamlined high efficient software development process and enhance the productivity in response to modern challenges of the design and development of software applications.


Sign in / Sign up

Export Citation Format

Share Document