Lecture 12 ADVANCED TERMS AND TOPICS PB007 Software Engineering I Faculty of Informatics, Masaryk University Fall 2020 1© Barbora Bühnová Topics covered  Summary of covered topics  Outline of additional topics  Languages and frameworks  Tool support  Course follow-up 2© Bühnová Summary of Covered Topics Lecture 12/Part 1 3© Bühnová Covered topics 1. Software development, UML Use Case diagram. 2. Requirements specification, UML Activity diagram. 3. System analysis and design, structured vs. object-oriented A&D. 4. Object oriented analysis, UML Class, Object and State diagram. 5. Data modelling and management, ERD. 6. High-level design, UML Class diagram in design. 7. Low-level design and implementation, UML Interaction diagrams 8. Architecture design, UML Package, Component and Deployment diagram. 9. Testing, verification and validation. 10.Operation, maintenance and system evolution. 11.Software development management. © Bühnová 4 Outline of Additional Topics Lecture 12/Part 2 5© Bühnová Distributed systems  Virtually all large computer-based systems are now distributed systems. “… a collection of independent computers that appears to the user as a single coherent system.”  Distributed systems issues ▪ Distributed systems are more complex than systems that run on a single processor. ▪ Complexity arises because different parts of the system are independently managed as is the network. ▪ There is no single authority in charge of the system so topdown control is impossible. © Bühnová Mobile applications  A mobile applications include apps designed to run on smartphones, tablet computers and other mobile devices.  They are usually available through application distribution platforms, operated by the owner of the mobile operating system, such as the Apple App Store and Google Play.  Mobile apps were originally offered for general productivity and information retrieval, including email, calendar, contacts and weather information.  However, public demand drove rapid expansion into many other categories, including banking, order-tracking, or medical apps. 7© Bühnová Embedded systems  Computers are used to control a wide range of systems from simple domestic machines, through games controllers, to entire manufacturing plants.  Their software must react to events generated by the hardware and, often, issue control signals in response to these events.  The software in these systems is embedded in system hardware, often in read-only memory, and usually responds, in real time, to events from the system’s environment.  Issues of safety and reliability may dominate the system design. © Bühnová Cloud computing  Cloud computing is computing in which large groups of remote servers are networked to allow centralized data storage and online access to computer services or resources.  Service models ▪ Infrastructure as a service (IaaS) ▪ Platform as a service (PaaS) ▪ Software as a service (SaaS)  Moreover, big data and its processing is a topic on its own 9© Bühnová Virtualization 10© Papcunová  A process of running a virtual instance of a computer system in a layer abstracted from the actual hardware  A virtual machine (VM) is an isolated software container with an OS and application inside  Each VM is completely independent Docker 11© Papcunová  An open source platform for building, deploying, and managing containerized applications  A docker container is a standalone executable package of software that includes everything needed to run an application  Containers share one OS unlike VMs Languages and Frameworks Lecture 12/Part 3 12© Papcunová Languages and frameworks 13© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png Frontend 14© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png Backend 15© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png Database 16© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png DevOps 17© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png Mobile 18© Papcunová https://res.cloudinary.com/cybercoders/image/upload/c_scale,g_south_eas t,l_cc_logo_bug_wenazs.png,w_40/v1557870077/Full_Stack_ebvf4s.png Tool Support Lecture 12/Part 4 19Chapter 22 Project management SE tasks commonly supported by tools  Plan and schedule software development project  Specify, manage and trace requirements  Model and analyze business processes  Create design and deployment models  Create, edit, compile and debug code in different languages  Generate and import database schema  Track changes  Manage tests  Document software development  Communicate and develop team based projects 20Chapter 7 Design and implementation Most popular tools  Requirements analysis and design modeling tools  Programming environments that automate parts of program construction processes (e.g., automated builds)  Software configuration management and version control  Testing tools including static and dynamic analysis tools  Continuous integration and release management  Issue tracking  Project management tools Chapter 4 Requirements engineering 21 Tools 22 https://www.wati.com/wp-content/uploads/2018/11/Slide3.png © Papcunová Code, infrastructure and deployment 23 © Papcunová Testing, release and collaboration 24 © Papcunová Key points  Software engineering process can be supported by a large variety of tools.  The specific tools are often integrated into a single environment or framework, which assists the developers through integrated support on one place. Chapter 7 Design and implementation 25 Course Follow-up Lecture 12/Part 5 26© Bühnová Course finalization  Seminar projects ▪ Assessment ▪ “Seminar completion / Absolvování cvičení“ notebook in IS  Exam ▪ Number of exam dates ▪ Reservation/cancelation policies ▪ Legth of the exam ▪ Form of the exam – test part and UML modelling part ▪ Results and their viewing  Opinion poll ▪ Do not forget to give us your feedback! ☺ 27© Bühnová Follow-up and related courses  PA017 Softwarové inženýrství II  PA103 Objektové metody návrhu informačních systémů  PV167 Seminář s návrhových a architektonických vzorů  PV260 Software Quality  PV258 Software Requirements Engineering 28© Bühnová Thanks Thank you for your attention and good luck with the exam! 29© Bühnová