Solution Analysis And Acceptance Test Tool#

This article is incomplete; it will be constantly in editing mode.

The 'Solution' is very similar to the conventional Requirement Analysis. For their most important goal is to pronounce the purpose and the functionals of the project. Yet, there is a subtle difference between two. I prefer the 'Solution' term to the requirement because the former sounds more focused on the coherent principal that combine the many pieces of the requirements.

The weakness in the term of requirement is that they tend to fragmentized into the incoherent pieces; sometimes one requirement conflicts with another one. Usually customers are known to be incompetent in giving their own requirements to the developers. There's a profession who work as mediator between customers and developers; their sole job is to inspire the customer so that they can come up with better requirements. By the nature of customers, any requirements can be thrown at the project schedule any time.

The 'Solution', in fact, is based on this requirement analysis at any level of completedness. The 'Solution' will start with as many requirements as currently available to the designer at the time. The main goal of 'Solution' is the designers' overall direction toward how they resolve the given problem. Here you don't need patterns or classes; you only need the high level statement that explains your plan for the 'Solution'. Therefore, 'Solution' is the better fit to the Agile; though the 'Solution' is also viewed as the supplemental perspective that helps the requirement analysis.

For example, the company A needs a inventory projection system for their products, and they will provide the formula to forecast the future target inventory based on the historical sales data. Your goal is to implement the system for the comapny A. Now you just proclaim your solution to this business problem, or requirement. The 'Solution' will take the historical sales data of a single product or multiple products, and it processes the data based on the logic that implements the forecast formula that Company A provided with. Finally, the solution will display the forecast to the users of the system.

That is solution at my best in the beginning; someone can put better solution. After this proclamation, you will decompose your statement into multiple chapters as the development goes on. Usually there is an organic ties within the statement of the 'Solution'.

The forms of the organic ties would be the sequential flow of logic or events or the conditional factors that fork several chunks of the sub divisions. From this 'Solution' statement, you can make sub-solutions to cover the details of small problems--the questions raised from interpreting the 'Solution' statement.

We are going to need to veryfy this 'Solution' as we do for classes by Unit Test Tool. That is why we need to talk about the Acceptance Test Tool, Fitnesse.

Tuesday, May 01, 2007 11:39:47 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

Domain Model Analysis--The Bottleneck of OOP?#

This article is incomplete; it will be constantly in editing mode.

The seasoned developers know that it is not easy to conduct OOP. The process of domain model analysis is non-disciplined; it mainly relies on the intuition or the experience from the past--the pattern language. The OOD is great tool for implementing the 'Solution', not for simulating the real world. The pitfall of the OO developers is that they cry for the classes with that they can initiate their development, but there are no easy way to get them without vigorus up-front efforts to model the static class digaram. This practice is usually expensive. And the bad news is the output from this practice will be very volatile and it requires the high cost to change them later in the development phase. This fear of future change causes even more delay on this domain model analysis.

The reason why OOP becomes hard is because developers think that their class must somehow simulate the real world, and it is neither achievable goal nor worth it. We must shift our mindset from the simualation of reality to the application of the 'Solution'. The 'Solution' is the virtual entity and the ultimate outcome of given programming job. Once whatever the 'Solution' is defined, OO designers put the OOP tool into an action only to implement the 'Solution'. This 'Solution' first approach resembles the very purpose of the Use Case Dicipline; it will show the concrete class objects that is needed immediately. 

This way developers will quickly get any classes that they can use in the very contained scope of functionalities. They are more likely the mechanical piece of the 'Solution', not the conceptual entity of the domain. The changes are minimal and manageable within the limit. But we still need domain entity for the better depiction of our 'Solution'. Can the business entity be so simple, yet adapt to the changes? This question leads us to the next subject--Agile Domain Modeling.


  • Architect is Solution Engineer, not Software Engineer.
  • What is exactly the 'Solution'?

 

Saturday, April 28, 2007 5:14:09 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

All content © 2008, Young T. Kim
On this page
This site
Calendar
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Archives
Sitemap
Blogroll OPML
Disclaimer

Powered by: newtelligence dasBlog 1.9.6264.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts


Pick a theme: