Lectures |
Tools
and Techniques Series |
B.Jacobsen |
2 |
|
These lectures present
tools and techniques that are valuable when developing software for high
energy physics. We discuss how to work more efficiently while still
creating a high quality product that your colleagues will be happy with. The
exercises provide practice with each of the tools and techniques presented,
and culminate in a small project. |
|
ST-TT-L_1 |
Tools |
|
ST-TT-L_2 |
Techniques |
Software
Evolution and Testing Series |
P.Tonella |
2 |
|
The lectures on "Software Evolution and Testing" are
focused on the activities that characterize a software system, once it comes
to life and its source code is available for analysis and manipulation. The
quality requirements on the software can be enforced by continuously
improving its internal structure (refactoring) and by exercising it
dynamically |
|
ST_AS_L_1 |
Software refactoring:
Refactoring is the process of modifying the code so that the external
behavior is not altered, while the internal structure is improved.
In this lecture, some examples of code refactoring will be presented with
reference to the Object Oriented programming paradigm. They will be
introduced on a small program, used throughout the lecture. |
|
ST_AS_L_2 |
Testing
techniques
Testing aims at revealing the presence of defects in a software system.
While black-box testing techniques verify the compliance of the software
with respect to the specifications (functional testing), white-box
techniques are based on the analysis of the internal structure of the
software. In this lecture, the main white-box testing techniques (e.g., path
testing, data flow testing) will be surveyed. A brief presentation of the
ongoing research in automated test case generation concludes the lecture.
|
Software Engineering Series |
B.Jacobsen |
2 |
|
An introduction to the
principles of Software Engineering, with emphasis on what we know about
building large software systems for high-energy physics. These lectures
cover the principles of software engineering, design, methodology and
testing. |
|
ST_SE_L_1 |
Introduction to Software
Engineering |
|
ST_SE_L_2 |
Software Design,
Long-term Issues of Software Building |
Technologies for Interactive & Distributed Computing Series |
A.
Pfeiffer |
3 |
|
ST_IC_L_1 |
Python scripting language
In the first session an introduction to Python, an object-oriented
interpreted language will be given. After an introduction into the syntax of
Python including data types, functions, control structures (like if, for,
try) the aspect of loadable modules will be presented. An introduction into
basic File I/O and object persistency in Python will be followed by an
introduction to classes, inheritance and other object-oriented aspects of
Python. The session will finish with an overview of ways to extend Python
through extensions written in other languages such as C and C++. |
|
ST_IC_L_2 |
XML and related technologies (XSLT, ...)
The second session will introduce XML, the eXtensible Markup
Language, as a standard for document markup. XML defines a generic syntax to
mark up data with simple, human readable tags; thus providing a flexible
standard format for a variety of application domains. The session will
introduce the fundamental entities of XML, ranging from elements and
attributes, through namespaces to Document Type Definitions (DTDs) and the
definition of a valid XML document. Based on this, the session will then
look into the area of styling XML documents using the eXtensible Stylesheet
Language (XSL) in it's forms of XSLT and XSL-FO. Extensions to XML like
XPath, XLink and XPointer will be discussed in the context of Data-centric
Documents. The session will conclude with an overview of the DOM and SAX
models of representing the structure of an XML document. |
|
ST_IC_L_3 |
Distributed computing technologies and protocols
(SOAP, XMLRPC, Web services, ...)
Web services provide a standard means of communication among
different software applications, running on a variety of platforms and/or
frameworks. We will cover the definitions of the World Wide Web Consortium
(W3C) of Web Services and give an overview of their architecture. We show
how XML is used in the context of web services and discuss two major
protocols to interchange data between applications/web-services: XML-RPC and
SOAP. The various roles which software agents can have in the basic
architecture (Service requestor, Service provider and Discovery agency) are
discussed as well as model and XML format for describing Web services like
the Web Service Description Language (WSDL) and . WSDL enables one to
separate the description of the abstract functionality offered by a service
from concrete details of a service description such as "how" and "where" of
that functionality. |
Hours |
|
9 |
Exercises |
Tools
and Techniques Series |
B.Jacobsen |
4 |
|
ST_TT_E_1
ST_TT_E_2
ST_TT_E_3
ST_TT_E_4 |
Exercises on Tools and
Techniques |
|
|
Technologies for Interactive & Distributed Computing Series |
A.
Pfeiffer |
3 |
|
ST_IC_E_1
ST_IC_E_2
ST_IC_E_3 |
Exercises on Technologies for Interactive & Distributed Computing |
|
|
Hours |
|
|
|
|
7 |
Total hours |
|
16 |