FDD and LOC estimation

Hi, My name is George (Jorge in spanish) Baroudi, i usually develop software in very small teams, and we are adopting FDD as our standar, we have done quite well with all the processes for the last project but, we were thinking about how would it fit a LOC estimation in between planning and the other processes.

Have someone made LOC estimation from a feature list based on past projects?

We are thinking about using an XML representation of the Database and XSL for generating the code based on columns of the tables in the database, and this will be applied to all levels of the different archetypes of the model.

With this generation we can have a very good aproximation for the model and having an institutionalized (i work in the government of my country) standar for UI then there's no much problem about changes in the UI side.

Can you help with comments about your ideas on FDD and LOC estimation?

Do you think if this approach can be promoted as a tool?

What do you think it would be the FDD/estimation tool's advantages or disadvantages in an XP/FDD software development environment?

Thanks for your comments in advance.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Jeff De Luca's picture

Do whatever works, but usually not LOC

Hi Jorge,

Hi, My name is George (Jorge in spanish) Baroudi, i usually develop software in very small teams, and we are adopting FDD as our standar, we have done quite well with all the processes for the last project but, we were thinking about how would it fit a LOC estimation in between planning and the other processes.

Have someone made LOC estimation from a feature list based on past projects?

I haven't. I have had parts of a system function point counted and then used that count as input to other tools and calibrations as an independent check of my own estimation.

Using Capers Jones' language table, you could go from function points to LOC.

I've not done any work on FPs from features.

That all said, what is the purpose of trying to estimate the LOC of the finished system? If I understood how you use LOC or want to use that metric I could perhaps offer other insights or experiences.

We are thinking about using an XML representation of the Database and XSL for generating the code based on columns of the tables in the database, and this will be applied to all levels of the different archetypes of the model.

With this generation we can have a very good aproximation for the model and having an institutionalized (i work in the government of my country) standar for UI then there's no much problem about changes in the UI side.

I don't understand what you mean. An XML representation of what database? Which archetypes of what model are you referring to?

Jeff

RE: Do whatever works, but usually not LOC

Hi Jeff, before i try to explain myself i want to thank you for your time, it is an honor. Let me start from the beginning.

I work with small teams and we have build some components in languages like php, java and c#. Those components are common features between small applications like users and security.

The Clients of the applications i built (mostly web apps) are people working inside my own government dependency, so, it is not required to be so general about UI or common features. We often make minimal changes to database tables (add more columns to a table or delete some others) and finally build upon that newly created database, so, what makes this estimation possible is a database driven formula for the Model of the application and the institutionalized UI.

The idea to make this type of software estimation came from an article of Hugo Troche (http://www.developerdotstar.com/mag/articles/troche_patternanalogies.html which uses design patterns analogies for example in Data Acces Objects or DAO's (maybe not a design pattern per se but a nice starting point to make some separation of responsabilities for each class).

So, the goal would be to include this estimation as part of the FDD planning process we do, to give features from the feature list a more accurate date of completion.

Quote: "I don't understand what you mean. An XML representation of what database? Which archetypes of what model are you referring to?"

Excuse me Jeff, it is an XML representation of database tables metadata. So, columns from tables will be mapped to properties of a class, you know, it is the way to go with technologies in OR Mapping like EJB3, Hibernate, TopLink, etc. The model we use is an MVC pattern so we extract from database going up to model, we break this part in two to make DTO's and DAO's for each table, and finally, one controller and one view (in the most simple case).

But, i want to go a little further, by counting the initial LOC in the generated code, maybe atach this estimation to a feature if i can map them with the tables, or other sources of XML, and their XSL files to transform the code. Therefore, we could have an estimation in LOC's per feature, then to the busines activity and then to the subject area (as you have stated in other forum, to use major feature set and feature sets as subject area and business activity as i recall).

So, its just a matter of creating XSL files to represent the classes often used in projects we do, bind them to an XML source (here goes the part of the xml representation of database tables metadata info) and finally count the lines generated (no matter what language). The effort i have seen its most of all in refactoring for adaptation, not in coding new features (but this is our own particular case).

The model we use is an MVC pattern, i don't use archetypes yet as a concept, altough we are making efforts to adapt to the concept, i believe its just a matter of translation to spanish and we will be up and running doing app models in color :)

I believe this is the general idea, thanks in advanced for your time and comments.

Jorge