Всеки стадий от системното разработване - планиране, необходими анализ и спецификация, системно проектиране, изпълнение, оценяване и техническа експлоатация – може да бъде поддържан и подобряван с помоща на запас от софтуерни средства.
Софтуерните дейности за общи цели, които могат да се използват във всички видове разработване включват редактиране, компилиране, стартиране на програма, езици за програмиране, текстови редактори и др. Ние ще разгледаме по-подробно дейностите проектирани специално за поддържане на ЧМИ (човеко-машинен интерфейс).
Ще се спрем върху взаимодействащи си системи за изпълнение, които са комплексни по две причини :
Този процес може да бъде подпомогнат по два начина :
Софтуерните средства не само правят софтуер, но и управляват процеси, анализират програми и ги тестват. Всяка програма, която проектира, прави, поддържа, управлявя или тества софтуерен продукт може да се нарече софтуерно средство. Грубата работна дефиниция е, че софтуерните средства са програми, които подпомагат дизайнерите и програмистите в някоя точка от разработването на софтуерния продукт.
В началния дизайн, когато идеите започват да добиват форма, по-полезни са средствата, които дават повече свобода за избор (например текстообработващите програми). Докато при изясняване на системните изисквания е необходим по-специфичен контрол.
ЧМИ и ООР споделят много обща история. При конвенционалното разработване се набляга на процедура. Процедурните аспекти на приложението са смесени с обработката на данните. В ООР ударението пада върху дефиниране на свойствата и поведението на обектите .
Обектите групират данните и операциите в свързана област. Смята се, че ООР е по-естествено, доколкото обектите представени в софтуера могат да се свържат директно с обекти от реалния свят. ООР се базира на 4 основни понятия :