spacer

Project Management at INSONO

Project Management by INSONO

 

 

 

 

 

 

 

 

 

 

Quality Management at INSONO

The quality management is the main pillar of all INSONO products and services and starting point for all processes. Quality management means for us:

  • Proven processes
  • Binding, documented processes
  • Measurable processes
  • The continuous analysis of the results of processes, projects and work serve to our continuous improvement and optimisation of our methods.

We are not only using the competences of developing our own products, but we also offer, to our clients, our know how from various projects. Quality management concentrates at INSONO not only on process definitions and on process models, but also on improvements in the operation-model connected tools. The software development will be, as all processes at INSONO, guided and monitored through Quality management. Besides that, the tailored procedure-models, adjusted to the projects, will serve as tools support for the following project areas:

  • Requirement, issue and change management
  • Source code maintenance and versioning
  • Build und configuration management

Read about INSONO Test Consultancy ServicesTest automation

Test Management
Test Lab Consultancy
Migration Management

Test Process Improvement

 

Download our Data Sheet.

Back to Top

Processes

As the complexity of the software developed nowadays increases there is a need for a structured approach which would cover a full software development lifecycle. Such approach takes form of a process which organizes people (roles) and their work (tasks) in the areas of software development (disciplines) in order to achieve high quality work products (artifacts). Usage of a software development process provides many benefits:
  • Efficiency of work
  • Repeatable results
  • Minimizing risks
  • Maximizing business value

Insono provides expertise for 2 commonly used software development processes:

  • Open Unified Process - OpenUP
  • Rational Unified Process - RUP <>/ul

Both OpenUP and RUP provide the following elements:

  • Clear definitions of phases, roles, artifacts and tasks
  • Iterative and incremental approach
  • Integration of risk management
  • Focus on architecture
  • Making quality the integral part of the entire process

Whereas RUP is a complex process suitable for projects which require high level of formality, OpenUP is a minimal process suitable for projects where agility is more important. Both processes are customizable - RUP is usually tailored by excluding content which is not necessary and OpenUP is usually extended with an additional content necessary for a particular project or organization.

Methods and procedure models

Since it is difficult to produce and maintain complex software, software developers use a plan to develop software. This plan (the procedure model) divides the development process into manageable phases limited by time and content. The software is thereby produced one step at a time." (source in German version)
  
The last few years have seen the establishment of the Rational Unified Process (RUP) and the V Model (XT). An adapted form of these models is often used in various companies (tailoring). Our knowledge of and experience with these procedure models allow us to quickly become productive within a customer context. The iterative and/or phased procedure propagated by the models reduces project risks, raises the level of documentation and ultimately leads to improved quality and reliability.

Back to Top

Requirements Engineering

Back to Top

Architecture Design

Basic technologies
We produce tailor-made software solutions for our customers and consider Java to be suitable for our customer environment. Numerous frameworks and components are used to assist with the development of applications. If used appropriately these can increase the flexibility and robustness of a solution and reduce workloads and therefore costs.

Java Frameworks
The Java 2 Enterprise Edition (Java EE) platform is considered one of the standard platforms for developing multi-level corporate applications. Frameworks are complete and proven software components that are incorporated into many areas of your corporate application. They greatly assist in the production of software.

A framework consists of a procedure model, a specific application architecture (with corresponding rules for the application design) and implementation. The platform for realizing an application following the framework’s rules makes up the associated class library.

In addition to commercial products, there is also a whole range of free open-source frameworks which can be used in a wide range of scenarios within a corporate application. Taking as an example Spring and Hibernate, currently two of the most popular frameworks, we aim to explain below the contexts in which frameworks can be used and the benefits they bring with them.

The Spring framework can be understood as one of the basic technologies used in developing object-oriented applications. The main aim of the Spring framework is to provide as wide a range of tools as possible for developing structured applications with plain old Java objects (POJOs). POJOs represent the application logic and do not contain any cross-cutting functions (i.e. those which are not associated with business logic). The advantage of this setup is that it enables you to develop well-structured software solutions that can be easily adapted to changes in their environment. Spring offers numerous pre-produced solutions which help to implement such a concept. The assistance it provides can be split into the following three areas:
  • simplified abstractions for the existing Java programming interfaces
  • simple configuration of object networks using dependency injection
  • aspect-oriented programming

Hibernate is a framework for mapping the data of object-oriented applications in relational database systems and is considered as the standard amongst persistence technologies. Hibernate automates this mapping process such that the mapping of the relational and object-oriented world becomes clearer for the developer. Persistent data are then available directly in the corresponding objects. Since the JDBC layer no longer exists, the time needed to develop the application is cut considerably and the software solution’s structure improved significantly.   Using frameworks means that many tried and tested software components are included in your corporate application. Since these are being continuously developed and optimized, you get better quality software. We have the know-how required to analyze suitable frameworks for your corporate application and to integrate them in your application. The time needed for the software development process can be cut considerably thanks to our expertise in using frameworks. Using proven and standard frameworks also raises the quality of your software.

Back to Top

Methods

Software development effectiveness can be improved by usage of industry proven methods. The methods are used in various areas of software development and their usage is independent of the particular process used for the development.

Insono uses the following methods and to improve effectiveness:

  • Use case based requirements management (OpenUP and RUP templates)
  • Object Oriented Analysis and Design
  • Visual Modeling with UML (Enterprise Architect)
  • Object Oriented Programming (Java, Java EE, .NET)
  • Automated builds and tests (Ant, Maven, Sitewalker, DB Unit, HTML Unit)
  • Continuous Integration (Cruise Control, Continuum)

Additionally Insono continuously improves existing methods to better fit for specific needs of our customers projects. For example by extending requirements management techniques with concepts and methods necessary for dealing with missing or imprecise requirements, Insono improved manageability of requirements which otherwise would not fit existing requirements management approaches.

Development tools
Modern and integrated development tools greatly assist in attaining goals faster and producing better results. The functions of these tools enable us to make efficient use of the methods described above in our daily work. For example, the elegant error re-factoring possibilities of Eclipse or forward and reverse engineering between UML models and Java components using Enterprise Architect.
  
We also have a deep understanding of important tools and practiced use of them. For example:
  • Development environments: Eclipse, Enterprise Architect, XML Spy and JDeveloper, TOAD
  • Version control systems: Perforce, CVS, subversion or PVCS
  • Build management tools: ant, maven, Cruise Control or Continous

Back to Top

Coding and Unit Tests

Coding and Unit testing Insono uses proven set of programming and testing techniques, to achive efficiency of coding and testing and quality of our products. Efficiency and quality is achieved by:

  • Object-oriented programming
  • Use of high quality libraries and frameworks
  • Use of state-of-the-art tools
  • Automation of development process
Object oriented programming is a programming paradigm that uses concept of objects, which are conceptually representations of real-life entities. This approach simplifies programming of complex systems, speeds up their desing and modelling, and allows for easier modularization and testing. Our programming language of choice is mostly Java, which is inherently object-oriented, and is the most popular language in enterprises. In order to achieve high quality and shorter time-to-market, we heavily use well-tested and best-of-bread libraries, frameworks and platforms, such as:
  • Spring
  • Java EE
  • ORM tools (Hibernate/JPA)
  • and many other solutions specific for particular purposes.
Quality of product is derived from quality of tools used for manufacturing. We use advanced tools, both commercial and open-source, to streamline development process:
  • Developer environments: Eclipse, NetBeans
  • Source control systems: Subversion, Perforce
  • Bug tracking: JIRA
Manual repetitive tasks lead to time waste and potential bugs. Automation must be at the core of code development and testing. In our process, we use following tools:
  • For automated builds: Maven, Ant
  • For automated tests: JUnit, Sitewalker, DbUnit, HtmlUnit, Selenium
  • For automated continuous integration: Cruise Control, Continuum
  • For automated code coverage analysis: Clover, Cobertura

Highly automated coding and testing boost efficiency and quality in our software development process, reducing development costs and time-to-market factor.

Back to Top

Quality Assurance

Test Validation und Verification

Our Services in the test environment assures that creation of our products corresponds to the functional and also technical requirements.Our competence covers the following fields:

Test automation

 

 

 

 

 

Download our Data Sheet regarding Test Automation

Test Automation Services
Regression Testing
Performance Testing
Functional Testing Services
End-to-End Testing
System Integration Testing
User Acceptance Testing
Specialised Testing Services
Internationaization Testing
Data Migration Testing
Security Testing

Performance Testing
Load Testing
Request/ Response Behaviour

Back to Top

footer
© INSONO Consulting GmbH 2009 · Imprint