Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LCSM #16

Open
yegor256 opened this issue Oct 19, 2017 · 103 comments
Open

LCSM #16

yegor256 opened this issue Oct 19, 2017 · 103 comments

Comments

@yegor256
Copy link
Member

Let's implement LCSM cohesion metric.

A. Marcus and D. Poshyvanyk, “The conceptual cohesion of
classes,” in 21st IEEE International Conference on Software Maintenance
(ICSM’05). IEEE, 2005, pp. 133–142.

https://pdfs.semanticscholar.org/c6c4/b63f3ba81f2bee75a0c29367da99971dfbaa.pdf

@0crat
Copy link
Collaborator

0crat commented Jan 14, 2018

Job #16 is now in scope, role is DEV

@0crat
Copy link
Collaborator

0crat commented Jan 14, 2018

Bug was reported, see §29: +15 points just awarded to @yegor256, total is +7225

@0crat
Copy link
Collaborator

0crat commented Jan 14, 2018

The job #16 assigned to vmotsak. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

@0crat
Copy link
Collaborator

0crat commented Jan 21, 2018

@vmotsak/z this job was assigned to you 5 days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

@0crat
Copy link
Collaborator

0crat commented Jan 22, 2018

@vmotsak/z this job was assigned to you 8 days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

@0crat
Copy link
Collaborator

0crat commented Jan 24, 2018

The user @vmotsak/z resigned from #16, please stop working

@0crat
Copy link
Collaborator

0crat commented Jan 29, 2018

The job #16 assigned to @skapral/z. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

@skapral
Copy link
Contributor

skapral commented Feb 1, 2018

@0crat status

@0crat
Copy link
Collaborator

0crat commented Feb 1, 2018

@0crat status (here)

@skapral This is what I know about this job, as in §32:

  • The job #16 is in scope for 18days
  • The role is DEV
  • The job is assigned to @skapral/z for 3days
  • There is no monetary reward attached, it's a free job
  • The job doesn't have any impediments
  • The budget is 30 minutes
  • These users are banned and won't be assigned:

@0crat
Copy link
Collaborator

0crat commented Feb 8, 2018

The user @skapral/z resigned from #16, please stop working

@0crat
Copy link
Collaborator

0crat commented Feb 8, 2018

The job #16 assigned to @nikialeksey/z. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

@nikialeksey
Copy link

@0crat waiting

@0crat
Copy link
Collaborator

0crat commented Feb 18, 2018

@0crat waiting (here)

@nikialeksey The impediment for #16 was registered successfully by @nikialeksey/z

@nikialeksey
Copy link

@0crat refuse

@0crat
Copy link
Collaborator

0crat commented Feb 18, 2018

@0crat refuse (here)

@nikialeksey The user @nikialeksey/z resigned from #16, please stop working

@0crat
Copy link
Collaborator

0crat commented Feb 18, 2018

Tasks refusal is discouraged, see §6: -15 points just awarded to @nikialeksey/z, total is +60

@0crat
Copy link
Collaborator

0crat commented Feb 19, 2018

The job #16 assigned to @llorllale/z, here is why. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

@llorllale
Copy link
Contributor

llorllale commented Feb 23, 2018

@yegor256 this metric also requires Latent Semantic Indexing. Have you thought high-level about how we should integrate this into the project? I'm referring to Java vs. XSLT.

@llorllale
Copy link
Contributor

@yegor256 I'd like your input on my previous comment in order to know the direction I should be taking with this job

@llorllale
Copy link
Contributor

@0crat waiting

@0crat
Copy link
Collaborator

0crat commented Feb 26, 2018

@0crat waiting (here)

@llorllale The impediment for #16 was registered successfully by @llorllale/z

@yegor256
Copy link
Member Author

@llorllale I don't really know what this metric is about. Let's start to investigate and see where it gets us. I have zero knowledge in this area, don't rely on me.

llorllale added a commit to llorllale/jpeek that referenced this issue Feb 28, 2018
@llorllale
Copy link
Contributor

llorllale commented Mar 1, 2018

@yegor256
A lot of math is involved. On one hand there are already Java libraries out there that we could reuse. On the other, we could implement through XSLT by hand.

Following are the steps for this metric. Singular-value decomposition will definitely be the hardest:

  1. Latent Semantic Analysis: https://en.wikipedia.org/wiki/Latent_semantic_analysis
    1. Build the occurrence matrix
    2. Rank lowering (to mitigate problems of synonymy and polymeny):
      1. Singular-value decomposition:
      2. Select k ranks. This should be configurable/user-provided
    3. Calculate cosine similarity between the resulting documents pairs: https://en.wikipedia.org/wiki/Vector_space_model
  2. Calculate ACSM as per paper
  3. Calculate C3 as per paper

Also, there will be a limitation:

  • The paper says The source code under analysis is converted into a text corpus, such that from each method only identifiers and comments are extracted. Comments are not included in the bytecode, they are not mentioned in the class file format specification

Finally, I'll be very curious to see the performance of this.

@0crat
Copy link
Collaborator

0crat commented Jul 13, 2019

The job #16 assigned to @robsonataide/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be no monetary reward for this job

@0crat
Copy link
Collaborator

0crat commented Jul 18, 2019

@robsonataide/z this job was assigned to you 5days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

@paulodamaso
Copy link
Collaborator

@0crat refuse

@0crat
Copy link
Collaborator

0crat commented Jul 22, 2019

@0crat refuse (here)

@paulodamaso The user @robsonataide/z resigned from #16, please stop working. Reason for job resignation: Order was cancelled

@0crat
Copy link
Collaborator

0crat commented Jul 22, 2019

The job #16 assigned to @aivinog1/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be no monetary reward for this job

@0crat
Copy link
Collaborator

0crat commented Jul 26, 2019

The job #16 assigned to @uurl/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat
Copy link
Collaborator

0crat commented Jul 26, 2019

Job gh:yegor256/jpeek#16 already assigned to @uurl, can't assign to @uurl

@0crat
Copy link
Collaborator

0crat commented Aug 5, 2019

The user @uurl/z resigned from #16, please stop working. Reason for job resignation: It is older than 10 days, see §8

@0crat
Copy link
Collaborator

0crat commented Aug 5, 2019

Resigned on delay, see §8: -30 point(s) just awarded to @uurl/z

@0crat
Copy link
Collaborator

0crat commented Aug 5, 2019

The job #16 assigned to @dfrau32/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat
Copy link
Collaborator

0crat commented Aug 15, 2019

The user @dfrau32/z resigned from #16, please stop working. Reason for job resignation: It is older than 10 days, see §8

@0crat
Copy link
Collaborator

0crat commented Aug 15, 2019

Resigned on delay, see §8: -30 point(s) just awarded to @dfrau32/z

@0crat
Copy link
Collaborator

0crat commented Aug 26, 2019

The job #16 assigned to @fellahi-ali/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@alilosoft
Copy link

@0crat status

@0crat
Copy link
Collaborator

0crat commented Aug 26, 2019

@0crat status (here)

@fellahi-ali This is what I know about this job in C7JGJ00DP, as in §32:

@alilosoft
Copy link

alilosoft commented Aug 27, 2019

@paulodamaso This task seems very complex and not doable with a budget of 30min, because is opened since Oct 2017, and was refused by about 21 DEVs. I think it should be subtasked. Do you suggest that I proceed with it with PDD, or just refuse it, and submit a ticket about it's complexity to be re-formulated?

@paulodamaso
Copy link
Collaborator

@fellahi-ali The issue has already been decomposed in some way by @llorllale in #16 (comment) ; I think you could start by solving one of these steps and lefting puzzles for the other ones, WDYT?

@alilosoft
Copy link

@paulodamaso OK! I think I should give it a try. But as I'm not familiar with PDD, I don't know exactly the constraints/rules of using puzzles, and when I should leave them and when I couldn't? I will start by reading the articles about PDD, and if you can give any hints it will be appreciated!

@alilosoft
Copy link

@0crat status

@0crat
Copy link
Collaborator

0crat commented Sep 3, 2019

@0crat status (here)

@fellahi-ali This is what I know about this job in C7JGJ00DP, as in §32:

@0crat
Copy link
Collaborator

0crat commented Sep 4, 2019

@fellahi-ali/z this job was assigned to you 9days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

@alilosoft
Copy link

@0crat wait for #296

@0crat 0crat added the waiting label Sep 5, 2019
@0crat
Copy link
Collaborator

0crat commented Sep 5, 2019

@0crat wait for #296 (here)

@fellahi-ali The impediment for #16 was registered successfully by @fellahi-ali/z

@luiscruz
Copy link

luiscruz commented Oct 5, 2019

Hi, is this a good first issue? I'd like to contribute and I'm familiar with the metric.

@paulodamaso
Copy link
Collaborator

@luiscruz Currently this issue is waiting for #296 solution. Can you solve it with the current architecture?

@luiscruz
Copy link

luiscruz commented Oct 6, 2019

I'm not familiar with the architecture yet.
Perhaps I should start with a simpler issue and then get back to this.
Any recommendation @paulodamaso ?

@paulodamaso
Copy link
Collaborator

@luiscruz I think that as you are familiar with the metrics, this should be a good issue to you to get familiar with the current architecture. Or you could get into #296 and provide a solution for it.

We use @0crat to manage the project issues, so it would be a good idea for you to join it if you want to contribute actively

@0crat
Copy link
Collaborator

0crat commented Oct 6, 2019

Are you speaking to me or about me here; you must always start your message with my name if you want to address it to me, see §1

@luiscruz
Copy link

luiscruz commented Oct 6, 2019

Thanks. I'll give it a try during this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests