Document 15075200

advertisement
Mata kuliah
Tahun
: T0144 – Advanced Topics in Software Engineering
: 2010
Pertemuan 6
Software Engineering Tools
Learning Outcomes
Pada akhir pertemuan ini, diharapkan :
Mahasiswa dapat menerapkan penggunaan tools dalam SE
untuk mempermudah development (RCS/CASE/etc)
3
Outline Material
•
Revision Control System
– Centralized
– Distributed
•
CASE tools
– Case Tools Classifications
•
•
Project Management tools
IDE Tools
4
Revision Control Systems
• Revision Control Systems also known as Version Control Systems, or Source
Code Management (SCM) Systems - is the management of changes to
documents, programs, and other information stored as computer files.
• It is most commonly used in software development, where a team of people
may change the same files.
• Changes are usually identified by a number or letter code, termed the
"revision number", "revision level", or simply "revision".
• For example, an initial set of files is "revision 1". When the first change is
made, the resulting set is "revision 2", and so on. Each revision is associated
with a timestamp and the person making the change. Revisions can be
compared, restored, and with some types of files, merged.
Sample Flow
Types of Revision Control Systems
• Centralized Server
– File Locking Method: Once one developer "checks out" a file, others can
read that file, but no one else may change that file until that developer
"checks in" the updated version (or cancels the checkout).
– Version Merging: The first developer to "check in" changes to the central
repository always succeeds. The system provides facilities to merge
changes into the central repository, thus preserving the changes from
the first developer when the other developers check in.
• Distributed:
– Distributed revision control (DRCS) takes a peer-to-peer approach, as
opposed to the client-server approach of centralized systems. Rather
than a single, central repository on which clients synchronize, each
peer's working copy of the codebase is a bona-fide repository.
Examples of Revision Control Systems
• Centralized
–
–
–
–
CVS – GPL
SVN (Subversion) – GPL
VSS (Visual Source Safe) – Commercial
etc
• Distributed
– Bazaar - GPL
– Git - GPL
– Mercurial - GPL
CASE Tools
• Computer-aided software engineering (CASE) is software to
support software development and evolution processes.
• Activity automation
–
–
–
–
–
Graphical editors for system model development;
Data dictionary to manage design entities;
Graphical UI builder for user interface construction;
Debuggers to support program fault finding;
Automated translators to generate new versions of a program.
CASE Technology
• Case technology has led to significant improvements in the
software process. However, these are not the order of
magnitude improvements that were once predicted
• Software engineering requires creative thought - this is not
readily automated;
• Software engineering is a team activity and, for large projects,
much time is spent in team interactions. CASE technology does
not really support these.
CASE Tools Classification
• Classification helps us understand the different types of CASE tools and their
support for process activities.
• Functional perspective
– Tools are classified according to their specific function.
• Process perspective
– Tools are classified according to process activities that are supported.
• Integration perspective
– Tools are classified according to their organisation into integrated units.
Case Tools Classification
Project Management Tools
• Usually combines several aspects of project tracking
–
–
–
–
–
–
Schedules, milestones, & deadlines Tracking
Task scheduling and Task Dependencies
Issues & Tickets Tracking
Wiki for information sharing
Links to Revision Control System
Reporting facilities
Examples of Project Management Tools
• Trac
http://trac.edgewall.org/
• Redmine
http://www.redmine.org/
• TaskFreak
http://taskfreak.net/
• OpenWorkbench
http://www.openworkbench.org/
• JIRA
http://www.atlassian.com/software/jira/
• OpenProj
http://openproj.org/
• Microsoft Project
http://www.microsoft.com/project/en/us/default.aspx
Integrated Tools
• A lot of the tools previously available separately are now
available in a single convenient Package.
• The trend is for an IDE to support most of the development
functions, from designing to writing to debugging to profiling to
documenting source code. (i.e. Netbeans)
• Some IDE tools have support for UML generation / reverse
engineering.
• Some IDE tools have support for refactoring built in.
References
•
•
•
Comparison of Revision Control Software on wikipedia
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Revision Control on wikipedia
http://en.wikipedia.org/wiki/Revision_control
Software Engineering (8th Edition) - Ian Sommerville – Chapter 4
Publisher: Addison Wesley; 8th edition (June 4, 2006)
16
Download