TDD and ATDD

Table of Contents
  1. Quality Assurance balanced
  2. test automation
  3. TDD and ATDD
  4. Conclusion
  5. read on one side

With static code analysis tools like FindBugs often, FXCop or CheckStyle be used to check the code against application-independent fault. Uncovered exceptions obvious null pointer references and unused code fragments can thus find specific. In general, however, should not be limited to static code analysis, but complement the metrics by pair programming. This knowledge sharing is also long supported the team and Collective Code Ownership allows. If any programmer in the team is able to change any other code, creating a whole new way of working, because no longer Peters code no longer go at once, but it is the code of all team members.

As with all metrics, however, to keep in mind that it is not about to measure the individual performance of team members or to use, for example, coverage metrics as a target for the software development team. Cem Kaner and Walter P. Bond lead "Software Engineering Metrics - What do they measure and how do we know?" [3] that such behavior to tampering and outsmarting the metrics results. For example, unit testing can create a targeted manner so that the percentage coverage is achieved. They are then usually strongly bound to the application logic, so it is difficult in retrospect to change the code without breaking the test. Instead, the authors propose to invest in the training of developers and work with them directly to the code.

Enough is not enough

Once a network of automated tests is positioned along with the continuous integration, it is only a small step to test-driven (TDD) development. The development cycle starts with a small, failing test: Runs a test not just as much production code should be written so that it can be successfully complete. Subsequently, are redundancy in the code to reduce by refactoring (Fig. 3). Most teams do not realize is that this is also in test automation to software development where the test code is clean, as it is otherwise quickly face the problem of bad maintainable tests.

With test-driven development in the long term maintainable, tested code to be created (Fig. 3).With test-driven development in the long term maintainable, tested code to be created (Fig. 3).


This approach initially appears dogmatic, but to learn test-driven development, he has deliberately chosen this way. When security occurs after some time in certain areas can also try to implement in larger increments. However, it should be clear that too large a step entails the risk to get bogged down, and the test will not come quickly back up and running. If this occurs, the problem should be broken down into smaller units and be resolved that way.

Specification with examples

A new trend in the development of methods currently goes toward Acceptancetest-driven development (ATDD) and Behavior-driven development (BDD). At its core, BDD is the association of TDD, ATDD, domain-driven design, Outside-In Development and use of a ubiquitous language as specification workshops created by instruments. In practice ATDD unfortunately, is often confused with BDD.

ATDD is designed to help the right functions to develop (Fig. 4).ATDD is designed to help the right functions to develop (Fig. 4).

In ATDD (see [4].) It is a measure to implement requirements correctly as possible in the code (Fig. 4). The work starts here early, even while the actual requirements are defined. Representatives from the development and the test team will come together with the customer and identify acceptance criteria for future functions (Fig. 5). Here, testers and programmers ([5] see.) A common understanding of the customer's needs, with a sufficiently large room for different design decisions remains open. So programmers and testers can find a solution to the problem of the customer, with which it can be satisfied in the long term.

The entire team of customers, programmers and testers should be a common understanding of the functions resulting have (Fig. 5).The entire team of customers, programmers and testers should be a common understanding of the functions resulting have (Fig. 5).


Based on the above acceptance criteria, the development team initially working on descriptive examples they before moving the function, however, continue to refine. Examples push it succinctly and accurately what is to be achieved through the functions. They move on a level with the business requirements and should have nothing to do with implementation details such as the position of GUI elements.

In parallel with the implementation of the functions of the team then works to automate the examples. Some developers groups are even able to integrate the business logic of the business cases based on their domain code. The literature speaks of Outside-In Development: The development is driven from outside to inside. In this case only as much domain code and application logic is designed and written as is absolutely necessary. Practically, there are a few teams that have reached such a level of maturity. The advantages of this approach, however, are not to be dismissed out of hand: Can be before the development show that the proposed application will execute what they want, then the flexibility to changes in the requirements the long term.

Total TDD and ATDD form a symbiosis with which a high degree can be achieved on test automation. Thus, is possible by ATDD a request cover close to 100 percent, while with TDD 100 percent code coverage is possible. Combined TDD thus ensures that the code was correct, while ATDD ensures that it is the correct code.

Programming standard for embedded systems MISRA C 2012 published

The Motor Industry Software Reliability Association (MISRA) has recently released the embedded programming standard MISRA C 2012th The standard defines coding standards for C and C ++ - developers to avoid run-time errors that can result from unsafe constructs or structural weaknesses of languages. The more than 200 pages thick specification that has thus almost doubled, is compatible with the new version to C99 and was apparently significantly revised in several places.

There is therefore now in addition to the rules and guidelines that are to be regarded as guidelines are to be used for other resources to verify the correspondence with the requirements. Rules can be verified only about testing the code, however. can refer to the standard as a PDF file via the web shop of the consortium for 15 British pounds, the print version costs 45 pounds.

MISRA is an association of automotive manufacturers, suppliers and service providers. The first adopted by the organization in 1998 of rules MISRA C with its well 100 rules for the safe C programming became a sort of de facto standard for embedded C programming. The second version, MISRA in 2004, wrote, among other things, to use a tool for checking the rules. In 2008, the consortium with MISRA C ++ had expanded the guidelines for object-oriented version of the language. (Ane)

Java application servers: Red Hat are wildfly 10 free

wildfly 10

The now available version 10 of the Enterprise Java server provides the basis for Red Hat's commercial JBoss Enterprise Application Platform 7 is also the third major release since the name change of the open source project.

Red Hat version 10 of the Java application server wildfly published. It implements all the specifications of Java EE 7 Full profiles and Java EE Web Profile 7, currently the latest versions of enterprise Java standards. Support for Java 7 was terminated, which is to ensure a better integration with the current Java. 8 The server can be used with the current development snapshots of the expected next year Java 9 beyond.

The main innovations

Instead of the Message Broker HornetQ wildfly now includes its development ActiveMQ Artemis, although enriched by a number of new functions, protocol-level compatible to behave with HornetQ. The new release integrates the Undertow JS project. This server-side scripts can not write, can make the access to CDI (Contexts and Dependency Injection) and JPA Entity Beans (Java Persistence API). Under the name Undertow trades still young with the HTTP / 2 standard compliant web server.

For developers also should be interesting that now the version 5 of the persistence framework is supported Hibernate and PowerShell scripts to the bin directory of wildfly distribution have been added. In future releases, they are to replace .bat scripts. With wildfly 10, it is finally possible, any application as "Singleton Deployment" to set up. This allows applications to be always should be installed on a particular server node in the cluster. The failure of a node, the application will automatically restart on another node.

JBoss to wildfly

With 10 wildfly the third major release of the Java application server has already appeared, running under this name since the open source server. it had come to a name change because the standing behind him company wanted a stronger differentiation from commercial based wildfly offer. The first release - wildfly 8 - was released in February 2014, the second under the version number 9 followed in July 2015. Even that version was compatible with the Java EE 7 (Java Enterprise Edition). Wildfly provides the basis for the next release of Red Hat's commercial JBoss Enterprise Application Platform 7 (JBoss EAP 7)(Ane)

Modular, better documented and PHP 7 – Zend Framework 3 has been released

Modular, better documented and PHP 7? Zend Framework 3 has been released

After several years of development, there is finally a new larger release of the popular PHP frameworks and beyond a Micro Framework.

The plan was actually that the Zend Framework would come up with new major releases every year and a half to two years. Of these, the developers of the PHP frameworks that had the announced with the release of version 2 in September 2012 had, however, adopt soon. And later, planned for autumn 2015 release date could not hold them. But now the wait is over, because the version 3 of the Zend Framework is now officially available.

modularized Framework

Most of the changes are of a structural nature. It is here, for example, the allocation of some components in its own versioned projects. This is done with the aim of reusing these components elsewhere easier and so to accelerate the development process. It is important also that the end of last year released PHP 7.x is supported by the new version.

In developing the new language version, but also with the previous PHP 5.x up to four times better performance observed. Minimal PHP 5.6 is now provided for Zend Framework. 3 The outdated release strand under the version number 1.x is no longer being developed, there is at best only security fixes - and only until the end of September 2016th

Documentation and Micro Framework

To switching from developed with Zend Framework 2 MVC applications (Model View Controller) to facilitate the new release provides users with a plenty of documented migration path available is to make a few changes needed. In addition, overall a great attention was paid to the documentation. So just such is stored in each repository of a component. New features in future be accepted only insofar as they were also documented.

New paths finally tread the developers with the introduction of a separate middleware Micro Framework. Expressive is considered as the future of PHP development on the part of the framework developers as opposed to large MVC full-stack offer.(Ane)

CreateJS bundles libraries for HTML5 and Flash developers

In cooperation with Adobe has the team to Grant Skinner (gskinner.com), who has worked at the time for Microsoft already on the HTML 5 technology demo Pirates Love Daisies, a new JavaScript library for HTML5 and Flash / AIR developer presented. CreateJS combines a number of existing libraries for playback of graphics, audio and Flash elements. In addition, the collection contains its own toolkit that can be exported to the HTML5 platform content from Flash Pro.

At the core CreateJS bundles the four JavaScript libraries EaselJS, TweenJS, SoundJS and PreloadJS still under development for a pre-loading of various components. Furthermore, the Adobe AIR application Zoë is included in the package with which .swf animations can export sheet for EaselJS as Sprite.

Quite new is the CreateJS toolkit that gskinner.com has developed in collaboration with Adobe. It offers far more features than Zoë and to allow Flash Pro developers to export content such as icons, vectors, animations, bitmaps, sound and text. The data delivered from the toolkit as a library of objects that could appeal directly above CreateJS and HTML5 then.

The new CreateJS library should be available over the coming weeks createjs.com. A documentation, demos and different tutorials that gskinner team also wants to publish. For licensing, the group did not have information - but as most of the libraries already included are open source under the MIT license, a comparable license form for CreateJS can be expected. Slightly longer co-developed by Adobe Toolkit will be long in coming, moreover, because Adobe still could not provide information about its availability.(Rl)

Programming ranking: JavaScript and Java on to the top

The RedMonk Programming Language rankings: January 2016

With JavaScript, Java, PHP, Python, C #, C ++, Ruby, CSS, C and Objective-C, the exact same programming, see the biannual RedMonk ranking - and that too in the same order.

There are the monthly Tiobe Programming index to determine the most popular programming language of its results on request " programming" obtained in 25 search engines. But there are also the biannual RedMonk Programming Language rankings, where the analysts correlations between the discussion of a language on StackOverflow produced with their use in GitHub projects in order to assess how much a programming language is used in the future.

A little late RedMonk has now given the January results known to the current popularity of the most important programming languages.

RedMonk On the top right are for the most popular programming languages. Changes there have been few compared with July, 2015.(Image:RedMonk )

stable situation

Among the first 10 seats has done nothing since the previous study in, so JavaScript before Java continues to lead with a narrow margin the list, followed by PHP (3), Python (4), C # (5), C ++ ( 5.) Ruby (5), CSS (8), C (9) and Objective-C (10). That Java and JavaScript are ongoing to find at the top, will probably also supported that the two languages ​​were often used in companies in the same application, may be sufficient, especially since JavaScript increasingly more professional claims.

That it had not come will also be changes in the top 10, the RedMonk analyst explained by the fact that the decisions of a language in business is usually designed in the long term. Therefore could not be expected in the near future with more fragmentation, it will even decline because the set languages ​​have a high level of maturity.

Talked to potential beyond the top 10 or even still outside the top 20 are loud RedMonk Elixir (54th), Julia (51), Rust (46), Swift (17) and Type Script (31) consisting of different reasons to be estimated. So Elixir, Julia and Rust were able to pull through their well-considered language design attention. The Objectice C successor Swift also in that he has recently become open source, and Typescript received much lift in the JavaScript community, but also at Microsoft lately scores certainly now.(Ane)

Red Hat released OpenJDK 8 for (among developers) Windows

OpenJDK 8 available for Windows

The open-source companies, has announced the availability of the official free Java SE implementation for Windows. The target groups are developers who create studio for RHEL Windows middleware applications with JBoss Developer.

OpenJDK is a free implementation of Java SE, which originated as a splinter group of the JDK. 6 Red Hat took the time to lead the project. Oracle is a Java governor sponsor and head of OpenJDK. 8

On the download page of the OpenJDK project builds for different Linux systems, but not for Windows exist. Red Hat has released a build of OpenJDK 8 for Windows. However, it should not generally replace the normal JDK, but is intended for developers, middleware applications with Red Hat JBoss Developer Studio under Windows for RHEL (Red Hat Enterprise Linux) build. The Windows build of OpenJDK 8 is fully compatible with the corresponding RHEL releases, so that Java software behaves on both systems alike.

Further details on the OpenJDK for Windows are available on the project page, where a link is found to an msi installer. Information on the conditions are missing: The name of downloads indicates a 64-bit build. Even if the site only lists Windows operating system 8, it can be assumed that is also compatible with Windows 7 and Windows 10 only because of the corresponding spread of OpenJDK build. (RME)

The most important questions and answers about the PaaS implementation

Table of Contents
  1. The most important questions and answers about the PaaS implementation
  2. Vendor lock-in, security and justice
  3. read on one side
The most important questions and answers about the PaaS implementation

The use of the cloud is, of course, for many businesses, they restrict the use but mostly at SaaS and IaaS. The use of PaaS is only slowly gaining momentum. But what must consider companies before they decide? This article provides answers to five key questions before the PaaS implementation.

Where PaaS brings any advantages?

As Platform as a Service (PaaS) is a largely new approach, many companies it is often unclear how the concept works and what the advantages are. Often PaaS is seen as a development environment, or only the elimination of administrative tasks performed. It can also be used as the backbone for the management of the software life cycle, however - from development to operation.

The development may also much "agile"nerfolgen because PaaS supports a variety tools and techniques and deployment scenarios allows the Sun to "classical" Server architectures are not feasible. Any developer can, for example, try out new ideas directly in a deployed within a short time test environment that closely matches the later production environment. With tools for load simulation as Blitz.io and application analysis software such as New Relic developers can pre-analyze the behavior of applications under almost real conditions and adjust. Manufacturers such as Cloud9 even offer a complete browser-IDE, with which you can develop software directly in the cloud. In short: This could be all the reasons that significantly increase with PaaS efficiency and quality of an IT department.

In conjunction with Continuous Deployment the work results of the developers will be provided to the user faster. Even small changes can be rolled out by a PaaS several times a day, with developers typically deliver new code via Git or similar Versionskontrollsyteme in PaaS. The software users can continue working without interruption with the applications during deployment of new versions. Continuous integration software like Travis-CI also offers the possibility to integrate the delivery of software to various cloud platforms in the CI process.

When software roll-out is ensured that each server node provides the same runtime environment, both in development and in the production systems. This avoids missing components and version conflicts. Updates of components or the use of new programming languages ​​can be reliably insulated staging systems before delivery into live operation test.

PaaS applications can be scaled on the fly in a short time. Application operators guarantee as to the end user consistent high performance. SaaS providers to scale, for example, during normal business hours up and back down again later, when most users are in the workday. In online games and social applications, it turns out the other way around: there is the maximum value in the evenings.

For large companies that maintain their own data centers, a private PaaS could be interesting. It ensures that proprietary computing resources and existing assets more efficiently. Thanks to self-service provisioning resources according to a button can be made available. This allows more efficient and more agile development processes, shortening innovation cycles.

Through the use of PaaS, IT can adapt quickly to changing requirements -
to be braked without resource bottlenecks. Especially in highly dynamic markets, such as the consumer or telecommunications market, the expense and time savings associated constitutes a weighty competitive advantage for companies.

However, PaaS is no advantage when applications of very static in nature or when adaptation to PaaS means disproportionate effort. Examples are smaller CMS applications, existing standard software or old legacy software without Abstraction Layer.

What applications work in the cloud, which are not?

Most applications can be run in PaaS environments. For Java, Ruby, Python, PHP, and .NET, there are many PaaS providers - some specialize in a language that others offer support for multiple languages.

Many of the frameworks are adjusted so that they work optimally with PaaS. These include frameworks that feature an auto configuration or offer a support block storages. Easily deployable on PaaS frameworks, for example, Rails, Symfony and Spring.

In modern applications cloud APIs can be configured for centralized data storage - thus they are compatible PaaS in most cases. let legacy applications
these functions normally retrofitted. The adjustments to PaaS mean primarily optimizations that are beneficial to the performance, reliability and horizontal scaling, as PaaS providers their platforms with the orientation on "Best practices" have designed.

Implementing auto-configuration routines is not mandatory but is strongly recommended. Usually set the PaaS provider any application configuration parameters via a file or environment variables that an application can use for configuration. Thus, human errors can be. At the same time, it prevents, for example, an application in the test environment accidentally with a production database "speaks",

To facilitate the relocation of applications that provide PaaS providers the information they need to apply adjustments in the form of documentation or training materials. Alternatively, can be drawn on the know-how of cloud consultants to adequately represent complex IT systems on a PaaS.

However, not all techniques are imaged on PaaS. A mail server can not be operated, for example, in working with dynamically assigned IPs PaaS systems. The mail delivery is therefore handled by third parties. Streaming applications that work away from the HTTP standards, have made it difficult also to transmit their data through web-optimized routing animal and any web caches.

Java EE 8 is officially released

Java EE 8 is officially released

In the shadow of the vertebra to Java 9, Oracle has updated the Enterprise version. Technically, it falls short of the original expectations. Exciting is currently also the future of the platform as an open source project.

With far fewer vertebrae than Java 9 Oracle has finally released Java EE 8, after the company had also moved the release of Enterprise version several times. Already in December 2016 it was clear what features would be part of the platform. Thus it was also clear that many modules do not make it into the eighth version of enterprise Java.

New and updated APIs

The key new features the Java Servlet 4.0 API, the first time provides HTTP / 2 support, and a dedicated Security API belongs. JSON-B (JSON Binding) gets its own API, and the Java API for JSON-P is in version 1.1 component of the platform. Numerous other APIs have received important additions to some extent, including Contexts and Dependency Injection (CDI) with the jump to version 2.0.

Other updated packages are JavaServer Faces (JSF) 2.3, Bean Validation 2.0, Java API for RESTful Web Services (JAX-RS) 2.1, Java Persistence 2.2, Java API for WebSocket 1.1 and Java Mail 1.6. Although Java EE 8 appears parallel to Java 9, it first addresses some extensions that were not included in version 8 of the Standard Edition, in the previous Java EE platform. Worth mentioning here the STREAMS and the date-and-time API.

Future plans for the Eclipse Foundation

Java 2017

Detailed information on Java EE 8, Java 9 and current developments in the Java environment is available in the iX Developer Special Edition, which is available inter alia in the H shop.

Expected to Java EE 8 be the last version of the platform under the current license model and name. Oracle had announced plans in August to transfer Java EE open source community. In mid-September, the company specified the plans and announced, among other things, that the platform is to land under the umbrella of the Eclipse Foundation. It is important that the Foundation not only control over the specifications, but also about the reference implementations (RI), the Technology Compatibility Kits (TCK) and take over the project documentation of the guided Oracle Java EE and GlassFish technology should.

Details about the new features in Java EE 8 can be taken from the project site. There the API documentation, a tutorial and the SDK linked to download.

See heise Developer:

  • Oracle wants to transfer Java EE to the open source community
  • Analysis: Oracle seems to turn the corner in Java EE at the last moment
  • Java EE towards Open Source: Opportunities and Risks
  • Java EE 8 takes the last hurdle before the release
  • Java EE is to land under the umbrella of the Eclipse Foundation
(RME)

The Swarm: Java EE Micro Services with wildfly

Recently, the first alpha of the new wildfly Sidecar Swarm is available. It should thus be packing as much application server along with the actual application as needed to obtain an executable Java archive. This "single jar application"- or "fat jar"Concept is often seen as the right approach for Micro Services architectures.

Currently, the news from the area of ​​Java EE accumulate. In addition to the latest release candidate of wildfly-9 Application Server a so-called maintainance has been prepared including Java EE 7 release (MR). And the Java EE 8 JSR's officially available for some time. Nevertheless, this news limp from the classic Java EE stack behind the current developments. The words "Container" or "Micro Services" one looks in vain in the specification. At least for the created based on wildfly applications, this gap closes a little bit.

Wildfly Swarm: executable Micro Services

Swarms "single jar application"- or "fat jar"Concept is considered by some to be the right approach for Micro Services architectures. Without it to want to philosophize now, it is quite exciting to something just to look at this new release. In the following example, I want to emphasize that it is simply an example of a technique and it does not represent the only right way for Micro Services.

Given a simple Maven-based Java EE 7 Web application. In pom.xml stands as a function only:


javax
Java EE web-api
7.0
provided

It is built a 6-Kbyte WAR file. swarm / rs / customer 8080 / to a simple JSON output: it runs on wildfly, leading a call to http: // localhost:

{
"first name": "Markus".
"lastName": "Eisele".
"street address": "Werner-von-Siemens-Ring 14".
"City": "Grasbrunn".
"pcode": "85630".
"phoneNumbers": [
{
"grade": "mobile".
"number": "111-111-1111"
},
{
"grade": "home".
"number": "222-222-2222"
}
]
}

As far as all this is not exciting. To make this simple application is a stand-alone executable archive, now Swarm comes into play. For this, a new plug-in must be easily added to the project just created:


org.wildfly.swarm
wildfly-swarm-plugin
$ {Version.wildfly-swarm}


package

create



The version number, it is best pom.xml via Property in Maven. Currently Swarm is available as 1.0.0.Alpha1. A small warning was uttered here for Windows users. Just this version does not run on Windows. The newest master contains the fix but already, and who builds Swarm itself quickly and used locally to 1.0.0.Alpha2-SNAPSHOT, can watch the result on Windows.

But the plug-in does not do all the work alone. Of the dependencies (dependencies) the Java EE features used are still add. For the small sample that's just the JAX-RS function:


org.wildfly.swarm
wildfly-swarm-jaxrs
$ {Version.wildfly-swarm}
provided

Then the project can be built via mvn package. In addition to the expected result, the swarm-sample-1.0-SNAPSHOT.war file is now also much larger swarm-sample-1.0-SNAPSHOT-swarm.jar landed in the target / directory. It now has about 30 MB.

test the fat JAR

actually only remains the launch and testing of the not so small jar:

java -jar swarm-1.0-SNAPSHOT-swarm.jar

The output is an indication of various versions of the subsystems used. Now even the test:

C: \>curl -v http: // localhost: 8080 / rs / customer
* Connected to localhost (:: 1) port 8080 (# 0)
> GET / rs / customer HTTP / 1.1
> User-Agent: curl / 7.30.0
> Host: localhost: 8080
> Accept: * / *
>
< HTTP / 1.1 200 OK
< Connection: keep-alive
< Content-Type: application / json
< Content-Length: 221
< Date: Fri, 08 May 2015 07:59:00 GMT
<
{"first name":"Markus"."lastName":"Eisele"."street address":
"Werner-von-Siemens-Ring 14"."City":"Grasbrunn".
"pcode":"85630"."phoneNumbers
": [{"grade":"mobile"."number":"111-111-1111"},
{"grade":"home"."number":"222-222-2222"}]} * Connection # 0 to
localhost left intact

Who still wants to use other specifications, will find more details on the Swarm blog. currently servlet, JAX-RS ShrinkWrap, DataSource via deployment, messaging and some others are supported.

Feedback and cooperation is desired. Anyone who wants to find all the information on the @ WildFlySwarm-Twitter handle. If you miss functions or finds errors, can participate directly in the GitHub project.

An overview of Java alternatives for industrial use

Table of Contents
  1. An overview of Java alternatives for industrial use
  2. Scala
  3. Fantom
  4. Kotlin
  5. Ceylon
  6. Conclusion
  7. read on one side
An overview of Java alternatives for industrial use

Long has moved to the world of Java little. In March 2014, the closures of Java are 8 finally leave again pay a fresh breeze. But even the eight-year-old and just newly flared debacle Java modularization Jigsaw shows how difficult the makers are likely to fall more innovations in the future. But there is hope. Alternative languages ​​for the JVM promise new programming paradigms, more concise code and more flexibility.

For industrial use, particularly those representing emerging on the horizon static and strictly typed programming languages ​​are interesting. Their exams at design time and guarantees at runtime are complex environments greater collateral and thus make them direct competitors for Java. Time to get an overview of the main candidates.

In connection with the new programming an issue is often cited as First: "functional programming", The purely functional programming is quite exotic and also quite unfamiliar to many developers. Generally, therefore, more multi-paradigmische languages ​​meant that combine, among other elements of functional programming in itself.

But for what? Functional language tools enable a much more efficient programming in certain circumstances. And Java 8 performs with a Closures an important functional feature. The following example illustrates the difference on the basis of sorting a list:

// "classic" Sort a list using comparator
Collections.sort (listOfCars, new Comparator () {
public int compare (Car c1, c2 Car) {
return p1.maker.compareTo (p2.maker);
}
});

With closures in Java 8, the task can be solved, however unequal concise:

// Sort a list using lambda expression
listOfCars.sort ((c1, c2) -> c1.maker.compareTo (c2.maker));

First of all: All of the presented languages ​​are functional, while focusing clearly on the opportunities in Java 8 appropriations. Ultimately, however, the differences are in the details, so that a detailed individual analysis offering.

Web Development: Mono team plans implementation for webassembly

Web Development: Mono project plans to implement for webassembly

The team behind the open source implementation of Microsoft's .NET Framework webassembly wants to use as the target platform. Currently, there is experimenting with two different approaches: static compilation and managed code.

The Mono Project is to come via web assembly for Web applications for use in the future. Currently, the implementation is at an early exploration phase. According to a report on the Mono site the first experiments are quite promising.

Two different prototypes are used. The first relies on a complete static compiling. This creates a great application that contains both the mono-C runtime and associated class libraries as well as the compiled program. The second approach translates only the Mono runtime, which then executes the programs of the developers as managed code. The second approach reduces the download size, but does not reach the performance of the complete compiled project.

Both approaches currently still use the full desktop profile for Mono. In the next step, the team wants to optimize the profile on the web or mobile use and for removing unnecessary functions. In addition, the makers want to optimize the comfort for developers. For this, an interpreter or JIT compiler in the browser is independent of the ultimate methodology used to create the finished program for the development process desirable, the cached versions of libmono used.

Short presentation of webassembly and mono

Webassembly (wasm) is an approach to client-side browser programming. The project, which has left the beginning of the browser preview phase, uses a binary format. It should not replace JavaScript, but complementary, and most importantly used there where high performance is required. Basically, the approach of the binary format is not new: ActiveX and Java are among the most prominent representatives. Java failed in the browser as well as Adobe Flash, especially in numerous vulnerabilities, ActiveX already on Microsoft's alone. At webassembly a W3C Community Group, the employees of the major browser vendors works belong.

Mono is an open source implementation of Microsoft's .NET Framework, which is based on the ECMA specification for C # and the Common Language Infrastructure. It brings the framework to different platforms, especially macOS, Linux and Windows. In May, the fifth major version is released. Microsoft is a sponsor of the project.(RME)

Criteria for a decision for Scrum or Kanban

Table of Contents
  1. Criteria for a decision for Scrum or Kanban
  2. Per & Contra
  3. read on one side

The fathers of agile software development had recognized that processes and tools have to be subordinate to the individuals and their interactions. As long as the interests of the project participants is served with processes such as Kanban or Scrum, it is for them "correct", Both frameworks are an agile software development process. The article examines criteria for deciding for Kanban or Scrum.

Both Kanban and Scrum have their roots in lean production. Lean principles come from the Japanese automobile production. Your goal is to prevent three kinds of waste, namely:

The processes in Scrum and Kanban support the lean principles. However, they do not guarantee its implementation, since only avoid discipline, communication and motivation Muda, Muri and Mura. They are the individuals who fill with their personality a framework and design processes. Here is the biggest misconception in the use of tools for agile software development.

Kanban - the roots

As mentioned, the lean principles have their roots in the Japanese automobile production. The expression "Kan" means signal and the expression "Ban" Map. The compound Kanban therefore corresponds to a signal map. They come in lean production is used to control the flow of materials optimal. A small example illustrates this: A car mechanic is responsible in the car production to install the front windows in the car. But he always gets new front discs from a stack. This signal card is placed, indicating that the discs are running out, and now new front discs are nachzuliefern. The map now moves to the production of windshields and signaled her that new front discs are needed. The procedure has been developed because they wanted as little as possible produce stockpiled and largely optimize the production flow.

More and more often we hear in recent times in software development the concept of Kanban. Here is kanban a project management framework that is based on the aforementioned lean principles and like all agile and Lean approaches the pull principle (Hol principle) is based. The resulting work is not granted a "supervisor"But the workers (groups) get their work in order to keep the production flow as smoothly as possible.

The framework is relatively little requirements and is therefore highly adaptable in terms of development processes, roles, coordination mechanisms, release planning, et cetera. They are not regulated and can be selected by the development team to the best of its knowledge and belief for their own needs. The central point is always optimize the flow here.

How does Kanban?

Example of a Kanban board

In the center of Kanban software development Kanban Board stands. It displays the latest status of the project with cards for each task or each work item. On it there are several columns to represent the workflow. The individual cards have emigrated from column to column until the task "finished" is.

The aim is that "Tasks in work" optimize (WIP work items in progress). The project involved measuring the time it takes for a task until they "finished" is, identifying "bottlenecks", Control the project with the WIP limit and adapt it to an optimized possible "flow" at. Interestingly, the kanban software development dispense with the signal card, the limitation is the capacity of the process steps controlled (between). The capacity limit is displayed with the indication of the respective maximum allowable work items in the Kanban board.

In concrete terms, it works like this, that the workflow state sets the limits. A Kanban board contains on the one hand, the status of the lived process and limiting the work items that may be located at the same time within a certain status. Should now become a development time of piling the cards and the subsequent process have no more room for supplies, shows that the "flow" is to be optimized. Either by more resources for the process step in which the "traffic jam" appears, applies or, where appropriate, the development team can rethink the process steps and change. Thus, a self-regulating system that is designed to ensure the production flow is created with Kanban.

What makes Scrum?

In Scrum to form small self-organizing, cross-functional teams. It offers an extensive set of rules within which takes place the software development. The frame lives every team is different. The core is called a fixed period of four weeks maximum, Sprint. Each Sprint is an iteration of product development, at the end of a potentially shippable product "finished" is. Every Sprint plan the parties involved in a fixed meeting beforehand. The finished product they evaluate in a review and draw lessons learned. The release schedule optimizing based on findings together with the customer.

Even the process, with all its "give way" Factors that reflect and optimize the team sprint to sprint. For this, the retrospective is provided a sort of meeting. The framework thus pursues an empirical process model. How Kanban Scrum has different requirement lists the Product and the sprint backlog, as well as a Scrum board that quite resembles that of Kanban.

Quality assurance for the software in the car with Automotive SPICE 3.0

Table of Contents
  1. Quality assurance for the software in the car with Automotive SPICE 3.0
  2. V model
  3. consistency
  4. Conclusion
  5. read on one side
Quality assurance for the software in the car with Automotive SPICE 3.0

Automotive SPICE® 3.0 was released by the Working Group 13 of the VDA (German Association of the Automotive Industry) in July this year. Great expectations have been placed on this new major release. But what is it really new? Who is the new version is a big change? Or at least much remains the same?

Since the beginning of this millennium, more software is installed in our cars increasingly. That was and is for the carmaker a challenge - especially since most software does not come from the manufacturer itself, but from suppliers. This prompted the HIS (Manufacturer Initiative Software) of the German automobile manufacturers (Audi, BMW, Daimler, Porsche and Volkswagen) at the beginning to agree on a maturity model for software development with which they assess the development processes of suppliers and improve the last decade, can.

The choice fell on the ISO / IEC 15504, also known under the project name SPICE (Software Process Improvement and Capability dEtermination). This standard defines a general-purpose model for process evaluation and allows among others the creation of industry-specific derivatives. The HIS companies made themselves along with other manufacturers such as Jaguar / Land Rover, Ford, Fiat and Volvo to define 15504 from Automotive SPICE modeled on the ISO / IEC. This group has published several versions in the years 2005 to 2010 last version 2.5 of the Process Assessment Model (PAM). Meanwhile, the Working Group 13 of the VDA care of the development. This working group owned company, the manufacturers also suppliers like Bosch, Continental, Knorr-Bremse and ZF.

After the ISO (International Organization for Standardization) began in November 2013, which replace ISO / IEC 15504 by the ISO / IEC 330xx series, everyone was eager to see what would change in Automotive SPICE 3.0.

From old to new - from the ISO / IEC 15504 to ISO / IEC 330xx

ISO / IEC 33020: 2015 Components of the ISO / IEC 15504 (Fig. 1)(Picture: ISO / IEC 33020: 2015)

In March 2015, the parts 2 and 7 of the ISO / IEC (Fig. 1) were 15504 overridden. They described, among other things, as a judgment in general or for an organization is to take place. In the new series of standards 33002, 33003, 33004 and 33020 received (Fig. 2) on these issues now in the publications ISO / IEC 33001.

In it are the most important new features a new definition of process attributes and generic practices for maturity levels 4 and 5. Since assessments but be limited in the automotive industry almost exclusively on the project level to Level 3, which should initially have no major impact.

Automotive SPICE PAM v3.0, © VDA QMC Components of the ISO / IEC 330xx (Fig. 2)(Image: Automotive SPICE PAM v3.0, © VDA QMC)

Furthermore, the new ISO / IEC 33020 allows a more detailed rating in the evaluation "Partially Achieved" (Partially met) and "Largely Achieved" (Largely achieved) (Fig. 3). Instead of four unevenly distributed gradations (0-15% (N) >15-50% (P), >50-85% (L), >85-100% (F)) came into existence six substantially uniformly distributed levels. whether this optional applicable level of detail will prevail over the familiar and proven scheme, it remains to be seen.

Test Rail 5.0 improves collaboration with JIRA

Test Rail 5.0 improves collaboration with JIRA

After almost a year of development work in the current browser tool for test management in the fifth major version is available and boasts among other bug reports in real time.

Version 5.0 of the test case and test management tool test rail is available on the website of his party Gurock software. The release itself should be characterized inter alia by the developed cooperation with Atlassian's issue and project tracking software JIRA.

Gurock is providing in cooperation with the Australian company a native JIRA server plug-in and Atlassian Connect add-on for cloud instances. Users should use as both products in different constellations and the option to migrate to the cloud can be kept open. Among other test rail users who also work with JIRA, comments of test results attached screenshots, statistics and the like can see directly into JIRA. Also, can refer there to test Rails test cases. A JIRA Integration Wizard can help the common use of users in configuring the tools.

Real-time reports and minor improvements

New are also the so-called defect reports that provide an overview of the status of the linked issues or errors. Each time you open the reports Test Rail asks the necessary data from the shared issue and bug tracking tools from new, so the user date information to be presented.

On the sides of the test suites and test runs now small graphs appear next group name, to give an overview of the distribution of test results. On "History & context"Tab displays after the update graphically present and interdependent test results as well as relevant issues and their status. In addition, details and status of requirements can now see directly from test rail when a defect plug-in for the appropriate tool is available. If the dashboard of the test management tools are displayed in other applications, it now offers so-called Embeddable dashboards.(Dec)