TechVirtue

Software Development Lifecycle (SDLC)

Your software development project may already be underway or is just getting started. Wherever you may be in the SDLC, we can help.

The Internet

We design and develop many types of websites, including sites purposed to inform, sell, collect information, serve as an application with or without database persistence and integrate & interoperate with web services and other systems.

Schedule Commitment

We use agile software development methodologies to ensure your project is completed on time and within budget. Projects vary, so we fine-tune our methodology to fit the needs of your particular project.

Computer Science

Computer science is at the foundation of all we do at TechVirtue, LLC.


Quality solutions, delievered.
Our Principal Engineer has over 20 years of software engineering experience as a leader of teams and as an individual producer in many facets of software development.
At TechVirtue we:
  • Thrive on customer success
  • Engineer top-notch software
  • Perform with agility

Our core values are centered on enabling customer success through outstanding communication, expertise, leadership and high performance.

Get In Touch!

(678) 812-4321
engineer@techvirtue.com
TechVirtue

Development Services

FRONT ENDS EMPHASIZING RESPONSIVE DESIGN

We design and develop front ends and applications for many platforms and execution environments (see the Technologies menu item for related information).

HYBRID MOBILE APPLICATIONS

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.

HUMAN-COMPUTER INTERFACE (HCI) & USER EXPERIENCE (UX)

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.

ENTERPRISE INFORMATION SYSTEMS

We automate often-complex organizational processes via back end manipulation, network transport and storage of large amounts of data interoperating in distributed systems.

COMMAND & CONTROL APPLICATIONS

We selectively combine the services above in order to realize command applications enabling the control of networked systems.

MODERNIZING LEGACY 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.

TechVirtue

Technologies

JAVA, C#, C++, C, SQL

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.

HTML 5, CSS, SASS, JAVASCRIPT, AJAX, JSON, XML

These are only some of the languages we use to render various web pages and data-driven applications for intranets and The Internet.

Apache, PHP, IIS, ASP.NET, MVC

These languages and platforms primarily drive the back-end of web applications and many distributed systems.

DATABASE — MySQL, SQL Server

Persistence and availability of information is vital to many applications. We optimize the database to achieve architectural quality attributes (see menu item About Applications).

LINUX, WINDOWS

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.

TechVirtue

About Architecture

Software Systems Architecture:

  • Defines Static & Dynamic Structure
  • Specifies Component Communication
  • Addresses Non-functional Requirements
  • Is an Abstraction
  • Is Presented by Views of the System (e.g. UML diagrams)

Quality Attributes

In addition to ensuring we completely understand your project's functional requirements, we also carefully consider software & hardware quality attributes (also known as non-functional requirements) such as:

  • Performance
  • Scalability
  • Resilience
  • Usability
  • Modifiability
  • Security
  • Integration
  • Portability
  • Testability
  • Supportability

Design Patterns

We use industry-standard design patterns to aid in meeting the above architectural features and quality attributes.

Evaluating Software Architectures

We evaluate software architectures using the Arcitectural Analysis Tradeoff Method (ATAM).
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.
TechVirtue

Web

We design and develop many types of websites, including sites purposed to:

  • Inform
  • Sell
  • Collect Information
  • Serve as an application with or without database persistence
  • Integrate & Interoperate with web services and other systems

TechVirtue

Enterprise Information Systems

Businesses, governments, schools and other organizations use enterprise applications as part of an information system which automates often-complex organizational processes via the display, manipulation and storage of large amounts of data.

TechVirtue

Mobile Hybrid

We design for "mobile-first" and build from there to ensure applications scale well to all display devices.

   

From smart phones to tablets to hybrid hardware, mobile devices are nearly ubiquitous and their use is approaching, if not yet superceding, that of desktop computing devices.

We deliver mobile applications via the web using HTML 5 and the latest state-of-the-art technologies. These applications look and feel like those of their native operating systems (e.g. Android, iOS, Windows Phone). As web applications, the software is available for use with any modern web browser.

TechVirtue

Computer Science Defined

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.