ПредишенСледващото

Анотация: Въоръжени основни понятия от клас, обект, настройка на параметрите, сега можете да създадете софтуерни модули, които реализират възможно параметризираните видове структури от данни. Честито! Важна стъпка в битката за най-добрия софтуер за архитектура. Но методите счита, че не е достатъчно да се приложи цялостен качество зрение, въведени в началото на книгата. качествени фактори, които са били концентрирани вниманието ни, - повторна употреба, скалируемост, съвместимост - не трябва да бъдат постигнати с цената на надеждност (точност и стабилност). Въпреки че концепцията за надеждност е разгледана в хода на дискусията, ще постигнем повече.

Основни механизми за безопасност

Необходимостта да се обръща повече внимание на семантичните свойства на класа личи особено когато си спомним, че в класа - е изпълнението на ADT. Смятан досега класовете се състоят от атрибути и програми, които реализират функциите на спецификацията на ADT. Но това не е просто ADT списък операции. Спомням си за ролята на семантични свойства, изразено от аксиоми и предпоставките. Те са основата на изясняване характера на случаите от този тип. В класа ние - временно - загубил семантичен аспект на концепцията за ADT. Необходимо е да се върнем към нашия софтуер е не само гъвкави и многократна употреба, но и коректен и стабилен.

Одобрение и свързаните с него понятия, да изяснят в тази глава, отчасти дава отговори. Въпреки че не е пълен механизми доказателство представени по-долу са снабдени с основните инструменти за програмист да формулира и утвърждава аргументи. Основната концепция е дизайн от договора (дизайн от договора) - създаване на връзка между класа и нейните клиенти като официално споразумение ясно определя правата и задълженията на страните. Само чрез точното определяне на изискванията за всеки модул и отговорност може да се надявате да постигнете значителна степен на доверие в големи софтуерни системи.

При преглед на концепциите за първи път сме изправени пред основните предизвикателства пред софтуерното инженерство - как да се справя по време на изпълнение грешки, които се случват в нарушение на договора. Тази тема - Обработка на изключенията е посветена на следващата лекция. Разпределението на ролите между двете глави на приблизително отразява разликата между двата компонента на надеждност: стабилност и коректност. Коректност - софтуера е възможността да изпълнява своите задачи в съответствие със спецификациите, стабилност - способността да се реагира на ситуации, които излизат извън рамките на спецификациите. Одобрение (тази лекция), като правило, се покрива правилно. и изключване (следващата лекция) - стабилност.

Някои важно разширяване на основните конструктивни идеи на договора трябва да се очаква въвеждането на наследяване, полиморфизъм и динамично свързване, което ще ни позволи да се премине от договор за доставка на поръчки за подизпълнение.

Техниките, въведени в предишните Лекциите бяха насочени към създаването на надежден софтуер. Ние даваме кратък преглед - това би било безполезно да се помисли за по-напреднали концепции, за да донесе на основните механизми за надеждност. Първият и определяне на собствеността на обекта технология е почти наложени от структурата на софтуерна система - прост, модулна, разширяема, - толкова по-лесно да се гарантира надеждност. отколкото в случая на "криви" структури, които произтичат от прилагането на методи за ранно развитие. По-специално, усилията да се ограничи между модул взаимодействие, това намаляване до минимум, са били в центъра на дебата за модулност. Резултатът е общо рискове забрана. намаляване на надеждност. - отхвърляне на механизма за глобални променливи е модули ограничено взаимодействие, наследствените отношения и гнездене. Общото наблюдение: най-големият враг на надеждност (и качеството на софтуера като цяло) - това е сложността. Създаване на нашите структури толкова просто, колкото е възможно, ние се постигне необходимото, но не достатъчно условие, за да се гарантира надеждност. Предишният дискусията е вярно само отправна точка при последващото системно усилие.

Обърнете внимание, необходимо, но и достатъчно, продължи акцент върху създаването на елегантни и четлив софтуер. Софтуерът не само текстове са написани, те се четат и презаписват много пъти. Яснота и простота на нотация езикови конструкции - в основата на всеки сложен подход за надеждност.

Други необходими оръжия - автоматично управление на паметта. особено събиране на боклука. В лекция по тази тема по-подробно обясни защо всички системи, работещи с динамични структури от данни. толкова опасно да се разчита на управлението на този процес ръчно. Събирането на боклука не е лукс - това е ключов компонент на обектно-ориентираното околната среда, осигуряване на надеждност.

Същото може да се каже за друг, са комбинирани с механизъм параметризация - статичен писане. Без строги правила за статично типизиране ще има надежда за задоволяване на много грешки, които се случват по време на изпълнение.

Всички тези механизми да осигури необходимата основа за по-пълна представа за това, което трябва да се направи, за да се гарантира стабилност и коректност на софтуер.

От коректността на софтуера

Ние си зададем въпроса: Какво означава това - програмен елемент е правилно? Системи за наблюдение и разсъждение, отговора на този въпрос може да изглежда тривиално. Но, тъй като един добре известен учен, всички сме научни резултати - те започват с обичайните бележки и продължава през проста логика, но това трябва да се прави постоянно и настойчиво.

Да предположим, че някой дойде при вас с програма от 300 000 линии на C и попита дали това е правилно? Ако сте консултант, а след това да се потърси по-висока такса и да отговори - ". Не" Вероятно ще бъде прав.

За да бъде в състояние да даде разумен отговор на този въпрос, една програма не е достатъчно, имате нужда от повече и нейната спецификация, която описва точно това, което програмата е трябвало да се направи. оператор

само по себе си не е нито правилно, нито неправилно. Тези понятия имат смисъл само по отношение на очаквания ефект от заданието. Така например, задачата е правилно по отношение на декларацията: "х променливите и У имат различни стойности." Но не е гаранция за неговата валидност, във връзка с изявление: "променливата х е отрицателен", в резултат на прехвърлянето зависи от до г. който може да бъде положителен.

Тези примери илюстрират имота, който служи като отправна точка в дискусията на коректността на проблема: софтуерната система или нейните елементи сами по себе си нито правилни, нито погрешни. Коректност предполага само по отношение на някои спецификации. Строго погледнато, ние няма да се обсъди въпроса за коректността на елементите на програмата, но само тяхната последователност (последователно) с дадена спецификация. В разговорите ни, ние ще продължим да използваме добре разбира понятието "коригира", но винаги в същото време не забравяйте, че този термин не се отнася до елемент на програмата, че има смисъл само за няколко - ". Програмен елемент и неговата спецификация"

Свойства на коректност

Коректността - относителен термин.

В тази глава ще научите как да се изразя спецификации чрез твърдения (твърдения). която ще ви помогне да се оцени точността на разработен софтуер. Но давай напред и се обърни на проблема - развитието на спецификацията е първата важна стъпка към гарантиране, че софтуерът наистина отговаря на спецификациите. Значителни ползи могат да бъдат получени, когато спецификациите са написани едновременно с написването на програмата и по-добре да я писане. Сред последиците от този подход може да се отбележи.

  • Разработка на софтуер правилно от самото начало, проектиран така, че да бъдат валидни. Един от основателите на структуриран програмен Harlan Г. Милс през седемдесетте години написах една статия с показателното заглавие "Как да пишем правилни програми, както и да знаете това." Думата "знам" в този контекст означава да предоставят програма в момента на писане, аргументите, които характеризират вярна.
  • А много по-добро разбиране на проблемите и постигането на неговите решения.
  • Опростете задачата за създаване на софтуер, документация. Както ще бъде показано по-късно, одобрението ще играе важна роля в обектно-ориентиран подход към документацията.
  • Предоставяне на рамка за системно тестване и отстраняване на грешки.

Останалата част от лекцията е посветена на изследването на тези въпроси. Едно предупреждение: езиците за програмиране C, C ++ и други са се твърди изявления оператор. динамично проверка на валидността на одобрението, дадено по време на изпълнение на програмата и спира изчисляването. ако твърдението е погрешно. Тази концепция, въпреки че тя е свързана с предмета на обсъждане, но това е само една малка част от използването на твърдения в обектно-ориентиран метод на. Ето защо, ако сте като много фирми са запознати с този оператор, не се обобщи знанията си в цялата картина, почти всички от концепциите на тази глава може да бъде нов.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!