Module also offered within study programmes:
General information:
Name:
Software engineering
Course of study:
2013/2014
Code:
RMS-1-603-s
Faculty of:
Mechanical Engineering and Robotics
Study level:
First-cycle studies
Specialty:
-
Field of study:
Mechatronics with English as instruction languagege
Semester:
6
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Miękina Lucjan (miekina@agh.edu.pl)
Academic teachers:
dr inż. Miękina Lucjan (miekina@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 can properly organize the steps necessary to complete the software project MS1A_K05 Execution of a project
M_K002 can work anassisted and in teams to complete a software project MS1A_K04 Execution of a project,
Execution of laboratory classes
Skills
M_U001 can apply the principles of object-oriented approach in software engineering MS1A_U14 Test,
Execution of a project,
Execution of laboratory classes
M_U002 can perform requirements analysis and formulate the development process that leads to producing a required software system, can properly select technologies and tools needed to complete the task MS1A_U14 Execution of a project,
Execution of laboratory classes
M_U003 can build the software system model in UML, using basic UML diagrams (use case, sequence, class and object, state machine and activity, panel) MS1A_U14 Test,
Execution of a project,
Execution of laboratory classes
M_U004 can deploy and simulate the model of software system in a modeling environment (IBM Rhapsody or other) MS1A_U10 Execution of a project,
Execution of laboratory classes
M_U005 can perform debugging and testing the system using various methods (with data logging, debugger, profiler, assertions, testing code, automatic testing tools - Rhapsody TestConductor) MS1A_U14 Execution of a project,
Execution of laboratory classes
M_U006 can properly select and apply the object-oriented design patterns MS1A_U14 Test,
Execution of a project,
Execution of laboratory classes,
Test results
Knowledge
M_W001 knows and understands the principles of object-oriented programming, as well as the advantages it brings MS1A_W10 Test,
Execution of laboratory classes,
Test results
M_W002 knows and understands the notion of software system and the main problems related to its development MS1A_W10 Test,
Execution of laboratory classes,
Test results
M_W003 knows the overall software development process organization; knows the leading practices and CASE tools supporting the process MS1A_W10 Test
M_W004 knows the basic concepts behind Model-Driven Architecture; knows the role and features offered by the UML language in this respect MS1A_W10 Test,
Execution of laboratory classes
M_W005 knows and understands the typical structure of a software system model in UML 2.* MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes
M_W006 knows and understands use case diagrams, their purpose, symbols used and their meaning MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W007 knows and understands sequence diagrams, their purpose, symbols used and their meaning; in particular knows their role in use case based structural modeling MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W008 knows and understands class and object diagrams, their purpose, symbols used and their meaning MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W009 knows and understands state machine diagrams, their purpose, symbols used and their meaning MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W010 knows and understands activity diagrams, their purpose, symbols used and their meaning MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W011 knows and understands panel diagrams, their purpose, symbols used and their meaning; knows how to bind UI elements to other model elements MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W012 knows and understands the basic object-oriented design patterns (Singleton, Multipleton, Iterator, Observer, State, Composite) MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
M_W013 knows and understands the basic software development life cycle kinds and development methodologies MS1A_W10 Test
M_W014 knows how to debug and test the software system MS1A_W10 Test,
Execution of a project,
Execution of laboratory classes,
Test results
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Others
Zaj. terenowe
Zaj. warsztatowe
E-learning
Social competence
M_K001 can properly organize the steps necessary to complete the software project - - - - - - - - - - -
M_K002 can work anassisted and in teams to complete a software project - - - - - - - - - - -
Skills
M_U001 can apply the principles of object-oriented approach in software engineering - - + + - - - - - - -
M_U002 can perform requirements analysis and formulate the development process that leads to producing a required software system, can properly select technologies and tools needed to complete the task - - + + - - - - - - -
M_U003 can build the software system model in UML, using basic UML diagrams (use case, sequence, class and object, state machine and activity, panel) - - + + - - - - - - -
M_U004 can deploy and simulate the model of software system in a modeling environment (IBM Rhapsody or other) - - + + - - - - - - -
M_U005 can perform debugging and testing the system using various methods (with data logging, debugger, profiler, assertions, testing code, automatic testing tools - Rhapsody TestConductor) - - + + - - - - - - -
M_U006 can properly select and apply the object-oriented design patterns - - + + - - - - - - -
Knowledge
M_W001 knows and understands the principles of object-oriented programming, as well as the advantages it brings + - + - - - - - - - -
M_W002 knows and understands the notion of software system and the main problems related to its development + - + - - - - - - - -
M_W003 knows the overall software development process organization; knows the leading practices and CASE tools supporting the process + - + - - - - - - - -
M_W004 knows the basic concepts behind Model-Driven Architecture; knows the role and features offered by the UML language in this respect + - + - - - - - - - -
M_W005 knows and understands the typical structure of a software system model in UML 2.* + - + - - - - - - - -
M_W006 knows and understands use case diagrams, their purpose, symbols used and their meaning + - + - - - - - - - -
M_W007 knows and understands sequence diagrams, their purpose, symbols used and their meaning; in particular knows their role in use case based structural modeling + - + - - - - - - - -
M_W008 knows and understands class and object diagrams, their purpose, symbols used and their meaning + - + - - - - - - - -
M_W009 knows and understands state machine diagrams, their purpose, symbols used and their meaning + - + - - - - - - - -
M_W010 knows and understands activity diagrams, their purpose, symbols used and their meaning + - + - - - - - - - -
M_W011 knows and understands panel diagrams, their purpose, symbols used and their meaning; knows how to bind UI elements to other model elements + - + - - - - - - - -
M_W012 knows and understands the basic object-oriented design patterns (Singleton, Multipleton, Iterator, Observer, State, Composite) + - + - - - - - - - -
M_W013 knows and understands the basic software development life cycle kinds and development methodologies + - + - - - - - - - -
M_W014 knows how to debug and test the software system + - + - - - - - - - -
Module content
Lectures:

Lecture covers the following topics:

  • software engineering as a discipline,
  • principles of object-oriented programming, and the advantages it brings
  • a software engineering proces
  • an overview of CASE tools
  • software systems modeling in UML, including a complete example of system
  • use case diagrams
  • class and object diagrams
  • behavioral diagrams: sequence, activity and state nmachine
  • system development methods (RUP, Scrum, XP, etc.)
  • object-oriented design patterns
  • round-trip engineering
  • software testing methods

Laboratory classes:

During laboratories the students:

  • learn how to use the software modeling environment (IBM Rhapsody)
  • work individually on a jointly discussed and realized example of software model in UML, using the basic UML diagrams (use case, sequence, class and object, state machine, activity, panel (UI))
  • deploy and simulate a model in IBM Rhapsody environment
  • test the system with data logging, debugger, profiler, assertions, automatic testing tools – Rhapsody TestConductor)
  • test units (classes) with testing code generated automatically (JUnit)

Project classes:

During projects the students prepare individually or in small teams in UML a model of a simple object-oriented program.
Example projects:

  • control of compound device (washing machine, ATM, music player, etc.)
  • airline reservation system
  • warehouse
  • library
    Upon completion, the model is simulated in IBM Rhapsody environment. Next, test cases are prepared and executed.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 88 h
Module ECTS credits 3 ECTS
Participation in lectures 15 h
Preparation for classes 13 h
Participation in laboratory classes 13 h
Contact hours 15 h
Completion of a project 15 h
Realization of independently performed tasks 15 h
Examination or Final test 2 h
Additional information
Method of calculating the final grade:

Grades are calculated as follows:

  • software labs 25 %
  • quizz 25 %
  • final test 25 %
  • project 25 %
    All of them must be passed.
Prerequisites and additional requirements:

Ability to efficiently program in object-oriented languages (C++ or Java)

Recommended literature and teaching resources:
  • Booch G., Rumbaugh J., Jacobson I.: The Unified Modeling Language User Guide, Addison
    Wesley Longman, 1999
  • Gamma E., Helms R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
  • Binder R.: Testing object-oriented systems, Addison Wesley Longman , 2000
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:
  • The quizz refers to material presented in the lectures and affects the final grade
  • The final test refers to material discussed in the software labs