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