Email Address. Sign In. Access provided by: anon Sign Out. Teaching and learning software project management: A hands-on approach Abstract: Project management is an essential activity across several areas, including Software Engineering. Through good management it is possible to achieve deadlines, budgets goals and mainly delivering a product that meets customer expectations.
MSC Southeast - Software Development & Support
Project management activity encompasses: measurement and metrics; estimation; risk analysis; schedules; tracking and control. Considering the importance of managing projects, it is necessary that courses related to Information Technology and Computer Science present to students concepts, techniques and methodology necessary to cover all project management activities.
Software project management courses aim at preparing students to apply management techniques required to plan, organize, monitor and control software projects. Lecture 2. Computer forensics This lecture introduces computer forensics, that is the technique focused on the analysis and preservation of evidences in a particular computer device after an attack occurs.
Common forensic traces are defined, namely traces left by deleted files, hidden data and fake emails. Lecture 3. Assembly programming: towards reversing This lecture introduces the main concepts of reverse engineering, that is, the ability to take an executable element and try to figure out how it works. The definition of this technique is introduced.
After some theoretical knowledge, examples of disassembling C codes and decompiling codes in different languages, namely Java and C, are presented. Lecture 4. Cyberdefense This lecture introduces the main concepts of cyberdefense together with common applied tools. After presenting this topic, firewalls are outlined.
Security Information and Event management SIEM systems, which refer to a general approach to manage cyberdefense, are finally presented. Lecture 5. The definition and types of malware, APTs and some real cases are introduced. Lecture 6. Vulnerabilities and exposures This last lesson presents vulnerabilities description and management.
It describes and gives examples of the most common vulnerabilities at software, network and web level. The definition, use and application of penetration testing pentesting are also presented, as well as some examples applying the well-known tool Metasploit.
Repositories of vulnerabilities are finally introduced. There were 23 teams working on mostly different projects. Selected projects, which students managed to have pull requests accepted, are: Terasology , Kodi , 0 A. There are several Software Development Life Cycle models following this link for a detailed discussion. All of these models have a set of common phases:. In the context of the Software Engineering course, students were asked to document the projects they adopted for each of these phases, except coding.
Extreme Software Engineering: A Hands-On Approach
The testing and maintenance phases required students not only to document these phases but also to code tests, fix bugs, and evolve features. After project selection, students were asked to fork the project, create a ESOF-docs folder, and adopt a Git branching model as described in the following link :. The course asked the students to hand-in that is, push into the repository their reports documenting each of the software development life-cycle. By following the links of the projects above, interested readers can see the contributions of the teams to the projects.
Using GitHub to teach software engineering help us create a more hands-on course, using real software projects. Students were very motivated because of the feeling that they could contribute to a project that is used by many people.
- Extreme software engineering a hands-on approach pdf download!
- The Stoics Reader: Selected Writings and Testimonia?
- Software Engineering: A Hands-On Approach;
- Numbers in graphic design : 0123456789.
Interaction with stakeholders project owners developers also helped students to develop soft-skills e. Students could also experience what it takes to contribute to an open source project.
here Many are even committed to contribute to open source projects further. Teaching this course was an overly rewarding experience. Students came up with remarkable results.
In the future, we will ask students to use parent-less branch in order to better organize the documentation see git checkout --orphan.
Related Software Engineering: A Hands-On Approach
Copyright 2019 - All Right Reserved