Customizing form for product attributes and features?
I am not an expert as I am going through a learning curve with Drupal myself, however, I do have database experience and started using Ubercart myself.

As to your question on auto-created SKU, I think as a learner you are complicating things, unless you are looking into a huge and fast growing database for which you want to create auto SKU, which serves for Stock Keeping Unit.  There is a modul Commerce AutoSKU.

As a method to setting up your "research project" implementer 'Role', you can create a form (e.g. Project Form), allowing the enduser to Name (Title) the project, but ID to that project can be in incremental order assigned by the table (project_id, auto_increment).  You can allow access to that specific form to the persons implementing the research projects.

As to making use of Ubercart's default system and its capability to advanced features such as customizing methods, I find there is quite the flexibility as to adjusting your own custom forms and assigning fields with the 'Hook System'.  It is a steep learning curve, I found.

I have been following the following videos.  The presenter is quite fast, but I found his instructions helped me to understand my capability.  It is a youtube video series consisting of 10 videos (15-20 mins long each).

Creating an E-commerce Site Using Ubercart

Sorry that I cannot help you further, but I hope I am able to get you one step closer to your project.