Ruby ElKharboutly is an Assistant Professor of Software Engineering at Quinnipiac University. The Software Engineering Program is offered in the newly established School of Engineering. Dr. Ruby's research interests include software design and architecture, reliability and performance and software data analysis. Prior to joining Quinnipiac, Dr. Ruby was a full-time Professor at University of Connecticut. She has four years of industrial experience working as a software engineering and IT consultant. In her spare time, Dr. Ruby is mostly spending time with her kids, in the kitchen or at the gym.
Introduction to IRC
- How to people interact? By sending instant messages to all meeting participants.
- What is the pattern of communication? No specific pattern. It seems to be a long meeting where each participant sends a message whenever they have something to say.
- Are there any terms that seem to have special meanings? Yes, all the hash tags such as #info, #action, #topic,
- Can you make other observations? The time stamp, text after hash tags is bold.
Intro to Project Anatomy
Sugar Labs Project
Teams: Each team has a mission and specific set of responsibilities. Team pages are structured differently for each team.
Bugs: Each ticket has a number, summary, status, owner, type priority and release milestone. Bugs belong to components and are categorized according to priority, severity and bug status.
Repository: Web-based or local? web-based
Release cycle: The roadmap is updated at the beginning of each release cycle
Sahana Eden Project
Developers: Developers can review the BluePrints of the project including requirements and design. They can create User Story/Use Case as well. Complete instructions are included in the "Developer Guidelines" to introduce new developers to the project
Testers : Testers can assist as non-technical users by following the QA process documented on the wiki. They can report issues using Bug Reporting Guidelines. Developers can test their code as well by following Developer/Testing Guidelines. Finally, SysAdmins can set up a server by following the Continuous Integration process.
Designers: Designers can help make the application and the web site more usable. Guidelines for themes and usability are available on the website.
Bugs: Tickets are in the form or reports. Each ticket is structured in the same way as in the Sugar Lab Project
Repository: Web-based or local? local
Release cycle: The roadmap includes key features, modules and supported material
Project Evaluation Activity
Evaluation : File:Mifos-Eval-ElKharboutly.xlsx
FOSS In Courses Activity
I am interesting in the design and architecture of the FOSS projects in general. To be able to reverse engineer a project and model the design. To evaluate the design and suggest improvements. My students are using FreeMind this semester to map the design and architecture. I could have benefited form the project evaluation activity to help students understand the project.
Part 1-Bug Reports:
- Define what each of the column names below indicate. Include the range of possible values for 2-7 below. Feel free to explore beyond the page to find more information.
- ID : Bug Identifier
- Sev : how server the bug is. blocker to trivial/enhancement
- Pri : used by bug assignee to prioritize his/her bugs
- OS : Platform
- Product : Project or component to which the bug belongs
- Status : the current bug status UNCONFIRMED, NEW, ASSIGNED, REOPENED, NEEDINFO
- Resolution : Is left empty for this product
- Summary : description of the problem
- Describe how you discovered the definitions and how did you find the information from above? I am vary familiar with bugzilla since I had attempts to data mine and analyze some of the bug repositories a couple of years ago. I went to the help page for extra information
- Identify the order in which the bugs are initially displayed?
They are ordered by status
- What is the meaning of the shading of some bug reports?
- What is the meaning of the colors used when describing a bug (red, gray, black)?
red : Critical gray : Enhancement Black : Others
- Select a bug that you think that you might be able to fix and look at it more closely (click on the bug number).
- Identify when the bug was submitted.--2002-05-07
- Identify if there has been recent discussion about the bug? -- None
- Is the bug current? Reponed
- Is the bug assigned? To whom? Panel Maintainers
- Describe what you would need to do to fix the bug. Turn Autoshow on for hidden panels
- Identify when the bug was submitted.--2007-05-10
- Identify if there has been recent discussion about the bug? -- 2011
- Is the bug current? Assigned
- Is the bug assigned? To whom? ATK maintainer(s)
- Describe what you would need to do to fix the bug. Append documentation to explicitly specify which classes need to be completely implemeted.
Part 2 - Collective Reports
- How many bug reports were opened in the last week? How many were closed? 46461
- What was the general trend last week? Were more bugs opened than closed or vice versa? more closed bugs than open
- Who were the top three bug closers? Why is this important to know? Matthias Clasen, Michael Schumacher,Jim Nelson indicates how much they contribute to the project
- Who were the top three bug reporters? Are these the same as the top three bug closes? What is the overlap in these two lists? Jo, Michael Catanzaro, Bastien Nocera. Some programmers report bugs while testing the product
- Who are the top three contributors of patches? Ray Strode,Carlos Garnacho,Marcos Chavarria Teijeir
- Who are the top three reviewers of patches? Jonas Danielsson,Tim-Philipp Müller, Bastien Nocera
- What is the overlap between these lists and the bug closers and bug reporters? There is some overlap
- What is the overlap between patch contributors and patch reviewers? No overlap
- What other reports can you generate?
FOSS in Courses 2
I would like to integrate open source development in my Software Design and Architecture class. One way would be to discuss the architecture of one of the projects and use it as a case study. For there term project, students can reverse engineer a code base and extract the underling design and architecture of the application. I would expect them to be able to contribute to the project through bug fixing or enhancements.
Learning outcomes for a an term project
- Evaluate an existing project and analyze its current documentation
- Read and understand professionally written code
- Appreciate the importance of code documentation and project documentation
- Identify, describe and test bugs.
- Develop architecture and design documentation for an existing project
- Recognize coding conventions and design patterns.
- Contribute to open source development
Pre-requisite knowledge needed to complete the activity OOP and java
Estimate the time required for instructor prep, for student completion and elapsed calendar time . Are you going to have to synchronize your activity with the community or can the activity/topic be covered independent of the HFOSS community schedule. Input required from the HFOSS community I will need help to better understand the project and technologies involved
Contribution and its usefulness Complete documentation of the project design This project is a team project. It will be evaluated on the correctness of the design and architecture creating. Also understanding the different technologies involved. I don't think the work should be submitted to the HFOSS community except if the students manage to contribute to the project. The main barrier could be the complexity of the project and the amount of technologies/architectures and configurations the students need to learn.