Skip to main content

Software as a Service - SaaS

Some ideas covered in the Software as a Service course conducted by edx are discussed here. The first week of course covers some basic software engineering concepts. Software and hardware, the two basic components of any system differs in many ways. Hardware is developed completely before it is being delivered to the vendor. If any error occurs after the delivery of the product, the only solution is to replace the whole hardware. But the situation is different in case of a software. Software evolves over time and if there occurs any bug, it could be easily cleared with some updates to the software. 
Software can be categorized as legacy software and beautiful software. Even though legacy software satisfies the end user, it remains the same over time and is difficult to evolve. But beautiful software is easy to evolve as well as meets the customer needs. 
The various software models to be discussed here are Waterfall model, Spiral model, Agile model.
Water fall model completes the software development process in five major steps.
  1. Requirement analysis and Specification
  2. Architectural design
  3. Implementation and Integration
  4. Verification
  5. Operations and Maintenance
The major drawback of this model is that we could't roll back to the previous stages of the software development process once it is completed. Also we could't move on to a stage of development process until the previous one is completed. Spiral model was introduced to solve all these drawbacks of waterfall model. Here one can roll back to any stage of software development as and when it is needed. Here a prototype is developed in each stage discussed in waterfall model and is developed.
Agile model embraces changes as a fact of life. Developers continuously refine working but incomplete prototype until customers are satisfied with customer feedback on each iteration. The method emphasizes on Test Driven Development(TDD) to reduce mistakes, written down user stories to validate customer requirements, velocity to measure progress.

Software as a Service


Software as a service, or 'SaaS', is a software application delivery model by which an enterprise vendor develops a web-based software application, and then hosts and operates that application over the internet for use by its customers. Customers do not need to buy software licenses or additional infrastructure equipment, and typically only pay monthly fees for using the software. SaaS applications are often updated more frequently than traditional software. Some of the main features are listed below

  • The application is hosted centrally, so new releases can be put in place without requiring customers to install new software.
  • The application only has a single configuration, making development testing faster.
  • The application vendor has access to all customer data, expediting design and regression testing.
  • The solution provider has access to user behavior within the application (usually via web analytics), making it easier to identify areas worthy of improvement.

Service oriented architecture

SOA generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well-defined interOA-based services. For example, several disparate departments within a company may develop and deploy SOA services iface to access them. SOA defines how to integrate widely disparate applications for a Web-based environment and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such a SOA implementation.


Cloud Computing

Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a networkCloud Computing provides the scalable and dependable hardware computation and storage for SaaS. Cloud computing consists of clusters of commodity servers that are connected by local area network switches, with a software layer providing sufficient redundancy to make this cost-effective hardware dependable. In the SaaS model, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients.

Comments

Popular posts from this blog

Backbone.js - An Introduction

Backbone.js is a lightweight JavaScript library that adds structure to your client-side code.  Developers commonly use libraries like Backbone.js to create single-page applications (SPAs).  What is a Single-Page-Application? A single page Web App is a website that attempts to recreate the experience of a native desktop or mobile application. On a Single Page Web App you are less likely to see page refreshes, the browser navigation within the app is often overridden and  there will usually be some offline capabilities. To a user their interaction with a Single Page Web App will be almost identical to how they interact with a full native application. Backbone has many advantages over other js frameworks. Backbone is mature, popular, and has a number  of plugins and extensions available that build upon it. It has been used to create non-trivial applications by companies such as Disqus, Walmart, SoundCloud and LinkedIn. Backbone organizes its whole code under t...

Elements of Programming in Scheme

A powerful programming language provides a framework to interpret our ideas of processes. It generally combines small procedures to complex ones. Usually there are three steps to accomplish this. primitive expressions , which represent the simplest entities the language is concerned with, means of combination , by which compound elements are built from simpler ones, and means of abstraction , by which compound elements can be named and manipulated as units. Some very basic ideas in manipulating with the data are given below. Expressions   A very simple expression is a number. Simple expressions are combined to form complex ones. For example:                   (+ 2  3  4) is an expression where + is the operation and 2,3,4 are the oparents. The expression can be made more complex by combining simple expressions as given below:              ...

Abstraction Using Higher Order Procedures

Procedures are, in effect, abstractions that describe compound operations on numbers independent of the particular numbers. Yet even in numerical processing we will be severely limited in our ability to create abstractions if we are restricted to procedures whose parameters must be numbers. Often the same programming pattern will be used with a number of different procedures. To express such patterns as concepts, we will need to construct procedures that can accept procedures as arguments or return procedures as values. Procedures as arguments Procedures are often used as the arguments of an another procedure. This provides a higher level of abstraction in programming. For example consider a procedure to find out the sum of squares of numbers between a range. The procedures inc and square are used as the arguments of the procedure sum, which is generalised as follows.                 (define (inc...