Course Details

SOFTWARE ENGINEERING

S1730

Course
SOFTWARE ENGINEERING
Code
S1730
Academic Year
2023/2024
Curriculum Year
2021/2022
Degree Programme
BIOLOGY
Curriculum
000 - CORSO GENERICO
Course coordinator
-
Credits
6
Lecture Hours
48
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OBB - Obbligatoria
Year
3
Teaching period
Primo Semestre
Campus
ALESSANDRIA
Teaching language
Italian
Course Contents
The course covers the phases of the software systems development process: specification, design, implementation, testing and maintenance. In addition, the UML language for system specification and design is introduced. The laboratory activity consists in the preparation of UML diagrams using a special editor.
Reference Texts
- I. Sommerville, "Ingegneria del software", Pearson Education Italia
– M. Fowler, "UML distilled", Pearson Education Italia
Learning Outcomes
The course includes a theoretical part and a laboratory part. The theoretical part deals with the Engineering process structured in the phases of specification, design, implementation, testing and maintenance. The aim is to show how this process can be applied to the development of software systems. The laboratory part introduces the UML language for the specification and design of systems. The activity in the laboratory consists in the preparation of UML diagrams related to a specific software system, through the use of a UML editor. This allows you to become familiar with these diagrams and learn more about them. Knowledge and understanding: engineering phases, formal aspects of the various types of UML diagrams. Ability to apply knowledge and understanding: application of the engineering phases to the development of a software system, and in particular, - study of the application domain; - deduction of the requirements from the domain; - modeling of the domain and requirements in UML; - definition and modeling in UML of a software architecture suitable for realizing the requirements; - definition and modeling in UML of the behavior of the system components during the execution of a certain requirement, with a level of detail that allows the implementation of the requirement in a programming language. Independent judgment: study and autonomous definition of the application domain, requirements, architecture and behavior of the system. Communication skills: - communication and coordination within the work group; - express the system requirements with different degrees of detail; - writing of UML diagrams in a complete, detailed and coherent way, in order to make them understandable to any programmer. Learning skills: acquire engineering terminology, organize the development of a system according to the engineering phases, model the specification and design aspects using a formal language such as UML.
Prerequisites
Knowledge acquired in programming and database courses.
Teaching Methods
The course includes lectures and practical lessons. Methods: the lectures deal with explaining the phases of Engineering and how these can be applied to the development of a software system. Furthermore, the UML language is presented both from the formal point of view and from the application point of view showing how it can be used to model the application domain, the requirements, the architecture and the behavior of the system. Tools: A specific case study is used during the lectures to show how to design the system starting from the deduction of the requirements from the application domain. The case study is progressively developed during the lessons concerning the practical application of the Engineering and UML phases. The purpose of the case study is to provide students with a concrete example of application of the procedures seen in the course. The preparation by students of their own project in UML is required during the hours in the laboratory. This project must have a different domain than the case study, but must have the same contents in terms of specification and design. The aim of the project is the practical application by the students of the same procedures seen during the lectures. A special UML (Visual Paradigm) editor is used both in the classroom and in the laboratory, to model the case study and to prepare the project, respectively. The course has its own page in the DIR platform (Didactics on the Net) which contains the course slides, UML tutorials, UML case study diagrams, instructions for the UML editor, some past written tests, etc.
Additional Information
N/A
Assessment Methods
The exam includes a written test concerning the theory part, and an oral test in which the project in UML language is discussed during the laboratory hours. Participation in the written test is free; on the other hand, the oral exam requires that the project be submitted one week before the exam. In the written test the knowledge of the various phases of the Engineering process, the acquisition of Engineering terminology and the application of some methods are verified. The written exam includes both questions (about 10) on theoretical concepts, and application exercises (about 3) relating to methods. Each question and each exercise corresponds to a score which depends on the relevance, complexity and length of the expected response. During the written test it is not allowed to consult the course material or manuals. On the DIR platform, on the course page, there are examples of past written tests. Two aspects occur during the discussion of the project: the quality of the UML diagrams created, in terms of precision, consistency and completeness; knowledge of the formal aspects of UML. The questions relating to the diagrams delivered are intended to clarify the defects found in the project. The number of such applications depends on the number of defects. Instead, the questions on the purely formal aspects of the UML language are about 4. Each diagram corresponds to a score depending on the complexity of the type of diagram and its correctness. The final mark is given by the average of the marks in the written and oral exams.
Detailed Syllabus
- Introduction to Software Engineering
- Software Product and Software Process
- Specification of systems requirements
- Specify with UML
- Systems design
- Design with UML
- System testing
- Systems maintenance
- Project management
- Software process models
- Introduction to some GoF Design Patterns
Expected Learning Outcomes
knowledge and understanding:
Knowing how to identify the necessary steps to create a software system starting from the request of a customer, up to delivery, according to the engineering process; Knowing how to identify the various process models; being able to identify and interpret a UML diagram. Know the main software architectures. Know the main software verification and validation techniques. Know the purpose and the basic steps about the management of a software project.

Applying knowledge and understanding:
Apply the methodologies of the development of a software process (deduction of requirements, design, development, verification and validation, maintenance) in a systematic way according to a process model. Knowing how to model the application domain, requirements, architecture, and system behavior using UML diagrams. Knowing how to develop code following UML diagrams.

Making judgements:
Identify the best process model to apply for software development. Identify the best requirements deduction techniques. Evaluate the most suitable architecture to use for software development. Identify the most appropriate techniques for verification and validation. Knowing how to independently choose how to manage the maintenance and/or evolution of software. Knowing how to assess the risks in managing the software project and identify possible solutions. Choose the UML diagrams to be used appropriately according to the development phases and methodologies involved.

Learning skills:
During the development of the project, the student acquires the ability to independently choose and use approaches, techniques, and technologies related to object-oriented design and programming.
Last update:09-09-2026 00:14:31