ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ
АCM – Association for Computing Machinery API – Application Progpam Interface ER – Entity – Relationship IEC– International Electrotechnical Commission ISO – International System Organization IDL – Interface Definition Language ISO – International Standard Organization ОМ – объектная модель ООП– объектно-ориентированный подход ОМА –Object Management Architecture ООМ – объектно-ориентированная методология CОД – система обработки данных ОС – операционная система ORB – Object Request Broker ПС – программная система СММ – Capability Maturity Model СОМ – Component Object Model СORBA – Common Object Request Broker Architecture COP – Component-Oriented Programming CBSE – Component-Based Software Engineering СРР – структура разбивки работ в проекте CPM – Critical Path Method (метод критического пути) PERT – Program Evaluation and Review Technique (анализ за методом PERT) PMBOK – Project Management Body of Knowledge (ядро знаний в области управления проектами) SQA – Software Quality Assurance (гарантирование качества) V&V – Verification and Validation (верификация и валидация) ПИК – повторного использования компонент ПИ – программная инженерия ПО – программное обеспечение РП – распределенное приложение ЖЦ – жизненный цикл SWEBOK – SoftWare Engineering of Body Knowledge RMI – Remote Method Invocation
ВСТУПЛЕНИЕ Термину «программная инженерия» (Software engineering) уже более 30 лет. К моменту его появления компьютерные программы проникли во все cферы человеческой деятельности, а их разработка стала массовым занятием. Практически нет ни одной х сферы человеческой деятельности (медицина, экономика, коммерция, промышленность и т.д.), где бы не применялись компьютерные программы.
Примерно каждые 10 лет происходит смена языков программирования и ОС. Это приводит к необходимости изменять ранее изготовленные и функционирующие программы применительно к новым языкам и ОС. Например, преобразованием Фортран и Кобол программ в современные языки (С, JAVA и др.) занимаются огромные коллективы программистов из третьих стран и СНГ.
Эффективность разработчиков в зависимости от квалификации колеблется в отношении 20:200, отсюда требуется повышать уровень их знаний. На сегодня ядро стабильных знаний по программной инженерии составляет 75% от тех знаний, что используются в практической программисткой деятельности.
Эти условия поставили перед теоретиками и умудренными опытом программистами разработку новых инженерных методов создания и управления процессами проектирования, а перед прикладниками создание стандартов, регламентируюших эти процессы.
Знания разработчиков ПО отличаются большим разнообразием, являются не согласованными и разнородными, ориентированными на разные предметные области, поэтому мировая компьютерная общественность пришла к необходимости систематизировать знания в области программной инженерии, создав ядро знаний SWEBOK (Software Engineering Body Knowledge).
Программная инженрия (Software Engineering)является отраслью компьютерной науки, изучает вопросы построения программ для компьютеров, отражает закономерности развития в ней знаний, обобщает накопленный опыт программирования в виде комплексов общих знаний и правил регламентации инженерной деятельности разработчиков ПО.
Как инженерная дисциплина охватывает все аспекты создания ПО, начиная от разработки требований до создания, сопровождения и снятия с эксплуатации ПО, а также оценку трудозатрат, производительности и качества.
Инженерия изменений программных продуктов выполняется методами реинжинерии, реверсной инженерии (перепрограммирование) и рефакторинга программных компонентов и интерфейсов. Применение готовых продуктов (модулей, программ, систем и т.п.) в новых разработках привело к их инженерии, при которой компоненты становятся коммерческим продуктом, приносят прибыль разработчикам и сокращают затраты при создании новых систем за счет их накопления в репозитариях или электронных библиотеках.
Программостроение больших программных проектов становится инженерным по своей сути. В нем, кроме программистов, участвуют:
– менеджеры, которые планируют и управляют проектом, отслеживают сроки и затраты; – инженеры службы хранения готовых компонентов; – технологи, которые определяют инженерные методы и стандарты, регламентирующие и регулирующие процесс построения программных проектов; – тестировщики, которые проверяют правильность выполнения процессов, сбор данных при тестировании и оценку качества компонентов и системы в целом.
Инструменты поддержки разработки ПО совершили гигантский скачок в своем развитии и теперь обычной практикой стало создание ПС с использованием современных визуальных и диаграммных средств UML.
Таким образом, возникновение программной инженерии определено следующими факторами: – появление разнообразных сложных методов анализа и моделирования ПО; – большое количество ошибок в ПО; – необходимость в эффективной организации работы коллективов разработчиков ПО; – повторное использование готовых программных компонентов и высокотехнологических средств разработки и управления ПО; – реинженерия и рефакторинга отдельных компонентов систем, их адаптация к постоянно изменяющимся условиям и средам функционирования.
Материал данного учебного курса по программной инженерии разработан с учетом методов и средств ядра знаний SWEBOK. Он предназначен студентам, изучающим компьютерное дело, менеджерам коллективов программных проектов, желающих повысить уровень своей квалификации по планированию и управлению, а также профессионалам различных предметных областей.
Данный учебник состоит из тем по методам и средствам программной инженерии, которые необходимы для овладения профессией по инженерному созданию компьютерных систем. В конце каждой темы приводятся и контрольные вопросы и задания, а также используемая литература.
Тема 1. Введение в программную инженерию и процессы жизненного цикла.Дано определение программной инженерии, ее место в инженерной деятельности специалистов при создании компьютерных систем и общее описание десяти областей знаний профессионального ядра знаний SWEBOK.
Тема 2. Модели жизненного цикла для разработки программных систем.Описываются основные модели ЖЦ, которые используются в практике проектирования программных систем. Дана характеристика фундаментальных моделей ЖЦ (водопадной, спиральной, инкрементной, эволюционной) и стандартной модели. Тема 3. Методы определения требований в программной инженерии. Приведены методы и инженерия требований к системе. Рассмотрен процесс сбора, накопления и спецификации требований. Дана классификация требований и характеристика функциональных и нефункциональных требований.
Тема 4. Методы анализа и построения моделей ПрО. Приведены методы анализа предметной области и построения моделей. Рассмотрены объектно–ориентированные и стандартизованные, традиционные методы проектирования архитектуры системы.
Тема 5. Методы проектирования программных систем. Представлено описание базовых основ методов систематического (структурного, компонентного, аспектно–ориентированного и др.) и теоретического (алгебраического, композиционного и алгеброалгоритмичекого) программирования для ознакомления студентов с теорией и практикой проектирования ПС.
Тема 6. Инженерия приложений и инженерия предметной области. Излагаются современные тенденции и направления развития инженерии приложений в плане производства одиночных ПС из ПИК и инженерии ПрО с многоразовым применением используемых решений для семейства ПС.
Тема 7. Методы верификации и тестирования программ и систем. Посвящена описанию методов проверки правильности программ: формальным методам доказательства, основанных на аксиомах и утверждениях, верификации и тестирования ПС на этапах ЖЦ.
Тема 8. Методы интеграции, преобразования и изменения компонентов и данных. Рассмотрены основы интеграции и преобразования программ и данных, а также методы изменения (реинженерия, реверсная инженерия и рефакторинга) компонентов и систем.
Тема 9. Модели качества и надежности в программной инженерии. Посвящена представлению моделей качества ПС, метрикам и методам достижения и измерения качества ПС. Рассмотрен основной показатель качества – надежность, дано описание математических моделей надежности и способов их применения на практике.
Тема 10. Методы управления проектом, риском и конфигурацией. Проведен анализ и дано описание инженерии программирования, принципов и методов планирования и управления программным проектом, рисками и формированием версий ПС.
Тема 11. Средства и инструменты программной инженерии. Дан обзор современных средств программирования и характеристика широко используемых CASE-средств (Project Management, Rational Rose, MSF, RUP, CORBA, DCOM и др.), при объектно–ориентированном проектировании ПС.
Приложение 1. Набор основных терминов, используемых в программной инженерии. Приложение 2. Характеристика стандартов разработки автоматизированных систем. Приложение 3. Жизненный цикл компонентной разработки ПС. Приложение 4. Кодекс этики в программной инженерии. Приложение 5. Стандарты в программной инженерии. Тема 1 Читайте также: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ![]() ©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (492)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |