Maturing software development organizations are beginning to identify a distinct role in the software team: Software Process Engineer. A software process engineer designs the software processes used by the organization. The software process includes the process content (identification of the roles, activities, and work products of the processes, along with specific techniques, tools, guidance, examples and other supporting information) and the lifecycle model (the ordering of and dependencies between software engineering activities and work products). A process engineer assembles a process from existing process components, choosing and tailoring components to provide the balance of agility and discipline necessary for their organization and projects. We have developed a graduate software engineering course to educate our students on the basic concepts of software process engineering. We use the OMG Software Process Engineering Metamodel and the IEEE Standard for Developing a Software Project Life Cycle Process as ways to model and compare process design alternatives and to provide mechanisms to assemble reusable process components into enactable processes. We use the Open Unified Process as an example process and we survey a wide range of techniques and methods that can be incorporated into a process. We use the Eclipse Process Framework Composer and associated process component libraries to assemble processes for specific projects. This paper describes the process engineering course and provides an informal assessment of the course effectiveness.
Department, Program, or Center
Center for Advancing the Study of CyberInfrastructure
Hans-Peter Bischof, Alan Kaminsky, and Joseph Binder. A new framework for building secure collaborative systems in ad hoc network. Second International Conference on AD-HOC Networks and Wireless (ADHOC-NOW '03), Montreal, Canada, October 2003.
RIT – Main Campus