Helmut Balzert describes software engineering as "goal-oriented providing and systematic use of principles, methods, and tools for engineering-driven development based on division of labor together with the use of extensive software systems."
The wide-ranging tasks in Software Engineering (SE) are correspondingly complex. The main tasks of SE, in addition to providing the development infrastructure, are developing and maintaining the software component. Critical success factors are optimum integration of methods and tools into existing structures and processes. At the same time, metrics are needed to measure and improve the practices.
The EVOCEAN team has many years of project experience in various domains, technologies, and applications of SE. Our areas of competence are similarly wide-ranging:
- Knowledge of different methods (especially MDA, UML, SysML)
- Analysis, design, and review of software architecture, for example based on Architectural Trade of Analysis Method (ATAM)
- Process design and improvement, for exmple change management, requirments management, configuration
- Evaluation of technologies and tools based on customer specific baseline and needs
- Efficient integration, establishment and use of tools
- Modeling of Embedded Real-Time and complex systems
- Modeling of Distributed Systems (e.g. CORBA)
- Model Driven Development of Software and Systems
- Knowledge of various programming languages: C, C++, Java, Delphi, ADA, various Script languages, etc.