Io-13-wyk-Slajd11
Programy typu P
Kategorią programów, która w większym stopniu nawiązuje do rzeczywistości rozwoju i ewolucji oprogramowania, są programy typu P. Model budowany na podstawie obrazu środowiska (świata rzeczywistego) naśladuje pewne cechy tego środowiska, ale z natury jest niekompletny. Niepełność modelu jednak jest pożądaną cechą, ponieważ pozwala pomijać nieistotne elementy środowiska, a co za tym idzie – stosować to podejście do większych i bardziej złożonych zadań niż w przypadku programów typu S. Na podstawie modelu powstaje specyfikacja (również niepełna, z możliwymi sprzecznościami), a następnie program. Jeżeli w środowisku zachodzi zmiana, która wymaga odzwierciedlenia w programie, wówczas program podlega modyfikacji.
W przypadku programów należących do tej kategorii środowisko posiada wpływ na ewolucję programu, a sam program jest z natury ułomnym narzędziem pozwalającym w przybliżeniu rozwiązywać postawiony problem. Program jest uważany za poprawny, jeżeli produkuje akceptowalne (z subiektywnego punktu widzenia użytkownika) rozwiązania. Zachowanie programu powodujące stworzenie nieakceptowalnego (z powodu błędu lub zbyt ubogiej funkcjonalności) rozwiązania stanowi podstawę ewolucji takiego programu.