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 Development Methods and Paradigms

    A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftverfejlesztési módszerek és paradigmák

    Last updated: 2015. november 12.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics
    MSc degree program in Engineering Information Technology
    Applied Informatics
    Course ID Semester Assessment Credit Tantárgyfélév
    VIAUMA00 1 2/1/0/v 4  
    3. Course coordinator and department Dr. Lengyel László,
    Web page of the course https://www.aut.bme.hu/Course/VIAUMA00
    4. Instructors

    Name:

    Position:

    Department:

     

    Dr. Lengyel László

    Associate professor

    Dept. of Automation and Applied Informatics

    Albert István

    Assistant lecturer

    Dept. of Automation and Applied Informatics

    5. Required knowledge
    Object-oriented programming, Software techniques

    6. Pre-requisites
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIAUM126" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVITMMA01" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUM126", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVITMMA01", "FELVETEL", AktualisFelev()) > 0)
    VAGY Szak("6N-MA") VAGY Szak("6NAMAR") //KJK AVCE

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

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:
    Excluded courses: BMEVIAUM126, BMEVITMMA01

    7. Objectives, learning outcomes and obtained knowledge
    The goal of this course is to teach the software development methodologies, their application possibilities and conditions, practices and tools required and preferred for the design and development of methods. Students become practiced in treating issues of common software architectures and software systems, furthermore, they will have a good knowledge related to software development methods.
    The course discusses the software development methodologies, the methods and techniques supporting methodologies and development processes, furthermore,  practices, architectural requirements and solutions related to software systems. 

    8. Synopsis


     

    Lecture content

    1.

    Effective use of development tools, learn best practices, build a variety of devices, major development, debugging, testing, mapping processes.

    2.

    Typical architectural expectations and possible solutions related to the project management methodologies, showing the advantages and difficulties in each direction.

    3.

    The manual application testing processes, methods, presentation of some assets. Guidelines for the preparation of unit tests, the conditions for the application, advantages and disadvantages.

    4.

    Source code management methods, widespread source code management tools, branching strategies, introduction of best practice guidelines for effective teamwork.

    5.

    Specification and business analysis methods: Structured Systems Analysis and Design Method (SSADM), requirements analysis, requirements specification, logical and physical planning, types of requirements, measurable objectives, prototypes, business analysis techniques, business processes and documentation requirements.

    6.

    Software Design methods: software design, UML, UML profile, description and communication of user requirements, architecture, design, Domain Driven Design, Model Driven Development

    7.

    User Experience design, typical process steps and best practices, role in the software development process, the user testing methods.

    8.

    Methodologies, classic methodologies: the software development process, software development models, Rational Unified Process (RUP), Capability Maturity Model Integration (CMMI)

    9.

    Agile development methods 1 (Agile values and principles) Why do we need methodologies?, managing change in the software industry, agile methods, values, principles, agile manifesto, agile practices.

    10.

    Agile development methods 2 (supporting the implementation practice): agile design, goals of design, levels of design, vision, release planning, iteration planning, stand-up. User stories, estimates, iteration, "done, done", Agile modeling.

    11.

    Agile development methods 3 (Agile methodologies): eXtreme Programming (XP), Scrum, Microsoft Solution Framework (MSF), characteristics of methodologies, their use in everyday life.

    12.

    Project management methods and tools 1: general project management principles, constraints, resources and competence matrices, tasks, dependencies. General description of project design tools.

    13.

    Project management methods and tools 2: specific characteristics of IT projects, agile and classic methodologies, resource and task management, monitoring, device support.

    14.

    Case studies: concrete case studies demonstrate the effective use of development tools, testing, source code management practices, collaboration tools. Experiences, best practices.

     

     

    Seminar content

    1.

    Unit testing in practice: creating simple unit tests, application testing, mocking, error handling.

    2.

    Source code management methods 1: Microsoft Team Foundation Server, GIT, check-in / check-out, pull / push, merge, branching, offline repository management.

    3.

    Source code management methods 2: build automation, continuous integration, automated unit tests start, configuration-release devices, metrics.

    4.

    Specification and design: developing practical examples (SSADM), CMMI in practice, requirements analysis, business analysis.

    5.

    Agile Planning: practical examples of vision, release planning, iteration planning.

    6.

    Agile tools: common agile practices (test driven development, continuous integration, refactoring).

    7.

    Project management tools in practice: planning, resource management, scrum meetings, sprints, product backlog.

    9. Method of instruction
    Lecture, seminar
    10. Assessment
    During the semester: one midterm exam
    In the exam period: written exam.
    The midterm exam yields 40%, and the exam yields 60% of the final grade.

    11. Recaps
    The midterm exam can be repeated during the repeat period in accordance with the Code of Studies and Exams.

    12. Consultations
    Arranged on demand by the lecturer or instructor.
    13. References, textbooks and resources
    James Shore: The Art of Agile Development, O'Reilly Media, 2007.
    Martin Fowler with Kent Beck, John Brant, William Opdyke, and Don Roberts: Refactoring (Improving the Design of Existing Code), Addison-Wesley, 1999.
    Kent Beck et al.: Manifesto for Agile Software Development, Agile Alliance, 2001. 
    Kent Beck: Test Driven Development: By Example, Addison-Wesley, 2003.
    Martin Fowler: Domain-Specific Languages, Addison-Wesley Professional, 2010.
    Martin Fowler: Using an Agile Software Process with Offshore Development, Martinfowler.com
    James Shore: The Art of Agile Development: Refactoring. 

    14. Required learning hours and assignment
    Contact class42
    Preparation for the classes14
    Preparation for the midterm exam16
    Preparing homework-
    Reading assigned materials-
    Preparation for the final exam48
    Sum120
    15. Syllabus prepared by

    Name:

    Position:

    Department:

    Dr. Lengyel László

    associate professor

    Dept. of Automation and Applied Informatics

    Albert István

    assistant lecturer

    Dept. of Automation and Applied Informatics

    Dr. Charaf Hassan

    associate professor

    Dept. of Automation and Applied Informatics