Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Classes






Вопросы к экзамену по курсу «Конструирование ПО» группы ПИН-131, зачету ПЭ-131

 

1. Рабочий процесс Gitflow

2. Управление программными проектами

3. Варианты управления разработкой ПО. Waterfall

4. Варианты управления разработкой ПО. Scrum

5. Варианты управления разработкой ПО. Agile

6. Варианты управления разработкой ПО. Kanban

7. Маркетинг программного обеспечения

8. Требования к программному обеспечению

9. Управление конфигурациями ПО (Version control systems)

10. Жизненный цикл ПО (software lifecycle)

11. Основные сведения о SWEBOK

12. Приемы конструирования. Классы

13. Приемы конструирования. Функции

14. Приемы конструирования. Переменные

15. Защитное программирование

16. Парадигма MVC

17. Требования к документированию исходного кода (язык программирования - по выбору студента)

18. Технология конструирования

19. Сложность алгоритмов.

20. Анти-паттерны программирования.

21. Критерии выбора сторонних библиотек (версии, платформы, юридические тонкости)

22. Инженерная этика в разработке ПО

23. Распределенная разработка программного обеспечения. Outsourcing.


 

 

Swebok main topics

1. Requirements

1.1. Gathering

1.2. Classification

1.3. Analysis

1.4. Specification

1.5. Validation

2. Design

2.1. COncurrencey

2.2. Events

2.3. Components

2.4. Error and exception handling

2.5. Security

2.6. Architecture

2.7. UI

2.8. Quality

3. Construction

3.1. Languages

3.2. API

3.3. Defensive programming

3.4. TDD

3.5. IDE

4. Testing & maintenence

5. SCM

5.1. VCS

5.2. Release management

5.3. CI

6. SW development project management

6.1. Initiation (rq)

6.2. Planning

6.2.1. Cost estimation

6.2.2. Resource allocation

6.2.3. Risk management

6.3. Control

6.4. Review and evaluation

7. Software lifecycle

8. Quality of software

8.1. Ethics

8.2. Safety

8.3. SW QA

9. SW economics

9.1. Cashflow

9.2. Price

9.3. Cost

9.4. ROI

10. Other (Computing foundations, Mathematical foundations, engineering foundations)

Software construction basics

Classes

· Classes are nouns

· Abstract classes (file and db handling)

· Encapsulation

o Minimize accessability

o Don’t put implementations on public

o Favor read-time convenience vs write-time convenience

o 7+-2 members

· Inheritance

o Design and document for inheritance, or prohibit it

o Liskov principle: inherited class is only a more specific version of base class

o Be suspicious of base class with only one derived class

o @Override without code is not a good thing

o Avoid deep inheritance

o Inheritance is good vs type checking

· Reasons to create class

o Model real-world objects

o Model abstract objects

o Reduce complexity / Isolate complexity

o Hide implementation

o Limit effects of changes

o Hide global data

§ Config

o Streamline parameter passing

o Make central points of control

o Facilitate reusable code

o Plan for a family of programs

o Package related operations

o To accomplish a specific refactoring

· Members

o Minimize number of functions

o Minimize direct and indirect calls to other classes and other inter-class collaborations

· Constructors

o Initialize all data in constructors






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.