Click on a project to read its description.
Device Outage Aggregator
AT&T Business Solutions manages large and small customer networks. Customers purchase many different services based on needs, pricing, and availability. Sometimes customers may outsource entire IT networks to AT&T, while other times they may only outsource portions of the network such as VOIP management, or Server Management.
AT&T has a wide catalog of potential services to sell to customers to meet these needs. Each service may take advantage of different tools and systems to satisfy customer requirements. Depending on the choice of services a customer requires and how these are managed, AT&T’s network management tools might not perform as needed or desired.
The goal of this project will be to glue together the network management tools for customers that have bought multiple services from AT&T. This will create better customer satisfaction, and will assist AT&T operations teams with day-to-day support of our customer’s networks.
AT&T uses SMARTS In-Charge for much of our network management tooling. This is an excellent tool for customers who are supported from a single management server. Unfortunately, when customers buy services that need to be managed from multiple servers, we lose network correlation. Correlation is when a customer’s networking topology is known by the tool so that it can make decisions on root causes of outages. An example would be when a customer loses power at a site, where AT&T is managing 5 networking devices. Since all 5 devices would not be operational during the power outage, AT&T only needs a SINGLE alert about the outage, with a list of devices impacted. This works perfectly when all customer devices are managed by a single server, but AT&T may receive multiple alerts when they are not.
The goal of this project will be to build Layer 2 and Layer 3 topology correlation tables for devices on multiple servers. AT&T will provide sample data from multiple customers to use for this project. Data will include Interfaces with IP Addresses and Subnet Masks, Routing Tables, MAC Address tables, and ARP tables. Additional data might also be needed, and will be provided.
The NC State team will need to design Layer 2 and Layer 3 correlation algorithms to build a database of connections between the devices. The team will use this database to aggregate multiple outage alerts into a single alert for all affected devices.
Programming Languages and Software
AT&T uses Perl as its primary programming language for this type of software development. Our software runs on RedHat Linux and we use MySQL for all databases.
Customer Value Geographic Visualization Tool
Students will work together to build a multi-tier service providing a customer zipcode analysis and visualization tool. Bronto has geolocation information on many customers. Utilizing Hadoop, students will use map-reduce algorithms to determine which customers reside within a given distance from a zipcode or set of zipcodes. The resulting customer sets will be returned to a web application to be listed or viewed visually on a map. Additionally, where customer conversion (value / spending) data are available, that data will be utilized to visualize zipcodes in a relative heatmap, depicting both size of the customer base and relative value.
Bronto Software provides the leading marketing platform for online and multi-channel retailers to drive revenue through email, mobile and social campaigns. Over 1000 organizations including Party City, Etsy, Gander Mountain, Dean & Deluca, and Trek Bikes rely on Bronto to increase revenue through interactive marketing.
Bronto has recently won several awards:
In 2002, Bronto was co-founded by Joe Colopy and Chaz Felix out of Joe's house in Durham, North Carolina. Since its humble beginnings, Bronto has emerged as a leader with a robust yet intuitive marketing platform for commerce-driven marketers.
Bronto's long-term focus on its customers, products and employees is now resulting in accelerated growth - its 60% growth in 2010 contributed to being listed as one of Inc Magazine's Top 100 fastest growing software companies.
Using a NoSQL/DHT-based platform for an OpenFlow/SDN Controller
Software Defined Networking (SDN) changes the current per-device intelligence of geographically diverse networks to a model of a central, or at least apparently central, controller. While data forwarding is still carried out autonomously by the individual devices, once the flows have been set up, defining those paths and implementing that policy on each device in the data path now becomes the responsibility of that central control function.
As such, the role of the controller is to maintain a database of endpoints, services and capabilities, and select the correct flow-path. It is therefore essential that these flows are inserted both accurately and in a timely fashion such that the operation of the controller has no appreciable impact on the setup time of the flow. This becomes especially difficult where the flow is being set up over a large geographical distance or across networks of varying quality or between different spheres of control, such as across two-or-more service providers.
Traditional database methods such as SQL with replication and publisher/subscriber contexts all suffer with their ability to maintain consistency over the WAN. They also make federations of information repositories difficult to achieve, as a tight relationship between each of the datastores is required. A NoSQL approach seeks to alleviate these issues via a Distributed Hash Table (DHT).
The overall goal of this project is to investigate alternative approaches to the distribution and management of data in the OpenFlow/SDN controller by utilizing a “NoSQL” approach. A NoSQL approach would replace the SQL-based table system employed in one of the open-source OF/SDN controllers such as Floodlight from BigSwitch with a DHT-based NoSQL database such as the Apache Cassandra project or similar. Once this is accomplished the impact on both forwarding setup delay for the data plane and WAN utilization for database updates/control plane traffic can be investigated. Programmability of the network from a single "centralized" controller is the goal of SDN. None of the current controller implementations, either closed or open-source, use NoSQL and only two have an extensible SQL framework.
To investigate how the underlying database technology will impact overall network performance, specific goals are:
Time permitting, the project should also consider and study the implications of multiple, federated zones-of-control such as would occur between two independent service providers. The implementation should ideally be carried out on a Cisco Nexus 1010 and take advantage of features in that platform that link the network availability to the underlying network.
Mobile Stock Trading & 3-D Virtualization: Game On!
Getting folks to come back for more and more is the name of the game! An NCSU Senior Design team worked hard last semester, successfully developing a stock trading game. Now it’s your objective to take the game to a new level, one that users can’t resist!
Last Semester’s Assignment
Students created a game which simulates stock trading. Players of the game are able to create and maintain mock stock portfolios that perform according to real world conditions, buy & sell stocks, as well as earn achievement points throughout the game. NSCU students successfully completed this project, creating an engaging game with a lot of potential for enhancement.
This Semester’s Assignment
We are looking to YOU to take the game to a new level, a level that makes players want to continue playing, over and over! This goal will be advanced by implementing two features:
Usability testing should be built into development plan.
NCSU Student Experience
Senior Design students will have access to top industry professionals to assist in the Design principles, Agile/Scrum Practices, overall developing/coding and Testing.
Game development experience is a plus.
Outage Reporting Mobile App
With the proliferation of smart phones, Duke Energy has increasingly relied on iPhones and Androids to communicate with our customers. This communication is not one-way, particularly during power outages. Customers need the ability to quickly report outages, and Duke Energy must provide timely status updates. The student team will create applications for both the iPhone and Android that allow customers to report outages to Duke Energy and also receive updates from Duke Energy on outage status. The GUI should be simple and user-friendly. Customers should have the ability to report outages with one click. Students are encouraged to be creative with technology and functionality. The ultimate goal is to create an application that is both effective and widely downloaded.
Project requires an Intellectual Property Agreement to be signed
High Level Description
We intend for our Senior Design project for the 2012 Spring Semester to develop an application called “Metarena.” For the semester, we will attempt to implement an application and a website to play a Territorial Control style game (similar to Risk) based on the player's progress in a popular video game. We are currently considering using one of the following games: Starcraft II: Wings of Liberty, Team Fortress 2, or League of Legends. While the entire project’s scope is multiple video games, we expect to only integrate one video game by the end of the semester, with an emphasis on making the application easily extensible to other popular video games.
Our project solves the problem of providing players that utilize multiple games and platforms a consistent metagame objective while playing certain video games. Unlike the popular achievement system, this project will provide a more nuanced metagame between friends and strangers. Ranking systems today only have a risk and reward for the participating team/player; our system will make every win and loss significant to a community of players. Previous games like Mech Assault 2 have integrated a game style similar to Metarena, a style that had greatly enhanced the multi-player experience. We aim to achieve the same advantages, but not by creating our own game, but by extending the multi-player experiences of games people already love to play.
Backup Load Generation & Analysis
Data Domain is the brand name of a line of disk backup products from EMC. Data Domain systems provide fast, reliable and space efficient on-line backup of files, file systems and databases ranging in size up to terabytes of data. These products provide network based access for saving, replicating and restoring data via a variety of network protocols (CIFS, NFS, OST). Using advanced compression and data de-duplication technology, gigabytes of data can be backed up to disk in just a few minutes and reduced in size by a factor of ten to thirty or more.
In our RTP Software Development Center we develop a wide range of software for performing backups to Data Domain systems including application libraries used by application backup software to perform complete, partial, and incremental backups.
With ever larger amounts of data to backup during constantly decreasing backup time periods, performance and especially scalability of performance is critical. Coupled with the increasing number of processor cores in modern hardware systems this presents a challenging environment for maximizing overall system performance and throughput. This project will develop a backup load generator that simulates a backup application program and use it to measure and characterize system and library software performance in multiple operational modes.
We want to develop an application level load generating tool that will simulate a backup application by “saving” (writing) data to a Data Domain backup system and/or “restoring” (reading) data previously saved on a backup system. The load generating application will run on a client-side system and use a set of provided interfaces to access the Data Domain system over a standard network connection.
We then want to use this load generating tool to measure and characterize the performance of some of the Data Domain application libraries. Of particular interest to us is how the performance of multiple single-threaded application processes compares to the performance of a single multi-threaded application process. We are also interested in seeing if there are system tuning operations that can improve the performance and scalability in either of these cases.
The project is proposed as two phases: creating the load generating tool and then using it.
Produce a backup load generating application and usage scripts that:
Phase 2 is an open ended performance measurement and analysis phase that will use the load generating program produced in Phase 1 to do one or more of the following. Which of these items are done will depend on the capabilities of the load generating program and the time and resources available after Phase 1 is completed. Some of these may involve using other standard system or open source performance tools as well as the load generating program.
Benefits to NC State Students
This project provides an opportunity to attack a real life problem covering the full engineering spectrum from requirements gathering through research, design and implementation and finally usage and analysis. This project will provide opportunities for creativity and innovation. EMC will work with the team closely to provide guidance and give customer feedback as necessary to maintain project scope and size. The project will give team members an exposure to commercial software development on state of the art industry backup systems.
Benefits to EMC
As storage usage worldwide continues to grow exponentially providing our customers with the features and performance they need to better protect and manage their data is critical. The demands of ever growing amounts of data and reliability complicate the roles of development engineers in designing and implementing new features and maintaining scalable performance in existing software. The proposed load generating tool and performance measurements based on this tool will provide a basis for architectural and design decisions in current and future versions of Data Domain backup application software and system software.
EMC Corporation is the world's leading developer and provider of information infrastructure technology and solutions. We help organizations of every size around the world keep their most essential digital information protected, secure, and continuously available.
We are among the 10 most valuable IT product companies in the world. We are driven to perform, to partner, to execute. We go about our jobs with a passion for delivering results that exceed our customers' expectations for quality, service, innovation, and interaction. We pride ourselves on doing what's right and on putting our customers' best interests first. We lead change and change to lead. We are devoted to advancing our people, customers, industry, and community. We say what we mean and do what we say. We are EMC, where information lives.
We help enterprises of all sizes manage their growing volumes of information—from creation to disposal—according to its changing value to the business through information lifecycle management (ILM) strategies. We combine our best-of-breed platforms, software, and services into high-value, low-risk information infrastructure solutions that help organizations maximize the value of their information assets, improve service levels, lower costs, react quickly to change, achieve compliance with regulations, protect information from loss and unauthorized access, and manage and automate more of their overall infrastructure. These solutions integrate networked storage technologies, storage systems, software, and services.
EMC's mission is to help organizations of all sizes get the most value from their information and their relationships with our company.
The Research Triangle Park Software Design Center is an EMC software design center. We develop world-class software that is used in our NAS, SAN, storage and backup management products.
EMC where information lives.
Project Manager’s Dashboard
Fidelity Investments spends a significant amount of money each year on technology projects. With so many projects in flight, it is often difficult for executives and managers of the organization to know where they should put their effort. To help resolve this, Fidelity would like to create a web-based "Project Manager's Dashboard" which allows Fidelity to visualize the scope and health of projects under its portfolio. The solution to this issue must:
Google Apps as an Enhanced Classroom Response System
NC State now provides Google Apps for Education to all students, faculty, and staff. This allows for the use of Google forms as a classroom response system. Faculty can pose questions to students during class using Google forms. Students can answer, and the instructor can look at these answers to find out how well the students understand the material. Instructors can modify their lectures based on student’s understanding of recently covered topics.
As a classroom response system, Google forms are quite usable today. But further innovation would make them much more attractive to instructors and students. We are interested in the following enhancements to Google spreadsheets and forms:
The project sponsors will be available to meet weekly with the project team and will be available for questions throughout the semester. Additionally, the project sponsors would be willing to evaluate prototypes early and often, even in their classes. If time allows, an empirical evaluation of the effectiveness of the system would be of interest.
Big Data Analytics
The growth of public domain data represents a unique opportunity and challenge to Business Analysts. The College of Management and College of Engineering have been working with several Business Units within IBM to develop new software and hardware platforms to perform analytics on large (100s of TB) data sets. Big Data Analytics is enabled by recent hardware and software innovations that are extremely important to many industries. Currently, “Watson-like” software installed on an x86 platform solves Business Analytics problems. Limitations on system performance, understanding data stores, and scalability of analytics present challenges that must be overcome. New Linux-optimized hardware platforms, Hadoop based analytics, and natural language processing represent solutions to the challenges of Big Data, however, these solutions must be designed and tested in this business environment.
IBM has provided a new powerful cluster, P system, for Big Data Analytics research. IBM is sponsoring this project in order to gain a better understanding of the operating environment required to meet the needs of the business community. Students will work closely with faculty members from the Colleges of Management and Engineering as well as with a senior researcher from IBM research. The project will require independent thinking and problem solving while working with IBM’s most advanced business analytics platform.
The project will address the following:
Skill Sets Required:
Project Management Portal
Background for Project
Maintaining customer relationships is critical to driving repeat and continued revenue streams in a service business. Not all projects go well, but such problems can be mitigated if the customer is kept apprised of project status. This student project will focus on developing a portal and web application that allow authenticated customers to track and monitor their I-Cubed project and key milestones, payment terms etc. This will improve both the customer’s and our internal management’s ability to monitor and track projects.
Using data available from our existing systems (Salesforce, Peachtree, and Microsoft Project), the team will create project-specific portals that will allow the tracking of our projects for both internal and external users. We will provide the students access to Convertigo technology and access to our key project systems to develop an integrated dashboard application with a mobile extension that can be provided to our customers and internal management.
The student team will get experience in application integration, mobile application development and user experience creation. I-Cubed will provide students with guidance from both I-Cubed internal experts and our existing customers. This is a great opportunity for students to learn a cutting edge platform and gain experience / exposure to delivering against customer requirements.
In successfully completing the project, the student team will:
The user interface will permit the customer to:
The user interface will permit an I-Cubed user to:
This project should be created with a reusable framework that can be quickly instantiated when a new project undergoes delivery. Significant attention should be focused on user experience to improve the adoption and usability of the technology.
Since 1984, I-Cubed has provided the people, products and processes to extend the value of customers’ enterprise systems. The company's subject matter expertise in Enterprise Applications, Product Lifecycle Management Consulting, Business Process Consulting and Rights Management provides a unique insight that translates customer needs into commercial products. I-Cubed's product and services portfolio helps customers accelerate the integration of enterprise systems and collaborate securely throughout the supply chain. I-Cubed has been sponsoring senior design projects for more than 10 years. I-Cubed’s office is conveniently located on NC State’s Centennial campus in Venture II.
Trust No One: Secure Communications in the Presence of an Untrusted OS
Modern computing systems are built with a large Trusted Computing Base (TCB) including complex operating systems, applications, and hardware. The TCB provides security and protection services for both data and processes within a computer system. Because the TCB lies at the lowest layer of the software stack, compromising any portion of the TCB results in compromising the security of the entire system, and sensitive information input to the machine no longer being protected. Given the size and complexity of the TCB in modern computers, it is very difficult to provide adequate protection to the TCB from attack and ultimately to provide protection to the entire computer system.
Much of the world we live in today is enabled by computer systems, and those systems rely upon the TCB for protection of their critical processes and data. Any vulnerability found within the TCB might affect the entire system and anything that depends upon it. The impact of a vulnerability can be as simple as disclosure of financial information or as complex as a power outage or physical destruction due to failure of a control system.
The purpose of this project is to protect the critical system data, specifically user credentials, and the associated functions necessary for establishing a secure connection with a remote server from a compromised operating system. These protections will leverage advances in hardware-provided security to control access to the protected data and functions.
This project will seek to improve the security of critical data by leveraging the features of Intel’s Trusted Execution Technology (TXT) and Trusted Platform Modules (TPMs). This project will use Flicker, a dynamic software environment with a minimal TCB developed by Carnegie Mellon University (CMU), to store and protect critical data from the OS. Flicker provides an execution environment and functions for accessing the protected data. This software environment is not intended to replace conventional systems; rather it is intended to operate in conjunction with conventional systems while providing an additional level of protection to sensitive data previously unavailable. This design requirement to operate in conjunction with a conventional O.S. dictates that an Application Programmers Interface (API) must also be developed to provide a controlled interface between the trusted software module and the running O.S.
The focus of this project will be the integration of previously developed code and the development of additional functionality necessary to complete the establishment of a SSL/TLS connection. A single Flicker Module will be created with the capabilities necessary for establishing the SSL/TLS connection, which will be leveraged by a web browser when communicating with sensitive websites.
This project will specifically involve:
This project will include the following deliverables:
Benefit to Students
Students will learn a great deal about the details of modern x86 architectures, developing low-level code, computer software security concepts, and current research challenges in the field of security. Of particular benefit, students will learn how to use hardware-enabled security and leverage the TPM. Both of these technologies are anticipated to provide the basis for many trusted computing environments and other security applications in the coming years.
Suggested Team Qualifications
Suggested Elective Courses
The Applied Physics Laboratory (APL) is a not-for-profit center for engineering, research, and development. Located north of Washington, DC, APL is a division of one of the world's premier research universities, The Johns Hopkins University (JHU). APL solves complex research, engineering, and analytical problems that present critical challenges to our nation. Our sponsors include most of the nation’s pivotal government agencies including the Department of Defense (DoD), the Department of Homeland Security (DHS), and the National Security Agency (NSA).
Project requires a Non-Disclosure Agreement to be signed
QoS Counter Visualization
NetApp released ONTAP Version 8.0 in 2010, providing a multi-controller clustered storage solution. Cluster QoS (Quality of Service) is adding a lot of additional instrumentation that will help us drill down and understand performance bottlenecks in NetApp's Data ONTAP operating system. Our instrumentation covers all parts of the datapath, from the client facing protocols through the cluster interconnect, filesystem, RAID, and the storage layer.
One potential application for the instrumentation is a "traffic congestion map" of ONTAP. This is a visualization of the components of a cluster. The visualization shows the utilization of various cluster resources, color-coded to highlight bottlenecks. Dataflow paths are overlaid to identify which workloads are responsible for the utilization (see figure below).
The proposal for the student design project is a prototype of this tool. Input to the tool is a text file with counter manager data in XML format. Output from the tool is a bitmap file with a picture similar to the mockup.
Benefits to students
Benefits to NetApp
Possible future extensions
Logging Wildlife Visits
Wildlife study experts depend on several technologies to gather information about wildlife movements. This information is then used to address basic and applied questions about wildlife ecology, habitat use, conservation, production, harvest, and interactions with people.
Technologies used in these studies include GPS, cell and satellite data transmission techniques, and radio-based direction finding. Unfortunately, these technologies have drawbacks which can limit their usefulness in many situations. GPS data can be imprecise due to attenuation of signals caused by thick foliage under which many animals live and other factors. Further, once data are obtained (data are typically stored in collars on animals), recovery of the data is not simple for several reasons. Cell and satellite data streaming is possible, but expensive. Radio direction finding to locate and recover animal collars containing data is labor intensive and time consuming. Once data are in hand however, the overall goal of a wildlife study process is data analysis. For example, if one obtains a series of GPS coordinates and corresponding time stamps, then an animal track can be registered as an overlay on a map. One could then draw conclusions about movements, habits, etc., as may be of interest. However, there are many situations that could produce useful information if we invert the study process and ask, for a given known location, what is the wildlife visitation profile for that location? GPS data are sufficient for such a study, but not necessary. Consider, instead of using GPS data, if a wireless sensor network were able to be set up easily around an area of study interest. If animal collars were equipped with radio transmitters, the network could record animal ID and time of the visit when the animal came in range of the wireless network. This approach could have cost and time advantages over GPS based studies for some types of wildlife studies.
This brings us to the goal of this project:
Design, implement, and test a visitation oriented wireless sensor system, as described above. A suggested high level design would include two types of nodes: One type, a stationary network node that broadcasts “Are you there?” messages on a regular basis and records answers that may be received; the second type, a battery powered mobile node encased in an animal collar, listens on a regular schedule for “Are you there?” messages and responds when one is received. The energy cost of computation is an important design parameter of this project. The team should construct experiments to measure the current draw (battery drain) for various software controlled wake/sleep/transmit/receive intervals.
Engineering trade-offs need to be arrived at jointly at a systems design level with an ECE senior design team to be assigned to work, collaboratively, on the project. The stretch goal of the project is a prototype mobile node with a one year life. Harvested energy sources such as movement, or solar may be necessary to achieve this goal. Alternative energy management designs for the fixed nodes are also of interest.
Programming will be done in C or other suitable language, as determined by the team.
Metrics are an important part of running an organization. Prometheus Group offers a solution to view Key Performance Indicators (KPIs) from within the SAP (the world’s leading enterprise software package) environment. The issue is that many of the higher level individuals in an organization do not even log into the SAP GUI. They want a quick and easy way to view their metrics from outside the normal SAP GUI. Our goal is to take our existing KPI engine inside of SAP, and recreate the user experience so that it’s available through a web browser on desktops and mobile devices alike. This will allow our customers to have a quick-access view of any of their company’s metrics.
You will learn
Prometheus will provide access to SAP system and instruction on related use.
HTML5 Application Development
The goal of this project is to evaluate/compare/contrast the following HTML-based libraries (in priority order):
Using something like the Flex Store application (which is a sample provided by Adobe to showcase Flash technology), we’d like a similar application built with each of the above mentioned technologies. More details regarding the functional requirements for the resulting application will be provided. The end result should be something that illustrates how HTML5 technology can be used to compete against other RIA tools and frameworks.
During the building of this application with each of the libraries, please use the following evaluation criteria:
A Personalized Special Offer Targeting System
The goal of the project is to develop an application which leverages an individual’s social activity, influence and location to provide relevant offers and promotions. The application will integrate with foursquare for location-based information, with Klout for social influencer rating and Twitter/Facebook for social activity. For example, a user that checks into a venue on foursquare, will receive an offer based upon the user’s location, relationship with the venue, social connectedness and influence.
The project will be run within the Agile Scrum framework. Agile development provides the benefits of early and consistent customer engagement. The Teradata representative will serve as the Product Owner for the Scrum team in order to provide application requirements and to assist with backlog grooming and acceptance criteria. Development will occur in two week Sprints. Planning for tasks will occur at the beginning of the Sprint, checkpoints and backlog grooming will be scheduled mid-Sprint and demonstrations of progress will happen at the end of each Sprint in a Sprint review.
Teradata is the world's largest company focused on integrated data warehousing, big data analytics and business applications. Our powerful solutions portfolio and database are the foundation on which we’ve built our leadership position in business intelligence and are designed to address any business or technology need for companies of all sizes.
Only Teradata gives you the ability to integrate your organization’s data, optimize your business processes, and accelerate new insights like never before. The power unleashed from your data brings confidence to your organization and inspires leaders to think boldly and act decisively for competitive advantage. Learn more at teradata.com.
Transit Crowd II
TransLoc was formed by NCSU students with the goal of revolutionizing campus transit. Today, universities all over the country use the technology first used here on the Wolfline.
Continuing innovation of campus and public transit, we are looking to create an easy way for riders to communicate with each other about delays, accidents and other out of the ordinary situations. During the course of this semester, your team will add essential features to TransitCrowd, our mobile (iPhone and Android) app and corresponding RESTful API. The app was developed by a prior NCSU Senior Design team and its features include:
The features your team will be adding to the mobile app and RESTful API include:
This project has the potential to revolutionize how riders use transit systems and communicate with each other. It will help them avoid routes that are running with delays or leave earlier to catch the bus that's coming early.
2D iPhone Game
The purpose behind designing and creating a 2D iPhone Game is to get the NCSU student team acclimated with the iOS platform and work towards shipping the game to the App Store by the end of the semester.
The student team will create a 2D side (or vertical) scrolling iPhone game where the goal is to dodge obstacles. The game is viewed from a side (or top down) perspective. Game mechanics will include tilting (or pressing a button) to move the character to avoid obstacles and obtain power-ups.
As the player progresses through the infinite level their speed will slowly increase until max speed is achieved. The game ends when a player collides into an obstacle. The score will calculated by the distance the player travels before hitting an obstacle. The player should also be able to earn achievements for achieving milestones in the game.
The students will have some creative freedom on the theming of the game and will receive guidance form the Two Toasters team.
About Two Toasters
Two Toasters is a premiere mobile product design firm focused on mobile strategy and developing applications for iOS and Android platforms. We are the mobile powerhouse behind some of the leading venture-backed firms and automotive companies in the US. Our focus on a developer-centric culture allows for a creative and technical environment that cultivates expert mobile developers.
Project requires an Intellectual Property Agreement to be signed
Refactoring Tools for Visual Studio Using Roslyn
Software developers practice refactoring, the process of restructuring software without changing the way that it behaves, commonly on a day-to-day basis. However, because manual refactoring is slow and error prone, researchers have proposed tools that semi-automatically refactor code. Since these tools were proposed 20 years ago, refactoring tools have been built for a variety of integrated development environments. Researchers have built on top of these tools to explore new types of program transformations and new ways of helping software developers do their work. While there exists some refactoring tools for Visual Studio, none are open source, making it difficult for researchers to do refactoring research in Visual Studio and .NET languages.
In this project, a team of 3-4 students will build several open-source refactoring tools using Roslyn, a new technology developed at Microsoft.5 Roslyn already includes appropriate infrastructure for building refactoring tools and an actively-moderated forum for asking Roslyn-related questions.6 Such tools will build a solid foundation for other researchers to build upon. In fact, depending on the student team's interest and progress, they may also create their own experimental refactoring tools.
This project will be a challenge for the team because refactoring tools are highly sophisticated; building of the first one was an entire Ph.D. dissertation! However, this process has been made easier recently by better refactoring infrastructure, such as that provided by Roslyn. This project has a highly flexible scope, but students are expected to implement several refactoring tools.
Completion of the project will have three benefits for students, beyond the standard benefits of any capstone project. First, students will work on an open-source project which can be easily viewed and inspected by potential employers. Students may also choose continue to contribute to the open-source project after the semester is complete, allowing them to engage more thoroughly with the open source community. Second, students will get a small taste of research experience as undergraduates.
This project fits into a larger research agenda of creating more software-developer friendly programming tools. More specifically, Dr. Murphy-Hill’s research lab at NCSU would like to build new refactoring tools for Visual Studio (the group currently works exclusively in Eclipse), but they don’t have a solid set of already-available open-source refactoring tools for Visual Studio. This project will provide that base.
PAS-X User Rights Management Configurator
Werum develops a Manufacturing Execution Software for the Pharmaceutical industry, called PAS-X that is used by the largest drug manufacturers in the world. Its new J2EE based solution uses an Outlook type interface, where user functionality (in the form of dialogs is selected from the tree structure (see images below). PAS-X provides a mechanism to assign rights to users so that they can only access the dialogs for which they are trained. Unfortunately, the assignment of users’ rights is decoupled from the dialog selection structure and creates a lot of confusion with users.
The goal of this project is to develop a GUI framework that mimics the dialog structure of the application (or specific other rights), but provides a spreadsheet like way to assign dialog rights to various user groups (users are then assigned to user groups). The project team should build on top of what the previous NCSU team did (particularly when it comes to interfacing to PAS-X).
The figure below shows our existing user interface (dialog structure - subset) in PAS-X:
Here is a visualization of the user tool that people would use to define & assign user rights (association of dialogs with user groups) – to be developed (web application / java app):
Once this is done, then the application needs to configure PAS-X, using a service-based approach.
Werum Software & Systems is the worldwide leading supplier of Manufactuing Execution Systems (MES) for the pharmaceutical and biopharmaceutical industries.
US Regional Offices, Cary, NC