Posts Tagged ‘ software engineering

What comes next? Short run roadmap

The second part of my internship has just begun. I spent some hours to think about what will be next in Dycapo development, in a short run.

A CS school mate joined the project. He will write a client for Dycapo using Android. Moreover, I will write my thesis on this project.
Therefore, there is a strong demand for documentation here. I also hope that someone joins the project.

Here is a short run to-do list for Dycapo:

  • Update all the UML diagrams (class diagram, add new sequence diagrams)
  • Write a short post about the decision of using XML-RPC as communication protocol
  • Update the existing methods to use the new features provided by RPC4Django
  • Write and export a first draft of documentation to be used as API

As you can see, there are no plans to add something new to Dycapo yet. I would like first to build a strong working base, even if lacking functionalities. More features will be added afterwards.

Moreover, I will begin to use SemVer versioning system.

Related posts

Dycapo Development Resumes

Dycapo development resumes from today. I’m going to write a tiny plan to point out the status of the project and what we are going to do next. Meanwhile, a new member joined SoNet and the project, to develop an Android client for Dycapo. Stay tuned for news.

Related posts

Some systems analyzed, thinking about protocols

My second physical meeting at SoNET – FBK is about to end. Today we discussed about applications that implements Dynamic Carpooling Systems on mobile phones. The list is hosted on the following Wiki page: http://www.opensocialcapital.com/dynamic_carpooling/wiki/index.php?title=Systems_Analyzed.
We also discussed about a protocol to be adopted for defining rides, to be used by the system in message passing. We took a look at the draft of OpenTrip Core, which currently defines the data structure only. There is also a tiny proposal of Dan Kirshner at his dynamicridesharing.org Wiki, called OpenDRS. We are also looking at Google Transit, because there is also the idea of starting a prototype that offers public transport rides, to help us reaching a critical mass.
An idea could be a merge of those proposals into a fork of OpenTrip Core, that is currently stopped and misses lots of features.
Next time we will discuss about our system, called temporary Dycapo, and I will prepare some software engineering documents.

Related posts

Announcing Pomotux, a free Task Manager implementing the Pomodoro Technique

Pomotux is  a C++ activity manager for the Pomodoro Technique created by Francesco Cirillo, a member of the XPlabs crew. The program focuses on the basic features of the technique. It does not focus on advanced techniques, such as the prediction of the number of pomodoros needed for an activity.

Activity Inventory Sheet

Activity Inventory Sheet


About the Pomodoro Technique

The Pomodoro Technique is a time management method that can be used for any kind of task. For many people, time is an enemy. The anxiety triggered by “the ticking clock”, especially when a deadline is involved, leads to ineffective work and study habits which in turn lead to procrastination. The aim of the Pomodoro Technique is to use time as a valuable ally in accomplishing what we want to do in the way we want to do it, and to enable us to continually improve the way we work or study.

The Technique is heavily explained on a 60+ pages book published on the website. Please visit the official website for more explanations.

A running Pomodoro

A running Pomodoro

We implemented Pomotux for the Software Engineering Project course, and it currently works under Gnu/Linux. Project page is located here. We are looking for coders to port it under Mac Os X, *BSD and Windows!

Related posts

Pomotux

Summary

Pomotux is  a C++ activity manager for the Pomodoro Technique created by Francesco Cirillo, a member of the XPlabs crew. The program focuses on the basic features of the technique. It does not focus on advanced techniques, such as the prediction of the number of pomodoros needed for an activity.

About the Pomodoro Technique

The Pomodoro Technique is a time management method that can be used for any kind of task. For many people, time is an enemy. The anxiety triggered by “the ticking clock”, especially when a deadline is involved, leads to ineffective work and study habits which in turn lead to procrastination. The aim of the Pomodoro Technique is to use time as a valuable ally in accomplishing what we want to do in the way we want to do it, and to enable us to continually improve the way we work or study.

The Technique is heavily explained on a 60+ pages book published on the website. Please visit the official website for more explanations.

A running Pomodoro

A running Pomodoro

Get Pomotux

Pomotux has been developed for the Software Engineering Project course at the Free University Of Bolzano by Daniel Graziotin, Riccardo Buttarelli and Massimiliano Pergher. We decided to release it under the GPL 3 license and host the code on Google Code. Everybody is free to contribute and join the project.

Pomotux is hosted on: http://code.google.com/p/pomotux/

Source code is available on: http://code.google.com/p/pomotux/downloads/list

The wiki contains more information and installation instruction, and a better description of the of the system implementation and Software Engineering outcomes

Activity Inventory Sheet

Activity Inventory Sheet

Technology Overview
The System has been developed using

  • C++ programming language (coding standard)
  • QT framework (4.5)
  • SQLite Database library
  • LiteSQL Object Relational Mapper framework

Useful tools used during development:

  • CXXTEST Testing Framework
  • CPPCHECK code analyzer
  • Artistic Style code formatter

Project Status
The project succesfully passed the exam with a maximum degree. It has been developed under Gnu/Linux and has only been tested under Gnu/Linux (various distributions). It should be cross-platform. The only component that brakes cross-platform is LiteSQL, that should work on any *NIX system but not Windows. We are looking for testers and people to port it under Max Os X (and possibly) under Windows

Related posts

Introduction To Software Testing

Elements and Concepts – A brief overview


Download PDF version of the whole document. You can browse the article online but I encourage the download of the PDF since it is written with accuracy.


Introduction

This document contains some basic concepts and definitions about software testing. It has been written for studying a part of the Software Engineering Project course at my University. It is composed by a summary of the intersection of more than 10 different sources, all of which are cited. If you feel that some contents of this publication belong to your intellectual property and it is not cited, please contact the author who is willing to correct any mistake.

The first part of the paper focuses on the definition of the most important key aspects of software testing. Then some information about input partitioning are given. What follows is a research about code coverage and two useful and famous tools, Control-flow coverage and Data-flow analysis. A complete example on using those tools is then given. The second half of the document also contains the definition of the most important software testing practices.

The goal of this tiny document is to clarify key terms and therefore become a base start for the reader to go in deep with the interested topics. Another goal is to give a simple but clear example about data flow analysis, as I realized that not all the people understand the examples around the Net.

Software Testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. It can also be stated as the process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development, so that it works as expected and can be implemented with the same characteristics. 1

Read more

Related posts