Software Architecture and Design

Major: Software Engineering
Code of subject: 6.121.00.O.036
Credits: 4.00
Department: Software
Lecturer: Ph.D., Associate Professor A.V. Fomenko
Semester: 7 семестр
Mode of study: денна
Мета вивчення дисципліни: Based on the study of the theoretical foundations of modeling, development and design based on software templates and frameworks, as well as the study of the main standards, requirements and ready-made structures used in the development and design of large software applications, students acquire practical skills in creating architecture and detailed design of software products using modern methods and tools.
Завдання: The study of an academic discipline involves the formation of the necessary competencies in students: Integral competence: INT The ability to solve complex specialized tasks or practical problems of software engineering, characterized by complexity and uncertainty of conditions, using theories and methods of information technology. general competences: ?K02. Ability to apply knowledge in practical situations. professional competences: ?SK2. Ability to participate in software design, including modeling (formal description) of its structure, behavior and functioning processes. ?SK3. Ability to develop architectures, modules and components of software systems. ?SK5. Ability to adhere to specifications, standards, rules and recommendations in the professional field when implementing life cycle processes. ?SK13. The ability to reasonably choose and master software development and maintenance tools.
Learning outcomes: Learning outcomes in accordance with the educational program, learning and teaching methods, methods of evaluating the achievement of learning outcomes As a result of studying the academic discipline, the student should be able to demonstrate the following learning outcomes: Learning outcomes PR03. Know the main processes, phases and iterations of the software life cycle. PR04. Know and apply professional standards and others regulatory and legal documents in the field of software engineering. PR05. Know and apply relevant mathematical concepts, methods of domain, system and object-oriented analysis and mathematical modeling for software development. PR07. Know and apply in practice the fundamental concepts, paradigms and basic principles of the functioning of linguistic, instrumental and computing tools of software engineering PR10. Conduct a pre-project survey of the subject area, system analysis of the design object. PR11. Select input data for design, guided by formal requirements description and modeling methods. PR12. Apply effective approaches in practice regarding software design. PR14. Apply in practice instrumental software tools for domain analysis, design, testing, visualization, measurement and documentation of software. PR15. Motivated to choose programming languages ??and development technologies to solve the tasks of creating and maintaining software PR16. Have skills in team development, approval, design and release of all types of software documentation. PR17. Be able to apply methods of component software development. PR18. Know and be able to apply information technologies for data processing, storage and transmission. PR19. Know and be able to apply software verification and validation methods. PR23. Be able to document and present the results of software development. Know: • - the concept of software architecture, approaches to its analysis and construction; • - the main existing software architectures, their characteristics and features, as well as the application of architectures in practice; • - the purpose and objectives of software design; • - UML modeling language • Know the typical architectural styles and solutions for creating software, features of their application; • Have methods of object-oriented design of software systems, as well as know the templates of object-oriented design; • Know the general architecture of enterprise systems based on Java and .NET platforms and be able to design enterprise software for these platforms; • Be able to document the architecture and design of software systems using standard tools and notations. Be able: • use the methods of structural and object-oriented software design and apply these methods in practice; • have the means to design software; • use UML modeling language for software design; • use architectural design templates and understand their role in programming; • use design patterns when creating software products.
Required prior and related subjects: Previous academic disciplines KR Database Software design Associated and subsequent academic disciplines Human-machine interaction
Summary of the subject: Software development is a complex, multi-step process. The complexity of software systems requires the creation of project documentation. There are many approaches to designing the architecture of software systems. Mastering software design techniques allows the future programmer to work in teams to create complex software. The goal of the discipline is to master modern methods and approaches to the design of software systems and the formation of their architecture. Acquisition of practical abilities and skills in the design of software solutions of various scales and purposes based on modern information technologies and software frameworks.
Опис: Lecture classes are aimed at studying the following topics: 1. Introduction. The role and place of design in the software development process. The concept of software architecture. Design content. Software Design SWEBOK 2. Architecture of software systems. The concept of software system architecture. What defines and what is influenced by architecture. Architectural structures and representations. Modular structures. Structures 'component and connector'. Distribution structures. Relations between structures. Variants of software system architectures. Architecture based on levels of abstractions. Architectures based on ports. Architectures of independent components. architectures based on data streams. 3. CASE systems and design editors, use to create system architecture models. 4. Designing software systems. Analysis of requirements and development of external specifications. SADT methodology. IDEF 0 diagrams. 5. Designing software systems. SADT methodology. DFD diagrams, IDEF3. 6. Designing software systems. ARIS methodology. eEPC charts, DataFloat. 7. Designing software systems. BPMN 2.0 methodology. BPMN diagrams. 8. Designing software systems. UML methodology. Diagrams of precedents, cooperation. 9. Designing software systems. UML methodology. Sequence diagrams, actions. Diagrams of state transitions. 10. Object-oriented approach to software development. Basic elements of OOP. Design of software systems, class diagrams, objects. 11. Designing databases. Diagrams IDEF 1X. 12. Methods of object-oriented analysis and design. Patterns of object-oriented design. Application of templates 13. Typical architectural solutions. Their implementation. 14. General architecture of corporate software on Java and .NET platforms 15. Documenting the results of the design stage. Development of a preliminary external project. External design process. User interaction design. Preparation of external specifications. In practical classes, students will gain practical skills in designing a software system using group work methods on the following topics: • Development of system project and system module in different notations, namely: SADT (IDEF0, DFD, IDEF3), ARIS, BPMN 2, UML 2. • Building a DataFlow database model (ARIS), IDEF 1X (SADT). • Creation of project documentation and protection of the project • Development of a module of a complex system (work in a group) using architectural design patterns. • Development of the graphical interface (group work) and embedding your module into it. • Protecting your module in the system project. 4. The result of the discipline is group development of project documentation of a complex system, individual development of a project of a system module, development of software, namely a system module, adaptation of a system module in the overall project.
Assessment methods and criteria: Laboratory work: the minimum score is 0 points (the work is done individually, but not protected), the maximum is 1.5 points (the work is completely done, all the models are correct, there were all the necessary explanations). The score in the range from 0 to 1.5 is given depending on the number of errors in the models and when answering the questions) Points for the project are reduced to 45 points according to the formula: Points for individual work = Number of points received / 120 * 45
Критерії оцінювання результатів навчання: Laboratory works (1 work - 1.5 points). Total 22.5 points Individual tasks (group project defense) 22.5 points Exam - 55 points, including: - written component - 10 points, - oral component - 45 points.
Порядок та критерії виставляння балів та оцінок: The procedure and criteria for assigning points and grades: Admission to the exam is granted based on the results of current control: Current control includes preparation, passing 15 laboratory works (15*1.5=22.5 points), project defense (22.5 points) - total current control 45 points - and two control measures: a test (10 points) and a written control work (3 questions*15 points = 45 points) - total 55 points. Laboratory work for students of the National Academy of Sciences is performed in a team of 3-5 students for students of the National Academy of Sciences - individually. 1. Protection of laboratory works - all laboratory works of the course must be completed and protected 2. Protection of the team project, in accordance with the individual task (for the full-time form - the module of the information system of the IKH or VLPI (determined by the teacher, for the part-time form - the task according to the list of topics) - the protection assumes the presence of a working module of the system and project documentation for the system and the corresponding module The maximum grades for laboratory work are awarded when the work is completed and defended on time and successfully: ? writing programs and demonstrating their operation for various input data (technology of the student's choice), ? answers to questions about the operation of the program, ? modification of the program (at the request of the teacher to confirm the independence of the work), ? answers to questions on the topic of work. The presentation of a complete program (integration of the components of each laboratory work) is evaluated according to the fulfillment of all requirements formed and posted in the VNS.
Recommended books: Educational materials Базова 1. ЕНМК дисципліни «Архітектура та проектування програмного забезпечення». Сертифікат про визнання інформаційного ресурсу у ВС ЛП методичною працею № 04068. [Електронний ресурс]. Режим доступу: https://vns.lpnu.ua/course/view.php?id=63 2. Мартін Роберт. Чиста архітектура. Мистецтво розробки програмного забезпечення. "Фабула", 2019. - 416с. 3. Мартин Роберт. Чиста архітектура: мистецтво розробки програмного забезпечення, "Фабула", 2019. - 352с. 4. Мартин Роберт. Чистий Agile. Основи гибкости. "Питер", 2020. - 272с. 5. Мартин Роберт. - Чистий код. Створення і рефакторинг за допомогою Agile "Фабула", 2019. – 416c. 6. Software architecture : foundations, theory, and practice / Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy. - Hoboken (N.J.) : Wiley, 2010.- 425с. 7. The Software Engineering Institute (SEI) Architecture Website -architecture definitions, offers a good example. Режим доступу:http://www.sei.cmu.edu/architecture/definitions.html 8. IEEE Computer Society, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: IEEE Std 1472000. 2000. 9. Pattern Oriented Software Architecture: On Patterns and Pattern Languages / Buschmann F.Schmidt D.C.Henney K. - John Wiley & Sons, Inc, Vol. 5.- 2007. - 389с. …………………………………………………………………………………………………………… Допоміжна 1. Learn Software Architecture & Design. [Електронний ресурс]. Режим доступу: https://www.tutorialspoint.com/software_architecture_design/index.htm. 2. The Elements of UML(TM) 2.0 Style. Scott W. Ambler. Cambridge University Press, 2005 9. Інформаційні ресурси 1. Names of Classes, Structs, and Interfaces http://msdn.microsoft.com/en-us/library/ms229002.aspx 2. Code Conventions for the Java Programming Language. http://www.oracle.com/technetwork/java/codeconv-138413.html 3. Object Management Group – UML http://www.uml.org/ 4. List of Unified Modeling Language tools – Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools 5. ArgoUML – argouml.tigris.org http://argouml.tigris.org/ 6. StarUML – The Open Source UML/MDA Platform http://staruml.sourceforge.net/ 7. Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Addison-Wesley Professional, 1994. 8. Hibernate - JBoss Community http://www.hibernate.org/hibernate 9. HSQLDB http://hsqldb.org/ 10. Hibernate Tutorial http://www.vaannila.com/hibernate/hibernate-tutorial/hibernate-tutorial.html 11. ASP.NET MVC: The Official Microsoft ASP.NET Site http://www.asp.net/mvc 12. InfoQ: ASP.NET MVC Example with Northwind and Entity Framework Published http://www.infoq.com/news/2008/02/mvc-framework-example 13. ADO.NET Entity Framework http://msdn.microsoft.com/en-us/data/aa937723 14. The Official Microsoft IIS Site http://www.iis.net/ 15. Visual Web Developer 2010 Express | Microsoft Visual Studio http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express 16. Free Database Software | Database Applications | SQL Server Express http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
Уніфікований додаток: Lviv Polytechnic National University ensures the realization of the right of persons with disabilities to obtain higher education. Inclusive educational services are provided by the Service of accessibility to learning opportunities 'Without restrictions', the purpose of which is to provide permanent individual support for the educational process of students with disabilities and chronic diseases. An important tool for the implementation of the inclusive educational policy at the University is the Program for improving the qualifications of scientific and pedagogical workers and educational and support staff in the field of social inclusion and inclusive education. Contact at: st. Karpinsky, 2/4, 1st floor, room 112 E-mail: nolimits@lpnu.ua
Академічна доброчесність: The policy regarding the academic integrity of the participants of the educational process is formed on the basis of compliance with the principles of academic integrity, taking into account the norms 'Regulations on academic integrity at the Lviv Polytechnic National University' (approved by the academic council of the university on June 20, 2017, protocol No. 35).