The Institute for Software (IFS) supports its partners in all topics and questions around software development.
This includes a broad offer on advanced training, which we will adjust individually to your requirements. This offer is toped with our long lasting successful post-graduate study "Software Engineering". Briefings which take place regularly provide an insight into pragmatic working techniques and modern technologies. To learn and practice we offer our courses and workshops. We focus thereby predominantly on topics with long "half-life", which ensures that newly gained experience will not become obsolete a new release of a tool.
We commit ourselves directly to your software projects and questions within the scope of assessments, consulting, coaching and project support. In order to keep our practical experience up to date and to enhance them continuously, we also develop software ourselves on your behalf.
- Software (project-) assessments and reviews
- Specification and modeling
- Project support und coaching
- Introduction on modern software engineering techniques
- Software Health Check
Are you looking for a competent review partner for the code, design, architecture, or user interface of your software?
We pride ourselves with many years of experience in software system assessment for global companies and their products. But we're just as proud of the many local companies and public sector projects we've been fortunate to support through reviews and assessments.
When conducting reviews we look "under the bonnet" and analyze technical details that might impede quality or security. However, the general picture (i.e., the system's architecture and usability) is just as important to a successful review. As a pioneer in the field of software architectural patterns (we won the SD Productivity Award in 1996) we are in an excellent consulting position to judge and improve maintainability and extendability of your software.
We are also developing software on a daily basis. This provides us with current hands-on experience on how new technologies are applied proficiently and efficiently. Additionally, many years of dealing with working and evolving software systems give us the experience to assess "legacy" technologies, such as (embedded-) C. We are developing our own tools for C++ and C to support code analysis that even apply or suggest improvements automatically. See our product documentation for Linticator and Includator for more information.
Our review results consist of much more than a school grade: we deliver a highly customized package of suggestions and concrete measures to improve the reviewed object. Our extensive experience in education and advanced training enables us to address discovered experience and knowledge gaps directly by suggesting customized training and education for your developers. Our biggest strengths are in the technologies and programming languages listed below.
Technologies and Programming Languages
- C++ (also for embedded systems, ISO technical committee member)
- Automated testing and test-driven development
- Modern user interface technologies and (multi-) touch interfaces
- Web&Mobile (iOS, Android)
Software Health Check
Assess the health of your software project with IFS' Software Health Check.
With our Health Check, we don’t just check the surface, but also the guts of your software. This way, we diagnose symptoms of good quality aspects and areas that are in need of improvement and recommend a suitable treatment. The experts at the IFS examine the following aspects according to your indications:
- User Experience Design, e.g. Multichannel ability
- Architecture and Design of the code and data, e.g. layering
- Internal code quality, e.g. error handling
- Engineering methods and tools, e.g. automated testing
- Developer qualification, e.g. appropriate use of technologies
Typical therapy measures that are derived from the Software Health Check and get recommended in the context of a feedback workshop are
- Concrete suggestions for improvements of the code, design and architecture to eliminate weak points or enable the continuation of the development.
- Optimization of the tool usage, e.g. IDE, build and test automation, static analysis and coaching thereof.
- Optimization of the development methods, e.g. agile and usability engineering methods, unit testing, refactoring etc.
- Coaching and further education for developers to make up for deficiencies in your team.