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

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

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

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

Because no software canexist in a vacuum or run without a computer, thecore of such an environment is the computer andits various components. Knowledge about thecomputer and its underlying principles of hardware and software serves as a framework onwhich software engineering is anchored. Thus, allsoftware engineers must have good understanding of the Computing Foundations KA.It is generally accepted that software engineering builds on top of computer science. Forexample, “Software Engineering 2004: Curriculum Guidelines for Undergraduate DegreePrograms in Software Engineering” [1] clearlystates, “One particularly important aspect is thatsoftware engineering builds on computer scienceand mathematics” (italics added).Steve Tockey wrote in his book Return onSoftware:Both computer science and software engineering deal with computers, computing,and software.

The science of computing, asa body of knowledge, is at the core of both.13-113-2  SWEBOK® Guide V3.0Figure 13.1. Breakdown of Topics for the Computing Foundations KA… Software engineering is concerned withthe application of computers, computing,and software to practical purposes, specifically the design, construction, and operation of efficient and economical softwaresystems.Thus, at the core of software engineering is anunderstanding of computer science.While few people will deny the role computerscience plays in the development of softwareengineering both as a discipline and as a body ofknowledge, the importance of computer scienceto software engineering cannot be overemphasized; thus, this Computing Foundations KA isbeing written.The majority of topics discussed in the Computing Foundations KA are also topics of discussion in basic courses given in computer scienceundergraduate and graduate programs.

Suchcourses include programming, data structure,algorithms, computer organization, operatingsystems, compilers, databases, networking, distributed systems, and so forth. Thus, when breaking down topics, it can be tempting to decomposethe Computing Foundations KA according tothese often-found divisions in relevant courses.However, a purely course-based division oftopics suffers serious drawbacks.

For one, notall courses in computer science are related orequally important to software engineering. Thus,some topics that would otherwise be covered in acomputer science course are not covered in thisKA. For example, computer graphics—while animportant course in a computer science degreeprogram—is not included in this KA.Second, some topics discussed in this guideline do not exist as standalone courses in undergraduate or graduate computer science programs.Consequently, such topics may not be adequatelycovered in a purely course-based breakdown.

Forexample, abstraction is a topic incorporated intoseveral different computer science courses; it isunclear which course abstraction should belongto in a course-based breakdown of topics.The Computing Foundations KA is divided intoseventeen different topics. A topic’s direct usefulness to software engineers is the criterion used forselecting topics for inclusion in this KA (see Figure13.1). The advantage of this topic-based breakdownis its foundation on the belief that Computing Foundations—if it is to be grasped firmly—must be considered as a collection of logically connected topicsundergirding software engineering in general andsoftware construction in particular.The Computing Foundations KA is relatedclosely to the Software Design, Software Construction, Software Testing, Software Maintenance, Software Quality, and MathematicalFoundations KAs.BREAKDOWN OF TOPICS FORCOMPUTING FOUNDATIONSThe breakdown of topics for the ComputingFoundations KA is shown in Figure 13.1.Computing Foundations  13-31. Problem Solving Techniques[2*, s3.2, c4] [3*, c5]The concepts, notions, and terminology introducedhere form an underlying basis for understandingthe role and scope of problem solving techniques.1.1. Definition of Problem SolvingProblem solving refers to the thinking and activities conducted to answer or derive a solution toa problem.

There are many ways to approach aproblem, and each way employs different toolsand uses different processes. These differentways of approaching problems gradually expandand define themselves and finally give rise to different disciplines. For example, software engineering focuses on solving problems using computers and software.While different problems warrant differentsolutions and may require different tools andprocesses, the methodology and techniques usedin solving problems do follow some guidelinesand can often be generalized as problem solvingtechniques. For example, a general guideline forsolving a generic engineering problem is to usethe three-step process given below [2*].•  Formulate the real problem.•  Analyze the problem.•  Design a solution search strategy.1.2. Formulating the Real ProblemGerard Voland writes, “It is important to recognize that a specific problem should be formulatedif one is to develop a specific solution” [2*].This formulation is called the problem statement,which explicitly specifies what both the problemand the desired outcome are.Although there is no universal way of stating a problem, in general a problem should beexpressed in such a way as to facilitate the development of solutions.

Some general techniquesto help one formulate the real problem includestatement-restatement, determining the sourceand the cause, revising the statement, analyzingpresent and desired state, and using the fresh eyeapproach.1.3. Analyze the ProblemOnce the problem statement is available, the nextstep is to analyze the problem statement or situation to help structure our search for a solution.Four types of analysis include situation analysis,in which the most urgent or critical aspects of asituation are identified first; problem analysis, inwhich the cause of the problem must be determined; decision analysis, in which the action(s)needed to correct the problem or eliminate itscause must be determined; and potential problemanalysis, in which the action(s) needed to preventany reoccurrences of the problem or the development of new problems must be determined.1.4. Design a Solution Search StrategyOnce the problem analysis is complete, we canfocus on structuring a search strategy to find thesolution.

In order to find the “best” solution (here,“best” could mean different things to differentpeople, such as faster, cheaper, more usable, different capabilities, etc.), we need to eliminatepaths that do not lead to viable solutions, designtasks in a way that provides the most guidance insearching for a solution, and use various attributesof the final solution state to guide our choices inthe problem solving process.1.5. Problem Solving Using ProgramsThe uniqueness of computer software gives problem solving a flavor that is distinct from generalengineering problem solving. To solve a problemusing computers, we must answer the followingquestions.•  How do we figure out what to tell the computer to do?•  How do we convert the problem statementinto an algorithm?•  How do we convert the algorithm intomachine instructions?The first task in solving a problem using a computer is to determine what to tell the computer todo.

There may be many ways to tell the story, butall should take the perspective of a computer such13-4  SWEBOK® Guide V3.0that the computer can eventually solve the problem. In general, a problem should be expressedin such a way as to facilitate the development ofalgorithms and data structures for solving it.The result of the first task is a problem statement. The next step is to convert the problem statement into algorithms that solve the problem. Oncean algorithm is found, the final step converts thealgorithm into machine instructions that form thefinal solution: software that solves the problem.Abstractly speaking, problem solving using acomputer can be considered as a process of problem transformation—in other words, the step-bystep transformation of a problem statement intoa problem solution. To the discipline of softwareengineering, the ultimate objective of problemsolving is to transform a problem expressed innatural language into electrons running arounda circuit.

In general, this transformation can bebroken into three phases:a)Development of algorithms from the problem statement.b)Application of algorithms to the problem.c)Transformation of algorithms to programcode.The conversion of a problem statement intoalgorithms and algorithms into program codesusually follows a “stepwise refinement” (a.k.a.systematic decomposition) in which we startwith a problem statement, rewrite it as a task,and recursively decompose the task into a fewsimpler subtasks until the task is so simple thatsolutions to it are straightforward. There are threebasic ways of decomposing: sequential, conditional, and iterative.2. Abstraction[3*, s5.2–5.4]Abstraction is an indispensible technique associated with problem solving.

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

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

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

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