300 likes | 406 Views
CPSC 372: Systems Analysis. J. Yates Monteith , Substitute for John D. McGregor Clemson University, Fall, 2014. Schedule. Getting Started Stuff Who Am I? Why am I here? Eclipse Process Framework Composer Overview, Processes, Process Engineering Getting Started
E N D
CPSC 372: Systems Analysis J. Yates Monteith, Substitute for John D. McGregor Clemson University, Fall, 2014
Schedule • Getting Started Stuff • Who Am I? • Why am I here? • Eclipse Process Framework Composer • Overview, Processes, Process Engineering • Getting Started • Creating Method Content and Method Plug-Ins • Creating Standard Content • Creating Processes • Creating Custom Categories • Publishing • Importing and Exporting
Who am I? • [J.] Yates Monteith • Ph.D. Candidate, Expected Graduation 2015 • Dissertation Title: Strategic Software Platform Adoption as Successive Iterations of Real Options Valuation • M.S. Computer Science, Clemson University, 2010 • B.S. Computer Science, Clemson University, 2008 • Research Interests • Software Ecosystems • Software Architecture • Software Metrics and Measurement • Software and Systems Modeling • Personal Interests • Education and Instruction • Music and Radio Broadcasting
Why am I here? • Dr. McGregor is in Vienna, Austria presenting a paper at the International Conference on Software Oriented Business. • Well, he did yesterday. • Why am I here? • Super Senior Ph.D. Student in the Strategic Software Engineering Research Group • Lots of Experience • CPSC 1110L TA – 3 Sections • CPSC 1200L TA -- 3 Sections • CPSC 215L TA – 3 Sections • CPSC 1110 Instructor – 1 Section • CPSC 2150 Instructor – 2 Sections across 2 Semesters • CPSC 8620 / 8750 / 1110 Grader • CPSC 372, 871, 871 Substitute – More times than I can count…
Eclipse Process Framework Composer • Eclipsed Process Framework Composer (EPF) is a tool for composing documentation about a process. • What is a process? • Stupid. A process is how you do something. • Let’s try a real definition: • A process explains the steps you take in order to create a finished process… • What inputs are required for each step of the process… • What outputs are generated at each step of the process… • Who is responsible for what inputs, outputs and activities in each step of the process. • Makes sense
EPF Process • The EPF is used to create documentation about or a model of a software development process. • However, the EPF is based off of a meta-model, so we could use it to describe other processes. • Dr. McGregor also uses it as a textbook in his course [1]. • He’ll be dessiminating additional information to you in the form of an EPF plug-in that contains additional information. • He’ll be expecting / encouraging you to extend his plug-in by incorporating additional materials from reading, in-class notes and discussion. • Hopefully, the extended plug-in you create will serve as a customized textbook and study guide. • Today I’ll be showing you how to use the EPF just a little bit.
EPF: Getting Started • Step 1: Download and Install the Eclipse Process Framework Composer • Located at: http://www.eclipse.org/epf/downloads/tool/epf1.5.0_downloads.php • Current version: 1.5.1.6 Released 1/22/2014 • Available for Linux/GTK and Windows. Should also work on Mac, because Eclipse Java and Mac GTK • Step 2: Unzip into the C:\ directory or another ‘short’ base directory (/opt would work well). • Using another base directory might result in path names that are too long, especially on Windows. • Step 3: Install JDK 6u35. • You could also install JDK 7u* or perhaps 8u*. I have not used / tested it with JDK 7 or 8. • Step 4: Open the folder at the extraction point and launch the epf application.
EPF: Getting Started – Method Libraries • Method libraries are the top level libraries for EPF. • Method libraries contain Plug-Ins and Method Configurations. • Plug-Ins define different entities within the Method Library and how they are related. • Configurations define how those entities are displayed and composed into a set of documentation. • We need a Method Library, a Plug-In and a Method Configuration. • Start by creating a Method Library. Call it CPSC371 Library • This Method Library will hold our Plug-Ins and Method Configurations. • Nota Bene: Uncheck the ‘use auto synchronization for all processes’ option.
EPF: Getting Started – Plug-Ins • Create a Plug-In. Call it CPSC 371 • Method Content • Content Packages • Standard Categories • Disciplines • Domains • Work Product Kinds • Role Sets • Tools • Custom Categories • Processes • Capability Patterns • Delivery Processes • Configurations
EPF Method Content – Content Packages • A Content Package encodes a set of entities that may be project or domain specific. • Quick aside, what is a domain? • A domain is a realm that exists within a certain context or subject matter. • Medical, Aviation, Software Tooling, Networking, Video Games, etc, etc • Includes: • Roles – Who does what? • Tasks – Things and activities to do. • Work Products – Things that are generated from tasks. • Guidance – Documents that provide insight into… anything. • We should create a content package.
EPF Content Packages -- Roles • Roles represent people who work on the project • Could be development people: programmer, tester, architect, etc. • Could be business people: manager, lawyer, business analyst, marketer, etc. • Could be technical people: system administrator, etc. • We can give them descriptive information. • We can give them work products for which they are responsible. • We can give them relationships to guidance entities. • We can put them into a custom category.
EPF Method Content – Tasks • Tasks represent activities that are done during development. • We can give them descriptive elements. • We can define a number of steps in the task. • We can assign roles to perform the task. • We can define work products that are inputs and outputs of tasks. • We can provide relations to guidance entities. • We can assign tasks to a custom category.
EPF Method Content – Work Products • Work Products are ‘things’ that are created by roles and used in or produced from tasks • Three Types: Artifacts, Deliverables, Outcomes • Artifact is a thing used in or produced from development. • Test plan, source code, etc. • Deliverable is a thing that is delivered to another entity. • Could be a test plan delivered to the test team. • Software model to the development team. • Outcome is a result of some task or activity. • Could be a test log. • Each Work Product can b… • Given a custom category. • Assigned guidance • Can be categorized by Work Product Kind (More later…) • Provided a state. • Deliverables can also be divided into deliverable parts.
EPF Method Content – Guidance • Guidance represents an entity that augments information on another entity. • Guidance provides additional information about another specific entity. • For example… • Say we have a discipline called
EPF Method Content – Guidance • Guidance represents an entity that augments information on another entity. • There are tons of different types of Guidance entities: • Checklist • Concept • Example • Guideline • Estimation Considerations • Practices • Reports • Reusable Assets • Roadmaps • Supporting Materials • Templates • Term Definitions • Tool Mentors • White Papers • Mostt different Guidance entities can be attached to any other entities. However, some are entity specific. • For instance, a Tool Mentor can only be attached to a Tool. • Guidance entities are not required to have a working EPF documentation, but may be helpful.
EPF Standard Categories • Standard Categories include sets of elements that don’t fit into Content Libraries, or may aggregate content from Content Libraries. • Disciplines – Activities we engage in during development. • Agile Development, Test Driven Development, etc. • Domains – Information about the “domain” or market we are developing in, and how it affects the project. • Medical, Aviation, Telemetry, etc. • Work Product Kinds – Groupings of work products for organization of, well, work products. • Legal Dox, Validation Dox, Development Artifacts, Testing Artifacts • Role Sets – Groupings of Roles for organization of personnel. • Development Personnel, Project Personnel, Teams, etc • Tools – Entities that describe tools that are used during development. • Eclipse, SonarQube, OSATE, Visual Studio, etc.
Standard Categories – Disciplines • A Discipline represents something structured we do during development. • Requirements engineering, integration testing, etc. • Contains fields for… • Descriptions • Tasks that the discipline composes • Referenced workflows or other processes • Guidance, as always. • Also, groupings of other disciplines • Agile practices, XP Practices, MDD Practices
Standard Categories – Domains • A domain represents the market segment in which we are developing software. • The domain dictates rules, standards and regulations that may apply to our software. • In the medical domain, security and privacy are incredibly important aspects. • In the aviation domain, correctness, fault tolerance and redundancy are incredibly important. • Domains are fairly simple in the EPF. • Domains can be given a description. • Work products can be associated with a domain. • Domains can have attached guidance.
Standard Categories–Work Product Kinds • Work Product kinds are an organizational entity for logical groupings of work products. • Could be things like requirements documents. • Would contain requirements elicitation questions, analysis data or specification documents. • Could be things like models and diagrams • Requirements models, Use Case models, class diagrams, etc. • Work product kinds can contain other Work Product Kinds and Work Products. • Work Product Kinds can have guidance attached.
Standard Categories – Role Sets • Role Sets are an organizational grouping for different roles. • Could be roles based on the types of responsibilities • Development roles might include programmer, tester, architect. • Management roles might include Project Lead, Project Manager, etc. • Roles could also define teams • A team has a programmer, a tester, a domain expert and a manager. • Roles sets group together roles and role sets. • Roles sets can have guidance attached to them.
Standard Categories – Tools • A Tool is an entity that represents a tool we use during the development process. • A tool could be a compiler like GCC/G++, could be an IDE like Eclipse, or static analyzer like gconf/gprof. • Tools have a special kind of guidance specifically for them, tool mentors. • Tools can also have other types of guidance associated with them
Processes • So now that we’ve defined our Content Library and our Standard Category, we can actually define some processes. • Capability Patterns show how we do something. • Like develop a software project. • Delivery patterns show we go from something we’ve got to something that can be delivered. • For example, like taking source and turning it into an application. • A process package contains multiple capability patterns and delivery patterns. • But first we need a configuration.
Configurations • A configuration describes a publishing configuration. • A configuration is published into a cohesive set of documentation. The end result is a webpage with linkages between different elements. • The configuration specifies a view of the different elements in the plug-in. • Different configurations could be used to produce different sets o documentation for different types of people. • A business analyst doesn’t need the same process documentation as a software developer. • For now, go ahead and create a Method Configuration through the File menu. Give it a name, and leave it blank.
Capability Patterns • Capability patterns represent a document that describe how we go about doing something. • What we’re capable of. • We can provide descriptive text. • We can describe a work breakdown structure. • Divided into phases, iterations, activities an milestones. Provides rhythm for how we perform a process. • We can create a team allocation. • Says what roles are used during each component of the work breakdown structure. • We can create a work product usage. • Describes the which work products are used in work breakdown.
Delivery Patterns • Same as capability patterns, but for a deliverable. • For the purposes of this class, we’re more interested in capability patterns as a vehicle for process than delivery patterns.
Finishing Up: Custom Categories • So now that we have everything defined, we can create a custom category that aggregates the entities we’ve defined. • A custom category provides a view of the information we have assembled. • A view provides a perspective on some data or model from a given point of view. • Like developer or business person or technical person or managerial person. • Create a new custom category and assign every entity you would like to be directly viewable to that custom category. • Provide a description of the view so that we know what we’re looking at.
Finishing Up: Publishing • Finally, we need to configure our Method Configuration. • The method configuration states which parts of our Plug-In, or other Plug-Ins, we would like to be accessible in published (webpage) form. • They also state which views (Custom Categories) we would like to include. • Once we have all of this defined, we can publish our process documentation into a webpage. • Go to Tools Publish • Select your configuration. • Select to publish part of or the entire configuration. • Select Static webpage, say where it should be saved. • Click finish and look at the pretty webpage.
Finishing Up: Importing Plug-Ins • Dr. McGregor will probably distribute a plug-in to you as a baseline source of information. This will need to be imported, and then you can extend the entities contained in that plug-in. • For extending entities, see the variability mechanisms at the bottom of the description on any entity. • To Import a Method Plug-In • File-> Import • Method Plug-In • Navigate to the directory. • EPF will automatically scan the directory and present all plug-ins found. • Select which one you would like to import.
Finishing Up: Exporting Plug-ins • Potentially, maybe, from time to time, Dr. McGregor may want you to export your plug-in and submit it to him so he can see what your notes are like. • To export a plugin… • File Export • Select Method Plug-In • Check the checkbox for any plug-in you would like to export. • NB: You should include any plug-ins from which you are linking or extending entities. • Select the location of the exported plug-in and click finish.
EPF: Resources and Stuff • Here’s a link to a sample EPF Documentation I did. • http://people.cs.clemson.edu/~jymonte/docs/epf/index.htm • Here’s a link to an EPF Documentation on making EPF Documentations • It’s so Meta • http://people.cs.clemson.edu/~jymonte/docs/epfTutorial/index.htm • Here’s a few links to different EPF Documentations and other articles on Process Eng. • http://epf.eclipse.org/wikis/epfpractices/ • http://epf.eclipse.org/wikis/openup/ • Here’s a link to the paper McGregor and I wrote on using EPF Documentation as a textbook. • Not a bad read if I do say so myself. 8 pages? • http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=5876099