Title: MSITSE Practicum Crystal Reimplementation
1MSIT-SE PracticumCrystal Reimplementation
- David Dickey
- Jonathan Aldrich (Customer)
- Mel Rosso-Llopart (Advisor)
2Agenda
- Introduce Static Analysis
- Introduce Crystal
- Stakeholders
- Technical Overview
- Requirements
- Picture of Success
- Quality Attributes
- Project Management
- Artifacts/Deliverables
- Schedule
- Process
- Risks
- Reflection
3What is a Static Analysis?
- Static Analysis is the process of examining a
program for specific characteristics without
executing the program.
int x 0 while(x lt 10) x if(x gt 0)
return true else return false
Logical Dead Code
4What is Crystal, and why does it need
reimplementing?
- Crystal is a Static Analysis (SA) framework
- Used in teaching about SA
- Facilitates creation of SAs
- Bundling of common SA structures and logic
- Dependent on Fluid
- Fluid has everything Crystal needs (and more)
- Fluid has intellectual property (IP) concerns
- Crystal inherits Fluids IP concerns
- Limiting Crystals use overseas
5Stakeholders
- Students
- Pickup Crystal quickly
- Learn from Framework
- Professors
- Tool for teaching
- Low maintainance
- Future Maintainers
6The system must
- Facilitate the creation of Static Analyses
- AST, CFG, Lattice, Worklist,
- Conform to the API as specified by the client
- Handle Errors
- Framework Student
- Satisfy a test suite. (Likely some form of the
current Crystal test suite) - Have usage documentation including installation
guide and API JavaDocs
7Picture of Success
- Submission of a usable and maintainable Static
Analysis framework - Installation Procedure
- Clean code
- Documented Design
8Quality Attributes
- Usability
- Simple (At the expense of efficiency)
- Mapping between lecture framework
- Error handling Debugging
- Modifiability
- SA is an evolving field
- Customer already thinking about the future
9Artifacts
- Proposal
- Background, Purpose, Responsibilities, high-level
Timeline - Project Tracking
- Low level tracking of tasks and schedule
- Requirements
- Objective, Context, Requirements list
- Architecture
- Business Drivers, Quality Attributes,
Architecture - Risk
- Risk list, Mitigation strategies
- Test Plan
- Guide testing procedures, creation and execution
10Schedule
Week 1 Ramp up. Practicum Proposal Week 2
Project Management, Familiarization,
Experimentation Week 3 Requirements and
Risks Week 4 Architecture Design Week 5
(Buffer) Week 6 Development Milestone/Delivery
Current Code Snapshot Week 7 MOSP Week 8
Development Week 9 Development Week 10
Development Week 11 Development Week 12
Documentation (Final Report and others) Week 13
Reflection and Wrap-up Delivery Code base,
Supporting Documents Week 14 End-of-semester
Presentation. Delivery Final Paper
Week 1 Ramp up. Practicum Proposal Week 2
Project Familiarization Experimentation Week
3 Project Familiarization Experimentation Week
4 Familiarization Requirements Week 5
Develop Reaching Definition Analysis Week 6
Develop Reaching Definition Analysis Week 7
Project Management MOSP Presentation Milestone
Middle of Semester Presentation Week 8
Development Week 9 Development Week 10
Development Week 11 Development Week 12
Documentation (Final Report and others) Week 13
Reflection and Wrap-up Delivery Code base,
Supporting Documents Week 14 End-of-semester
Presentation. Delivery Final Paper
11Development Process
- Agile
- Task List
- Each week, a set of tasks from this list will be
selected for completion. - Weekly Releases
- Demonstrations to the client of the product
- Continuous Customer Communication
- Keeps the product inline with customer needs
- Unit Testing
- Provides a level of confidence to components
12Risks
- Domain Knowledge
- Mitigation Customer guidance, readings, and
creating a SA from scratch - Tool Support (Eclipse)
- Mitigation Investigating Prototyping
- Scope Time
- Mitigation Project Management Communication
- Management Motivation
- Mitigation Set delivery dates for artifacts
13Reflection
- Research projects require more up-front effort to
better understand the domain. - Technical Client means more architectural
involvement and guidance
14Questions
15System Context
16Framework Runtime View
17Testing
- Unit Testing
- Component Testing
- Functional Testing
- SAs that test different framework properties
- Robustness testing
- Does the framework handle misconfigured SAs?