Course materials for ICS 225: Software Process

Walt Scacchi
Wscacchi@ics.uci.edu

Last updated: 12:45 15 November 2004


Class Week #11: 
  1. Final Team Project Presentations
  2. Software Process Project Sites:
    1. Apache Team:   http://www.ics.uci.edu/~michele/SP/index.html
    2. Mozilla SQA and Release: http://www.ics.uci.edu/~acarder/225/index.html
    3. NetBeans IDE: http://www.ics.uci.edu/~cjensen/grad/225/
  3. Final Exam (in Class Week) 
  4. OSSD Process Model Taxonomy 
    1. Processes 
    2. Agents 
    3. Tools 
    4. Resources
  5. Final Exam (off-campus ;-)

Class Week #10: 
  1. Guidelines for Modeling OSSD Processes using Protege-SPM
  2. Notes from Class Discussion of Final Project Review
  3. Protege Open Source Software Development Process Model slide presentation
  4. Project Review and Discussion
    1. For each OSSD team project, we want to examine whether the "overall" taxonomies (e.g., the OSSD Process Meta-Model and the Open Source Software Tools ) adequately cover those found in Apache, Mozilla, and NetBeans projects under study.
      1. OSSD Process Meta-Model taxonomy
        1. OSSD Process taxonomy
        2. OSSD Agent taxonomy
        3. OSSD Tool taxonomy
        4. OSSD Resource (I/O artifacts) taxonomy
    2. Our goal is to be able to update these taxonomies (object hierarchies) to realize a more complete Open Source Software Production Architecture
  5. Course Evaluations

Class Week #9: 
  1. Software Process Project Sites:
    1. Apache Team:   http://www.ics.uci.edu/~michele/SP/index.html
    2. Mozilla SQA and Release: http://www.ics.uci.edu/~acarder/225/index.html
    3. NetBeans IDE: http://www.ics.uci.edu/~cjensen/grad/225/
  2. New recommended paper: A. Mockus, R. Fielding, and J. Herbsleb, Two Case Studies on Open Source Software Development: Apache and Mozilla , ACM Trans. Software Engineering and Methodology, to appear, 2002
  3. Memorial Day, No Class meeting

Class Week #8: 
  1. Current taxonomy of Open Source Software Tools (derived from Individual projects)
  2. Notes on Open Source Software Process (transcribed from class whiteboard today, with some revisions added)
  3. Protege-2000 (free, open source ontology-based modeling tool) selected as a Semantic Web process modeling tool for our projects.
    1. Watch this page for updates on availability of a process modeling tutorial/help/demo/??? using Protege-2000
  4. Observations on Revolution-OS ; movie trailer and excerpt available here
  5. Current (Version 2.4) OSSD Process Meta-Model (.ppt slides, with link to Open Source Software Tools)
  6. OSSD Process Modeling Template
  7. Project Downstream Process Engineering

Class Week #7: 
  1. Project Upstream Process Engineering
    1. Current OSSD Process Meta-Model (.ppt slides)
    2. Process agent teamwork structures
      1. Individual vs. group (e.g. "committer" vs. "Executive Committee" vs. "Apache Foundation")
      2. Pre-/post-conditions that "shift"  agent binding upward or downward
        1. Upward/downward in organization role hierarchy
        2. Upward/downward in process hierarchy
        3. Upward/downward shoft to account for project team reorganization
    3. Resource hierarchy
      1. Artifact hierarchy
      2. Artifact flow (process data flow) is "dual" of  process task flow (control flow)
      3. Artifact state vs. status as pre-/post-condition trigger for process/task shift
  2. Project Deliverable Templates
    1. Web Page
    2. Rich Pictures
    3. Use Cases
      1. May be linked to actual OSSD Web pages, tool bindings, or screenshots
    4. Support Tools
      1. Zope/Content Management System (Web Portal with support for roles, rules, workflow, dynamic (link) evaluation)
        1. Zope Tutorial (Flash format)
      2. Protege/Semantic Web (Meta-editor tailorable to xPADL, process meta-model, process model instances)
        1. xADL example (broken link fixed 22 May 2002)
        2. PML example (see J. Noll and W. Scacchi, Specifying Process-Oriented Hypertext for Organizational Computing , J. Network and Computer Applications, 24(1):39-61, 2001.)
      3. ArgoUML (Posiedon)/UML (UML IDE with limited support for Java)
      4. SourceForge vs. Tigris.org as project team Open Source Software Development Web site co-host.
      5. OpenOffice.org as project documentation tool?
  3. Project Midstream Process Engineering
  4. Recommended Readings
    1. C.R. Reis and R.P.M. Fortes, An Overview of the Software Engineering Process and Tools in the Mozilla Project , Proc. Workshop on Open Source Software Development , Newcastle, UK, February 2002
    2. A. Mockus and J. Herbsleb, Why not improve coordination in distributed software development by stealing good ideas from Open Source? , Proc. 2nd Workshop on Open Source Software Engineering, Orlando, FL, May 2002.
    3. T. Halloran and W. Scherlis, High Quality and Open Source Software Practices , Proc. 2nd Workshop on Open Source Software Engineering, Orlando, FL, May 2002.
    4. A. Brown and G. Booch, Reusing Open Source Software and Practices: The Impact of Open Source on Commercial Vendors , Proc. 7th International Conference on Software Reuse, 123-136, Austin, TX, USA, April 15-19, 2002. Appears in, C. Gacek (Ed.), Software Reuse: Methods, Techniques, and Tools, LNCS 2319, Spring-Verlag, May 2002.

Class Week #6:
  1. Topic 4: Downstream Process Engineering
    1. Instantiation and Enactment
    2. Monitoring and Measuring
    3. Articulation
    4. Evolution and Repository Management
  2. Process Engineering Summary Review
  3. Open Source Software Development Processes ( presentation slides )
  4. Team Project Guidelines

Class Week #5: 
  1. Individual Process Discussion
  2. Topic 4: Downstream Process Engineering
    1. Instantiation and Enactment
    2. Monitoring and Measuring
    3. Articulation
    4. Evolution and Repository Management
  3. Process Engineering Summary Review
  4. Team Project Guidelines

Class Week #4: 
  1. Topic 3: Midstream Process Engineering
    1. Visualization
    2. Prototyping, Walkthrough, and Training
    3. Transition Planning and Change Management
    4. Administration: Staffing and Scheduling
    5. Integration: Data and Systems
    6. Target Support Environment Generation
  2. Individual Process Discussion
  3. Readings
    1. S. Bendifallah and W. Scacchi, Work Structures and Shifts: An Empirical Analysis of Software Specification Teamwork , Proc. 11th. Intern. Conf. Software Engineering, IEEE Computer Society Press, Pittsburgh, PA. 260-270, (May 1989).
    2. P. Mi and W. Scacchi, Articulation: An Integrated Approach to the Diagnosis, Replanning, and Rescheduling of Software Process Failures , Proc. 8th. Knowledge-Based Software Engineering Conference, Chicago, IL, IEEE Computer Society, 77-85, 1993.
    3. P. Mi, M.J. Lee and W. Scacchi, Knowledge-Based Software Process Library for Process-Driven Software Development , Proc. 7th. Knowledge-Based Software Engineering Conf., Washington, DC, IEEE Computer Society, 122-131, September 1992.

Class Week #3: 
  1. Finish Topic 2: Upstream Process Engineering
  2. Initial Individual Process Discussion
  3. Individual Process Refinement Assignment
  4. Topic 3: Midstream Process Engineering
    1. Visualization
    2. Prototyping, Walkthrough, and Training
    3. Transition Planning and Change Management
    4. Administration: Staffing and Scheduling
    5. Integration: Data and Systems
    6. Target Support Environment Generation
  5. Readings
    1. J. Noll and W. Scacchi, Supporting Software Development in Virtual Enterprises , Journal of Digital Information , 1(4), February 1999.
    2. J. Noll and W. Scacchi, Specifying Process-Oriented Hypertext for Organizational Computing , J. Network and Computer Applications, 24(1):39-61, 2001.
    3. W. Scacchi, C. Jensen, J. Noll and M. Elliott, Multi-modal Modeling, Analysis and Validation of Open Source Software Requirements Processes, working paper, Institute for Software Research, September 2004.
    4. A. Monk and S. Howard, The Rich Picture: A Tool for Reasoning about Work Context , Interactions , March-April 1998.

Class Week #2: 
  1. Finish Topic 1 Discussion
  2. Project Introduction
  3. Topic 2: Upstream Process Engineering
    1. Meta-modeling
    2. Modeling
    3. Analysis
    4. Simulation
    5. Redesign
  4. Readings
    1. P. Mi and W. Scacchi, A Knowledge-Based Environment for Modeling and Simulating Software Engineering Processes , IEEE Trans. Data and Knowledge Engineering, 2(3):283-294, September 1990. Reprinted in Nikkei Artificial Intelligence, 20(1):176-191, January 1991, (in Japanese). Reprinted in Process-Centered Software Engineering Environments, P.K. Garg and M. Jazayeri (eds.), IEEE Computer Society, 119-130, 1996.
    2. W. Scacchi, Understanding Software Process Redesign using Modeling, Analysis and Simulation , Software Process--Improvement and Practice, 5(2/3):183-195, 2000.
    3. W. Scacchi, Understanding the Requirements for Developing Open Source Software Systems , IEE Proceedings--Software, 149(1), 24-39, 2002.

Class Week #1: 
  1. Background information on Walt Scacchi
  2. ISR Research project site: Open Source Software Development
  3. Presentation materials for 2 April 2002 -- Course Overview
  4. Presentation materials for 4 April 2002 -- Topic 1: System Life Cycle and Process Models
  5. Readings:
    1. W. Scacchi, Process Models in Software Engineering , in J. Marciniak (ed.), Encyclopedia of Software Engineering (Second Edition), 993-1005, Wiley, New York, 2002.
    2. W. Scacchi and P. Mi, Process Life Cycle Engineering , Intern. J. Intelligent Systems in Accounting, Finance, and Management , 6(1):83-107, 1997.
    3. W. Scacchi, Understanding Open Source Software Development Communities, Processes, and Practices (NSF Research Proposal).