Unit SOFTWARE ENGINEERING
- Course
- Informatics
- Study-unit Code
- 55024706
- Curriculum
- In all curricula
- Teacher
- Alfredo Milani
- Teachers
-
- Alfredo Milani
- Hours
- 42 ore - Alfredo Milani
- CFU
- 6
- Course Regulation
- Coorte 2022
- Offered
- 2023/24
- Learning activities
- Base
- Area
- Formazione informatica di base
- Academic discipline
- INF/01
- Type of study-unit
- Obbligatorio (Required)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- Italian
- Contents
- 1 Software as Process and product. Software lifecycle.Requirements Analysi.Modeling and Design UML. SW maintenance.
2 SW Metrics: QoS and cost.
3 SW Testing and Security. Secure programming.
4 Reuse support technologies. Design Pattern and Software integration. - Reference texts
- Material:
Lecturer Notes available on elearning platform: www.unistudium.unipg.it
Reference textbook (refer to latest editions):
Sommerville, SOFTWARE ENGINEERING. Editore : Pearson Education Italia
Other additional references:about software design SW:
A. Binato, A. Fuggetta, L. Sfardini. Ingegneria del Software. Pearson, 2006.
about: UML
G. Booch, J. Rumbaugh, I. Jacobson. The UML user guide. Addison Wesley, 1999.
J. Arlow, I. Neustadt. UML e Unified Process. McGraw-Hill, 2003.
S. Bennett, J. Skelton, K. Lunn. Introduzione a UML. McGraw-Hill, 2002.
E. Damiani, M. Madravio. UML pratico. Addison Wesley, 2003.
H.E. Eriksson, M. Penker. UML Toolkit. Pearson, 2004.about: Design Pattern
E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns. Addison-Wesley, 2002.
C. Larman. Applicare UML e i pattern. Pearson, 2004. - Educational objectives
- Knowledge and application of
techniques and standards for designing, development, organization and evaluation metrics of information systems
main techniques for software testing. Secure Programming best practices
programming techniques based on design patterns - Prerequisites
- Prerequisites needed in order to fruitfully and effectively attend this course include baci notions of programming and object oriented programming, logics and complexity of algorithms and data structures.
- Teaching methods
- In class lectures.
Lab sessions.
Seminars.
Ongoing assignments.
Written exam. Group project with final presentation. - Other information
- Elearning platform for student-lecturer interaction and communication http://www.unistudium.unipg.it
- Learning verification modality
- Final written exam and individual/group project presentation. Continuous evaluation with home/in class assignments for students attending the course can exonerate partially or totally from the final exams.
Final exams duration is two hours, the questions consist in solving practical problem of analysis, modeling and test of real domains, and open ended questions on theoretical issue of software engineering, design pattern and software integration.
The project consists in a team project with project report and presentation where each participant play a role in a software design and development team and applies course methodologies and techniques to a real problem.
For info on support sevices fr students with dsabilities or Specific Learnng Disorders visit the page: http://www.unipg.it/disabilita-e-dsa - Extended program
- Program:
1 The software: process and product
- Introduction
- Software life cycle models: waterfall, iterative / incremental models, spiral models
- Techniques, models and languages ¿¿for requirements analysis, design, implementation and software verification.
- Software maintenance
- UML (Universal Modeling Language), basic concepts, main diagrams and their correlation with the requirements analysis (requirement a.), Project (design) and implementation (implementation) phases. Actors, use cases, scenarios, stereotypes. Use case diagrams, class / object diagrams, sequence diagrams, collaboration diagrams, activity diagrams, state diagrams, component diagrams, deployment / release diagrams.
- Modeling exercises using UML on real application scenarios. Use of UML tools in Netbeans environment or other UML-based modeling tools
- IDE development tools and environments, versioning systems.
- Tools for generating documentation: their integration into IDE and UML environments. Autonomous tools (javadoc)
2 Product and process metrics
- Software quality
- Cost metrics: classic metrics, the function point method.
3 Techniques for reliability and safety
- The test phase: development tests, product tests and maintenance tests. The concept of coverage and coverage class of a test.
- Systematic and incremental tests.
- Functional tests (black box), exercises for creating test cases
- Structural tests (white box), exercises for creating test cases
- Secure Coding:
- Major software errors and vulnerabilities (guiding principles, areas and Common Weakness Enumeration)
- Standards and best practices for secure programming. The Java CERT: rules / recommendations, level structure and vulnerability risk assessment
4 Technologies to support reuse
- Design Pattern: basic concepts and objectives of design patterns and exercises of use and application of design patterns. The Model View Controller pattern and the Observer, Iterator, Factory and GUI Factory pattern. Pattern design classes.
Structural DP (Adapter, Façade, Composite, Decorator, Proxy, Flyweight), DP
Creational (Factory, Abstract Factory, Singleton, Prototype) Behavioral DPs (Observer, Mediator, Iterator, Chain of Responsibility, Interpreter.
- Techniques for software integration: the concept of middleware
-information-oriented integration (IOAI), (data integration, interface
processing e.g. API, user interface, embedded device)
- application process-oriented integration (BPAI) (composite and event driven, autonomous / distributed applications)
- service oriented integration (SOAI)
- Portal Oriented Integration (POAI): single system, multiple system, trading com - Obiettivi Agenda 2030 per lo sviluppo sostenibile
- Quality Education
Industry , Innovation, Infrastrucures
Sustainable cities and communities