| Deutsch English Français Italiano |
|
<1028kei$1323e$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: David Brown <david.brown@hesbynett.no> Newsgroups: sci.electronics.design Subject: Re: "RESET" Date: Tue, 10 Jun 2025 08:47:46 +0200 Organization: A noiseless patient Spider Lines: 48 Message-ID: <1028kei$1323e$1@dont-email.me> References: <100thgs$v8cm$1@dont-email.me> <101ckan$i2b3$3@dont-email.me> <elqj3k17artqe5b9inne48ork5gurdp1u7@4ax.com> <101p8sd$phe5$1@dont-email.me> <nnd$646cdb8e$40d7b490@e501a0a625f47e62> <101uojq$298sh$1@dont-email.me> <brsbhlxu4f.ln2@Telcontar.valinor> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 10 Jun 2025 08:47:48 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c45cd0727a73b86eb70e02f35e9da787"; logging-data="1149038"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+llfyp9FjwqmEp6XpXPxv0txvxTOKj/5s=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Cancel-Lock: sha1:xYuqYQh5gWK+nIshmUysuiCWIMA= Content-Language: en-GB In-Reply-To: <brsbhlxu4f.ln2@Telcontar.valinor> On 06/06/2025 21:40, Carlos E.R. wrote: > On 2025-06-06 14:57, David Brown wrote: >> On 06/06/2025 13:45, albert@spenarnc.xs4all.nl wrote: >>> In article <101p8sd$phe5$1@dont-email.me>, >>> David Brown <david.brown@hesbynett.no> wrote: >>> <SNIP> >>>> I recall something of the opposite - a long time ago, we had to add a >>>> variety of "safety" features to a product to fulfil a customer's safety >>>> / reliability checklist, without regard to how realistic the failure >>>> scenarios were and without spending time and money on analysis. The >>>> result was, IMHO, lower reliability because it was more likely for the >>>> extra monitoring and checking hardware and software to fail than for >>>> the >>>> original functional stuff to fail. Many of these extra checks were in >>>> themselves impossible to test. >>> >>> I worked on the Dutch railway systems safety and control software. >>> Once they added external control checking. >>> I've seen the code. In places there was an 8 level indentation >>> caused by if's switches and loops. >>> >> >> I've occasionally seen that kind of thing from developers who come >> from the PLC world, having trained as automation engineers. In that >> world, it's not uncommon to have long changes of conditionals, which >> used to be implemented as chains of relays. > > I think it should be a chain of ANDs/ORs, not IFs. > There are many ways to structure such a code requirement. And I agree that a chain of "ands" will often be better than a chain of "ifs". (Sometimes you want a chain of "ors" - but never a chain mixing "and" and "or".) Usually, however, it is best if the chains can be broken up into smaller logical parts - local flag variables or small functions - to avoid long chains of anything. > >> If there are a dozen safety checks, each with an "OK" output, then you >> have them all in a line. If this is later translated into C code, if >> might then be translated into a series of indented if statements. You >> get similarly bad code design from people who are not programmers or >> trained in programming (at least, not that type of programming), but >> have somehow ended up with the task. > > ... >