Forum Replies Created

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • in reply to: How to measure testing complexity #24201
    Arlan Lesterhuis
    Participant

    Dear Avi,

    I suggest you to first read the sizing of changes of software, in the Measurement Manual, Part 1 Rule 24, in Part 2 section 3.7 Measurement of the size of changes to software.

    Arlan

    in reply to: Data Groups in Drop lists #24198
    Arlan Lesterhuis
    Participant

    Dear Mary,

    In your first paragraph. do NOT identify a list-functional process (just a R and an X, so 2 CFP), for the human user must select the Country. In that case there is no conscious, separate decision to display the value, so there is no triggering event and there is no functional process either.
    Identify a list- functional process only when the user has the option to either type the value him/herself OR select the value from the list (in the latter case there is the conscious, separate decision to display the value that leads to a triggering event and hence a functional process.

    Regards,

    Arlan

    in reply to: Data Groups in Drop lists #24195
    Arlan Lesterhuis
    Participant

    Dear Mary,

    (Please ignore the response above to Avi, my mistake)

    1) I don’t understand your first line in the first example: ‘Entry(triggering event)’. What data is being moved here?
    2) Your first example pertains to entering address data, so the first question to be asked is: is ‘Country’ really an object of interest (OOI) (say, are data of countries being maintained and from which the country names come)? At first sight ‘Country’ in this example isn’t an OOI, therefore, if my assumption is correct the R and the X of the first example should be omitted.
    3) Your last question is answered by the text of the following Example 3: ‘if ithe functional user is offered a choice of two ways of entering the value of the attribute Z, depending on whether the functional user knows the valid value to be entered or needs to select a valid value from a list. ‘
    When the user decides to enter a value via the drop down list (which must display OOI data!) then there is another triggering event (like ‘I want to see the possible values’), therefore there must be another functional process (counted once for the application).

    I hope this is clear.

    Regards,

    Arlan Lesterhuis

    in reply to: Feedback and Questions #24194
    Arlan Lesterhuis
    Participant

    Dear Avi,

    The COSMIC method allows to extent the method ‘locally’ (for instance within a company), which may support experimenting with your ideas more formally. I refer to Part 2 of the Measurement Manual, section 4.1.

    Regards,

    Arlan

    in reply to: Data Groups in Drop lists #24193
    Arlan Lesterhuis
    Participant

    Dear Avi,

    The COSMIC method allows to extent the method ‘locally’ (for instance within a company), which may support experimenting with your ideas more formally. I refer to Part 2 of the Measurement Manual, section 4.1.

    Regards,

    Arlan

    in reply to: Feedback and Questions #24173
    Arlan Lesterhuis
    Participant

    Dear Avi,

    The way to solve the ‘same size but different effort’ issue is solved by using a separate regression model for effort estimating, each one for comparable pieces of software. For the diferent units I refer to my previous response, note also that a kilo of lead and a kilo of gold are both measured in kilo’s, apparently this suffices, i.e. the difference in price is kept out of the unit of weight.
    Your point on e2e testing sounds interesting, I look forward to your post.

    Regards,

    Arlan

    in reply to: Feedback and Questions #24168
    Arlan Lesterhuis
    Participant

    Dear Avi,
    Thanks for your interesting and stimulating feedback, most welcome!

    1) There is a 6 page introduction to COSMIC in the Knowledge base (free download) that responds to your comment. It is: ‘What is a COSMIC function point’. I’ll forward your comment on the website to the web team, if agreed the current Introduction could be replaced by the said document. Obviously we want to keep the COSMIC method stable, however using an pronounceable acronym is a good idea: where needed we could use the more or less pronounceable WREX as an alternative that doesn’t require change of long-existing abbreviations.
    2) I agree with you’re A) and B): sizes of software of different character may not be directly comparable. Your point C): the benefit of COSMIC is that it sizes the content of requirements (i.e. functionality), not the form of requirements. Introducing different points would complicate comparison of productivity of development for yet another variable (form of requirements) is involved. Besides, many other forms of requirements exist and may arise. different scales would be confusing.
    A difference in size between estimate and implementation should at least result in an investigation into the causes of the difference, so that these causes can be envisaged as much as possible (incomplete requirements, scope creep, non-functional requirements implemented as functional requirements, etc.).

    Best regards,

    Arlan Lesterhuis

    in reply to: Hard-coded Catalog #23561
    Arlan Lesterhuis
    Participant

    Maricela,

    Data of an OOI may be hard-coded, in the MM 3.3 Identifying objects of interest and data groups, 3.3.1 Definitions and principles
    it reads

    In practice, the materialization of a data group can take many forms, e.g.:
    a) As a physical record structure on a hardware storage device (file, database table, ROM memory, etc.).
    b) As a physical structure within the computer’s volatile memory (data structure allocated dynamically or through a pre-allocated block of memory space).
    c) As the clustered presentation of functionally-related data attributes on an input/output device (display screen, printed report, control panel display, etc.).
    d) As a message in transmission between a device and a computer, or over a network, etc.

    Arlan Lesterhuis

    in reply to: Hard-coded Catalog #23557
    Arlan Lesterhuis
    Participant

    Hi Maricela,

    You write that a functional process (FP) needs to be changed. Do I understand you correctly that the Entry, Read and Exit are existing data movements of the FP that must be extended in the way you specify? In that case the size of the change to the FP is indeed 3 CFP:
    • the IDCode must be added as a new attribute of the data group moved by the existing Entry of the FP, so this Entry has changed and must be counted as ‘changed’
    • the Code Description must be added as a new attribute of the data group moved by the existing Read of the FP, so this Read must also be counted as ‘changed’.
    • the Code Description must be added as a new attribute of the data group moved by the existing Exit of the FP, so this Exit has changed and must be counted as ‘changed’.

    Arlan Lesterhuis

    in reply to: Convert CFP to hours #12384
    Arlan Lesterhuis
    Participant

    Hi Maricela,

    I agree with both sizes above. Unfortunately, there is no unique answer to what is simple and what is complex. Regression analysis provides an estimate of hours based on a number of (size,CFP) pairs. When you display the data graphically, if needed you can visually split the data points in two or more similar groups and use regression on each group separately. Another method would be to apply regression to sets of requirements for comparable functionality. For instance, if in your organization often software for complex reports is made, you can apply regression to such comparable functionality separately. Yet another possibility is to use ‘generalized regression’ with help of a neural network. See NeuralTools, which is an addition to Excel.

    I hope this helps

    Arlan

    in reply to: Convert CFP to hours #12233
    Arlan Lesterhuis
    Participant

    Dear Maricela,

    Indeed, developing the software represented by the 3rd Exit is easier than the software represented by the 4rth Exit. How to estimate the development effort of each of them? Note that their functional sizes play no role here, as these are both 1 CFP.

    You could set up a very simple registration of such pieces of software, consisting of two attributes: ‘Requirement’ and ‘Effort’. ‘Requirement’ describes the requirement for the piece of software as shortly and clear as possible, and ‘Effort’ specifies the number of hours needed to develop this requirement. You could start with such pieces of software of the past of which the effort is known. Now, if you get some requirement of which you need an approximate effort, just look in your registration to see if one of the items applies (i.e.of which its requirement looks comparable to yours) and use its effort as an approximation for your new requirement. If some items apply, you could use their average as an approximate.

    Regards,

    Arlan Lesterhuis

    in reply to: Convert CFP to hours #12229
    Arlan Lesterhuis
    Participant

    Dear Maricela,

    Both measurements are OK (assuming that there was no requirement for E/C messages in the first functional process).

    Your reasoning on effort estimating for two pieces of software is correct. However, when a number of pieces of software must be developed (a mixture of simple, moderate and difficult software), the general approach to estimating effort on the basis of CFPs is to use regression analysis (it produces a regression function). When you enter a size to the function, the function will produce the estimate of the effort to be expected. If it appears that you can divide the data of software development in two groups (say ‘simple software’ and ‘other software’) you could consider to apply regression analysis separately to both groups.

    I hope this is clear and helps.

    Regards,

    Arlan Lesterhuis

    Arlan Lesterhuis
    Participant

    Maricela,

    No, the time plays no role because it is a non-functional requirement: at whichever time the data is processed doesn’t change the way the data is processed. As the data is stored data (i.e. not in a temporary file) the first Entry should be to move the selection of the transactions to be processed. In your description these are the ‘active transactions’, so

    Entry Active transaction (i.e. ‘select active transaction’)

    with the Read and Exit remaining as above.

    Arlan

    Arlan Lesterhuis
    Participant

    Dear Maricela,

    Crucial in measurement of batch processes is the first sentence of section 4.4.5 of the Business Applications Guideline:

    ‘Fundamentally, when measuring the size of functional processes, it should make no difference whether the functional process is required to be processed on-line or in batch mode.’

    In other words, the process should be analysed as if it were an on-line process. The reason is that the requirement that data must be batch processed is a non-functional requirement. and therefore doesn’t lead to a data movement as intended by COSMIC (the execution time isn’t an OOI to the functional user of the transactions). Instead, the analysis is that
    1) Transactions have been entered (and maybe stored in a temporary file for processing later). Measure this as if a functional user entered the transactions.
    2) The measurement of the other processing (your steps 2, 3 and 4 in the second solution) is correct, as there is no requirement stated of difference in processing of the active and the cancel transactions.

    Below the measurement with the data groups (and the OOIs between []).

    E IdTransaction, Description, Amount [Transaction]
    R IdTransaction, Description, Amount [Transaction]
    X IdTransaction, Description, Amount [Transaction]

    I hope this is clear

    Arlan Lesterhuis

    in reply to: Add fields in tables #11634
    Arlan Lesterhuis
    Participant

    Maricela,

    Adding a field to a data base isn’t movement of data, so no CFP. However, count one CFP for each data movement (Read, Write, Enter or Exit) that move a data group which contains the new field’s data. Note that data movements moving the modified data group whose functionality is not affected by the modification to the data group shall not be identified as changed data movements (see MM 4.4.1).

    Regards,

    Arlan Lesterhuis

Viewing 15 posts - 1 through 15 (of 25 total)