Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Software and Systems Verification

    A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftver- és rendszerellenőrzés

    Last updated: 2018. április 27.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics

    Engineering Information Technology

    M.Sc. program

    Specialization in Critical Systems 

    Course ID Semester Assessment Credit Tantárgyfélév
    VIMIMA01 2 2/1/0/v 4  
    3. Course coordinator and department dr. Micskei Zoltán Imre,
    Web page of the course http://www.mit.bme.hu/eng/oktatas/targyak/vimima01
    4. Instructors
    Dr. István Majzik, associate professor, MIT
    Dr. Zoltán Micskei, associate professor, MIT
    5. Required knowledge Basic programming skills (Java, C and C#) and modeling with UML
    6. Pre-requisites
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIMIM148" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIM148", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIMIMA29", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA29", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    7. Objectives, learning outcomes and obtained knowledge
    The objective of the course is to present the different verification techniques that can be used throughout the full software and systems development lifecycle. Nowadays such techniques are used not only in critical systems (where their usage are usually mandated by standards), but quality is a requirement for every system.
     
    After completing the course, students will have a general understanding of the whole verification process, and know which techniques are recommended for the different phases. They can identify the various static verification technique, and can review specifications and designs, and apply static analysis tools on source code. They can list the different levels and methods of software testing, and can use specification and structure based test design techniques. They know the techniques for verifying extra-functional properties (e.g. modeling and analyzing dependability). They can describe the techniques for runtime verification.
    8. Synopsis
    Lectures
     
    Overview
    1. Specialties of critical systems, attributes of dependability.
    2. Verification techniques in the development lifecycle
     
    Static verification techniques
    3. Verifying requirements (properties to verify, completeness and soundness, requirement management tools)
    4. Verifying designs (reviewing detailed plans, model-based verification)
    5. Verifying source code (coding standards, analyzing control flow and dataflow, analysis tools)
     
    Testing
    6. Testing levels and methods (goals of testing, testing in the different phases of the development process)
    7. Specification and structure based test design (black box and white box techniques, coverage criteria)
    8. Test automation (build processes, continuous integration, regression testing)
    9. Model and code based test generation (algorithms for test generation, using model checkers and constraint solvers, dynamic symbolic execution)
     
    Dependability analysis
    10. Verifying extra-functional requirements (categorization of extra-functional requirements, stress and robustness testing, fault injection)
    11. Qualitative and quantitative analysis (fault tree, cause effect analysis, FMEA)
    12. Dependability modeling (model based analysis)
    13. Runtime verification (requirement based monitoring, monitor synthesis)
     
    Seminars
    1. Incident management tools, announcement of home assignments
    2. Verifying requirements. Requirement management tool
    3. Verifying detailed designs. Using a source code analysis tool
    4. Tools for unit testing (unit testing and isolation frameworks)
    5. Test design techniques
    6. Automatic test generation tools
    7. Methods of dependability analysis
    9. Method of instruction Lecture and seminar
    10. Assessment
    Term:
    • To obtain the signature the students have to successfully complete a multi-phase team home assignment.
    • All phases of the home assignment have to be completed, and at least 40% of the points for each phase has to be achieved.
    Exam period:
    • Written or oral exam (depending on the number of the students taking the course).
    • Final mark: (0.5 * grade of the home assignment) + (0.5 * grade of the exam)
    Pre-exam: none
    11. Recaps

    The home assignment cannot be handed in after the deadline. [Code of Studies 122. § (2)]

    The home assignment cannot be improved with a re-submission. [Code of Studies 122. § (3)] 

     

    12. Consultations Pre-arranged with the lecturers
    13. References, textbooks and resources
    G. G. Schulmeyer, G. R. MacKenzie. Verification and Validation of Modern Software-Intensive Systems. Prentice Hall, 2000.
    N. G. Leveson: Safeware: System Safety and Computers. Addison Wesley, 1995 
    G. J. Myers, C. Sandler. The Art of Software Testing. John Wiley & Sons, 2004.
    M. Broy, B. Jonsson, J.-P. Katoen, M. Leucker, A. Pretschner. Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture Notes in Computer Science). Springer-Verlag, 2005.
    14. Required learning hours and assignment
    Contact lessons42
    Preparing for lectures7
    Preparing for exercises7
    Homework32
    Exam preparation32
    Total120
    15. Syllabus prepared by
    Dr. István Majzik, associate professor, MIT
    Dr. Zoltán Micskei, associate professor, MIT