Master
2024/2025
Software Engineering Methodology
Type:
Elective course (System and Software Engineering)
Area of studies:
Software Engineering
Delivered by:
School of Software Engineering
Where:
Faculty of Computer Science
When:
1 year, 1 module
Mode of studies:
offline
Open to:
students of one campus
Master’s programme:
Software and Systems Engineering
Language:
English
ECTS credits:
3
Contact hours:
42
Course Syllabus
Abstract
The course is taught to the students of the Master’s Program «System and Software Engineering (SSE) » at Faculty of Computer Science of the National Research University - Higher School of Economics. It is 1 module course, which is delivered in the first module of the first academic year. Number of credits is 3. Total course length is 114 academic hours including 56 auditory hours (16 Lecture (L) hours and 26 Seminar (S) hours) and 72 Self-study (SS) hours. Academic control includes in-class tasks, a homework, a control work, and exam at the end of second module. The course ‘Software engineering methodology’ presents the engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. The main objective of the training course is to examine and discuss with students fundamentals and principles of Software Engineering (SE), get familiar with common methods and standards of SE, development and evolution of complex multiversion and replicated software solutions. The course is aimed to help students to develop skills that will enable them to construct software of high quality, reliable, and that is reasonably easy to understand, modify and maintain.
Learning Objectives
- Study the place and role of software engineering, place it in a broader systems context and present the concept of software engineering processes and management.
- Learn the processes, techniques and deliverables that are associated with requirements engineering, system modeling, formal specification
- Focus on techniques for software verification, testing, critical systems validation and further documentation
- Discover the importance of management topics in software engineering: managing people, cost estimation, quality management, process improvement and configuration management.
- Design and experiment with software prototypes, Select and use software metrics.
- Communicate effectively through oral and written reports, and software documentation
- Demonstrate professionalism including continued learning and professional activities.
- Successfully assume a variety of roles in teams of diverse membership.
- Have an ability to work with other people in a team, communicating computing ideas effectively in speech and in writing;
- Build solutions using different technologies, architectures and life-cycle approaches in the context of different organizational structures.
Expected Learning Outcomes
- Be able to design a software system, write document the implementation of a software system
- Be able to design process models
- Be able to develop and apply testing strategies for software applications
- Be able to discuss the concepts of software products and software development processes
- Be able to evaluate Software maintenance and maintenance cost factors
- Be able to perform the analysis of system requirements and the production of system specifications
- Be able to perform the qualitative and quantitive analysis, develop risk management planning and the planning process
- Be able to provide Quality monitoring and control
- Be able to suggest appropriate architecture style
- Be able to use CASE tools to support configuration management processes
- Be able to write a test plan
- Know how to define CASE tools and software development environments
- Know how to develop a software Project
- Know how to develop and write a software project proposal
- Know main tasks undertaken by risk managers, risk management planning and the planning process
- Know requirements validation and the role of requirements reviews
- Know software configuration management process
- Know software cost estimation techniques, algorithmic cost modeling
- Know software costs structure and software engineering methods introduction
- Know software process models
- Know software testing guidelines and main tools and techniques
- Know the benefits of software reuse and some reuse problems
- Know the concepts of software products and software development processes
- Know the document software testing
- Know the importance of process visibility and software design techniques, Design process models Able to: design a software system, write document the implementation of a software system Understand: UML design process brief introduction
- Know the risk management process and objectives
- Know the software metrics
- Understand configuration management documenting and measuring
- Understand difference between software engineering and computer science
- Understand factors that influence individual motivation
- Understand how to develop and write a Software Requirements Specification
- Understand process iteration: incremental delivery and spiral development
- Understand quality management process and key quality management activities
- Understand software evolution processes and ways of software reuse implementation
- Understand specification in the software process: formal, sub-system, behavioral specification
- Understand system design evolution and development
- Understand the planning of software inspections
- Understand the principles of object-oriented software construction
- Understand the results of software testing, how to measure test results
- Understand the risk monitoring and control
- Understand the UML design process
Course Contents
- Software engineering fundamentals
- Software process models
- Project management activities
- Software requirements
- Requirements engineering processes
- Software reuse and evolution
- Software Testing
- Managing people and cost estimation
- Software risk management
- Configuration management
Bibliography
Recommended Core Bibliography
- Bharat Bhushan Agarwal, & Sumit Prakash Tayal. (2016). Software Engineering. [N.p.]: Laxmi Publications Pvt Ltd. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1227282
- Dooley, J. (2017). Software Development, Design and Coding : With Patterns, Debugging, Unit Testing, and Refactoring (Vol. Second edition). [Berkeley, Californial?]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1641452
- Layton, M. (2018). Scrum For Dummies (Vol. Second edition). Hoboken, NJ: For Dummies. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1793717
- McWherter, J., & Gowell, S. (2012). Professional Mobile Application Development. Indianapolis, Ind: Wrox. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=476649
- Myers, G. J., Badgett, T., & Sandler, C. (2012). The Art of Software Testing (Vol. 3rd ed). Hoboken, N.J.: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=396276
- Schmidt, R. (2013). Software Engineering : Architecture-driven Software Development. Waltham, MA: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=515418
Recommended Additional Bibliography
- Gharbi, M., Koschel, A., & Rausch, A. (2019). Software Architecture Fundamentals : A Study Guide for the Certified Professional for Software Architecture® – Foundation Level – ISAQB Compliant. Heidelberg: dpunkt.verlag. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2036069
- Mitra, T. (2016). Practical Software Architecture : Moving From System Context to Deployment. New York: IBM Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1601527
- Otero, C. E. (2012). Software Engineering Design : Theory and Practice. Boca Raton: Auerbach Publications. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1728920
- Unhelkar, B. (2013). The Art of Agile Practice : A Composite Approach for Projects and Organizations. Boca Raton: Auerbach Publications. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=511717