Lectures and Slides
[Look at the Schedule section for news and for checking when each of the lectures will be held!]
Introduction to the Course
- Here's the SLIDES with the general introduction to the course: motivations, goals, and practical information.
Part 0. About the Projects (Class of 2015)
Part I-a. Software Engineering and Software Processes: Concepts and Tools
-
Introduction to Software Engineering
Chapter 1 of Sommerville book. General introduction to key software engineering concepts.
Further readings:
-
Socio-Technical Systems
Chapter 2 of Sommerville book. Discussion on why modern software systems are socio-technical systems.
-
Critical Systems
Chapter 3 of Sommerville book. Explain what are the factors that make modern software systems critical for business and, often, for life.
-
Software Processes
Chapter 4 of Sommerville book. An overview of the different models of software processes and their phases.
Further readings:
-
Software Requirements
Chapter 6 of Sommerville book. Introduction to the concepts of user and system requirements, functioanl and non-functional ones, and to requirements documentation.
-
Object-oriented Modeling
Introduces the basic concepts of the object oriented paradigm and of object-oriented software modeling.
-
UML: Unified Modeling Language
Introduces the basic concepts and diagram of UML. Please refer to the UML distilled book for more examples and details.
Further readings:
-
Requirements Engineering
Chapter 7 of Sommerville book. Discussion on the issue of properly engineering the process of collecting and documenting requirements for software systems. Partially overlaps with the UML slides.
-
System Models
Chapter 8 of Sommerville book. Discussion on the system models that can be adopted to model software systems. Partially overlaps with the Object-oriented and the UML slides.
-
Architectural Design
Chapter 11 of Sommerville book. Discussion on the architectural models that can be adopted to design software systems. Partially overlaps with the UML slides.
Part I-b. Software Engineering and Software Processes: Management
-
Project Management from a Software Engineering Perspective
Chapter 5 of Sommerville book. Introduction to the key concept of project management, with the spcific issues that arise in the management of software projects.
-
Software Cost Estimation
Chapter 26 of Sommerville book. Discussion on the issue of measuring the cost of producing a software system, and on the possible quantitative software metrics.
-
Quality Management
Chapter 27 of Sommerville book. The issue of quality management in the software development process, the role of standards in quality management, and the use and limitations of software measurement.
-
Process Improvement
Chapter 28 of Sommerville book. Discusses how it is possible to improve the quality of a software development process, how to develop simple models of software processes, and introduces the notion of process capability and the CMMI model.
Further readings:
-
Security Engineering
Chapter 30 of Sommerville book. What does it mean to protect a system in a secure way. The concept of assets and the costs of security. Managing risks and good design practice.
Part II. Service Engineering and Complex Adaptive Systems
-
Service-oriented Software
Chapter 31 of Sommerville book. What are software services. Software-oriented architectures: components and issues. Technologies and standards for service-oriented architectures.
Further reading:
-
Software as a Service: towards a Service Science
Why software is a service. Why everything is going to become a service. Why there is need of a new economic/computing science of services.
Further Readings:
- "On Value and Value Co-Creation: A Service Systems and Service Logic Perpective", S.L. Vargo et al., European Management Systems, 2008.
- "Steps Toward a Science of Service Systems", J. Spohrer et al., IEEE Computer, Jan. 2007..
- "Service Science: toward a Smarter Planet"", J. Spohrer and P. Maglio, in Service Engineering, Wiley, 2009.
- "Above the Clouds: a View of Cloud Computing"", M. Armvbrust et al., Communications of the ACM, 2010.
-
Complex Adaptive Systems: Basic Concepts
What are complex adaptive systems. Global system dynamics. Emergent behaviors in nature. Implications for ICT/service systems.
-
Middleware Technologies for Service Systems
Middleware as a basic ingredient of service-centric computing. Models of middleware. Message, event, and dataspace-based middleware models. Distribution models.
-
Cellular Automata
What are cellular automata. The 1-D 256 binary cellular automata. Cellular automata as complex systems. Perturbed cellular automata. Implications for modern ICT/service systems.
Further readings:
-
Social Networks: Small World
Basic concepts of networks. Lattice networks and random networks. The Watts-Strogatz model of small-world networks. Properties of small world networks. Implications for models ICT/service sytems.
Further readings:
-
Social Networks: Scale Free Networks
Basic concepts of scale-free networks. The power law. The Barabasi-Albert model of preferential attachment. Properties of scale-free networks. Implications for models ICT/service sytems.
Further readings:
-
Software Agents
From Objects and Services to Software Agents. The concept of agency. Basic agent architectures. Applications of software agents.
Further readings:
-
Multiagent Systems
From service-oriented systems to multiagent systems. Social interactions in multiagent systems. Negotiation mechanisms. Applications of multiagent systems. Middleware for multiagent systems.
Further readings:
-
Agent-oriented Software Engineering
Key characteristics of agent software. From service ensembles to agent organizations. The GAIA methodology for agent-oriented analysis and design. Key forces driving the choice of a multiagent organization.
Further readings:
-
Collective (Swarm) Intelligence
Basic concepts of collective intelligence. Examples of collective intelligence in nature: synchronization, aggregation, sorting, foraging. Applications of collective intelligence. Implications for modern ICT/Service systems.
Further readings:
- "Go To the Ants: Engineering Principles from Natural Agent Systems", V. Parunak, Annals of Operations Research, 1997.
- "Case Studies for Self-organization in ComputerScience", M. Mamei, R. Menezes, R. Tolksdorf, F. Zambonelli, Journal of Systems Architecture, 2006.
- "Slides on Field-based Coordination Models", by M. Mamei and F. Zambonelli, 2010.
- "Programming Pervasive and Mobile Computing Applications with the TOTA Middleware", M. Mamei, F. Zambonelli, ACM Transactions on Software Engineering and Methodology, 2009.
- See also all the NetLogo "biology" models of the NetLogo Models Library.
-
Autonomic Computing, Pervasive Service Ecosystems, and Engineering Issues
The Autonomic Computing initiative. Autonomic communications. Cyber-physical ecosystems. Towards adaptive pervasive service ecosystems. The Key Engineering Issues for the Engineering of Complex, Autonomic and Self-organizoing, Service Systems.
Further readings: