This course is archived

Go here to see the updated course for the current academic year

Software Engineering

Course Code: INFO 303 • Study year: III • Academic Year: 2023-2024
Domain: Computer Science • Field of study: Computer Science
Type of course: Elective (1 of 3)
Language of instruction: Romanian
Erasmus Language of instruction: English
Name of lecturer: Ovidiu Domsa
Seminar tutor: Ovidiu Domsa
Form of education Full-time
Form of instruction: Class / Seminary
Number of teaching hours per semester: 56
Number of teaching hours per week: 4
Semester: Autumn
Form of receiving a credit for a course: Grade
Number of ECTS credits allocated 6

Course aims:

Abilities to develop and manage all stack for problems solving regarding information’s structuring, storing, processing, and documentation and date description.
Explain basic concepts in the field of software engineering and process stages software development to describe and compare models of software development processes
Analyze user requirements,identify solutions, compare and select tools appropriate software to resolve a given issue. Use proper UML core charts (UC, activity, classes, sequences, states) in system analysis and design software.

Course Entry Requirements:

Abilities to develop and manage all stack for problems solving regarding information’s structuring, storing, processing, and documentation and date description.

Course contents:

Course - Theoretical

1. Introduction to software engineering

1.1 Development of software systems

1.2 Software engineering features

1.3 Notes on the development of a software product

  1. The life cycle of a software product

2.1 Phases of the life cycle

  1. Requirements engineering

3.1 Specific issues

3.2 Types of requirements

3.3 Requirements analysis

 3.4 Specification of requirements

  1. Software modeling

4.1 Modeling languages

4.2 Structured modeling

4.3 Object-Oriented Modeling

4.4 UML Language

  1. Designing software systems

5.1 Software architectures

6. Characteristics of a software system

  1. Testing and validation

7.1 Verification and Validation Process

7.2 Static and dynamic verification

7.3 Testing and debugging

7.4 Planning the test

 7.5 Testing and validating systems

Seminars-laboratories

  1. Different tools comparison, general presentation, description of the functionalities, examples
  2. Applications frame and project design using UML tools
  3. UML description using software tools, Use proper UML core charts (UC, activity, classes, sequences, states)
  4. Designing tools. Designing objects–based content.
  5. Designing software systems,  Software architectures, Architectural Style, Architectural models
  6. Testing and validation tools
  7. Complet case study. Project.

 

Teaching methods:

Explain basic concepts, compare models of software development processes Analyze user requirements, identify solutions, compare and select tools. Use UML core charts.

Learning outcomes:

C2.2 The identification and explanation of appropriate mechanisms for software analysis, design and development.

C3.4. UML Data and model’s description.

C3.5. The development of software engineering components for business projects.

C6.2. The identification and explanation of base architectures, structures, organizing and management systems for software development stages.

C6.3. The use of various techniques for installing, configuring and managing different software tools

Learning outcomes verification and assessment criteria:

Project presentation and laboratory assignment grades.

Recommended reading:

McConnell Steve, Code Complete, Microsoft Press,, Microsoft, 2004, 914.
Ovidiu Domșa, Course notes, University 1 decembrie 1918, Alba Iulia, 2019, 92.
OTERO, C.E, Software Engineering Design, CRC Press, http://softwareengineeringdesign.com/Default.htm, on lline, 2012, 210.