OBJECT ORIENTED PROGRAMMING AND SOFTWARE ENGINEERING
PROGRAMMAZIONE AD OGGETTI E INGEGNERIA DEL SOFTWARE
A.Y. | Credits |
---|---|
2017/2018 | 12 |
Lecturer | Office hours for students | |
---|---|---|
Edoardo Bontà | On appointment by email |
Teaching in foreign languages |
---|
Course with optional materials in a foreign language
English
This course is entirely taught in Italian. Study materials can be provided in the foreign language and the final exam can be taken in the foreign language. |
Assigned to the Degree Course
Date | Time | Classroom / Location |
---|
Date | Time | Classroom / Location |
---|
Learning Objectives
The objective of this course is to illustrate the main methodologies, techniques, and tools for complex software systems development process management, with particular emphasis on object oriented design and programming paradigm.
Program
01. Software engineering fundamentals
01.01 Basic concepts of Software Engineering
01.02 Software quality
01.03 Software development process
02. Object-oriented analysis and design
02.01 The object oriented paradigm
02.02 Introduction to software modeling
02.03 Unified Process
03. Unified modeling language (UML)
03.01 Introduction to UML
03.02 Structure diagrams: classes, objects, and packages
03.03 Behavior diagrams: use case
03.04 Robustness analysis and interactions among entities
03.05 Interaction diagrams: communication, sequence
03.06 State machine, activity, and other diagrams
04. Object-oriented programming
04.01 Introduction: data types, statements, methods
04.02 Classes and objects
04.03 Inheritance
04.04 Polymorphism, abstract classes and interfaces
04.05 Exception handling
04.06 Generics
05. Design patterns
05.01 Introduction to design patterns
05.02 Creational patterns: Singleton, Factory
05.03 Structural patterns: Proxy
05.04 Behavioral patterns: Observer, Visitor
06. Methods for software engineering
06.01 Requirements analysis
06.02 Principles of software design
06.03 Software testing techniques
06.04 Software metrics
07. Software project management
07.01 Software project planning
07.02 Project estimation
07.03 Risk analysis and management
07.04 Project scheduling
07.05 Software configuration management
07.06 Project documentation
07.07 CASE tools
08. Advanced topics
08.01 Formal methods
08.02 Cleanroom software engineering
08.03 Reengineering
Note: during the first semester, topics will be covered up to "04. Object Oriented Programming". In the second semester, the subsequent topics will be covered.
Bridging Courses
Although there are no mandatory prerequisites for this exam, students are strongly recommended to take it after Procedural and Logic Programming and Algorithms and Data Structures.
Learning Achievements (Dublin Descriptors)
- Knowledge and understanding
Students will acquire the fundamental knowledge necessary to the building of complex software systems, with special attention to the object-oriented design and programming paradigm, exemplified through the C# language.
They will become familiar with different development processes for the management of complex software systems, together with the visual notation UML for software modeling and the ‘design patterns’ as logical models for solving recurring problems in the software design and development phases
- Applying knowledge and understanding
Students will be able to apply the most widespread practices in agile and prescriptive process models for designing, implementing and testing complex software systems. They will also be able to estimate the costs of the software development, using empirical estimation models, as well as to plan the realization of a software project, monitoring the advancement and the cost of all the related activities.
- Making judgements
Students will be able to evaluate the goodness of a software not simply on the basis of their own experience and/or of subjective criteria, but on the basis of specific quality standards for the evaluation of processes and products.
- Communication skills
Students will be able to use the specific metalanguage of object-oriented programming languages, design patterns and agile and prescriptive process models.
- Learning skills
Students will acquire the ability to learn the syntactic and semantic peculiarities underpinning any object-oriented programming language.
Teaching Material
The teaching material prepared by the lecturer in addition to recommended textbooks (such as for instance slides, lecture notes, exercises, bibliography) and communications from the lecturer specific to the course can be found inside the Moodle platform › blended.uniurb.it
Supporting Activities
The teaching material and specific communications from the lecturer can be found, together with other supporting activities, inside the Moodle platform › blended.uniurb.it
Teaching, Attendance, Course Books and Assessment
- Teaching
Theory lectures and laboratory exercises.
- Attendance
Although recommended, course attendance is not mandatory.
- Course books
Pressman, "Software Engineering: A Practitioner.s Approach", McGraw-Hill, 2010.
(Pressman, "Principi di Ingegneria del Software", McGraw-Hill, 2008).
Fowler, "UML Distilled", Addison-Wesley, 2003.
(Fowler, "UML Distilled", Pearson Italia (Addison-Wesley), 2010).
Bochicchio et al., "C# 6 e Visual Studio 2015 - Guida completa per lo sviluppatore", Hoepli, 2016.
Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley, 1995.
(Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elementi per il riuso di software ad oggetti", Pearson Italia (Addison-Wesley), 2002).
- Assessment
Project (to be developed individually or by groups of two students), written and oral exam.
The project work, whose topic is freely chosen by the student, must be handed in at least 7 days before the written exam. It is approved if the mark is at least 18/30. The mark is valid for every exam session subsequent to the submission of the project. In case of late submission, the project will not be accepted. Should the project be resubmitted in a subsequent exam call, the mark is cancelled and a 5/30 penalty is applied to the mark of the newly submitted project.
The written exam, that can be taken only after passing the project work, consists of 6 questions and 1 exercise, split into two parts, and must be completed in 60 minutes. It is passed with a mark of 18/30, the mark is only valid for the exam call in which the written exam is taken.
The oral exam, that can be taken only after the approval of the project work and the passing of the written exam, consists of a discussion of the project work and of the written exam, plus further questions. If passed, it concurs to an adjustment comprised between -3/30 and 3/30 on the average of the two previous marks, thus giving the final mark. For further information on project works and written exams>http://www.sti.uniurb.it/bonta/didattica/ingsw/inge_soft.html
- Disability and Specific Learning Disorders (SLD)
Students who have registered their disability certification or SLD certification with the Inclusion and Right to Study Office can request to use conceptual maps (for keywords) during exams.
To this end, it is necessary to send the maps, two weeks before the exam date, to the course instructor, who will verify their compliance with the university guidelines and may request modifications.
Notes
The course offers additional e-learning facilities on the Moodle platform > elearning.uniurb.it
« back | Last update: 08/05/2018 |