ApresentaçãoChamada de TrabalhosChamada de FerramentasMini-cursos e TutoriaisComissãoPalestrantes InternacionaisPrograma e inscriçãoAcomodaçõesContato
 

 
Nenad Medvidović is an Associate Professor in the Computer Science Department at the University of Southern California. He is a faculty member of the USC Center for Systems and Software Engineering (CSSE) and a faculty associate of the Institute for Software Research (ISR) at the University of California, Irvine.

Medvidović received his Ph.D. in 1999 from the Department of Information and Computer Science at UC Irvine under the direction of Professor Richard N. Taylor. He also received an M.S. in Information and Computer Science in 1995 from UC Irvine, and a B.S. in Computer Science summa cum laude in 1992 from the Computer Science and Engineering Department at Arizona State University. Medvidović is a recipient of the National Science Foundation CAREER (2000) and ITR (2003) awards, as well as the Okawa Foundation Research Grant (2005).

Medvidović's research interests are in the area of architecture-based software development. His work focuses on software architecture modeling and analysis; middleware facilities for architectural implementation; product-line architectures; architectural styles; and architecture-level support for software development in highly distributed, mobile, resource constrained, and embedded computing environments. He is a member of the Association for Computing Machinery (ACM), ACM Special Interest Group on Software Engineering (SIGSOFT), and the Institute of Electrical and Electronics Engineers (IEEE).

Keynote Talk I: Moving Architectural Description from Under the Technology Lamppost

Software architecture description languages (ADLs) were a particularly active research area in the 1990s. In 2000, I co-authored an extensive study of existing ADLs, which has served as a useful reference to software architecture researchers and practitioners. However, the field of software architecture and our understanding of it have undergone a number of changes in the past several years. In particular, the Unified Modeling Language (UML) has gained a lot of popularity and wide adoption, and as a result many of the ADLs I had studied have been pushed into obscurity. In this talk, I will argue that the main reason behind this is that the early ADLs focused almost exclusively on the technological aspects of architecture, and mostly ignored the application domain and business contexts within which software systems, and development organizations, exist. Together, these three concerns - technology, domain, and business - constitute the three lampposts needed to appropriately illuminate software architecture and architectural description. I will use this new framework to evaluate both the languages from my original study, as well as several more recent ADLs (including UML 2.0).
     
Dr. Paul Clements is a senior member of the technical staff at Carnegie Mellon University"s Software Engineering Institute, where he has worked since 1994 leading or co-leading projects in software product line engineering and software architecture documentation and analysis.

Clements is the co-author of three practitioner-oriented books about software architecture: "Software Architecture in Practice" (1998, second edition 2003), "Evaluating Software Architectures: Methods and Case Studies" (2001), and "Documenting Software Architectures: View and Beyond" (2002). He also co-wrote "Software Product Lines: Practices and Patterns" (2001), and was co-author and editor of "Constructing Superior Software" (1999). In addition, Clements has also authored dozens of papers in software engineering reflecting his long-standing interest in the design and specification of challenging software systems.

He received a B.S. in mathematical sciences in 1977, and a M.S. in computer science in 1980, both from the University of North Carolina at Chapel Hill. He received a Ph.D. in computer sciences from the University of Texas at Austin in 1994.

Keynote Talk II: Software Product Lines: Past, Present, and Future


A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. This talk will give a brief introduction to software product lines and highlight some major success stories. Then it will turn to the state of product line research and pose some challenge problems for the future.
 

Tutorials: Short Courses: Tutorial I: Improving a Distributed Software System's Quality of Service via Architecture-Driven Dynamic Redeployment (Nenad Medvidović)

Nenad Medvidović is an Associate Professor in the Computer Science Department at the University of Southern California. He is a faculty member of the USC Center for Systems and Software Engineering (CSSE) and a faculty associate of the Institute for Software Research (ISR) at the University of California, Irvine. His biography is described here.

The quality of service (QoS) provided by a distributed software system depends on many system parameters, such as network bandwidth, reliability of links, frequencies of software component interactions, and so on. A distributed system's deployment architecture (i.e., the mapping of software components onto hardware hosts) can have a significant impact on its QoS. Furthermore, the deployment architecture will influence user satisfaction, as users typically have varying QoS preferences for the system services they access. Finding a deployment architecture that will maximize the users' overall satisfaction is a challenging, multi-faceted problem. In this talk, I will present: (i) an extensible model of a software system's deployment architecture; (ii) a suite of tailorable algorithms for estimating an improved redeployment; (iii) a visual environment for automatically exploring large numbers of deployment options; and (iv) a runtime infrastructure for effecting the preferred deployments during system runtime. I will discuss the evaluation of this approach on a large number of representative scenarios, including two industrial settings.


Tutorial II: Software Product Lines: Essential Practices for Success (Paul Clements)

Dr. Paul Clements is a senior member of the technical staff at Carnegie Mellon University's Software Engineering Institute, where he has worked since 1994 leading or co-leading projects in software product line engineering and software architecture documentation and analysis. His biography is more accurately described here.

A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Companies of all sizes and domains are using the software product line approach to achieve astonishing improvements in time to market, productivity, cost, and quality. This tutorial will introduce the essential activities and practices for success. We will discuss what product lines are (and are not), and the three essential activities for achieving a software product line: core asset development, product development, and management. The tutorial will cover some of the essential practices unique to software product line development, and present some major industrial product line success stories.


Tutorial III: Evaluating a Service-Oriented Architecture (Paulo Merson)

Paulo Merson has over 16 years of software development experience. He currently works at the Carnegie Mellon Software Engineering Institute (SEI) on software architecture, service-oriented architectures, the ATAM, and predictability in component-based development. One of his assignments at the SEI is teaching a two-day course called "Documenting Software Architectures" for industry and government practitioners. His recent speaking experience includes lectures to graduate students on topics such as J2EE, AOP, UML 2.0, and conference tutorials and invited talks at different companies. Prior to joining the SEI, he was a J2EE consultant and worked in the implementation of several enterprise applications. He holds a bachelor's degree in computer science from the University of Brasilia and a master's degree in software engineering from Carnegie Mellon University.

Are you involved in the development of a service-oriented architecture (SOA), or are you considering this approach in your next project? Do you believe architecture evaluation is an important step in the software life cycle because, among other benefits, it detects problems that are hard to fix once the implementation is in place? If you answered "yes" to both questions, we invite you to attend this tutorial where we'll provide practical information for the architecture evaluation of an SOA system. We'll discuss how to describe the architecture, what architectural approaches are applicable, what questions and design considerations can be used to probe the architecture, and other aspects of architecture analysis-always looking at the specifics of SOA solutions. In this tutorial, the SEI Architecture Tradeoff Analysis Method (ATAM) is used as a reference for the steps, inputs, and outputs of an architecture evaluation technique.

Short course I: Managing Software Reuse (Cláudia Werner)


Doctor Werner received her Ph.D. in 1992 in Systems and Computing Engineering from COPPE/UFRJ in Brazil. She is a Professor in the Systems and Computing Engineering Program in COPPE/UFRJ since 1993. She has various papers in journals, Brazilian and world-wide conferences; she participated in consulting projects in Petrobrás, Embratel, Banco Central (Central Bank of Brazil) and CEPEL and in courses for Petrobrás, Embratel, Citibank, the Rio de Janeiro city hall, IBM do Brasil and Banco Central. Her research interests are: Software Engineering, Object Orientation and Software Reuse.

Software Reuse is the discipline responsible for creating new software systems from existing software. This concept goes beyond simple reuse of source code, as other products, such as specifications, projects and test plans may also de reused. The main motivation for software reuse is the inscrease in productivity and quality levels in the software development process. The search for improvements in software quality and the rise of productivity have been widely explored by the software engineering community, in Brazil and abroad. Many organizations have seen in the last years cases of success when using a strategy for reuse in their software development process. The potencial for software reuse may be reached from a well-established Reuse Program, which aims to introduce reuse in a company as a means to make it more competitive, by making its production more agile and allowing the development of quality software products. This short course aims to present Reuse Management, including economic, organizational and personal aspects which may lead a company to reuse sofware in an effective form. We also present existing norms and the reference model MPS.BR which address this subject.


Short Course II: MDA - Patterns, Technologies and Challenges (Glêdson Elias)

Doctor Elias received his Ph.D. in Computer Science from CIn/UFPE in 2002. He started his academic career in 1993 and is currently a Professor in the Post-Graduate in Informatics Program in DI/UFPB, where he is the coordinator of the COMPOSE (www.compose.ufpb.br) research group. His main research interests are: Software Engineering, Component Technologies, Distributed Systems, Middleware and Mobile Computing.

This short course makes a critical analysis of MDA (Model-Driven Architecture) and aims to clearly evidence what can be adopted in current software development practices and which are the promises and visions for the future. Initially, this short course approaches basic MDA concepts, such as models, metamodels, model transformations, PIM, PSM and CIM, pointing out the importance of these for developing software based on models. Next, this short course discusses the main technologies currently available, including MOF, UML, XMI, CWM, SPEM and QVT, enumerating available tools, when it is possible. At last, this short course identifies problems and challenges, suggesting evolution and research tendencies in this field.


 


Institute of Computing (IC)



UNICAMP - State University of Campinas