Software Development Methodologies

Major: Software Engineering
Code of subject: 7.121.01.O.003
Credits: 6.00
Department: Software
Lecturer: Maksym Seniv
Semester: 1 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of studying the academic discipline is to master the software development methodologies and be able to choose the most optimal one when developing a given type of software product.
Завдання: The ability to effectively solve specialized tasks and practical problems of an innovative nature during professional activities related to all aspects of software development from the initial stages of specification creation to system support after commissioning. The ability to design software and model the processes of software subsystems and units’ operation. The ability to develop, analyze and apply specifications, standards, rules and recommendations in the software engineering domain. The ability to develop and coordinate processes, stages and iterations of the software lifecycle based on state-of-the-art models, methods and software development technologies. The ability to assure software quality.
Learning outcomes: PH01. Know and apply modern professional standards and other legal documents on software engineering. PH02. Evaluate and select effective methods and models for the development, implementation, maintenance of software and management of relevant processes at all stages of the life cycle. РН09. Make a reasonable choice of paradigms and programming languages for software development; apply modern software development tools in practice. PH12. Make effective organizational and managerial decisions in conditions of uncertainty and changing requirements, compare alternatives, assess risks. РН13. Configure software and control its versions and software documentation during the whole software lifecycle. PH15. Carry out software reengineering in accordance with customer requirements.
Required prior and related subjects: Corequisites: Master’s Thesis Internship
Summary of the subject: The course "Software Development Methodology" examines the most common software development methodologies, their main advantages and disadvantages. The main attention is paid to the family of Agile processes, extreme programming, Scrum and Kanban methodologies.
Опис: Introduction. The main models of LC software, their advantages and disadvantages. Levels of development of the company according to SMM. History of software development methodologies Iterative software development process Rational Unified Process (RUP) Essential Unified Process (EssUP) Iterative approach without functional specifications Getting Real. Iterative-incremental method of OpenUP software development Feature driven development (FDD) Rapid Application Development (RAD) methodology Iterative and incremental DSDM approach A set of concepts, principles and techniques of Agile Modeling Agile Unified Process (AUP) Group of iterative methods of software development Agile Data Method Basic concepts, advantages, disadvantages and areas of application of extreme programming (Extreme programming, XP) Scrum project management methodology Kanban project management methodology
Assessment methods and criteria: Control measures. Tests. Defending laboratory works. Examination control (written component, oral component).
Критерії оцінювання результатів навчання: Current control: 40% (report – 10%, laboratory works – 30%, of which laboratory works #1 and #3 – 5% each, laboratory works #2 and #4 – 10% each) Exam: 60% (written part 50%, spoken part 10%) The first two laboratory works should be defended within first 8 weeks of the term. Otherwise a student gets 0 for either of labs #1 and #2 if they have been delayed. The maximum mark for each laboratory work can be obtained if a student performed the task correctly, managed to prove that they have accomplished the task with no assistance, and answered all the practical and theoretical questions properly.
Recommended books: 1. Девід Дж. Андерсон: Канбан – Харків. – 2021. – 288с 2. Д. Сазерленд: Scrum. Навчись робити вдвічі більше за менший час – Харків. – 2016. – 280с. 3. James Shore, Shane Warden. The Art of Agile Development. — O’Reilly. — 2007. — 440 p. 4. Сенів М. М. Засіб для підбору методології розроблення програмного забезпечення з урахуванням метрик проєкту // Науковий вісник НЛТУ України: збірник науково-технічних праць. – 2021. – Т. 31, № 3. – С. 120–125. 5. Symets I., Yakovyna V., Seniv M. The relation between software development methodologies and factors affecting software reliability // Комп’ютерні науки та інформаційні технології: матеріали XV Міжнародної науково-технічної конференції CSIT-2020 (Збараж, 23–26 вересня 2020 р.). – 2020. – C. 377–381. (Scopus) 6. Torgeir Dingsoyr, Tore Dyba, Nils Brede Moe. Agile Software Development: Current Research and Future Directions. — Springer. — 2010. — 240 p. 7. Кент Бек: Экстремальное программирование — Питер. – 2002. – 215с. 8. Кент Бек: Экстремальное программирование: разработка через тестирование — Питер. – 2003. – 224с. 9. Кен Ауэр, Рой Миллер: «Экстремальное программирование: постановка процесса с первых шагов и до победного конца» — Питер. – 2004. – 368с.