Software Modeling

(QESP Editor’s Note: The July/August issue of CrossTalk Online deals with Model Based Testing. The following message from the Sponsor and extracts from the Table of Contents give an overview of the topics covered. The full issue is available at http://www.crosstalkonline.org/issues/julaug-2017.html)

Message from the Sponsor

“All models are wrong; some models are useful.”

“Discovering the unexpected is more important than confirming the known.”

– Statistician George Box

The theme of this issue of CrossTalk is the exciting area of Model Based Testing. Without a doubt every software product manager would jump at the opportunity for delivering a product in less time and lower cost, while knowing that it has undergone a testing regimen sufficient of ensuring the highest quality. Often the effort related to shifting our approaches or processes is interpreted as waste; in regards to implementing model based testing, I can assure you this effort is well worth the investment.

Modeling is a necessary and beneficial part of every software effort. Regardless of the tools or documentation in front of them, every programmer works to convert an internal mental model of a process into working code. From the informality of this internal model to the structured formality of a tool like the Unified Modeling Language (UML), every working piece of software is built upon layers of abstraction and modeling. Settling on the right models and abstractions to solve a particular problem are the meat and potatoes of software engineering.

Modeling is the foundational element essential for the programmer to build a working piece of software. Methods for modeling and testing continue to evolve at a rapid pace in the world of software development. From the formal, top-down modeling favored by UML and the waterfall lifecycle model to the informal models that are continually developed and updated by Agile practitioners, the best models can vary across projects and teams. In the same vein, rigorous testing to requirements and formal Validation and Verification are the best choice for many situations, while Test-Driven Development or test-first programming continue to grow in popularity. In the quest for continual improvement, it will likely prove that adopting the best ideas from the wide variety of modeling and testing practices will result in better processes and products.

I hope that this issue of CrossTalk informs and assists a software community that continues to adapt to address the ever growing complexity of systems. Our teams are being asked every day to achieve a greater level of user experience with impeccable quality in a rapidly changing environment at a lower cost. I would like to encourage all of our community partners to redouble our focus on building relationships focused on learning, sharing, and improving.

Michael Jennings

Group Director, 76 Software Maintenance Group

 

Table of Contents extracts:

Testing in O&M: Software Does Not Wear Out, It Degrades – briefly defines verification, validation and testing; outlines testing activities during operations and management, and concludes with the impact of test automation.

Software Estimates that Work proposes a three-pronged approach for initial estimating of large new projects for systems and software development organizations that have experienced resource problems.

Principles of Software Testing – There is a myth that if we were really good at programming, there would be no bugs to catch. This is not true.

Combining Agile Practices with CMMI Process Areas: A Case Study – details how a large enterprise-level program used Agile methods, including Scrum, and implemented the capability maturity model integration (CMMI) at the same time.

Using Contracts to Reduce Cybersecurity Risks – dentifies cybersecurity risks inherent in developed and acquired software products as well as software-related service issues.

Integration of Big Data: Misconceptions, Problems, and Needed Capabilities – discusses the common misconceptions about Big Data integration and cloud technologies.

Getting to Understand Some of the Operations and Maintenance Drivers of Cost – looks at specific cost drivers, including licensing, design and documentation, replenishment planning, data collection, and impacts of the operational environment.


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.