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

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

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

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

(See also the SoftwareQuality KA.)5.1. Quality Attributes[4*, c4]Various attributes contribute to the quality ofa software design, including various “-ilities”(maintainability, portability, testability, usability)2-8  SWEBOK® Guide V3.0and “-nesses” (correctness, robustness). There isan interesting distinction between quality attributes discernible at runtime (for example, performance, security, availability, functionality,usability), those not discernible at runtime (forexample, modifiability, portability, reusability,testability), and those related to the architecture’sintrinsic qualities (for example, conceptual integrity, correctness, completeness). (See also theSoftware Quality KA.)5.2. Quality Analysis and Evaluation Techniques[4*, c4] [5*, c24]Various tools and techniques can help in analyzing and evaluating software design quality.•  Software design reviews: informal and formalized techniques to determine the qualityof design artifacts (for example, architecturereviews, design reviews, and inspections;scenario-based techniques; requirementstracing).

Software design reviews can alsoevaluate security. Aids for installation, operation, and usage (for example, manuals andhelp files) can be reviewed.•  Static analysis: formal or semiformal static(nonexecutable) analysis that can be usedto evaluate a design (for example, faulttree analysis or automated cross-checking).Design vulnerability analysis (for example,static analysis for security weaknesses) canbe performed if security is a concern. Formaldesign analysis uses mathematical modelsthat allow designers to predicate the behaviorand validate the performance of the softwareinstead of having to rely entirely on testing.Formal design analysis can be used to detectresidual specification and design errors (perhaps caused by imprecision, ambiguity, andsometimes other kinds of mistakes).

(Seealso the Software Engineering Models andMethods KA.)•  Simulation and prototyping: dynamic techniques to evaluate a design (for example,performance simulation or feasibilityprototypes).5.3. Measures[4*, c4] [5*, c24]Measures can be used to assess or to quantitatively estimate various aspects of a softwaredesign; for example, size, structure, or quality.Most measures that have been proposed dependon the approach used for producing the design.These measures are classified in two broadcategories:•  Function-based (structured) design measures: measures obtained by analyzing functional decomposition; generally representedusing a structure chart (sometimes called ahierarchical diagram) on which various measures can be computed.•  Object-oriented design measures: the designstructure is typically represented as a classdiagram, on which various measures can becomputed.

Measures on the properties of theinternal content of each class can also becomputed.6. Software Design NotationsMany notations exist to represent software designartifacts. Some are used to describe the structuralorganization of a design, others to represent software behavior. Certain notations are used mostlyduring architectural design and others mainlyduring detailed design, although some notations can be used for both purposes. In addition,some notations are used mostly in the context ofspecific design methods (see topic 7, SoftwareDesign Strategies and Methods).

Please note thatsoftware design is often accomplished using multiple notations. Here, they are categorized intonotations for describing the structural (static)view vs. the behavioral (dynamic) view.6.1. Structural Descriptions (Static View)[4*, c7] [5*, c6, c7] [6*, c4, c5, c6, c7][12*, c7] [14*, c7]The following notations, mostly but not alwaysgraphical, describe and represent the structuralaspects of a software design—that is, they areSoftware Design  2-9used to describe the major components and howthey are interconnected (static view):•  Architecture description languages (ADLs):textual, often formal, languages used todescribe software architecture in terms ofcomponents and connectors.•  Class and object diagrams: used to represent a set of classes (and objects) and theirinterrelationships.•  Component diagrams: used to represent aset of components (“physical and replaceable part[s] of a system that [conform] toand [provide] the realization of a set of interfaces” [18]) and their interrelationships.•  Class responsibility collaborator cards(CRCs): used to denote the names of components (class), their responsibilities, and theircollaborating components’ names.•  Deployment diagrams: used to represent aset of (physical) nodes and their interrelationships, and, thus, to model the physicalaspects of software.•  Entity-relationship diagrams (ERDs): usedto represent conceptual models of data storedin information repositories.•  Interface description languages (IDLs):programming-like languages used to definethe interfaces (names and types of exportedoperations) of software components.•  Structure charts: used to describe the callingstructure of programs (which modules call,and are called by, which other modules).6.2. Behavioral Descriptions (Dynamic View)[4*, c7, c13] [5*, c6, c7] [6*, c4, c5, c6, c7][14*, c8]The following notations and languages, somegraphical and some textual, are used to describethe dynamic behavior of software systems andcomponents.

Many of these notations are useful mostly, but not exclusively, during detaileddesign. Moreover, behavioral descriptions caninclude a rationale for design decision such ashow a design will meet security requirements.•  Activity diagrams: used to show control flowfrom activity to activity. Can be used to represent concurrent activities.•  Communication diagrams: used to showthe interactions that occur among a groupof objects; emphasis is on the objects, theirlinks, and the messages they exchange onthose links.•  Data flow diagrams (DFDs): used to showdata flow among elements. A data flow diagram provides “a description based on modeling the flow of information around a networkof operational elements, with each elementmaking use of or modifying the informationflowing into that element” [4*]. Data flows(and therefore data flow diagrams) can beused for security analysis, as they offer identification of possible paths for attack and disclosure of confidential information.•  Decision tables and diagrams: used to represent complex combinations of conditionsand actions.•  Flowcharts: used to represent the flow ofcontrol and the associated actions to beperformed.•  Sequence diagrams: used to show the interactions among a group of objects, withemphasis on the time ordering of messagespassed between objects.•  State transition and state chart diagrams:used to show the control flow from state tostate and how the behavior of a componentchanges based on its current state in a statemachine.•  Formal specification languages: textual languages that use basic notions from mathematics (for example, logic, set, sequence)to rigorously and abstractly define softwarecomponent interfaces and behavior, often interms of pre- and postconditions.

(See alsothe Software Engineering Models and Methods KA.)•  Pseudo code and program design languages(PDLs): structured programming-like languages used to describe, generally at thedetailed design stage, the behavior of a procedure or method.2-10  SWEBOK® Guide V3.07. Software Design Strategies and MethodsThere exist various general strategies to helpguide the design process. In contrast with generalstrategies, methods are more specific in that theygenerally provide a set of notations to be usedwith the method, a description of the process tobe used when following the method, and a set ofguidelines for using the method.

Such methodsare useful as a common framework for teams ofsoftware engineers. (See also the Software Engineering Models and Methods KA).7.1. General Strategies[4*, c8, c9, c10] [12*, c7]Some often-cited examples of general strategiesuseful in the design process include the divideand-conquer and stepwise refinement strategies,top-down vs. bottom-up strategies, and strategiesmaking use of heuristics, use of patterns and pattern languages, and use of an iterative and incremental approach.7.2. Function-Oriented (Structured) Design[4*, c13]This is one of the classical methods of softwaredesign, where decomposition centers on identifying the major software functions and then elaborating and refining them in a hierarchical topdown manner.

Structured design is generally usedafter structured analysis, thus producing (amongother things) data flow diagrams and associatedprocess descriptions. Researchers have proposedvarious strategies (for example, transformationanalysis, transaction analysis) and heuristics (forexample, fan-in/fan-out, scope of effect vs. scopeof control) to transform a DFD into a softwarearchitecture generally represented as a structurechart.7.3. Object-Oriented Design[4*, c16]Numerous software design methods basedon objects have been proposed.

The field hasevolved from the early object-oriented (OO)design of the mid-1980s (noun = object; verb= method; adjective = attribute), where inheritance and polymorphism play a key role, to thefield of component-based design, where metainformation can be defined and accessed (throughreflection, for example). Although OO design’sroots stem from the concept of data abstraction,responsibility-driven design has been proposedas an alternative approach to OO design.7.4. Data Structure-Centered Design[4*, c14, c15]Data structure-centered design starts from the datastructures a program manipulates rather than fromthe function it performs. The software engineerfirst describes the input and output data structuresand then develops the program’s control structurebased on these data structure diagrams.

Variousheuristics have been proposed to deal with specialcases—for example, when there is a mismatchbetween the input and output structures.7.5. Component-Based Design (CBD)[4*, c17]A software component is an independent unit,having well-defined interfaces and dependencies that can be composed and deployed independently. Component-based design addressesissues related to providing, developing, andintegrating such components in order to improvereuse. Reused and off-the-shelf software components should meet the same security requirements as new software. Trust management isa design concern; components treated as having a certain degree of trustworthiness shouldnot depend on less trustworthy components orservices.7.6. Other Methods[5*, c19, c21]Other interesting approaches also exist (see theSoftware Engineering Models and MethodsKA). Iterative and adaptive methods implement software increments and reduce emphasison rigorous software requirement and design.Software Design  2-11Aspect-oriented design is a method by whichsoftware is constructed using aspects to implement the crosscutting concerns and extensionsthat are identified during the software requirements process.

Service-oriented architecture isa way to build distributed software using webservices executed on distributed computers. Software systems are often constructed by using services from different providers because standardprotocols (such as HTTP, HTTPS, SOAP) havebeen designed to support service communicationand service information exchange.8. Software Design Tools[14*, c10, Appendix A]Software design tools can be used to support thecreation of the software design artifacts duringthe software development process.

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

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

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

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