Architecting enterprise software for your business

Let us help you make the right architectural decisions from the start, and improve the quality and reliability of planned IT software systems.

Our expertise will ensure that quality is built in to the design of the software system from the begining, rather than something that is given consideration only towards the end of development.

 

Enterprise Software Design

Make the Right Architectural Decisions From the Start

A software architecture lays out the foundations and structure of the system, from which a design is produced and refined through a number of review iterations. The design process sometimes entails making some very difficult decisions up front - difficult because changing them later will be very expensive. The wrong decisions may even lead to the eventual failure of the software project.

How Do We Know We Are Making the Right Decisions?

At Cohesive Computing we understand that the same software engineering problems tend to repeat themselves in different IT systems. These recurring problems have known solutions, and in many cases the design process is about structuring and fitting these solutions to meet the business requirements. Where the solutions are not known, designs are validated by building small scale versions of the system. In either case it is essential that the system design is kept as simple as possible, and no simpler.

QA Starts With the Design, Not With Test Scripts

A mission critical software system that does not have quality built in by design will either have a very short life span, or will be very expensive to hold together. At Cohesive Computing we include quality specifications in the designs of our clients' systems. Our quality specifications are derived broadly from the ISO/IEC 9126 standard for defining quality in software, and cover the following properties of a software system:

  • Functionality - what the system does to meet the business requirements
  • Reliability - the capability to maintain a given level of performance in special conditions
  • Usability - indicates the effort needed to (learn to) use the system
  • Efficiency - indicates the level of performance in terms of response time and resources
  • Maintainability - the ability to support modifications
  • Portability - the capability to coexist with other software in a common environment

Documenting Software Architectures

At Cohesive Computing we capture the architecture and detailed design of a planned software system using software engineering modelling tools, the output of which forms a basis for supporting documentation. UML is our preferred choice for graphical notation, as UML has been widely adopted as the de facto industry standard for systems modelling, and it can be understood by stakeholders from both technical and managerial backgrounds.

Planning a New IT Software System?

Whoever your IT supplier is, you need to be sure that a sufficient effort has gone in to analysing your requirements and producing sufficiently detailed design documentation. The following document templates indicate how we start the design process, which then goes through a number of refinement iterations:

Contact us now and make the right decision from the start.


Keep It Simple

  • "The purpose of software engineering is to control complexity, not create it."

    Dr. Pamela Zave

  • "Any intelligent fool can make things bigger, [and] more complex, ... It takes a touch of genius - and a lot of courage - to move in the opposite direction."

    Albert Einstein