Monday, November 14, 2011

Software architecture framework (SAF)


http://arnon.me/spammed-architecture-framework-saf/


SAF

Download the SAF introduction presentation (pdf) or watch it on slideshare
Overview
There is very little guidance on how one can go about designing/developing an architecture for a software project. The SPAMMED architecture framework (SAF) aims  to help fill this gap.
SAF  is a set of activities that an architect can follow when she sets out to design an architecture. These activities helps the architect to keep abreast of the project’s needs and the drivers that affect the architecture.
The Activities of SAF include
  • Stakeholders -identify the stakeholders   – Anyone with vested interest in the project (end users, clients, project manager, developers etc.) These are the people you will have to explain you architecture to. These are the people that have concerns that the architecture will have to satisfy (or most likely balance). Thus, the fist step is to identify and rank them.
  • Principles – list Principles, Goals and Constrains. These are the properties you wishyour architecture to have (or lack) based on your previous experience. Constrains can also come from your stakeholders (e.g. management decided that all project should be .NET, a deadline etc.)
  • Attributes –  discover quality attributes, the non-functional reqeirements, that (once prioritized) serve as the guide for the overall goodness of the system (Performace, Availability, scalability etc.)
  • Model – model (and document if needed)  the architecture as seen from different viewpoints (list of viewpoints is stakeholder driven). Example for viewpoints include package diagrams, deployment diagrams, DB Schema etc. etc.
  • Map – Technology mapping, buy vs. make decisions etc.
  • Evaluate – Since architecture is the set of decision that are hardest to change it is worthwhile to spend some time trying to evaluate if they are indeed correct before commencing on
  • Deploy – Software architectures are not a fire and forget thing. As an architect you still have to make sure that the guidelines set are indeed followed and even more importantly that the architecture chosen indeed match the project’s needs and doesn’t have to be reworked.


1/ Architecure for e-Learing

 Attributes:  a/  speed : 
b/  functional constrains:  should have Canvas for easy explanation , then this dictates clients such as HTML5 browsers
c/  Clients:  what is the client software being used ?  HTML5 browsers 
d/ Server Architecture:  is there a lots of interaction between client and server .  Do we need   MVCJavascript kind of architercure  LUNA , SproutCore   or simple JQERY UI wll do . 
  or do we need  'google Refine' kind of architecture : It is suited for Local DATA on LOCAl Machine  and MANY browser  working simultaneously to  clean different kinds of Data .



1/ Architecure for CL futures Data 

 1. It seems 'google Refine'  selection may do well for this CL futures. reasons
 a/ it works fast on large set of data , they gave 500k data row example dataset.  Google must have tried to keep it fast. Lean Jetty servlet engine etc.
b/ we should be able to modify data (Vantage point data ) add new columns based on VP data . and view Charts ?

No comments: