SOFTWARE DESIGN

Course objectives

The aim of the course is to study and deepen the fundamental aspects related to software design such as software quality; the concept of module and modularization; the distinction between analysis, design, and implementation of applications; the notion of specification; etc. These topics are treated with emphasis on both methodological and experimental aspects using the UML language for the analysis phase, and Java language for the implementation phase. The introduction to each phase of the software design and implementation process will be followed by guided exercises designed to apply what has been learned in practice. At the end of the course the student will have acquired: the basic skills for the development of even complex software projects, familiarity with the basic principles of object-oriented programming, knowledge of Java language and advanced development environments.

Channel 1
IRENE AMERINI Lecturers' profile

Program - Frequency - Exams

Course program
-Software life cycle and quality: the organizational context. The program development cycle: requirements gathering, analysis, design & implementation, verification & maintenance. The qualities of the software: external & internal qualities. Modularization. Criteria for modularization. Object-orientation. - Introduction to Java: allocation of variables and objects, passing of parameters, constructors. Package, derivation between classes, inheritance, abstract classes, interfaces. Use of predefined libraries, collection frameworks, use of classes of the collection framework, iterators. I. Graphic interfaces (Java Swing). Socket. Competition in Java. Debugging and JUnit. - The analysis phase: introduction to the analysis phase. The UML language for analysis. Structural diagrams and behavioral and interaction diagrams: Class Diagrams, Object Diagrams, State and Transition Diagrams, Activity Diagrams. Specific. The methodology of analysis. Quality checks. - The project phase: objectives and expected results of the project phase. Specification of algorithms. Responsibility for associations. Use of data structures. Realization schemes for objects and values. Event management. Aspects related to competition. Manufacturing patterns. Java Class API designed. - The implementation phase: creation of structural, behavioral and interaction diagrams in Java. The making of classes. The creation of associations. Use of inheritance. Event and competitor programming to create dynamic behaviors.
Books
Core Java SE 9 for the Impatient, Cay Horstmann Second Edition, Addison-Wesley 2017
Exam mode
----
Lesson mode
La frequenza è facoltativa anche se altamente consigliata.
  • Lesson code1018706
  • Academic year2024/2025
  • CourseInformation Engineering
  • CurriculumElettronica
  • Year2nd year
  • Semester1st semester
  • SSDING-INF/05
  • CFU9
  • Subject areaIngegneria informatica