On 25/07/2019 01:17, Joel Sherrill wrote:


On Wed, Jul 24, 2019 at 1:39 AM Sebastian Huber <sebastian.hu...@embedded-brains.de <mailto:sebastian.hu...@embedded-brains.de>> wrote:

    Hello,

    I work currently on a requirements engineering section for RTEMS in the
    RTEMS Software Engineering manual:

    https://docs.rtems.org/branches/master/eng/index.html

    One topic is the Change Control Board (CCB). The Doorstop maintainer
    was
    not so fond of my idea to add support for digital signatures:

    https://github.com/jacebrowning/doorstop/issues/375

    So, here is a new proposal without signatures. I think this makes the
    process a bit easier.

    Change Control Board
    --------------------

    Working with requirements usually involves a Change Control Board
    (:term:`CCB`).  The CCB of the RTEMS project is the
    `RTEMS developer mailing list
    <https://lists.rtems.org/mailman/listinfo/devel>`_.

    There are the following actors involved:

    * *RTEMS users*: Everyone using the RTEMS real-time operating system to
    design,
        develop and build an application on top of it.

    * *RTEMS developers*: The persons developing and maintaining RTEMS.
    They write
        patches to add or modify code, requirements, tests and
    documentation.

    * *RTEMS maintainers*: They are listed in the
        `MAINTAINERS <https://git.rtems.org/rtems/tree/MAINTAINERS>`_ file
    and have
        write access to the project repositories.

    .. TODO: Make a reference to the "normal patch review process".

    Adding and changing requirements follows the normal patch review
    process.


The normal process should be defined and referenced.

Yes, I propose to add it to a "Contributing" section in the user manual. Is this all right for you, or do you prefer the RTEMS Software Engineering manual?


    Reviews and comments may be submitted by anyone, but a maintainer
    review is
    required to approve *significant* changes.  In addition for significant
    changes, there should be at least one reviewer with a sufficient
    independence
    from the author which proposes a new requirement or a change of an
    existing
    requirement.  Working in another company on different projects is
    sufficiently
independent.

Different companies and same funding source isn't independent.

The "another company on different projects" was my attempt to rule out people fed by the same money pot. Do yo have a suggestion to formulate this more clearly?


    RTEMS maintainers do not know all the details, so they
    trust in
    general people with experience on a certain platform.  Sometimes no
    review
    comments may appear in a reasonable time frame, then an implicit
    agreement to
    the proposed changes is assumed.  Patches can be sent at anytime, so
    controlling changes in RTEMS requires a permanent involvement on the
    RTEMS
    developer mailing list.


There is a problem with independence and reasonable time frame. You are
relying on volunteers to review requirements (or anything else) and at their time availability mercy. I don't know how you ensure you have proper second reviewers
from the volunteer community in a reasonable time frame. Lack of commentary
could just mean personal issues or travel. For example, I spent 3 weeks of June traveling and/or teaching and was sick enough for two rounds of antibiotics. I
care about reviewing but I didn't review much last month. And even when I do
review, there is a practical limit.

Some of this going to have to be spoon fed to the community to have a chance
to get it reviewed by volunteer. Better would be paid time from alternative core developers to speed this up.But ultimately some core reviewers will be volunteer
and slow.

A normal timeout isn't appropriate for requirements. They really deserve positive
acknowledge. A true CCB waits for a majority from a quorum.

When you get no response from maintainers and you know they are on holidays or otherwise not available, then a reasonable timeout is not within this time frame.

I think we should not put all "requirements" into one bucket. There are high level ones and low level ones, e.g. "If the id parameter is NULL, then the X directive shall return the RTEMS_Y status.". Initially, we do a reverse engineering of the RTEMS code base to get the requirements. So, the code base will probably stay as is. The work I produce in the next year is also reviewed by ESA staff. We have a bit of funding to spend on review work by community members (for example Gedare if he is interested).

A technical part of the solution is be something like Phabricator which tracks getting multiple approvals and lets you do online reviews. A tool like this also helps with the records for code reviews and approval beyond the final git log.
Thinking about alternatives to mailing list based patch review process is a good idea. I would use the same approach for code and requirements. I am not sure if it is now the right time to introduce a new process. I would prefer to first get started with the requirements using the established work flow we used in the last couple of years and in parallel think about how the patch work flow can be improved in general with modern tools.

    For a qualification of RTEMS according to certain standards, the
    requirements
may be approved by an RTEMS user.

I think you mean tailoring the requirements and code.

I mean that someone reviews all the requirements and then writes a report which states if the are fine to use for the project or not. Ideally, the users should have no need to tailor requirements and code of RTEMS.


    The approval by RTEMS users is not the
    concern of the RTEMS project, however, the RTEMS project should
    enable RTEMS
    users to manage the approval of requirements easily.  This information
    may be
    also used by a independent authority which comes into play with an
    Independent
    Software Verification and Validation (:term:`ISVV`).  It could be
    used to
    select a subset of requirements, e.g. look only at the ones approved
    by a
certain user.

Careful with approved. Do you mean tailoring again?

    RTEMS users should be able to reference the determinative
    content of requirements, test procedures, test cases and justification
    reports
    in their own documentation.  Changes in the determinative content should
    invalidate all references to previous versions.


Determinative doesn't appear to be a word.

It passed my spell checker ;-)

What I wanted to say is that the file in which the requirement is stored contains multiple attributes (Doorstop attributes). Some of these attributes are only informative and if this content changes, the references are not invalidated. Other attributes contain the binding content, e.g. the requirement text. If this content changes, then the references should be invalidated. I need names for these two sets of requirements. What about "informative" and "normative"? The problem with "normative" is that this is an overloaded term. So, I started with a German word, picked up a fancy sounding term and ended up with "determinative".

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to