Objective ICT-2009.1.2: Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.

Slides:



Advertisements
Similar presentations
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 20 Systems Operations and Support.
Advertisements

Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Introduction To System Analysis and Design
Chapter 6: Design of Expert Systems
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
SE 555 Software Requirements & Specification Requirements Management.
Fundamentals of Information Systems, Second Edition
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
SDLC and alternative methodologies 1/14/2015 © Abdou Illia MIS Spring 2015.
12 Steps to Useful Software Metrics
What is Business Analysis Planning & Monitoring?
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
S/W Project Management
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CPIS 357 Software Quality & Testing
Rational Unified Process Fundamentals Module 4: Disciplines II.
Business Analysis and Essential Competencies
1 How to Apply Static and Dynamic Analysis in Practice © Software Quality Week ‘97 How to Apply Static and Dynamic Analysis in Practice - Otto Vinter Manager.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Statistics Monitor of SPMSII Warrior Team Pu Su Heng Tan Kening Zhang.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
1 Introduction to Software Engineering Lecture 1.
Lecture-3.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Component 8 Installation and Maintenance of Health IT Systems Unit 4 Structured Systems Analysis and Design This material was developed by Duke University,
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Purpose: The purpose of CMM Integration is to provide guidance for improving your organization’s processes and your ability to manage the development,
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Foundational Program Overview September  2004 Copyright RosettaNet. RosettaNet Foundational Programs Program Overview ProgramPhase InvestigateDesignImplement.
Rational Unified Process (RUP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
T Iteration Demo Tikkaajat [PP] Iteration
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 2 Software Maintenance Process Steve Chenoweth Office Phone: (812) Cell: (937)
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Software Design and Architecture
Configuration Control (Aliases: change control, change management )
Softheme Service Model Software Outsourcing Solutions.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Open source development model and methodologies.
Chapter 18 Maintaining Information Systems
The Systems Engineering Context
ESMF Governance Cecelia DeLuca NOAA CIRES / NESII April 7, 2017
Chapter 8 Software Evolution.
Presentation transcript:

Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas

Target Outcome b) Highly Innovative Service / Software Engineering  Service / Software engineering methods and tools covering automatic support at run-time for decisions and changes that are currently adopted at design time. Focus is on innovative approaches to very large, dynamic open service networks, user development of services/software, systems evolvability and acquisition, reasoning and incorporation of domain knowledge in all phases of the service/software life cycle. High-level description and executable languages for services/software with support for adaptation and technologies for improving system response time, performance and throughput are in the scope of the research  Verification and validation methods, tools and techniques assuring the quality of open, large-scale, dynamic service systems without fixed system boundaries, addressing the complete service and software life cycle.  Methods, tools and approaches specifically supporting the development, deployment and evolution of open source software. Investigation into the use of open source approaches for improving service engineering, deployment, management, evolution and take-up.

Main target  To drive maintenance effort to where it is most needed  Focus on large FLOSS projects  Use of all available data sources to predict where maintenance is needed

The problem  Effort (specially experimented effort) is limited and (in many cases) voluntary  Some parts of the code, some feature requests and bug fixes, some refactoring, etc are more in need of effort than others  Developer (neither project leaders) have a clear idea of what is more important, or how to assign their own effort  It is also not obvious how much effort different actions would need

The solution  Study past actions: commits, bug fixes, refactoring, etc.  Analyze factors for evolvability (eg, size or complexit, community, etc.)  Study relationships, correlations, estimate effort, etc.  Provide with ways of estimating effort needed for future actions  Provide with ways of priorizing requested actions, and detecting needed actions  Provide a “status and control panel” to visualize the status of a project, the available effort, the recommended actions, etc.

Relationship with call  “Methods and tools specifically supporting the development and evolution of open source software”  Quality improvement, over the whole life of the project  Evolvability and sustainability: helping FLOSS projects to evolve better

Techniques: data sources  Analyse and combine many different types of data sources. We need to study the entire “ecosystem” of open source software development, consisting of  source code  byte code and executable code  mailing lists  version repositories  bug tracking information  software models  (tests and test suites? documentation?)  information about the developer community  user community (who is using the system, why and how? Is the system being reused itself?)  …

Techniques: analysis  Analyse the development process of FLOSS systems by using generic analysis techniques that can be applied on (combinations of) different data sources  measurement techniques (e.g. source code metrics, profiling metrics, versioning metrics, metrics about mailing lists, code coverage metrics, and so on)  visualisation techniques (for visualising software structure, dynamic information, software evolution in terms of commits or time, mailing lists, developer community, user community, …)  pattern detection techniques (for detecting all kinds of relevant patterns: "design patterns", "communication patterns", "evolution patterns", "smell patterns" and so on)  Dynamic analysis (e.g. profiling, benchmarking, code coverage)

Techniques: outcomes (1)  Sistem providing suggestions to what is needed for the healty funcitoning of the FLOSS ecosystem (e.g. refactorize some code, fix some bug, reduce the complexity of some code, assign a developer to some code, discuss more in mailing lists, etc.):  software improvement techniques (e.g. refactoring)  communication improvement techniques  To improve the communication between stakeholders (developers, users, other involved persons) based on antipatterns detected  improving the metadata (and the way it is stored) in the version repository  Improving the community  E.g. reassigning roles of persons, suggesting "conventions" to be used by the community to become more effective, …

Techniques: outcomes (2)  Sistem providing evaluation of efforts needed for pending tasks, helping to schedule them:  Characterize tasks  How much effort (and time) is expected to take every pending task  What tasks should be accomplished sooner  Evaluation of the impact of pending tasks  Differential evaluation (depending on who performs the task)  Tasks are not only fixing bugs, but everything from refactor some code, to reduce complexity, to redefine an object, to send some mail message, to look for duplicate or obsolete bugs, to produce a new stable release.

Some research questions  How can we characterize all actions in a project, and estimate the effort (for past actions)  How can we identify relationships, patterns and impact of past actions?  How can we link general parameters (such as complexity, OO metrics, bug fixes, bug reports, development messages, etc.) to decide when to recommend some action?  How to link information from regression tests, user experience, bug reports, etc. to future actions?  How can we decide when a major action (refactoring, code reuse, fork, new release, etc.) is needed?  How do actions on a project depend on its community structure, past actions, past patterns, etc.?

Open questions we still need to discuss  How does this fit into the "service engineering" aspect?  Maybe this is a non issue, maybe it suffices to only address the “software engineering” aspect? To be asked to the EU officer.  Is the proposed research proposal "highly innovative"? I guess it is, but...  Is this doable? Can we reasonable do this in two-three years?  Do we need some more expertise?  Should we focus on a part of this? Maybe prediction and effort is too much?

Industrial partners (tentative list)  Large FLOSS projects (could some of them collaborate without being partners?)  ZEA Partners (Zope, Plone)  Mozilla Europe (Mozilla, Firefox)  GNOME  Apache  Companies in the business of analyzing software development (all of them?)  SIG,  Antelink,  Programeter, ...