Founded back in 2011, Functor Group is a research spin-off company from Stockholm University, Oxford University, University of Cambridge, Uppsala University and the Royal Institute of Technology, KTH. Functor and Functor Consulting are subsidiaries, all based in Kista, Stockholm, Sweden. We unleash a coherent single core technology based on 40+ years of research, intertwined with the latest research on software engineering (domain engineering) and as it happens right on spot on the current trend into domain-driven design as made popular by Amazon, and now mainstream in leading software companies and companies developing software or software-based products. We have the technology for this methodology. We have also a refined methodology, Language-Driven Development™, whereby dependent type technology is intertwined with state-of-the-art practices, giving a very powerful way of developing software. And it still supports C syntax, C code, while being a meta programming framework and meta langauge as never seen before in the software industry, delivered just in time for this new future of software engineering. Click the following image to enlarge into full-screen view: Swedish Ivar Jacobson is famous around the globe for his works in software engineering, the creator of Objectory AB, then acquired by Rational with the Rational Unified Process (RUP), and today a large part of IBM known as IBM Rational. Other work by Jacobson includes research on the economics of software reuse (incl. the "Software Reuse" textbook) and quality associated to various forms and reuse capabilities in a project, company and indeed a methodology or process for software development.

At Functor we have for many years worked closely with acknowledged experts in the industry. For example, you find in Functor's advisory board a person part of creating Objectory that turned into the massive iBM Rational. As a case in point, the influential textbook in OOSE was joint work. We work with such experts since our highly theoretical research foundation interfaces practical software engineering and industrial tools. The expertise leveraged is today deeply and fundamentally in the design of Functor Prevent™ and Functor Scalor™, and in our other derived solutions (RT-LCCF, Functor KIX™, etc) with Scalor™ technology inside them.

Back in 2012, the spin-off Functor published a paper with two renown researcher making the case of a new programming paradigm. We showed that over forty years of to a great extent Swedish theoretical research on programming, logic and meta languages now had been applied and after more than ten years of work in academia on prototypes, the name of this new Constructive Programming Paradigm was coined, although attributed to an early paper by Swedish logician Per Martin-Löf.

Today, Functor Scalor™ offers a completely unique meta language programming platform and framework. Think of great achievements by Intentional Software and the tools by Jetbrains, but think again. Scalor™ gives the previously missing heavily research-founded technology for Domain-Driven Design (DDDcommunity.org, Amazon was an early adopter) with our own Language-Driven Development™ to manifest that technology and methodology should go hand in hand. When Ivar speaks of a new paradigm of software engineering, we more modestly speak of a new so-called programming paradigm, meta programming, domain engineering and DSL-based, with pure logic layers down, full C interoperability and remarkably built for systems programming efficiency with unique new modelling power, supporting elegantly C syntax and yet taking functional programming and reactive object-based programming into a platform that can deliver incredible values to essentially any non-trivial software development project, subject to Functor's assessment. We will not delve into the five why's here. It's easiest too see it concretely and if you wish, on your code, for the most reliable and presumably quite convincing assessment to be made.

Today, we offer a tool that can prevent 50% of the bugs and defects in many software projects and sometimes more. It works with any standard C compiler including for MISRA C, supports SCCM and CI/CB as well as eg. CUNIT, out of the box. With Functor Prevent™ there is a new hybrid approach to testing and billions of test cases needed for covering the exploding state space fully are replaced with just one. Precision is absolute. Prevent™ tells the programmer, pre-commit or interactively while developing, that there is a defect (bug) in the code. Equally, Prevent™, with what many regards to be the most powerful automatic theorem prover hidden inside to drive its Scalor™ technology, tells the developer about the code being correct from the classes of defects under consideration (including guaranteeing complete memory safety...) and otherwise reports what is wrong and why. This information is useful in general development, reduces time to market and lead times and testers can reach previously unheard levels of real coverage metrics, with test case maintenance, testability and code quality improved, by its very design by industrial experts on software testing and not just forty years of research unleashed, pioneered, for the very first time to the software industries.

Functor Prevent™ just works. With its new kind of static analysis and Functor Hybrid Testing™ you just install the tool on any POSIX, VxWorks, Linux, most RTOSes, Visual Studio, Xcode, Eclipse, or development workbench. Take your code base as it is and run Prevent with a single command (also with a supported IDE, the setup is easy before you push that button for the first time). Prevent™ immediately performs a new and very advanced analysis, and you then move on to eliminate hundreds of unit tests and while doing so having mathematics inside and precision. Why ask for less from any software development tool than mathematical guarantees and high-speed results for testers and programmers just the same? The logic is inside our products. It works for you, we confess it does so with extreme technology unleashed inside, but equally automatically and you remain to be a trained programmer, tester or manager governing the Prevent™ reports of each developer, QA specialist, and the hard core of mathematics behind the intuitive new Constructive Programming Paradigm manifests itself in simplicity, precision, performance, ... You work better as developer, in fact it's a good feeling to have Prevent™ simultaneously:

(A) securing that you do not contribute with or commit a defect (of the many supported classes, 50% of the bugs in some projects prevented, sometimes more, and the bugs can be subtle and extremely hard to spot, as evidenced); and

(B) that unit testing becomes a breeze compared to today's best so-called automatic testing and abstract interpretation based analysis.

Today's previous generation tools are costly but still known to be valuable and are therefore heavily used, for example at the Swedish company Ericsson. The ROI of software analysis and testing and quality tools is little doubted by any significant player in a software-related market today and we all know that software drives innovation today (including Forbes) (see footnote).

These previous-generation tools were a great advance a decade ago and include Coverityi Static Analysis™, Klocwork Insight™, and industrial CLINT.

But these handle "only" errors derived from the nature of low-level languages (such as a too large integer value not flipping around to its minimal negative value, but which caused the Ariane 5 rocket to crash, mind you). Anyway, you might stay using these analysis tools, though they cost easily 4 MSEK/year per small project just for the license.

On the basis sketched here, Functor and its experts strongly advise you to consider if not 50% or better defect prevention with our all new technology is more cost-effective, and more powerful, with full integration with your existing development environment almost seamlessly in many cases.

It is of course more valuable as illustrated by its magnitude improvement compared to previous generation static analysis tools giving not prevention at all, but (pre-test defect) elimination and with merely up to 4% efficiency (AT&T CIO et al, US data, 2012).

With Prevent™ you target many more, and harder, bugs, with full precision. There are no false positives as is inherent in the previous generation analysis with Klockwork Insught™ etc. This, by itself, made our customer shying away from these previous-generation tools, referring to their statement about our technology's value in the their complex and critical and large-scale real-time control systems, surely some of the most advanced ever developed, with a plethora of tools, OSes and C compilers for DSPs supported by Prevent™ just the same.

There are two reasons to why Prevent™ can tackle many more, and harder, defects. First, it's the technology itself which is profound and new. Second, it is the combination of formal methods and static analysis with testing in a very scalable and rigorous manner. The latter gives what we named Functor Hybrid Testing™. It is often pointed out that formal methods and testing and static analysis and code reviews are needed to eliminate fatal risks, ensure productivity, and deliver quality software (suitably measured). So why not do it all at once, automatically and in the very same tool? Surely the sum can be much greater than the parts if ever unified by a single core technology?

Functor Prevent™ does just that.

It's co-designed by leading experts in the industry as well as in academia also in the area of software testing. It's all unified uniquely and elegantly by the Functor Scalor™ technology doing the work for you inside Prevent™. That's why Prevent™ works immediately first time you run it on your existing code base.

For Ivar Jacobson's call on a new paradigm for software engineering, read more - but you are more than welcome to contact us if you wish to learn more and perhaps let us assess what we might be able to do for your company and project or projects.

At Functor, we firmly believ that technology and methodology should go hand in hand. At Functor, we innovate the future of software engineering, unleashing decades of programming research for domain engineering. Objectory, aquired by Rational, later to become IBM Rationa, a large part of IBM, provided initially a process known as RUP, which later has been extended so that it can be instantiated for agile projects (it is a framework of processes, by Ivar Jacobson, as shown in the book co-author with an expert in our Advisory Board). RUP has today various tool support from IBM. However, these are tools that in ad-hoc manners are retrofitted on top of a oftentimes rather depricated process (with huge impact internationally), a heavy weight process framework, which changed the game of software engineering some decades ago now, but still in use at large, often delivering great values including in complex projects such as at Ericsson.

Functor does it the other way around.

Functor has unleashed products with a very solid, coherent, unifying, scalable foundation in 40+ years of research which turned out to be the perfect vehicle for the now very recognized and generally used domain-engineering. BDD, TDD and domain-driven design processes as pioneered by giants such as Amazon some years ago. Functor Scalor™ brings the ideal meta language for this general state-of-the-art method of producing software. However, progress in software engineering has allowed us to intertwine this pioneering technology in our products with a new development methodology that we have termed Language-Driven Development™


At Functor, methodology and technology goes hand in hand, each tailored perfectly for the other, and seamessly based on precise mathematical foundations, taking advantage of years of research in programming, finally.

It's a small step for new customers when we innovate the future of software engineering bringing finally 40+ years of world-leading programming research right into your headquarters and your software development projects with Functor Prevent™ for instant value at first run and Functor Scalor™ for a smooth partial or gradual shift into the most advanced software technology around and the new constructive paradigm which we unleashed with Functor LDD™ on top.

What is the future of software engineering?

Software is entangled into most markets today, often externally invisibly so, yet ubiquitous and often enough critical to business itself and not only to products and services with directly embedded software - "it's everywhere today". It drives much of growth - and not "just" the Internet of Things, the telecom industry etc. Ericsson's CEOs have said Ericsson is a software company for almost a decade. Think of any large company - to what extent is it driven by and relying on software? Think about some products or services you use. To what extent is an iPhone based on software innovation? What makes it different or perhaps unique? Software goes all the way from UX HCI, covering almost all the features we identify with the phone, much of the innovation and uniqueness, the app ecosystem (so even the business model is software-based), all the way down to the bare metal hardware where it is key for energy efficiency improvements, in GPU and DSP processing, etc, etc. And now we must be ten times better in developing quality software (Swedsoft, www.swedsoft.se).

Do we stick to devices with risky hot fixes deployed (as recent history demonstrates) due to fatal defects as quality was sacrificed in favour of entering the market before competitors or otherwise on schedule? Is it just a matter of enduring that the word processor or spreadsheet app crashes again and again, loosing data and time? Is it only a matter of consumers accepting that their phones and tablets reboots or drains the battery, and crashes, or mail app crashing upon launched when upgrading to the latest operating system, until an update three weeks later? Surely the software updates installed on our car are tested enough, and also address defects in the many tens of millions of lines of code in our car?

We all depend on software today and for many businesses and markets it drives innovation (Forbes). Software is a major determinator of growth and still the most advanced systems use technology largely invented in the late sixties.

Functor unleashes technology, pioneering products made from 40+ years of world-leading research, and in this way we innovate the future of software engineering and offers a significant step forward in software quality and software productivity. We all benefit from such progress but for rather many businesses and industries, it is quite simply needed. With this, we would not like to come across as saying that Functor's core Scalor™ technology is by itself the solution to all problems with software-based products and services. Functor LDD™ is a methodology. But we combine the latest software engineering research with an entirely new core technology, based on 40+ years of research. Usually, methodology has tool-support and often ad-hoc such, lacking scalability, costly, and complex. We have unified formal verification, automatic theorem proving, software testing, a new kind of static code analysis, code inspections ... into a tool that works with any standard C compiler (ANSI, MISRA).

Functor Hybrid Testing™ is a method to improve productivity and quality. We offer a fundamental step forward in software engineering, targeting the very core of software development with Functor Prevent™ and Functor Scalor™.