We design and develop front ends and applications for many platforms and execution environments (see the Technologies menu item for related information).
Our approach to delivering mobile applications is via the web browser. Contemporary web technology allows us to do this in such a way that the web-delivered mobile application is indistinguishable from an application written for a specific operating system.
One codebase is developed for one application that works on Android, iOS, & Windows Phone.
Techniques for optimizing UX & HCI are constantly evolving. Usability is among key concerns when considering software architecture (see menu item About Architecture).
We design front ends featuring graphical user interfaces (GUIs) for HCI which not only adhere to proven industry conventions, but also strive to achieve optimal visualization of information. When appropriate, we also realize optimal HCI via speech, audio and video interfaces.
We automate often-complex organizational processes via back end manipulation, network transport and storage of large amounts of data interoperating in distributed systems.
We selectively combine the services above in order to realize command applications enabling the control of networked systems.
This is the process of rationalizing an existing system in order to completey understand it. We follow this up with a software development lifecycle (SDLC) which aims to realize contemporary requirements and architectural goals of the wholly or partially reengineered system.
These are the programming languages we use to develop the software we engineer. We are experienced with a variety of design patterns (e.g. model-view-controller, a.k.a MVC) and frameworks supporting these languages.
These are only some of the languages we use to render various web pages and data-driven applications for intranets and The Internet.
These languages and platforms primarily drive the back-end of web applications and many distributed systems.
Persistence and availability of information is vital to many applications. We optimize the database to achieve architectural quality attributes (see menu item About Applications).
These operating systems, in a variety of Linux distros (e.g. Ubuntu, Mint, Red Hat, Debian) and Windows versions, serve as the essential link between software and the hardware upon which the software runs.
The ATAM gets its name because it not only reveals how well an architecture satisfies particular quality goals but it also provides insight into how those quality goals ineract with each other how they trade-off against each other.Clements, et al.
Study of computers, their design (see computer architecture), and their uses for computation, data processing, and systems control, including design and development of computer hardware and software, and programming. The field encompasses theory, mathematical activities, such as design and analysis of algorithms, performance studies of systems and their components, and estimation of reliability and availability of systems by probabilistic techniques. Because computer systems are often too large and complicated for failure or success of a design to be predicted without testing, experimentation is built into the development. "merriam-webster.com". Dictionary. Web. 18 Aug. 2014.