SOFTWARE ENGINEERING PARADIGMS