11

I'm writing up the changes I have made to some software; said changes include separating some things into categories (I'm trying to avoid making this readable only to people who know about programming).

I am calling these categories domains (in the sense of "a sphere of activity," as definition 4 in Merriam-Webster), because software...

My current wording is

Separated the state and functions into the domains A, B, C, and D.

("State" and "functions" are programming things, but I believe it should still be completely understandable to the folks here on ELU.)

Is there a better word I can use in place of separate here? The sense is that there was a collection of things that are actually different but were still all together, and I have separated them into different groups. It also needs to express (as best it can) the fact that they were mixed together and that that was not ideal.

For clarity, I am considering "the state and functions" as a single set. The state in this case is a collection of component parts. So I have changed Everything = { valueA, functionA, valueB, valueC, functionC } (for example) to A = { valueA, functionA }, B = { valueB }, C = { valueC, functionC }.

The document is documentation for me and other programmers; it can be an uncommon/niche word if necessary.

I have considered/am considering:

  • Separate
    What I was going to use.
    In the sense:

    • "to divide into constituent parts" or "to isolate from a mixture" - Sense 5, Transitive verb, Merriam Webster
    • "to divide into different parts or groups; to divide things into different parts or groups" - Sense 1, Verb, Oxford Learner's Dictionaries
  • Divide
    My original runner-up.
    In the 1st or 3rd sense as given by Merriam-Webster:

    • 1.a. "to separate into two or more parts, areas, or groups"
    • 1.b. "to separate into classes, categories, or divisions"
    • 3.a. "to cause to be separate, distinct, or apart from one another"

    Or the 1st sense given by Oxford Learner's Dictionaries: "to separate into parts; to make something separate into parts"

  • Partition
    Seems to be more like simply splitting something up, like sharing out a cake. Same issue with split up.

  • Isolate
    This makes it feel more like I isolated the "state and functions" from something else, not each other.

    • "to set apart from others" - Sense 1, Verb, Merriam-Webster
    • "to separate somebody/something physically or socially from other people or things" - Sense 1, Verb, Oxford Learner's Dictionary
    • "to separate a part of a situation, problem, idea, etc. so that you can see what it is and deal with it separately" - Sense 2, Verb, Oxford Learner's Dictionary
  • Distinguish (suggested by @WeatherVane) Captures the nuance of what I'm trying to express, but seems to be usually defined as noticing or understanding but not necessarily acting upon it (Merriam-Webster is the exception here). Also, I am not sure how exactly I would use this in my case. But otherwise a good choice!

I also considered categorize and classify, but those seem to be more about how something is considered than an actual act. In the context of software (at least in my experience), they are very likely to refer to some sort of labeling, not only an act of grouping (especially classify). In this particular case that distinction is important.
In a sense, there are three levels:

  • Simply how something is considered, how it is mentally regarded
  • How something is concretely labeled
  • How something is physically arranged, which usually implies some sort of labeling as well.

This instance is the third case.

The thesaurus entries I looked at on Merriam-Webster didn't provide anything I could consider using that I have not included here.

Separate seems to best capture the nuance of "untangling" the things and "isolating" them from each other, but I would like to know if there is a better-suited word.

2
  • Comments have been moved to chat; please do not continue the discussion here. Before posting a comment below this one, please review the purposes of comments. Comments that do not request clarification or suggest improvements usually belong as an answer, on English Language & Usage Meta, or in English Language & Usage Chat. Comments continuing discussion may be removed.
    – NVZ
    Commented Mar 25, 2023 at 4:28
  • 1
    As the question stands, I have accepted group as the answer. I am also using distinguish and divide in the same section of the document, so thanks to @WeatherVane for suggesting distinguish. Commented Mar 29, 2023 at 0:19

18 Answers 18

11

So I have changed Everything = { valueA, functionA, valueB, valueC, functionC } (for example) to A = { valueA, functionA }, B = { valueB }, C = { valueC, functionC }.

Looks like you have grouped the values and functions (by "domain"?)

group

verb
put in a group or groups
...

  • put into categories; classify.
    "molluscs are grouped into seven different classes"

Definitions from Oxford Languages.

I'm very sure I've heard this used for exactly your case too, in the context of refactoring, but I wasn't able to find an example online to point you to.

Grouped the state and functions into the domains A, B, C, and D.

To me as a programmer, this strongly implies that the values have been collected according to some common denominator.

21

I washed my red shirt with my white socks.

They were mixed together and that was not ideal.

Now I have pink socks! Next time I will sort my laundry . . .

sort, v.1
II. Senses relating to arranging or placing in order, and related uses.
9. a. transitive.
To arrange (things, etc.) according to kind or quality, or after some settled order or system; to separate and put into different sorts or classes; to classify; to assort.
Source: Oxford English Dictionary (login required)

tl;dr:

Sorted state and functions into the domains A, B, C, and D.

6
  • 1
    I think this could be what I end up using, thanks! I'll see if anything else comes up before I need to finalize my draft; if not, I'll accept this. Commented Mar 23, 2023 at 4:25
  • 2
    Now we're ELULA... English Language, Usage, and Laundry Advice.
    – Mitch
    Commented Mar 24, 2023 at 12:02
  • 1
    Sorting, though, usually has a narrower meaning (arranging the elements of a sequence according to some total order) in software.
    – chepner
    Commented Mar 24, 2023 at 15:48
  • @chepner — Above, the OP, a human, is doing the sorting, not the software. Commented Mar 24, 2023 at 16:02
  • 1
    Yes, but the target audience will likely have the narrower definition in mind.
    – chepner
    Commented Mar 24, 2023 at 16:05
14

Classify

from Cambridge Dictionary

to divide things or people into groups according to their type, or to say which group or type something or someone belongs to

This word is often used in machine learning, clustering algorithms, quality checks, etc. where objects have to be sorted or distinguished depending on some key properties.

Therefore:

Classified state and functions into the domains A, B, C, and D.

7

The state and functions were previously disorganised, so now you have organised them.

to do or arrange something according to a particular system:

The books were organized on the shelves according to their size.

Source: Cambridge Dictionary

This fits in your change description fine:

Organised state and functions into the domains A, B, C, and D.

Although you may prefer something like:

Organised state and functions by domain (A, B, C, or D).

6

I'd encourage you to revisit categorise (or -ize if you prefer).

It has the definition of placing into groups (Collins):

to arrange in categories or classes; classify

or (Cambridge, which is rare in using "the same"):

to put people or things into groups with the same features

This works best assuming that there's a logical connection between the items in each of your domains/sets - but presumably that's why you're doing it.

1
  • I have considered and reconsidered it quite a few times, but my feeling is that it could be ambiguous; in the context of software (at least in my experience), it is just as likely to refer to some sort of labeling, not an act of grouping. And in this particular case that is an important distinction (which I'll add to the question). But thanks for the suggestion! Commented Mar 24, 2023 at 18:40
5

Arrange

to put a group of objects in a particular order

What you did may be considered an arrangement.

Therefore, you may want to use

Arranged state and functions into the domains A, B, C, and D.

Source: Cambridge Dictionary

4

partition

Is good for this, and very domain-appropriate, even though you don't seem to like it right now.

You are exactly splitting up a cake. Sounds like you are starting from some large file, moving all the code in that file that has raisins to another file, and all the code that has icing to another file.

Especially in the programming world, the word reminds of partitioning tasks, e.g. the famous partition problem, which typically involve dividing incongruent items into different containers.

There is a computer-assistant refactoring tool called the Acellere Gamma Partitioning Tool, this other paper (Automated refactoring of objects for application partitioning) uses "partition" to talk about refactoring too, at least one SO question uses 'partition' to describe the type of refactor he wants to do. There are more examples, and I wanted to post an even longer list here to prove you can use the word like this, but it's such a popular word in the CompSci world I actually found it hard to filter my searches down to the case you have at hand (rather than e.g. hard drive partitions or partitioning algorithms). I think developers love this word and will understand according to almost any meaning you intend it to have.

Because of your cake analogy, you seem to dislike that this word connotes starting from one unified whole, but I don't think it actually does. It does seem to more often be used for that, but there are related words like repartition with the same etymological roots that are explicitly about dividing discrete "already-divided" things

1550s, "partition, distribution," especially of troops or their quarters, from re-, here perhaps intensive, + partition (n.). From 1835 as "a repeated or fresh allotment."

(from etymonline)

and other usages of partition itself that are analogous to your case

This complex petroleum mixture is expected to partition primarily to soil and/or sediment.

from linguee

... his dominions were quickly partitioned between Poland, Denmark and Sweden.

King Augustus had explained to him a project for partitioning the trans-Baltic provinces of Sweden, by which Poland should recover Livonia and annex Esthonia, Russia should obtain Ingria and Karelia, and Denmark should take possession of Holstein.

from sentence.yourdictionary.com

3

Refactored

From a programmer's point of view, it sounds like you have refactored some code to implement the Single Responsibility Principal (the S in SOLID). If the wording you need is for a technical audience then I would suggest you use the appropriate technical language.

See the Code Refactoring article over on Wikipedia. Here are the first 2 sentences of the article:

In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software (its non-functional attributes), while preserving its functionality.

You can use Refactored in your original sentence or use it alone if you do not wish to go in to detail.

Refactored the state and functions into the domains A, B, C, and D.

3
  • @Heartspring Done
    – phuzi
    Commented Mar 24, 2023 at 14:48
  • 2
    I did consider refactor. While it does apply, I feel it is more broad than what I am trying to say. I consider the change I made to be a refactor, but I want a word that conveys the specific sense of what I have actually done. Thanks for the suggestion, though! Commented Mar 24, 2023 at 18:29
  • 1
    I would use refactored here. "refactored" is a generic verb meaning to change code around in a way that is apparent only to programmers but not to end users but you can make it more specific with usage like "refactored x for/to y" e.g. "I refactored the sorting code for time efficiency". In your case it would be "I refactored the state and functions to be grouped by domain" or something like that.
    – jwezorek
    Commented Mar 25, 2023 at 17:02
2

Segregate as in Cambridge Dictionary means:

to keep one thing separate from another.

to keep one group of people apart from others because of race, religion, sex, etc.

And an example from programming context.

Also, I can no longer segregate codes into blocks like in Colab where I can run it separately.

1

You could say that you disaggregated them. MW defines this verb as:

to separate into component parts

1

You could say that you clustered them into domains A, B, C and D. Clustering things in the data analysis or machine learning sense is when you put points together (in the same cluster) that are more similar to each other than to other points (in other clusters). Points in the same cluster are normally not identical. They all typically have some scatter.

1

I'll quickly make my comment an answer. I think the words you were using are the best solution:

"Before, functions and state were lumped together; I have now separated them into these two categories." (Or, perhaps, "separated these two categories into two [lists, directories, whatever]".)

1
  • Just for clarity, I am considering "the state and functions" as a single set, unit, whatever. The state in this case is a collection of component parts. So I have changed Everything = [valueA, functionA, valueB, valueC, functionC] (for example) to A = [valueA, functionA], B = [valueB], C = [valueC, functionC] (not psudeo code, just a diagram). Commented Mar 23, 2023 at 19:19
1

segment

verb
to separate or divide into segments.

it's extra nice because its noun form connotes

segment noun one of the parts into which something naturally separates or is divided

(both from dictionary.com)

Segmented the state and functionality into domains A, B, C, and D.

2
  • Ooh, I really like this one! Must have missed it in my thesaurus search. Commented Mar 23, 2023 at 22:27
  • 1
    @DarrylNoakes I like it too, I think it works well here. Google Dictionary and Thesaurus didn't have its verb form nor suggest it as a synonym to any of its synonyms, which was strange, because it's quite popular. As a fellow programmer, the word I would use myself for your case is "group"
    – minseong
    Commented Mar 23, 2023 at 22:32
1

Coarse and fine partitions

It appears that you already had a categorisation/division/partition, but you decided that too many different things were lumped together: the partition was too coarse and you needed a finer partition.

In mathematics and more specifically in topology, this is exactly the vocabulary we use: we make a distinction between finer and coarser topologies. The finest topology is the discrete topology, that isolates all points; and the coarsest topology is the trivial topology, that lumps all points together.

1

Subdivide

May I suggest Subdivide?

Subdivide: to divide something into smaller parts. (per Cambridge Dictionary)

Usage:

Subdivided the state and functions into the domains A, B, C, and D.

2
  • 2
    As an interesting note, subdivide was the very first word I used, until I started looking into it. However, apart from maybe more definitely implying that there are resulting subdivisions, I don't see too much difference between it and divide. I'm still considering separate, but at this point will probably use group along with an explantory note. Commented Mar 24, 2023 at 23:00
  • I'd say the default meaning of 'subdivide' is as that given at Oxford Languages {via Google: << subdivide [verb] # divide (something that has already been divided or that is a separate unit). • the heading was subdivided into eight separate sections >> Also given as the default definition by M-W, Collins, Dictionary.com, Longman, Macmillan, AHD, R H K Websters. Commented Mar 25, 2023 at 12:48
0

I (a programmer) tend to use 'allocate' for such things though the word 'sort' is more correct in terms of meaning. In a programming context 'sort' tends to imply an ordering.

1
  • While I do agree that it tends to imply an ordering, I think the into clears it of any ambiguity. For example, I can sort my mail into the piles "family", "business", and "junk mail." Commented Mar 23, 2023 at 16:22
0

There are a lot of good choices. I think your original "separate" is ok. I like "organize", ""arrange", and "group" a bit better. I like "partition" even better for this particular use. Or for an option that hasn't already been offered, I like split about as well as "partition". M-W (transitive, 3b):

to divide into factions, parties, or groups

0

sub·cat·e·go·rize [ˌsəbˈkadəɡəˌrīz] VERB split into secondary or subordinate categories: "operations were subcategorized into cardiac and vascular procedures"

We can categorize vehicles into cars and trucks, and we can further subcategorize cars into sedans, coupes, and station wagons.

2
  • You should include the source of the definition for the word. Commented Mar 24, 2023 at 18:21
  • I have considered categorize and subcategorize. As I stated at the end of my question: while categorize does apply in some sense, it seems to be more about how something is considered than an actual act. But thanks anyway for trying! Commented Mar 24, 2023 at 18:25

Not the answer you're looking for? Browse other questions tagged or ask your own question.