Serving the Quantitative Finance Community

 
User avatar
Polter
Posts: 1
Joined: April 29th, 2008, 4:55 pm

Architecture and Design

October 27th, 2011, 10:40 pm

QuoteOriginally posted by: CuchulainnQuoteOriginally posted by: PolterQuoteOriginally posted by: CuchulainnTechnology-dependent interfaces are:C#Interfacesabstract funcs.delegatesC++sigmals and slotsconceptsvirtual functions So, a single logical design can be mapped to any (and many) implementation. Oh, this is great! The "mapped to" part you describe is exactly what I had in mind when talking about the language projections -- do you think you can include this in http://www.wilmott.com/messageview.cfm? ... adid=87306 so we can keep track?So, we are speaking the same language then? I will have a look. My own neurons have learned to discover logical interfaces because they are the voice of customer, they follow FRs ad NFRs . After that it tends to be easy.QuoteOriginally posted by: outrunI totally agree with Polters Framework definition post!So, -to give an example, and at the same time make a suggestion- for the boost-ish type of implementation, we'll use STL and boost concepts when usefull.Besides the internal implementation, there is also an external interface, which for usability and interoperability is the most important part of the design. That bit for me is the main reason I dont use QuantLib. If I could just do a single include and make a sinple functioncall with 6 arguments to get an option price, then things would be so much I we make a BLAS library then we're free to pick and even redesign an internal design and implementation, as long as we keep the external interface stsndarized.Great to hear that we're developing a consensus!Now I think both of you should take a note of the FFI thread -- Cuch made a great point about "mapped to" (related to language projections), outrun is talking about "an external interface" (precisely the FFI) -- and that's exactly what we need in there!
 
User avatar
Polter
Posts: 1
Joined: April 29th, 2008, 4:55 pm

Architecture and Design

October 27th, 2011, 10:45 pm

QuoteOriginally posted by: outrun--------------------------------------------------------e.g. I don't like this QuantLib public interface: It's bloathware,--------------------------------------------------------boost::shared_ptr <PlainVanillaPayoff > vanillaPayoffPut( new PlainVanillaPayoff(Option:ut,K));BlackScholesCalculator vanillaPutPricer(vanillaPayoffPut,S0,forDisc,stdDev,domDisc); std::cout << "Value:" << vanillaPutPricer.value();--------------------------------------------------------This is much easier to learn and use-------------------------------------------------------std::cout << "Value:" << vanilla_put_price(S0,yield,vol, r, K,T)you can do both with a simple function wrapper, but you should at least prove a simple interface, which is also coherent: e.g. the first set of parameters are always related to the underlying process, the next set are defining the derivative contract. This interface should be standarized so that other modules can build build on top of it, and it should also implement global naming conventions across FFI. The goal is to make it easy and intuitive to use.I will have a few ideas on the internal interface / components talking to each other -- by analogy, let's refer to it as a Domestic Function Interface (DFI) perhaps? meaning solely (and strictly!) the QFCL project components internal communication/interoperability -- while maintaining the no-unnecessary-coupling constraint, will try to write up a post in proverbial spare time. Perhaps a separate thread is in order (I feel it might beneficial to keep the the DFI and FFI discussion uncoupled), will see.
Last edited by Polter on October 27th, 2011, 10:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Topic Author
Posts: 20255
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Architecture and Design

October 28th, 2011, 6:51 am

QuoteBesides the internal implementation, there is also an external interface, which for usability and interoperability is the most important part of the designBingo!This is sometimes called the MIL (Module Interconnection Language) between subsystems/components at the design level. Having discovered it, it can then be mapped to technology. e.g. a UML class diagram to C++ that be programmed with vtabl, CRTP, signals, concepts, whatever, even C# and other languages.It's all the same, except that we have "upstream and downstream" activities and products.I see UML class and component diagrams as the blueprints for multiple implementations, just like in non-software engineering projects.
Last edited by Cuchulainn on October 27th, 2011, 10:00 pm, edited 1 time in total.
 
User avatar
rmax
Posts: 374
Joined: December 8th, 2005, 9:31 am

Architecture and Design

October 28th, 2011, 7:20 am

I go to bed and don't look at the posts and the whole thing is resolved! All sounds good to me I like the ISS concept. Key for it to be a success however is that it is documented and logical. This might be taking an analogy too far but I remember a story on Mir: Mir had been thrown together power cables etc ran through the airlocks. Then one of the modules began to looks pressure due to a collision and they had to axe through all the cables so they could isolate the module.We want ISS not Mir!
 
User avatar
Cuchulainn
Topic Author
Posts: 20255
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Architecture and Design

October 28th, 2011, 7:24 am

QuoteWe want ISS not Mir! 'Mir' is the Russian for ... ISS is mostly h/w, yes? S/w is much more difficult.
Last edited by Cuchulainn on October 27th, 2011, 10:00 pm, edited 1 time in total.
 
User avatar
rmax
Posts: 374
Joined: December 8th, 2005, 9:31 am

Architecture and Design

October 28th, 2011, 7:54 am

QuoteOriginally posted by: outrunGood to hear that you're happy!If I look at the scope types of users: developers, researchers, students.and people who are not these. Finance professionals who cannot open VC++ and start coding. I think there are a great number of people who can get real benefit from this who are not in this arena.
 
User avatar
rmax
Posts: 374
Joined: December 8th, 2005, 9:31 am

Architecture and Design

October 28th, 2011, 7:58 am

QuoteOriginally posted by: outrunQuoteOriginally posted by: rmaxQuoteOriginally posted by: outrunGood to hear that you're happy!If I look at the scope types of users: developers, researchers, students.and people who are not these. Finance professionals who cannot open VC++ and start coding. I think there are a great number of people who can get real benefit from this who are not in this arena.very true!! 80% of the people will want something like Windows installer for an Excel addin that provides pricing functions, accompanied with a good manual.Yes. I am not saying that it is necesasrily the first thing that should be hit (although I suppose under open source collab it does not matter). But the design should take these people into account.
 
User avatar
rmax
Posts: 374
Joined: December 8th, 2005, 9:31 am

Architecture and Design

October 28th, 2011, 9:28 am

Do we need some form of error handling framework?