Design/Model Driven Development (DDD) or Test Driven Development (TDD)

[digg]
“A complex system that works is invariably found to have evolved from a simple system that worked…A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.” — John Gall in Systemantics: How Systems Really Work and How They Fail

Software is complex, so the point is, how do you organize your system at a high level to be flexible, loosely coupled, and yet highly cohesive? we need to document simple mechanisms that work. Here are certain points to ponder while considering an undertaking like software development on a larger scale –

  • Define a well known software process and then stick to it
  • Provide a common vocabulary and taxonomy for developers and architects.
  • Enable solutions to be described concisely as combinations of patterns.
  • Enable reuse of architecture, design, and implementation decisions.

Selection of the software process is one of the foremost and visionary step in the software engineering and has to be applied wisely and diligently, as its effects may last in the whole software development life cycle and the success of any software is highly dependent on it. During my professional career I have noticed many times that we know some process, say Test driven (TDD) or Agile, is great but we don't know when it is feasible. I am using Model Driven Development and Agile Development for a long time and applied them where needed. I suggest that we should always have some comparative study before adapting any methodology. Here is my take on this broad subject –

Before even go into the details of our subject topic, I'll discuss a little bit about SDLC, Software Engineering and Object Oriented Software Development / Engineering. Software development life cycle (SDLC, SDLC2), also known as “Macro Process” has four phases, the Inception, elaboration,  construction and transition / delivery and if we take the iterative and incremental behavior of the software process the picture of it presented by Grady Booch in his finest book on object oriented design.

 SDLC / Macro Process
[ Courtesy: Book “Object-Oriented Analysis and Design with Applications (Third Edition)” ]

SDLC requires a vision and shall be divided into different phases logically and carefully. These SDLC phases broadly include the followings –

  • Vision – Conceptualization of the software domain;
  • Define – Detailing the requirements along with specification – Use cases;
  • Design – Realization of the Use Cases;
  • Develop – Realization of the design leads to software development / Coding;
  • Test – Enforcing the use cases while Testing.

Here is an abstract view of the software development life cycle (SDLC) –

sdl 
[ SDLC (Macro Process), Simplified View ]

Proper Software engineering then is applied by putting a well known software process in place, that actually imposes certain rules to accomplish various software development tasks economically and in time. In other words, software project management enforces well known software engineering principles. Now, what we deal in software engineering are requirements, analyze those requirements, detailing different scenarios along with use cases, documenting them, defining proper procedures for design and development of the software, defining testing / QA related issues, software configuration and change management planning etc. And most importantly, software engineering enforces a proper software process or a combination of processes (hybrid process) where needed. The process we are considering here in our discussion is either, it utilizes DDD (design first) or TDD (implementation first) and both will be discussed in the object oriented paradigm. In the Object Oriented Software Development  or Object Oriented Paradigm, when we are analyzing a problem domain or analyzing requirements, actually we are looking for objects / abstractions that will solve some particular problem in the software. First cut objects / abstractions are mare names/nouns and for behavior we look for verbs / actions. Now, how we fill the gaps of how our abstraction will look like, we go deeper in analyzing the requirements, and come up with some handful of use cases, those actually give us an idea of functional aspects of the objects or give us behavioral aspect of them or provides us interfaces, called object contracts. So the outcome of the  use cases are the interfaces, providing us the means of testing the contracts. This practice along with sequence / scenarios leads us to find interactions between objects – where are we heading??? we are into the designing of the solution, I mean we are creating a static design which tells us how the interfaces and then the concrete implementations would look like and what are the interdependencies among those objects. When you look deeper into the model the software patterns would evolve and you will replace some of the interactions with the well known design patterns. Here are the tasks that we accomplished during this phase of Model Driven Approach and all of these tasks are Iterative and Incremental by nature –

  • Analyzing requirements
  • Elaborate requirements - Use case scenarios
  • Building prototype
  • Finding Objects responsible for a particular job.
  • Finding relationships among them.
  • Finding design patterns needed.
  • Elaborate Objects while designing them, and find functionality for them 

If you now look at the bigger picture, you don’t see any need of another process like Test Driven / Agile process, am I right? But hello we are not done yet… With the model in hand, you actually categorize them, that leads to components and then the categorization of components leads you to Domains. So it was bottom up, right, we found the objects, then the components and then the domains... During this categorization process, at some point we realize that some of the areas are new to us. We call them “GREY” areas.  We come across  these grey areas right in the beginning of the objects / components discovery and we might have no idea how they will look like and during componentization and object discovery process, we’ll realize that we might have incomplete picture of the design and it will become much more obvious when we discover the rest of the domains. In the end we mostly have “Green” and some “Grey” Domains; let’s stop here for a while, take a deep breath, we’ll see how to deal with this situation. By Grey we mean no or very little knowledge of the domain or component or object.  When you reach at this point then, Test Driven Development (TDD) Approach becomes feasible for those Grey areas. TDD also known as Agile process or RAD process is both Iterative and Incremental, I call them recursive in nature as the solution is unknown. You only enforce this process when you don’t have enough knowledge or sufficient details about the domain/component/object in hand. In order to get acquaintance about the component, you take baby steps while climbing up the tree, finding more abstractions and their relationships and gain the knowledge of Grey areas or unknowns... Its a bottom up approach too, but this time bottom up for demystifying objects and there relationships and the design then will evolve with time and the Grey areas will eventually become green and you have a better picture in front of you. When you reach at this point, that’s the time to update the Model and back on track with the Model Driven approach. This is really fantastic and you’ll start loving it smiley-smile

  DDD vs TDD [ MDD vs. TDD ]

If you look at the whole scenario that I presented so far, you’ll see that most of the time you will be working in the known or green areas, and so the DDD is feasible to that point and TDD will only be feasible once you have grey areas. So no one process can strictly be followed in a real world. The best approach is, you start with Model Driven Development and that’s how the real world systems are made, that is you develop blueprint / prototype / model of the system first and then go for the development of it. During this development if you find something unknown, give it to the RND team to research on it, and come up with a solution for it until then you don’t stop the development and you move on with the rest. The RND in case of software activity shall take the TDD approach, and you may not be able to estimate the time of completion as TDD is an RND activity and RND projects usually have no time limits or the time of completion is unknown. Remember the software workflow will change altogether, as in TDD you write the test first, while in the DDD you model the design first and then test it later. This is an important factor to remember as they are complete inverse of each other (DDD==MDD==TDDinverse) .  Now, when you are involved in the RND of certain problem domain, you need a greater user experience, because its relatively a new area for you as well as new for others, so getting input of the consumers / actual users makes lot of sense, in that case you come up with user-stories, their roles etc… and then those user stories be further broken down into use-cases and that will help you a lot in defining new interfaces for testing of the new components under development or under test.

That's all folks for now, more on these may be some time later, feeling sleepy, its 2am yaar, cheers smiley-smile

If you enjoyed reading this blog, leave your valuable feedback and consider subscribing to the RSS feed. You can also subscribe to it by email. Also, you can follow me on Twitter. Thank you!

Comments (10) -

Kristy
12/8/2017 3:52:46 AM #

Great goods from you, man. I have understand your stuff previous to and you're just too fantastic. I really like what you have acquired here, certainly like what you are stating and the way in which you say it. You make it entertaining and you still care for to keep it smart. I cant wait to read far more from you. This is really a wonderful website.  Here is my web site ...  Kristy - http://Doremishopping.com/author/jamilaong01/

Sex for Smart People
12/8/2017 7:38:00 AM #

You can definitely see your skills within the work you write. The arena hopes for more passionate writers like you who are not afraid to say how they believe. Always go after your heart.  Take a look at my webpage ::  Sex for Smart People - http://sexforsmartpeople.com/

Paint Your Home
12/9/2017 5:34:39 AM #

Howdy! Do you use Twitter? I'd like to follow you if that would be okay. I'm definitely enjoying your blog and look forward to new posts.  Check out my weblog  Paint Your Home - Web-design.na.by/.../index.html

web hosting services vps
12/10/2017 6:27:06 PM #

web hosting services vps - www.cassey.space/web-hosting-services-vps.html  hosting mexico df  free vps hosting trial - www.cassey.space/free-vps-hosting-trial.html  web hosting data storage  web hosting services defined - www.cassey.space/web-hosting-services-defined.html  free hosting wordpress site  what is shared hosting vs vps - www.cassey.space/...-is-shared-hosting-vs-vps.html  vps cpanel licence  best super alpha reseller hosting - www.cassey.space/...er-alpha-reseller-hosting.html  managed windows vps server  free windows vps rdp - https://www.cassey.space/free-windows-vps-rdp.html  web hosting beograd  dedicated server cheap price - www.cassey.space/dedicated-server-cheap-price.html  website hosting uk based  what is reseller hosting india - www.cassey.space/...is-reseller-hosting-india.html  web hosting india java support  managed reseller hosting - www.cassey.space/managed-reseller-hosting.html  best hosting site for bloggers  web hosting reseller programs reviews - www.cassey.space/...reseller-programs-reviews.html  web hosting vs wordpress hosting  cheap vps server india - www.cassey.space/cheap-vps-server-india.html  cheap linux vps hosting  web hosting uk top ten - www.cassey.space/web-hosting-uk-top-ten.html  wordpress best hosting uk  best hosting for wordpress uk - www.cassey.space/...-hosting-for-wordpress-uk.html  website hosting sites uk  canada vps hosting reviews - www.cassey.space/canada-vps-hosting-reviews.html  cheap vps hosting reviews  cheap fully managed dedicated server - www.cassey.space/...-managed-dedicated-server.html  web hosting with video streaming  linux virtual server hosting uk - www.cassey.space/...virtual-server-hosting-uk.html  wordpress hosting dedicated ip  dedicated server terms and conditions - www.cassey.space/...rver-terms-and-conditions.html  unmanaged dedicated server hosting  web hosting in jaipur - www.cassey.space/web-hosting-in-jaipur.html  moving joomla site to new host  review dedicated server hosting uk - www.cassey.space/...dicated-server-hosting-uk.html  dedicated server hosting indonesia  windows vps trial rdp - www.cassey.space/windows-vps-trial-rdp.html  vps windows 10 euro  instant windows vps - https://www.cassey.space/instant-windows-vps.html  web host ratings  web hosting canada coupon - www.cassey.space/web-hosting-canada-coupon.html  web hosting benefit  dedicated servers cheap australia - www.cassey.space/...d-servers-cheap-australia.html  how to move wordpress site to another hosting  web hosting manchester uk - www.cassey.space/web-hosting-manchester-uk.html  cheap price dedicated server  web hosting services pune - www.cassey.space/web-hosting-services-pune.html  unmanaged dedicated server europe  windows vps 1$ - https://www.cassey.space/windows-vps-1.html

dedicated server usage
12/10/2017 6:38:30 PM #

what is  dedicated server usage - www.buena.space/dedicated-server-usage.html  server  website hosting cost in india - www.buena.space/website-hosting-cost-in-india.html  free photo hosting sites reviews  web hosting for small business uk - www.buena.space/...ting-for-small-business-uk.html  unlimited dedicated server  free hosting with cpanel - www.buena.space/free-hosting-with-cpanel.html  best photo hosting site for photographers  fast dedicated server hosting - www.buena.space/fast-dedicated-server-hosting.html  cheap yearly vps  web hosting photo gallery - www.buena.space/web-hosting-photo-gallery.html  web hosting top 5  best affordable wordpress hosting - www.buena.space/...fordable-wordpress-hosting.html  dedicated server cheap rent  cheapest dedicated server india - www.buena.space/...est-dedicated-server-india.html  powerful dedicated server hosting  web hosting download speed - www.buena.space/web-hosting-download-speed.html  uk based dedicated servers  offshore shared hosting - www.buena.space/offshore-shared-hosting.html  website hosting uk based  managed dedicated server - www.buena.space/managed-dedicated-server.html  vps servers cheap  vps control panel virtual private server management made easy - www.buena.space/...erver-management-made-easy.html  cheap vps in europe  web hosting spain - https://www.buena.space/web-hosting-spain.html  vps server usage  is wordpress a hosting site - www.buena.space/is-wordpress-a-hosting-site.html  change wordpress host  web hosting with mysql database - www.buena.space/...osting-with-mysql-database.html  windows 7 vps europe  free linux vps server - https://www.buena.space/free-linux-vps-server.html  cheap vps deals  website hosting services australia - www.buena.space/...hosting-services-australia.html  web hosting php  website hosting costs india - www.buena.space/website-hosting-costs-india.html  uk dedicated servers cheap  top vps hosting providers in india - www.buena.space/...hosting-providers-in-india.html  cheap fully managed vps hosting  best dedicated server - https://www.buena.space/best-dedicated-server.html  best dedicated server in singapore  free joomla hosting sites - www.buena.space/free-joomla-hosting-sites.html  best cpanel for vps  uk wordpress reseller hosting - www.buena.space/uk-wordpress-reseller-hosting.html  web hosting in bangladesh  cheapest european dedicated server - www.buena.space/...-european-dedicated-server.html  cheap wordpress hosting  web hosting indonesia magento - www.buena.space/web-hosting-indonesia-magento.html  best reseller hosting for wordpress  windows ssd vps - https://www.buena.space/windows-ssd-vps.html  best cheap offshore vps  dedicated server solutions - www.buena.space/dedicated-server-solutions.html

Corporate Workwear
12/10/2017 8:36:22 PM #

I am no longer sure where you are getting your info, but great topic. I needs to spend some time studying much more or understanding more. Thanks for magnificent info I used to be searching for this information for my mission.  Here is my web blog ...  Corporate Workwear - currycentrebanstead.com/.../

bandarq
12/13/2017 2:28:33 AM #

Pretty element of content. I just stumbled upon your weblog and in accession capital to claim that I get in fact enjoyed account your weblog posts. Anyway I will be subscribing in your feeds or even I success you get admission to constantly quickly.  My webpage;  bandarq - http://Agenjudionline.in/

Anti-Theft System
12/13/2017 2:30:33 AM #

Magnificent site. Plenty of useful info here. I am sending it to some friends ans additionally sharing in delicious. And naturally, thanks for your sweat!  my page ::  Anti-Theft System - www.zaizhuli.com/space.php

free online casino games
12/13/2017 2:31:07 AM #

online casino  casino slot games - http://casino17rich7online.com/  online casino usa  free casino games download - http://playslotscasino888.com/

click now
12/13/2017 7:13:54 AM #

Also, their body's capability to add and preserve muscle tissue provides them a giant advantage when shedding fat.

compagnie de menage rive sud
12/14/2017 3:53:07 PM #

compagnie de menage rive sud, service de femme de ménage Professionnelle de l'entretien, notre dynamique entreprise saura réaliser pour vous l'ensemble des travaux ménagers.  G.E.M. s'engage sur une prestation de qualité !  Notre équipe de spécialistes chevronnés accomplira un travail à la fois soigné, rapide et économique.  De plus, nous utilisons exclusivement des produits écologiques et hautement performants, issus des toutes dernières technologies.   La vie moderne véhicule aussi de lourdes menaces. D'apparence inoffensive, meubles, appareils ménagers, matériaux de construction, jouets ou objets familiers peuvent dégager des phtalates ou autres redoutables composés chimiques.   G.E.M Ménage s’adapte.  Choisissez le jour à votre convenance.  Le choix le plus populaire est une fois par semaine. Toutefois, vous êtes libre de déterminer votre fréquence moindre, toutes les deux semaines, une fois par mois…. G.E.M MÉNAGE s’adapte à votre besoin et à votre budget.  Nous individualisons le service de nettoyage. Notre expérience nous a enseigné que chaque immeuble ou maison est unique, comme les gens qui y vivent.  Le prix pour nettoyer un immeuble ou une maison est basée sur plusieurs facteurs.  La taille du lieu et la fréquence de nettoyage sont pris en compte. Cependant, nous intégrons également dans notre analyse, les surfaces à nettoyer et à désinfecter, la présence ou non d’animaux de compagnie, l’encombrement du lieu.  Pour vous proposer un devis qui conviendra à votre budget, G.E.M MÉNAGE vous rencontre chez vous afin de prendre connaissance du  lieu et mieux comprendre vos besoins et exigences de nettoyage.Si beaucoup pensent que le nettoyage de bureaux se résume à passer l’aspirateur, nettoyer les vitrines et vider les poubelles, En faisant appel à une entreprise telle que G.E.M Québec, vous avez la garantie d’un nettoyage régulier et de qualité professionnelle.  Les prestations sont effectuées par des agents d’entretien qualifiés qui sont formés aux techniques de nettoyage propres à vos types de locaux.  Pour satisfaire tous vos besoins en matière d’entretien ménager, G.E.M vous offre un service d’entretien et de nettoyage résidentiel de haute qualité à un prix parfaitement compétitif. Tout le ménage de votre domicile est pensé et réalisé dans ses moindres détails.  Lorsque vous remettez l’entretien de votre maison aux mains méticuleuses de G.E.M, rien n’est laissé au hasard.  Chaque pièce est importante, et ce dans ses moindres recoins. Non seulement nous allions notre savoir-faire à une efficacité qui dépassera vos attentes, mais chaque entretien ménager est effectué avec la plus grande discrétion.Service d’entretien et de nettoyage résidentielune entreprise de nettoyage industriel spécialisée dans la propreté  de vos locaux professionnels (immeubles, bureaux, locaux industriels).L’équipe est composée d’agents de nettoyage qualifiés prêts à intervenir sur tous les types de chantiers,, après l’élaboration d’un devis de nettoyage complet et précis, qu’il s’agisse d’une intervention de nettoyage particulier ou d’un nettoyage de locaux professionnels.De l’entretien courant des sols, vitres et meubles - au nettoyage très spécifique de matériel professionnel ; G,E.M  prend en charge l’intégralité de votre entretien ménager. Que ce soit pour vos bureaux, hôtels et surfaces de ventes qui demandent un entretien méticuleux car représentants de votre enseigne ou espaces communs d’immeubles qui connaissent un fort taux de passage, G.E.M MÉNAGE répond à vos besoins. propose des prestations avec une équipe hautement qualifiée ainsi que du matériel de nettoyage répondant à tous les besoins de nettoyage dans les bureaux.Les prestations sont effectuées par des agents d’entretien qualifiés qui sont formés aux techniques de nettoyage propres à vos types de locaux. Il est important de noter que les intervenants sont employés directement par g.e.m  et non par vos soins Si beaucoup pensent que le nettoyage de bureaux se résume à passer l’aspirateur, nettoyer les vitrines et vider les poubelles,entretien ménager résidentiel Franchise de Nettoyage Résidentiel et Commercial, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d'entretien ménager montréal Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage commercial et de la maintenance. En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader du domaine disposant de l’expérience et la stabilité. Vous disiez augmentez vos revenus afin d'améliorer votre quotidien ? Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d'entretien ménager montréal, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d'entretien ménager montréal Franchises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal ,Rive Nord et Rive Sud.   Financement Sans Intérêt par G.E.M .  Un dépôt est obligatoire   Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus par Mois)!   Matériel et formation fourni   Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage commercial et de la maintenance. En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader du domaine disposant de l’expérience et la stabilité.   G.E.M Ménage vous offre l'opportunité de travailler pendant la journée de lundi a vendredi .   G.E.M Vous propose des contrats d'entretien ménager avec des horaires souples et un revenu garanti.   Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peut favoriser votre accès au marché du travail !   G.E.M vous propose des contrats stables et rémunérateurs!   Dans le secteur résidentiel idéal pour un couple, ou un homme seul dans le secteur commercial  Vous débuter des maintenant   Des techniques et méthodes de travail éprouvées.  Une aide à la constitution ou à l’enregistrement de leur entreprise.  Des territoires d’exercice protégés.  Entreprise clés en main.  Un garantie qui protège votre investissement   Exigences de l’entrée de notre réseau :  Les demandes sont examinées attentivement et une enquête relative à la candidature est menée.  Les candidats doivent passer une entrevue de sélection.  Avant tout début d’activité, les candidats doivent assister à des sessions de formation.   Au G.E.M. nous nous assurons que nos franchisés puissent offrir à leurs clients un service professionnel d’une qualité supérieure à celle de la concurrence.  Franchise disponible au résidentiel et commercial   N'hésitez pas à nous contacter  469 Jean-Talon Ouest Suite # 222  Montreal QC  gemmenage.net  gemmenage.com

Prevent towel Theft
12/15/2017 3:30:52 AM #

I read this piece of writing completely concerning the resemblance of most recent and preceding technologies, it's remarkable article.  my web-site -  Prevent towel Theft - http://Www.Dogame.com.cn/uchome/link.php?url=http://www.fresh222.us/rfid_theft.php

bandarq
12/15/2017 9:15:29 AM #

Very nice post. I just stumbled upon your blog and wished to say that I have truly enjoyed browsing your blog posts. In any case I'll be subscribing to your feed and I hope you write again very soon!  my blog post ...  bandarq - http://Pasarqq.poker/

Vince
12/16/2017 11:38:40 PM #

What i don't understood is if truth be told how you are now not really much more neatly-appreciated than you might be now. You're so intelligent. You recognize thus considerably relating to this matter, made me in my opinion believe it from so many various angles. Its like men and women don't seem to be involved until it is one thing to do with Woman gaga! Your own stuffs great. At all times deal with it up!  Check out my page ...  Vince - http://Testosteronemaxxxl.org/

I’m not that much of a online reader to be honest but your sites really nice, keep it up! I'll go ahead and bookmark your website to come back in the future. Cheers  Feel free to visit my homepage;  online Casinos no deposit welcome bonus - Musik.parce.tv/.../10-best-online-casinos-5

mylab box coupon
12/17/2017 6:31:50 AM #

The entire Mylab Field check kits are FDA approved.

Add comment