Главная » Просмотр файлов » Software Engineering Body of Knowledge (v3) (2014)

Software Engineering Body of Knowledge (v3) (2014) (811503), страница 19

Файл №811503 Software Engineering Body of Knowledge (v3) (2014) (Software Engineering Body of Knowledge (v3) (2014).pdf) 19 страницаSoftware Engineering Body of Knowledge (v3) (2014) (811503) страница 192020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 19)

A monitor contains the declaration of shared variables and procedures or functions that operate on those variables. The monitor construct ensures that onlyone process at a time is active within the monitor.A mutex (mutual exclusion) is a synchronization primitive that grants exclusive access to ashared resource by only one process or thread ata time.4.11. Middleware[3*] [6*]Middleware is a broad classification for software that provides services above the operatingsystem layer yet below the application programlayer. Middleware can provide runtime containers for software components to provide messagepassing, persistence, and a transparent locationacross a network.

Middleware can be viewed asa connector between the components that use themiddleware. Modern message-oriented middleware usually provides an Enterprise Service Bus(ESB), which supports service-oriented interaction and communication between multiple software applications.Software Construction  3-114.12. Construction Methods for DistributedSoftware[7*]A distributed system is a collection of physicallyseparate, possibly heterogeneous computer systems that are networked to provide the users withaccess to the various resources that the systemmaintains.

Construction of distributed software isdistinguished from traditional software construction by issues such as parallelism, communication, and fault tolerance.Distributed programming typically falls into oneof several basic architectural categories: clientserver, 3-tier architecture, n-tier architecture, distributed objects, loose coupling, or tight coupling(see section 14.3 of the Computing FoundationsKA and section 3.2 of the Software Design KA).4.13. Constructing Heterogeneous Systems[6*]Heterogeneous systems consist of a variety ofspecialized computational units of different types,such as Digital Signal Processors (DSPs), microcontrollers, and peripheral processors. Thesecomputational units are independently controlledand communicate with one another.

Embeddedsystems are typically heterogeneous systems.The design of heterogeneous systems mayrequire the combination of several specificationlanguages in order to design different parts ofthe system—in other words, hardware/softwarecodesign. The key issues include multilanguagevalidation, cosimulation, and interfacing.During the hardware/software codesign, software development and virtual hardware development proceed concurrently through stepwisedecomposition.

The hardware part is usuallysimulated in field programmable gate arrays(FPGAs) or application-specific integrated circuits (ASICs). The software part is translated intoa low-level programming language.4.14. Performance Analysis and Tuning[1*]Code efficiency—determined by architecture,detailed design decisions, and data-structure andalgorithm selection—influences an executionspeed and size. Performance analysis is the investigation of a program’s behavior using information gathered as the program executes, with thegoal of identifying possible hot spots in the program to be improved.Code tuning, which improves performance atthe code level, is the practice of modifying correctcode in ways that make it run more efficiently.Code tuning usually involves only small-scalechanges that affect a single class, a single routine,or, more commonly, a few lines of code.

A richset of code tuning techniques is available, including those for tuning logic expressions, loops, datatransformations, expressions, and routines. Usinga low-level language is another common technique for improving some hot spots in a program.4.15. Platform Standards[6*] [7*]Platform standards enable programmers todevelop portable applications that can be executed in compatible environments withoutchanges. Platform standards usually involve aset of standard services and APIs that compatible platform implementations must implement.Typical examples of platform standards are Java2 Platform Enterprise Edition (J2EE) and thePOSIX standard for operating systems (PortableOperating System Interface), which representsa set of standards implemented primarily forUNIX-based operating systems.4.16. Test-First Programming[1*]Test-first programming (also known as TestDriven Development—TDD) is a popular development style in which test cases are written priorto writing any code.

Test-first programming canusually detect defects earlier and correct themmore easily than traditional programming styles.Furthermore, writing test cases first forces programmers to think about requirements and designbefore coding, thus exposing requirements anddesign problems sooner.3-12  SWEBOK® Guide V3.05. Software Construction Tools5.1. Development Environments5.3. Unit Testing Tools[1*]A development environment, or integrated development environment (IDE), provides comprehensive facilities to programmers for softwareconstruction by integrating a set of developmenttools. The choices of development environmentscan affect the efficiency and quality of softwareconstruction.In additional to basic code editing functions,modern IDEs often offer other features like compilation and error detection from within the editor, integration with source code control, build/test/debugging tools, compressed or outlineviews of programs, automated code transforms,and support for refactoring.5.2. GUI Builders[1*]A GUI (Graphical User Interface) builder is asoftware development tool that enables the developer to create and maintain GUIs in a WYSIWYG (what you see is what you get) mode.

AGUI builder usually includes a visual editorfor the developer to design forms and windowsand manage the layout of the widgets by dragging, dropping, and parameter setting. Some GUIbuilders can automatically generate the sourcecode corresponding to the visual GUI design.Because current GUI applications usually follow the event-driven style (in which the flow ofthe program is determined by events and eventhandling), GUI builder tools usually providecode generation assistants, which automate themost repetitive tasks required for event handling.The supporting code connects widgets with theoutgoing and incoming events that trigger thefunctions providing the application logic.Some modern IDEs provide integrated GUIbuilders or GUI builder plug-ins.

There are alsomany standalone GUI builders.[1*] [2*]Unit testing verifies the functioning of softwaremodules in isolation from other software elementsthat are separately testable (for example, classes,routines, components). Unit testing is often automated. Developers can use unit testing toolsand frameworks to extend and create automatedtesting environment. With unit testing tools andframeworks, the developer can code criteria intothe test to verify the unit’s correctness under various data sets. Each individual test is implementedas an object, and a test runner runs all of the tests.During the test execution, those failed test caseswill be automatically flagged and reported.5.4. Profiling, Performance Analysis, andSlicing Tools[1*]Performance analysis tools are usually used tosupport code tuning.

The most common performance analysis tools are profiling tools. Anexecution profiling tool monitors the code whileit runs and records how many times each statement is executed or how much time the programspends on each statement or execution path. Profiling the code while it is running gives insightinto how the program works, where the hot spotsare, and where the developers should focus thecode tuning efforts.Program slicing involves computation of theset of program statements (i.e., the program slice)that may affect the values of specified variablesat some point of interest, which is referred to asa slicing criterion. Program slicing can be usedfor locating the source of errors, program understanding, and optimization analysis.

Programslicing tools compute program slices for variousprogramming languages using static or dynamicanalysis methods.Software Construction  3-131. SoftwareConstructionFundamentalsc2, c3,c7-c9,1.1. Minimizingc24, c27,Complexityc28, c31,c32, c34c3–c5,1.2. Anticipatingc24, c31,Changec32, c34c8,1.3. Constructing forc20–Verificationc23, c31,c341.4. Reuse1.5. Standards inc4Construction2. ManagingConstruction2.1. Construction inc2, c3,Life Cycle Modelsc27, c29c3, c4,2.2. Constructionc21,Planningc27–c292.3. Constructionc25, c28Measurement3. PracticalConsiderations3.1. Constructionc3, c5,Designc243.2. Constructionc4Languagesc5–c19,3.3. Codingc25–c26c16Silberschatz et al. 2008[7*]Null and Lobur 2006[6*]Mellor and Balcer 2002[5*]Gamma et al. 1994[4*]Clements et al.

Характеристики

Тип файла
PDF-файл
Размер
6,58 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6274
Авторов
на СтудИзбе
316
Средний доход
с одного платного файла
Обучение Подробнее