Welcome
Sharp Software Solutions

Methodologies Overview

Agile Software Development
Rapid Application Development (RAD)
Object Oriented Development (OOD)
Service Oriented Architecture (SOA)
Design Patterns


 

METHODOLOGIES
  Sharp Software Solutions uses software development methodologies that are time tested and industry approved. Using the expertise from our senior software development staff we have chosen 5 core software development methodologies. These mythologies enable our clients to have: reusable and logically grouped code, non-redundant data, and loosely coupled/scalable architecture.
Agile Software Development
 Agile software development allows us to deliver early and often, by using an iterative approach. This methodology allows us to accommodate changes in requirements by constantly interacting with the client. Agile project progress is measured by the frequent delivery of working software, meaning you will see results at every iteration. Less moving parts means a more reliable product, so we strive to make our software development process as simple as possible. Here are some of the practices that we utilize: acceptance testing, coding standards, open workspace, refactoring, simple design, and small releases.


To read more about Agile go to the following link:
About Agile or XP
Rapid Application Development (RAD)
 RAD methodology provides a structure for fast software development; through prototyping, visual diagrams of the system, and code generation (CASE). RAD and Agile work hand in hand, allowing us to more easily adapt to requirement changes. Before any coding is done we get an approval on the wireframe user interface design of the application. Then we go into our first iteration of development and refactor if changes in design are relevant.


To read more about RAD go to the following link:
Rapid Application Development
Object Oriented Development (OOD)
 Without OOD, Agile and RAD would be nearly impossible. OOD allows for iterations, coding standards, refactoring, and prototyping. Using OOD languages such as C# and VB.Net we are able to create applications that are loosely coupled, scale well, reuse code, and share data. A loosely coupled architecture allows for scalability, meaning as your company grows your application architecture can grow with you. Applications can be plugged in and out without affecting other software applications within your system. Code reusability means that more development dollars will be spent developing new functionality versus “recreating the wheel.” Since the code is reusable and shares data, less time is spent on maintenance and more is spent on enhancements and new functionality. Another benefit that OOD provides is that software applications can be easily documented. All of our software designs meet UML 2.0 standards and come in the form of Class, Sequence, and Use-Case diagrams.

To read more about OOD go to the following link:
Object Oriented Development
Service Oriented Architecture (SOA)
 SOA provides all of the benefits of OOD plus it is even more loosely coupled and scales even better. The biggest benefit of SOA is that applications are not tied to specific technology (interoperability). Software applications in different domains or parts of the world can process messages from one another. Applications communicate through a course grained service layer. The sender does not have to know the implementation of the service, meaning the sender just sends a message and the message receiver does all the necessary processing. However the message must meet the contract that is defined by the services layer.

To read more about SOA go to the following links:
SOA Practitioners' Guide
Contract-First Service Development
Design Patterns
 Design patterns are used extensively in OOD and SOA. Design patterns allow for easy dialect between software developers. When software is written to follow a design pattern the software is easily supportable, and meets a quality standard that is time tested. All code written by Sharp Software Solutions follows various design patterns and meets Microsoft’s best practices. This is how you know you are getting the highest quality code possible. Here are some commonly used design patterns: unchained service factory, façade, broker, DAO, MVC, adapter, builder, and singleton.

To read more about Design Patterns go to the following links:
Middle-Tier Patterns in .NET
Gang of Four Design Patterns

 

Information
Client List
Couples In Common