The complete software engineering process (see Aud's
writeup on Software Engineering) is a complex and multi-dimensional one. There are numerous Software Process models,
each with its own activities and sub-processes; each of these comes with its own objectives, principles and measurements.
A plethora of software tools exist to support the various activities. A Software Engineering class
needs to explore the various models and processes with an emphasis on fundamentals and principles.
Tools need to be incorporated that support formalisms, documentation, and process integration.
Lifecycle Tools to be used in Aud's software Engineering Classes
- Open Plan Project Management Software is a full-featured Project Planning package. The downloadable software (free for our use) is limited to 60 activities and 60 resources; but it should suffice for the class.
- ToFS (Tool For Systems). This software
integrates many of the front-end activities: Requirements Management, Test Planning, Problem Management,
and Documentation. It supports requirements traceability throughout all of these activities.
It is very intuitive and comes with an easy to use hands-on tutorial.
I have been communicating with the tool author (Ingmar Ogren) who will be licensing the complete
software (free) for our academic use.
- Together/J. This UML modeler and roundtrip engineering tool has
consistently been highly rated since its inception (it recently won Software Development Magazine's Jolt
award). Object International (http://www.oi.com) has given us free
academic licenses of the Development edition for the 1999-2000 academic year for all software engineering students.
- QVCS (Quma Version Control System). PC-based light-weight version
control system with all of the standard configuration management features.
We have been given free licensing by 'special arrangement' from Quma Sofware.
Additionally I will have Unix-based configuration tools (RCS and
ShapeTools) installed on
my Unix server for student use.
- PR-Tracker (Problem Tracking Tool).
This is an easy to use full-featured PC-based problem tracking tool.
We have been given free 10 user license's for our use.
Criteria used for software choice
- Tool is easy to learn and models principles being taught
- Good fit for small to medium-sized project
- Licensing: students can have multiple licensed copies at home or wherever (supporting a
distributed team-based development model)
- Integration with IDEs, databases, etc
- Additional reasons for choosing Together/J over Rational Rose
- Open API for integration with other development tools
- Aud's opinion: easier UI, generated java code cleaner
- Together/J's licensing supports working at home
A set of Software Process Activities
- Project Planning
- Requirements Definition
- Requirements Analysis
- Test Planning
- Prototyping
- Technology Search
- System/Software Architecture Specification
- Program Design
- Implementation
- Generalization/Reuse
- Verification
- Unit Test
- Integration Test
- Regression Test
- System Test
- Acceptance Test
- Release Management
- Maintenance
- Quality Assurance