Master
2020/2021
Research Seminar "Software Engineering: Development Management"-2
Type:
Compulsory course (System and Software Engineering)
Area of studies:
Software Engineering
Delivered by:
School of Software Engineering
Where:
Faculty of Computer Science
When:
2 year, 1, 2 module
Mode of studies:
offline
Instructors:
Sergey Viktorovich Zykov
Master’s programme:
Software and Systems Engineering
Language:
English
ECTS credits:
7
Contact hours:
48
Course Syllabus
Abstract
The course "Software Engineering: Development Management" ("Software Engineering" MS curriculum, 1st year) syllabus lays down minimum requirements for student’s knowledge and skills; it also provides description of both contents and forms of training and assessment in use. The course is offered to students of the Master Program "Software Engineering" (area code 09.04.04), Faculty of Computer Science of the National Research University "Higher School of Economics" (HSE). The course is a part of M.Sc. curriculum pool of required courses (2nd year, 2019-2020 academic year’s curriculum), and it is a two-module course (semester A quartiles 1-2). The duration of the course amounts to 48 class periods divided into 48 Seminar (S) hours. Also, 40 hours out of 218 that have been given to students for self-studying are intended for testing preparation (incl. intermediate and final tests, and the final exam).
Learning Objectives
- Provide students with basic knowledge in software product development
- Lay the foundation for solving tasks in large-scale software projects development and information processing both in professional activities and in master thesis preparation
- Get students familiar with the state-of-the-art models, methodologies, and technologies used for large-scale software system development and their implementations in software products
- Teach students to apply the current IDEs, intended for practical large-scale software system development in team-based, interactive conditions
Expected Learning Outcomes
- Verify, compile, analyze and customize the research methods studied for their future practical application;
- Suggest concepts, models, create and test new methods and tools for software development to be practically applied
- Master new research methods by self-study;
- Analyze, and verify the completeness of information found elsewhere while doing software development, synthesize and add the information lacking if required
- Organize individual and team research
- Participate in projects based on systematic approach, build, apply and analyze models for describing and forecasting of software product development
- Generate novel, and creative concepts, models, methods of software development and software products
- Master new research methods by self-study
- Choose and develop methods of software product analysis based on general trends in software engineering
- Analyze, synthesize, optimize solutions for quality software product development
- Evaluate and choose methodologies for software product development
- Apply state-of-the-art research-based software product development technologies, control software product quality
- Make well-justified choice of technical and economic models for software development and maintenance
- Verify, compile, analyze and customize the research methods studied for their future practical application
Course Contents
- Object-based models (1-8)- Introduction - Formal models for program objects and development environment - Foundations of finite sequences - Introduction into type theory - Formal system of combinatory logic - Foundations of categories theory - Object systems for variable domains - Abstract machines for computational environments - Virtual machines modeling: idealized and real-world solutions
- Software development lifecycles (9-15)- Software development lifecycle overview - Models of software development lifecycle - Software development methodologies - Software development platforms (Oracle Java vs. Microsoft .Net) - Data modeling and management - Team-based software development - Models and tools for computer-aided software development
- Software system and data modeling (16-21)- Managing heterogeneous software development - Conceptual modeling for software development - Content management for software development - Portal-based software development - Domain-specific languages for software development - Semantic networks and frame visualization
- Large-scale system modeling (22-25)- Industry-based technologies overview for software development - Microsoft Dynamics platform for managing software development - Software development in oil-and-gas and other major industries - Conclusion. Course Outcomes
Interim Assessment
- Interim assessment (2 module)Assessment Evaluation: 10-point grade for Module 1 (the cumulated grade): M1 = 0.5*K + 0.5*T, where K is the (cumulated) testing grade; T is the (cumulated) grade for the intermediate activities in Module 1. 10-point grade for Module 2 (the cumulated grade): M2 = 0.25*K + 0.5*HA + 0.25*T, where K is the (cumulated) testing grade; HA is the grade for the home assignment; T is the (cumulated) grade for the intermediate activities in Module 2. The grade for Module 2 exam: FE = 0.3*TE + 0.3*KE, - KE is the grade for the written exam part (computer testing); - TE is the grade for the oral exam part. The final course grade (FF): FF = 0.2*FM1 + 0.2*FM2 + 0.6*FE, where - FM1 is the final grade of Module 1 (FM – final grade of the module): FM1 = M1; - FM2 is the final grade of Module 2 (FM – final grade of the module): FM2 = M2; - FE is the grade for the final exam. The second attempt of the exam (irrespective of the previous grades): FE = (0.5*TE + 0.5*KE)*0.8, FF = (0.5*TE + 0.5*KE)*0.8 For final and intermediate grades, the medium weighed grade is rounded up to the larger integer in case its fractal part is not less than 0.5, otherwise the grade is rounded down to the smaller integer.
Bibliography
Recommended Core Bibliography
- Zykov, S. V. (2018). Managing Software Crisis: A Smart Way to Enterprise Agility. Cham: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1796196
Recommended Additional Bibliography
- Sommerville, I. (2016). Software Engineering, Global Edition (Vol. Tenth edition, Global edition). Boston: Pearson. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1419684
- Zykov, S. V. (2016). Crisis Management for Software Development and Knowledge Transfer. Switzerland: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=nlebk&AN=1261466
- Zykov, S. V., Gromoff, A., & Kazantsev, N. S. (2018). Software Engineering for Enterprise System Agility : Emerging Research and Opportunities. Hershey PA: Business Science Reference. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1825496