Capstone Project Summary (Introduction)
The process of the development of applications requires time and effort. Success depends on the teamwork of highly educated and experienced professional developers who can easily manage huge amounts of information, either operating with the source or target codes to develop applications effectively.
Contemporary perspectives include developing special platforms within the environment that provides every member of the developing team with an easy way to operate with parts of code, solve problems, resolve issues, and correct errors in code in order to ensure a faster developing process by means of a ready-made developing environment.
Team Foundation Server (common abbreviation – TFS) is a Microsoft software product that provides the source code management (by the Team Foundation Version Control or Git), requirements management, reporting, automated building, project management, testing and releasing of management capabilities. This developing environment covers the whole process of Application Lifecycle Management. Team Foundation Server can be easily employed as a back end to a great number of integrated developing environments; however, it is designed to provide the most benefit by means of serving as a sort of back end to Microsoft Visual Studio and Eclipse. This system can be easily implemented both on Windows and non-Windows platforms.
This research project will be designed for use for planning and developing an application within TFS 2012. TFS was initially released in 2005, when the features that included creating reports and data warehouses. Since then, TFS has changed greatly, with modifications in later releases focusing on practical usage. For example, in comparison to previous releases, the version of TFS 2012 is a vast improvement over TFS 2010. The main advantage of the later version is it its ability to provide easier access to the data and its management within the entire team of developers, project managers, stakeholders, and business analysts. who are involved in implementing the project in details. The process of communication is provided by an easily accessible and operating interface that allows for getting the most out of TFS 2012. In addition, TFS 2012 provides users with an opportunity to develop projects that consider the needs of users with new devices, operating at iOS or Windows 8. It is not a secret that users today operate with devices supplied with different screen resolutions and touch-screens that require a lot of care on the side of developers. TFS 2012 provides the opportunity to work on these matters and develop applications for touch-screens in the variety of resolutions is of the highest need among users.
The main goal of this paper is to develop an application by means of TFS 2012. This will require the work of a team of professionally experienced developers who can provide the best results in the short term, based on effective project planning. In addition, theoretical background of the research will be provided on this matter.
Practically, this work holds great potential in future, since the development process is a sensitive issue that needs to be improved upon from time to time, as new devices and new operational systems are updated from year to year. Yet, this topic requires further research in future. For instance, recently, the 2013 edition of TFS was released to meet the needs of developers.
TFS 2013 contains a new feature called the “light-weight reporting” that allows for the capability to create real-time reports that are based on the query results without relying on the cube or warehouse. The 2013-version offers users the real-time velocity, burndown, and CFD diagrams within the direct Team Web Access.
The release of TFS 2013 includes the added platform native support for Git. It is not actually a Microsoft Corporation specific feature, but serves as a standard implementation to be based on the library of libgit2. This library powers the widely-known GitHub, where developers can easily obtain the freely available code,. In addition, developers may use TFS as a source management system irrespectively of the client platform use. They may not even install TFS clients, as for the opportunities of the new version.
In this paper, the application development process will be presented in the results of developing of the TFS 2012 platform that is still one of the most popular among developers. According to the set goals and objectives, project planning will be delivered in a way that leads to the process of step by step development of the application.
My Capstone project is related to creating an application to facilitate medical researchers in diagnosing leukemia. This disease was chosen due to its relatively high mortality rates. However, medical professionals still need new software that may help diagnose this disease, including measuring risks certain people have of developing this form of cancer due to family medical history. For example, certain combinations of genes of the wrong character may increase the chances of getting leukemia if preventative measures and early detection and treatment have not started.
Thus, it was decided to create an application in order to facilitate the process of treating this disease at the early stage or at the stage of risk management. iPhone was chosen out of the many modern devices as it is one of the most commonly used worldwide. The application is planned to complete tasks to reach the main goal – to manage risks and facilitate the diagnosing of leukemia for those who are in high-risk groups. Setting up the application on devices of the members of the risk group will help to measure their health status, as well as help to collect gene code samples from each of the subjects that have willingly agreed to participate in this experiment. Once the collection process is completed, the code samples will be sent to the remote server of the research institute, and this data will be stored on this server to proceed with an experiment and get the best research results. The data can be transferred via an intermidiary server in order to protect data by saving it in a flew computer devices. However, in this case, the privacy issues should be protected in a carefu manner. For instance, the data should be tranferred via the secured https// protocol to prevent data loss or stealing in the transferring process. Data security in the context of privacy issues should be one of the primary purposes that developers of this Capstone project team should be dilligent about in order to complete the development of an application and succeed in its implementation.
The development of an application should be started using the facilities of the Team Foundation Server 2012 that provides effective teamwork in the context of iOS based apps development. This type of operational system is a sensitive one, so it requires continous updating and reworking in order to adjust it to the current needs of devices including iPhones and iPads. New issues of hardware require new features of the applications. Therefore, the process of development our application should be organized in a way that ensures the creation of an application as fast as it possible.
State-of-the-art application lifecycle management (ALM) includes specific platforms that offer a lot of benefits to enable effective software development teams to plan, execute and follow project development activities. An example of such a highly developed platform is Team Foundation Server 2012, which enables developers to work in a well-organized environment and reach results in the definite time frames. However, the first-time adopters in the context of ALM platforms and environment face initial adoption problems that may often prevent effective adoption. In order to correctly underline the current software development activities for a team, it is required to configure ALM platform opportunities correctly, based on support of these activities.
The future project will ensure that the team of developers effective follow the rules of the environment throughout the defined lifecycle. To take on the challenges, a new approach called Rapid Application Lifecycle Management (RALM) will be proposed. Its features and reference model are vividly described by a great number of recent team activity templates. They allow the project adopter to review, customize, discuss the main ideas, and revise the main mistakes that occur in ALM activities in rapid cycles. Every customized activity template is machine-translated and pushed from the source to the target ALM platform: every definition of the activity is translated into processed templates and configured within the guide in the framework of engineering practical guidance to benefit all members of the team. By means of experimental works, it will be demonstrated that the RALM system is effective and efficient.
Application lifecycle management (ALM) controls the way software systems or applications are developed, planned, maintained, and provided. (Schwaber, 2006). Within the typical lifecycle of managing activities, the requirements to develop and manage project planning, find solutions and track issues can be seen. Each of these lifecycles involves activities concerning multiple technologies and requires specific tool support. This project reviews existing support tools for software development for commercial and governmental practices. In order to fulfill such tasks successfully, implementing new tools and technologies are crucial, although they are complicated in the process of performance.
Software development companies usually adopt various tools, and each of them should be integrated in order to support the organization (Chrissis, 2003). This project is aimed at reducing difficulties in the integration of state-of-the-art applications lifecycle management platforms, the most important of which is Team Foundation Server 2012.
This platform offers useful features to any organization in order to state goals and manage ALM activities within the unified platform. Once the system is correctly configured, ALM allows a team to develop and execute, as well as check their daily development activities. It also enables developers to evolve their activities via tuning and adjusting to the current platform settings.
This project describes practices including automatic unit testing, static analysis, and refactoring as well-organized current practices. These new practices are exercised by the team; its members will also need support from the given ALM platform. The use of such platforms helps reduce problems concerning integrating management and development tools and allows the members of the team to modify processes if required.
This project gives developers ideas on how to set up an ALM platform according to contemporary standards. Each platform has its specific features that are useful for every team member. Development activities are possible only if every developer is dedicated to the success of activities and if everyone is familiar with which tools to use while working on the success of a project.
This project is aimed at developing new concepts in the context of the given ALM platform. Within this environment, it will be possible to suggest new tools and develop the application that will be ready to be used in medical facilities.
It is no secret that hospitals need to develop their activities properly as organizing their work properly is essential for meeting customer needs and preferences. The main field that is still being uncovered is diagnosing. In many countries, it is one of the most serious problems that needs to be solved using modern tools. Application development is the best solution. Current perspectives include the development of useful applications that would be most important for diagnosing. Current developmental perspectives include providing hospitals and clinics with applications that would be useful for diagnosing remotely. For example, these applications will be of the greatest use for providing effective monitoring of patients, namely their health status at a definite moment. This would be very useful to measure blood pressure, heart rate, pulse, and even control body temperature. It would be important for meeting the needs of many patients who prefer homecare to constant visits to the hospital. This kind of information should be provided in accordance with the modern systems of privacy.
In order to get information secured, it should be sent via SSL (secure) protocols that provide secured canals. Hospital servers should be protected against easy ways to breaching security to gain access to these data. Therefore, the team of developers should take care of the quality of their work in order to secure patient data so that nobody has a possibility to gain access the information illegally.
This project consists of 7 parts: Summary, Literature Review, Rationale and System Analysis, Project Goals and Objectives, Project Deliverables, Project Timeline and Milestones, and Competency Matrix.
The Summary provides the concise information related to the project. Review of the other works highlights the ideas of other authors on this matter. The section of Rationale and System Analysis explains the use of this project and how it functions after result implementation. Project Goals and Objectives is the section that states the main goals and objectives of this project, and the way the idea of the project is understood. The last three sections are dedicated to timeline, project deliverables, and competency matrix. They help to understand the main concepts and issues related to this project.
Visual Studio 2012, an improved version of environment for developers, was an add-on for the 2012 edition of TFS. Many researchers are focused on describing its features and opportunities in the context of contemporary software engineering. TFS 2012 is a component of the Microsoft Application Lifecycle (ALM) tools. The newer version was extended with customer feedback on the previous edition of the product and iteration worksheets backlogs are relinquished to achieve an improvement of web-user experience. The workflow efficiency was improved in the new version, which led to success of the project if it was set up in a proper way. These improvements were helpful for many executives in a chain – developers, project managers, stakeholders, business analysts. Code was easily shared and reviewed within the environment.
When working with software development within TFS 2012, the members of the team can build schedules effectively: “This worksheet includes capacity planning, a burn-down chart, and a way to manage when team members are unable to work – for example, because of holidays or vacations.” (Minisi, 2012). This idea of counting working time for each of the members is developed to provide each of the team projects with its own web-application to reach efficiency. This improvement helps managers to view and manage a project, administering iterations within work areas, setting up team work, and getting instant access to reports. Each project is assigned backlog iteration in order to trace the iteration path showing up the product backlog. The priorities are built among the backlog items, when they dragged and dropped. The backlog items are related to tasks that are assigned to team members. Managers can evaluate team’s capacity in general and capacity of every individual team member. Every member gets an assignment with a definite number of hours that he or she can work each day – the information is placed in a special tab that can easily be accessed by those who control the schedule.
TFS 2012 includes an interactive task board where info related to every user’s activity and workflow is placed. The number of remaining hours is updated, showing the progress of work.
When considering more improvements to TFS 2012, it is worth mentioning that among the most important changes in this version is Team Explorer’s UI. In the previous version, there is only one window to reside reports, work items, documents, and to create a tree-like menu to view them. The new version is more web-like, where menu is more context-integrated. Minisi adds that when working on code within TFS 2012, a developer sees files “as checked out in the Pending Changes screen” (Minisi, 2012). As TFS 2012 team Explorer in new version includes the default local workplace, this lets “seamlessly work disconnected from the server, in addition to the server workspace, which requires a connection to the TFS server” (Minisi, 2012). This option in remote work, even without being empowered by the server, lets developers extend opportunities, organizing workflow either on web, or locally. From the perspective of a developer, there are not many differences between staying online and offline. The only difference is that when online, a developer can check the files on a server. The TFS 2012 environment provides developers with an opportunity to save files on a local client machine, and when connection to Internet is restored, they can check in files. In addition, TFS helps to suspend and resume work, when it is required. For example, when managers assign developers with the other type of work of more priority, they may shelve the started project and resume it at a later point. Even if the project was developed in Notepad, the code may be easily transferred to TFS if there is a need. Reviewing the code in TFS 2012 was a very easy process, due to “a fully integrated code review process” (Minisi, 2012). It became very easy to start working at the suspended project again: “On the TFS 2012 Team Explorer Home screen a Request Code Review link is placed. When clicked, a link to the New Code Review screen opens. The review request may be extended by description, with a name of a developer or date. This way the requester and reviewer can communicate in the process of code reviewing within this project.
The process of developing the TFS 2012 server is an issue that has been under thorough researches recently, since this environment has adjustable tools to develop applications in the lifecycle management.
In their work, “Jumpstarting Application Lifecycle Management: A New Approach with Tool Support,” the authors Jung-Sing Jwo, Tien-Song Hsu and Yu Chin Cheng underline that “for a software development team that is initiating application lifecycle management on a state-of-the-art ALM platform,” it is important to implement it into “the team’s current practices” (Jwo et al., 2013, p. 490). The essence of this method is to provide ALM definitions with desirable ALM platforms, enabling the team to follow the rules set for the project. In this work, the authors suggest how to organize the process of application development more effectively to adapt to the current standards (Jwo et al., 2013, p.490-491). The developers suggest new methods to jumpstart ALM practices at the level of the state-of-the-art platforms in order to facilitate the process of developing applications within different environments. They underline that RALM activities help in chosing templates and reference model to enable the team to define and get the requirements verified so that developers have access to databases easily and organize teamwork effectively. The authors are focused on describing “the activity templates” that are designed in spreadsheets that are machine-translated into platform-specific definitions for additional configurations to follow the model features, guidelines and requirements that should be configured manually (Jwo et al., 2013, p. 491). This combined applying of templates and machine-translation allows for defining, reviewing, implementing, receiving feedback, and revising ALM activities rapidly, thereby mitigating risks for team errors at any phase of the project developing.
The present work embraces the ALM initiation task. Although many important issues have not yet been covered, the next issue is to assist the development team in improving the way life cycle management is coordinated. It is clear that adopting new practices for developers will be required in the near future, including “test driven design, continuous integration, and so on” (Jwo et al., 2013, p. 491). The state-of-the-art ALM platforms should reach success “through manually adjusting and tuning the existing platform settings” (Jwo et al., 2013, p. 491). It would be challenging to adjust them by adding and carefully modifying the templates. However, according to the authors, some settings, if modified from original, may cause data loss.
The other authors in this field are focused on the advantages of TFS 2012 (Pirklaube et al., 2009; Guckenheimer & Perez, 2006). Semeniuk & Danner (2007) suggest new ways of managing projects within TFS 2012 that would be useful for those who are aimed at setting team work up properly, both for customers and developers, in the given environment. It would be possible to edit data and information inputs for all members of the team.
Theoretical background for this research is based on the information collected from online and print sources that provide an opportunity to evaluate the importance of TFS 2012 proved by its wide use in software development.
Goals and Objectives
The goals of this research project are related to the work in team work development within TFS 2012, which include:
1. Cover gaps in theoretical researches related to TFS 2012. Since TFS 2012 is a relatively new update of developing environment, its advantages and disadvantages are still being uncovered in the research literature. This paper will deal with this problem when analyzing perspectives of TFS 2012 in the contemporary context. Yet developers do not yet know all of the opportunities this environment provides them with. Within this project, theoretical background will be presented in order to create an idea of how TFS 2012 can be used. Some information by technical writers and professional researchers will be presented in this context.
2. Develop an application by means of TFS 2012. The application will be developed by means of TFS 2012. In order to develop the project successfully, it will be necessary to follow this plan of finishing the coding sections with the help of the following activities: 1. Learn SPARQL. 2. Learn Apache Jena. 3. Learn about Semantic Web. 4. Implement Search command using Java. 5. Implement the string matching criterion using Sparql. 6. Scoring is a way to calculate how close the inputs are to the documents retrieved. 7. Implement the ontology-based search criteria using Sparql and Jena.
Every team member should understand the idea of the project and be able to figure out how it will proceed at every stage of the project. In order to complete this project successfully, effective communication between the members of team should be delivered. Resolving issues, solving problems, and fixing code errors will require time and effort. A short response is required from each of the team members, especially from coders who are responsible for the software development. Well-developed communicative skills are essential features of every person who is involved in the team work to reach success in developing this project according to the plan and specific defined timelines.
This project is designed to develop the following objectives to address the goals:
Providing a well-structured theoretical background of the research in the context of the given topic, as with the Team Foundation Server (TFS) 2012. This version has been a great improvement that has helped developers to get involved in a more understandable environment to create and improve software fast and efficient when working in a team.
Theoretical background of the research includes analysis of research projects of contemporary authors who contributed much to the development of ideas related to TFS 2012. In addition, in the frames of this work the articles of developers are critically analyzed, for their experience in this field is highly valuable. In particular, this work presents the findings, feedbacks and comments by Huckaby and Minisi, the well-known developers, as well as Jwo et al., the researchers who provide valuable information related to the current standards of TFS 2012 in the context of the jumpstarting application lifecycle management. When regarding the ALM initiating task, it should be pointed out that many issues on the development of TFS 2012 remain uncovered; more information on this matter is necessary. This work provides answers to just some questions to complement the results of this research paper that are to come out by delivering and describing the experimental development within this project. This would be proved with screenshots. Providing a literature review for this research paper is aimed at ensuring a deeper understanding of the application development by means of TFS 2012.
1. Defining application lifecycle management activities: It is more likely that the development organization to which the team belongs to can already have distinctive tools for development purposes before they can consider moving to a state-of-the-art ALM platform. In order to adjust this platform to the process, some formal definitions of the development process are necessary. This goal might be challenging, even for small to medium-sized development teams, as formal or semiformal activities can be very useful in the context of ALM activities. Accordingly, their interrelationships are complicated and difficult to process.
2. Implementing definitions within the ALM platform: Open source and commercial ALM platforms should suit the needs of clients. The task is to set up this platform correctly, and this process should not be complicated, although in reality, this task is not that easy to provide. Some of the problems included: a platform that may show many undesirable default features, and some of them may be critical to the purposes of the organization, so some elements or details might be missing. Therefore, the team should avoid such things, even by means of taking unfamiliar technical activities.
In this research proposal, we will present new approaches to facilitate tasks of ALM definitions, the platform setup in the context of ALM discipline. The main approach is called Rapid Application Lifecycle Management (RALM). It provides some reference models for the software development in the team environment of the Team Foundation Server 2012. Defining the ALM activities in the context of software development is crucial for understanding the main goals of the project in details.
In the context of the reference models, a huge number of developmental templates are suggested. Furthermore, a competency matrix will be attached. It will also determine how the modern developmental tools can be adjusted to the purposes of this project. When ALM platform is set up properly and proper templates are chosen, the machine-converted elements of the project will be adjusted to the platform-specific system definition files. In some cases, if machine conversion cannot be provided within the target ALM platform, it will be planned to follow a step-by-step manual setup provided by the conversion software.
The challenges described above will make positive outcomes more possible, and RALM will help achieve the following benefits:
- The useful activity templates and reference models will facilitate the team of developers to define and capture their ALM activities according to the needs and requirements of the given project, and defaults that may happen at every stage of implementing this project to practice. All of the issues and problems can be solved by proper activities using the development team’s current process features and tools, specifically with the help of the ALM baseline.
- Providing contemporary tools for translating activity templates to platform special processes definition files will allow for the configuration of manuals and the setup features more properly, to reach the proper successful results of the project within the chosen ALM platform. Furthermore, the initiated process in the frame of the ALM platform will help solve problematic issues effectively and efficiently, considering the opportunities of the ALM platform.
- The engineering practices that are published in manuals will be maintained in the context of this project portal. This information will be available to assist the team of developers within the scope of this project in order to develop the application successfully, test it on servers and implement in the context of a concrete organization.
The main goal of this project is to develop a working and well-structured application for a hospital. This application will suit the needs of a specific organization that will work on the basis of the iPad or iPhone to meet the needs of patients of the hospital. It will facilitate the process of diagnosing patients for doctors, making their work easier thanks the success of modern technologies, which work very well for both sides of the medical services, either for personnel, or patients.
In order to reach the goal of the project, effective team work is required to reach success on this matter. Teamwork of highly educated professionals will allow for the facilitating of the development process significantly. If the members of the team are well-organized and well-guided, and if they follow the instructions properly, it will be possible to develop the application within the shortest time frame.
In this project, some new tools for developers will be suggested in order to help the team of developers work more effectively.
This project is especially valuable due to the newly suggested conceptions and definition of the parts of the project, with the help of step-by-step guidelines for developers. Furthermore, these conceptions and definitions are valuable for effective work in the frame of Team Foundation Server 2012, which is one of the most useful and effective environments for developing applications for Android. It would be possible to use these conceptions for further development practices, especially when considering the fact that TFS is developing new versions, with many new tools that will facilitate developmental work and reach new heights to improve health care services in our country.
Rationale and System Analysis
In the field of health care, has become standard to use modern applications as software that facilitates activities for patients, doctors and medical personnel. In the frame of various theories and analytical approaches, it would be useful to provide health care facilities with complex applications and let them select one or more from a few that will be adjusted to the current needs.
In most cases, information system analysis is focused on the relevant approaches of the software developing. Team Foundation Server 2012 allows organizing developing activities properly, including workflow, data flow, as well as processing tools to operate with information according to the needs of the project.
Health care is a specific field that includes many aspects, so it is important to organize developing activities responsibly, providing good decision-making processes, team communication and cooperation with the hospital professionals to examine what they need. It is also required to analyze the strengths and weaknesses of application, excluding defaults and errors, as far as it is possible.
This Capstone Project will offer many benefits within particular perspectives that emphasize data processing in health care. Each step of the application building will be influenced by the Team Foundation Server 2012 environment. It provides developers with parts of source code that facilitate their work. It allows for the building of applications faster and more efficiently. Developers will gain good team work experience as this environment allows for working in a team more effectively. Team Foundation Server 2012 also allows for the testing of applications at the final stage of their development. The environment facilitates communication between all members of the team within the given time frames. In short, Team Foundation Server 2012 allows developers to feel more comfortable in their work as every one of them knows their roles and responsibilities while working on the project. Therefore, this fact excludes a number of errors in the target code as source code is provided, so the members of the team just need to manage it effectively in the frame of the cross-stage development of an application. The environment provides developers with an opportunity to manage the project successfully and test code via servers. Furthermore, privacy protection issues can be easily created and tested within Team Foundation Server 2012.
This Capstone will reduce paper work in a health care facilities, and reduce the costs of hiring more personnel. The iPhone, iPad, or Android based applications will provide an opportunity to work and diagnose medical issues more easily and much faster. Sending requests to servers will be easily provided within contemporary hardware that will help make the final results of this project a reality. Securing requests with SSL protocols will help to protect private data. The possibility of the data loss issues will be reduced by developing good data processing centers, effective servers, and proper source code that will be edited, transformed and modified in the process of application development.
This application will allow for facilitating work for registry personnel that is employed in this health care institution. After every issue is registered, the work with the patient will be provided automatically, via modernized software and hardware. Patients will not feel fear or dissatisfaction while visiting clinics. In the near future, there will be no need to visit doctors for routine medical care as it will be possible to just take pictures if these medical issues are visible for diagnosing, like dermatitis, mechanical traumas, etc. Measuring heart rate, pulse, and temperature will also be widely available via iPhone and developed applications.
Modern perspectives include 3D organ modeling and printing organs using 3D printers. This perspective will be useful in transplantation medicine in the not-so-distant future.
Project Deliverables, Project Definition and Approach
The objective is to facilitate the diagnosis of leukemia with the help of data provided by medical tests taken in special medical faculities. The results of genetic tests are applied to the database, the samples of genes are found, and they are used to detect which gene has codes that create health risks , which may happen in many cases. For example, such instances may take place as a result of inheriting features that make the individual prone to certain illnesses. Therefore, this software will help researchers and health care providers, and scientists significantly. This is also true for scientists, who will be able to find a way to solve the problem of identification of the wrong combination of genes and potentially cure leukemia.
The younger individuals are more likely to become donors, but they may not be as concerned about their health as they ought to be. The perspectives of the research in this field are very challenging as the world is changing very quickly, and many devices serve people in everyday life. Researchers should find not only high-quality treatments, but also high-quality diagnosing methods. These ways might become more clear. Modern researchers are still in search of new ways, including facilitating their life.
The task of researchers is clear: they wish to find new hardware and software in order to succeed in their findings. The perspectives of researchers are also clear; they want to diagnose properly and make judgments automatically. Biotechnology and programming are very good means of finding the answers in this field. Technological aspects of solving this problem may be very clear but not particularly useful if programming features are not applied and if there is no effective software to meet the needs and requirements.
High quality software works only if the devices that are commonly used with applications inside them are of high quality. If an application works well, its functions can be very useful. The researchers in laboratories should realize that their scientific efforts must be rewarded in the future, and if they save time by providing these experiments, they will make many new inventions and carry out the experiments successfully.
The software works effectively in many devices, but the most popular, luxurious, and prestigious one is the iPhone. It may be used best if a good application is installed and developed. For example, some modern researchers suggest that with the help of the iPhone it might become possible to diagnose many issues, and when keeping the device in their pockets, patients may even not need to make an appointment with a doctor to make a diagnosis. The iPhone makes contact with the human body so that it can measure everything from blood pressure, to blood glucose level to other monitoring. Special applications are expected to help measure any state with reference to the human mind, feelings, emotions, either specific or general, the ones related to groups, etc. After recording the results this application would send requests to a remote server, receive a response from the database, and send the result directly to some research institute, hospital, or any computer with access to the Internet. In any case, private data should be stored carefully, and no one should be able to obtain any information without permission.
The Main Principles of Semantic Modeling
Semantic technologies record information in electronic form. They may be compared to the other ways of presenting information. The most natural and familiar to us is the streaming presentation (text, images, videos, sounds). When information is presented in the form of streaming data, it is a signal for decoding it with the special hardware and software. Typically, the software does not parse content (meaning) of such a signal; it is the task of the technician to interpret information himself/herself.
The data can be also processed via structures using a relational representation (spreadsheets, databases). The essence of this approach is to separate information on the metadata that describes the type and format of information elements and actual data to carry the information related to the specific objects, events, and properties. Generally, information is presented in the tabular form. Each table stores information about any type of objects or phenomena. The table consists of columns, each of which stores information about any property or connection of an object. Descriptions of tables and columns are metadata and their contents are the data. Metadata allows for building software data processing algorithms, i.e. the shift of tasks and processing the information on a computer.
Semantic technologies represent the next step in the development of machine-readable representation of information. They make it possible to bring semantic models in electronic form, allowing the transfer of these models that are present in the information, and automatically handle it, including getting the logical conclusions based on the available model axioms.
Technological embodiment of semantic technologies bears the imprint history of their origin. Their development began with the idea of ??Semantic Web. In addition to streaming data (text, images, video) that mainly form the content of a worldwide network, the initial idea was adding back the publication of information, provided in the form of semantic models. This would make it possible to process such information automatically, revolutionary changing the search engines on the Internet, that, of course, will have serious economic consequences. That is why, in our opinion, practical realization of the idea of Semantic Web has been inhibited for more than ten years. Progress at this field was limited to the development of several microformats – very limited ontologies, allowing the publication of some of the information in machine-readable form (address, information about products) online, with a very limited support for these microformats on the side of search engines. This can be compared with the invention and development of the only microprocessor until it was recognized as the solely device to control, for example, the movement of the elevators. It is obvious that the creation of Semantic Web is contrary to the interests of the well-known search engines, and one of the major sources of its monetizing is a contextual advertising.
However, thanks to the efforts of enthusiasts for semantic network, we have the set of technologies adopted in the form of recommendations or standards of W3C, and a set of an open source software that can solve the coding problem. There is no need to narrow the purposes of Semantic Web, though the potential of such technologies, in our opinion, is seriously underestimated. When developing an application, there is a need to consider the most adjustable methods for this process in practice.
First, the base needs a way of expressing information submitted in semantic models. This way, a developer becomes familiar with the triplet – syntactic structure, consisting of three elements: “subject”, “predicate”, “supplement”. Of course, the names of the three elements of the triplet are given arbitrarily, but they reflect their essence. Subject is always an object model. Predicate is a property with the value that we would like to set for this object. Finally, the addition may be either literal, (numeric, string value), or of the other object. Naturally, the objects and properties are given by their unique identifiers. Developers choose the names of the parts of the triplet that are also convenient, because the corresponding grammatical structures are just frazy-statements in a natural language. With these triplets, one can express all the information contained in any semantic model. Of course, it is necessary to define a formalism or set rules, according to which triplets are formed.
The unique object identifiers are essential features of semantic models. They are built according to standards. Thus, all the identifiers in the semantic model are obtained in the following form: http: // hostname / ontology # ID It should be pointed out that this method of entry IDs is a pure convention. Scout has no relation to the protocol http, “hostname” can be fictional and may not correspond to any actual existing site, the names of ontology and the last (unique) identifier portion may be formed arbitrarily, and there may be no # symbol in front of the identifier. In general, URI is quite possible to be taken just as a string, which is formed on a particular template exclusively to ensure human readability. There is common ontology, for example those that are designed to express information about a person. Such an ontology has its own namespace (the first part of the identifier – roughly speaking, “http: // hostname / ontology”, for example, for the namespace – http://xmlns.com/foaf/0.1/). The next set of technologies is of those to be applied for conservation of semantic models to files (i.e. to serialize models). Here we can distinguish logical and syntactic level: the logical level defines the principles and rules of transferring of the semantic content of ontologies and syntax to convert. This point is in the sequence of characters. Therefore, there are several “languages” for recording semantic models, the main of which are RDF / RDFS and OWL. RDF / RDFS allows for recording the simplest facts about objects, classes, and properties. OWL expresses logical axioms describing complex relationships of classes and properties. OWL has several “dialects”: outdated and very easy OWL Lite, the most commonly used OWL DL, and rich Opportunity OWL Full. The difference between the OWL DL and OWL Full is that OWL DL has the guaranteed computability in any logical expression, and OWL Full does not have such a feature.
It is clear, however, that working with models in the file mode is extremely inconvenient, and in the multiplayer mode, it is almost impossible. The most well-known solutions of this class is Apache Jena and Virtuoso (commercial product). Storage triplets have APIs that let developers gain access to the variety of programming tools that can be used in the inference engine. There is also a standard SPARQL language, describing programming interface and query syntax to semantic models; even from their obvious analogy with the names of SQL. The software product, which turns SPARQL-interface to content repositories triplets is called an access to the SPARQL endpoint. Storage triplets implement import ontologies from files RDF / OWL, but usually do not support exporting them. The rules of conversion of OWL to the “Pure” triplets can be formulated in different ways, so the results of the import in the OWL storage triplets depend on the software implementation. In general, the contemporary level of the software that works with semantic models has not reached the “industrial” level of features considering the relational databases. However, this level is sufficient enough to be able to build solutions that bring the tangible results. Another interesting class of semantic software systems is the support of the work of a controlled natural language. However, the syntax rules in the controlled language in their current implementations are quite limited.
In order to develop the project successfully, following this plan finishing the coding sections with the help of the following activities is essential:
1. Learn SPARQL.
SPARQL (Protocol and RDF Query Language) is an RDF query language to work with databases and successfully retrieve turning and manipulating the data that is stored in the Resource Description Framework format.
SPARQL is designed to build a query of triple patterns and optional patterns.
In the terms of SQL relational database, RDF data are presented in a table subdivided to three columns – those for the subject, the predicate and the object.
Thus, SPARQL provides a complete set of analytic queries in operations such as commonly JOIN, SORT, AGGREGATE for the data with schemas that are intrinsically a part of the data, without any requiring for separate schemas definitions. In the context of schema information (the ontology), the development is often provided externally, however, different datasets may join in a definite manner. Therefore, SPARQL provides developers with the specific graph traversal syntax using the data that is not regarded as a graph.
2. Learn Apache Jena.
3. Learn about Semantic Web.
4. Implement Search command using Java.
5. Implement the string matching criterion using Sparql.
6. Scoring is a way of calculating how close the inputs are to the documents retrieved.
7. Implement the ontology-based search criteria using Sparql and Jena.
The application will be developed in the frame of Team Foundation Server (TFS) 2012.
First, the advantages and disadvantages of deployment on a single server and multiple servers will be considered. Next, a deployment diagram that meets the requirements of the organization will be created. All members of the team should understand the architecture of TFS. In order to reach this goal, the manual should be used. A deployment strategy has to be selected as well. The leader of the team should decide which deployment strategy is best suited to the group. TFS architecture is formed by three levels: the level of applications, data level, and client level. It is logical separation, and all three levels can be installed on one computer. To store work item database version control system and various reports TFS data tier uses Microsoft SQL Server ™. Deployment scenarios TFS deployment can be performed under the following schemes: single-server deployment within the framework of the working group; using the directory service Microsoft Active Directory ®. The type of development Before choosing the type of deployment for the organization on one or two servers, the leader of the team must answer the following questions: How many users need support? How many projects will support TFS? Is there a server at my disposal that can be completely devoted to TFS? We will deploy in the framework of the Team Foundation Server on a single server that must be fully allocated under the functionality of TFS. TFS should not be used for any other purposes; it should not be a mail server, database server or file server for other applications. The benefits of developing a single server Simplicity All aspects of TFS deployment can be run on a single server. All access rights and privileges of users can be configured on a single server. Maintenance and backups are required only for a single server. Availability
Since the data tier and application tier are on the same server, deployment planning is not necessary to consider the limitations or delays in information exchange network between the levels of data and applications.
Strategy scaling and redundancy Team Foundation Server. When we install and deploy Team Foundation Server, we must also decide on the server redundancy and failover. A backup strategy and load transfer are selected depending on the size of the plant, tools and resources available to the organization. Since the level of data using SQL Server, the strategy taken in accordance with the approach taken for reservations SQL Server. We will use a map or clustering instances of SQL Server. The same approach can be applied to the data tier TFS. You must also select the strategy of behavior in the event of failure of the application tier server. If we want to support failover at the application level, we will need a backup server level applications and the ability to quickly transfer the load onto it.
Selection of appropriate strategies and install the Backup/Restore for the company. When installing TFS, we must make some decisions about strategies and install the Backup/Restore. Choosing a strategy setting, the following should be considered:
- Project Size
- The need for failover
- Need for redundancy
Recommended equipment for Team Foundation Server As a rule, groups with fewer participants and projects can work with single-level settings, whereas for larger groups two-tier structure is required, as well as more efficient equipment. Redundancy mechanisms and load transfer also depend on the type of installation.
Backup strategy and failover When deciding on a backup strategy and failover when implementing TFS, we must consider these factors:
- The frequency of backups.
- The frequency of incremental and full backups.
- Requirements for backup storage, such as whether it should be located on or outside the organization.
These features can be used in the same standard practice redundancy that applies to any database in SQL Server 2012. There are 3 scenarios to use the backuping and restoring the TFS:
- Restoring data only.
- Full recovery when deployed on a single server.
- Full recovery when deployed on two servers.
Data recovery should be used when the level data are damaged. In order to restore the entire database, the backup data and transaction log are required. Server recovery is provided by the second computer.
Backup server level applications Although the application-tier server has no data that could create backups, it is possible that a server failure could happen. To reduce the losses from failure, we must use a “hot” backup server, and thereby enable failover application tier server. Failover Taking the decision to provide failover for TFS, we should compare how much it will cost for the company backup server so that to reduce the cost of loss of productivity in the case of unavailability of TFS. Providing failover complicates and increases the installation costs. When choosing the strategy of remaining costs, it is important to consider these costs. Clustering is quite expensive in terms of resources and services, so its use is recommended only if the organization already provides resources to serve a clustered server. Mirroring also entails certain costs, but they are not as great as clustering. The mirroring advantage is that it allows the primary server output to be offline for maintenance. If an organization manages to establish a second data-tier server, we should consider using mirroring. Clustering Data Servers If an organization has all the necessary resources, consider the possibility of merging of servers in the cluster. The cluster will provide continuous access to the data. However, it should be pointed out that the hardware requirements are high for clustering. The cost of installing and maintaining the cluster in terms of resources is high. TFS supports clustering configuration with passive server, active server, and separate server resources quorum. If the fault level data load is transmitted to the passive server, that server becomes the owner of the quorum resource. The cluster should be prepared for the installation before installing TFS in a cluster.
Mirroring Data Servers The presence of the mirror server can display the primary server offline for repair and maintenance, and provide a mechanism of rapid recovery in the event of the main data-tier server failure. TFS does not support automatic switching roles, so switching must be performed manually.
To configure mirroring in SQL Server for data storage, it would be useful to:
- Make a backup of the database and transaction log.
- Create a backup copy of the encryption key reporting services.
- Install SQL Server on the mirror server.
- Restore the data level data on the mirror server.
- To run the Configure Database Mirroring Security Wizard (SCW mirroring database), configure the mirror server for each database principal data-tier server.
- Start mirroring.
Failover to the mirror server Loading transfer process to the mirror server manually is as follows: Application-level TFS:
- Report Service configuration changes to use another server.
- Website stops by default.
- Website stops SharePoint.
- Stop service SharePoint Timer.
- Stop service TfsServerScheduler.
- Stops the application pool ReportServer.
- Stops the application pool TFS App Pool.
- On the mirror data-tier server, it is verified that service accounts are added.
- Migrate all databases from the primary server to the mirror.
- Data storage is created on the new server.
Application-tier server is configured to use the mirror server as follows:
- Command Prompt window runs TFSAdminUtil RenameDT MirrorDataTierServer.
- Restarts IIS.
- Amends the connection string Reporting Services, to reference the mirror data-tier server.
- Amends the SharePoint- server to use the mirror data-tier server.
- Service runs SharePoint Timer.
- Service starts TfsServerScheduler.
- Runs the application pool ReportServer.
- Runs the application pool TFS App Pool.
- Run Reporting Services.
- Run the Web service StampWorkItemCache.
Failover at the application level Backup hardware and software It is not necessary for the backup server to be identical to the core, but it needs to meet the requirements for hardware -level applications. There is a need to ensure the same configuration for both servers, including the same user accounts; access rights synchronous changes and updates. Any updates running on the host computer are applied on the server and a “hot” backup. To minimize problems when transferring the load, it is necessary to configure the network adapter to use the same host name as a primary and backup computer. This can be done in different ways.
Failover between application-tier servers When there is a failure of the primary server, we must manually activate the server “hot” reserve, following the steps listed below. To transfer the load from the primary server to the standby server can perform utility TFSAdminUtil, passing team ActivateAT.
To pass the server load “hot” provision, the following is required:
- Activating the standby application-tier server, set the source server to offline.
- On the backup server.
- Log on as an administrator.
- Start TFSAdminUtil, passing team ActivateAT.
- Start the Web services on the backup server.
- Register the server name “hot” reserve in the services database integration TFS.
- Connect the server to the “hot” reserve level applications with the active data-tier server.
- Check in the linked servers and application-level data tier.
TFS architecture consists of two layers: application level data and client level. When installing the server, we can place the data tiers on the same or different servers. TFS deployment scheme selection depends mainly on the amount of the intended users. Selecting a topology that meets the needs of the group, we can decide on the appropriate level of redundancy and support failover. For level data the same reservation mechanism can be used, which the organization uses to backup another SQL Server. This mechanism supports failover and can be implemented by clustering or mirror servers. The Application Layer does not support automatic failover. If we want to ensure fast load transfer, the server can provide the “hot” reserve and failure to transfer the load to it manually.
Project Stage: Initiate
1. Identify marketing objectives 2 days 10-14-2013 11-15-2013
The marketing objectives include specific intentions that influence decision making concerning the development of the proposed application. This was suggested at the Management meeting that took place on the 14 October 2013. The decision was made according to the current business plan of the company that would distribute this iPhone app amongst research institutes and groups of individuals on the commerical basis. Hopefully, the decision concerning the app development was made on the same day as meeting took place.
2. Fix the goals in documents 1 day 10-16-2013 10-16-2013
The goals of this project were documented right after the management meeting. The marketing decisions in goals were documented according to official documents in the given timeframe.
3. Provide theoretical background for the work 3 days 10-17-2013 10-19-2013
Theoretical background for this project was provided according to the set goals for this Capstone Project. Particularly, reviews of works of famous experieced developers and researcher on this matter helped in clarifying the issues that may cause errors in code during the process of the application development. For instance, 5-6 research works were analyzed in the set timeframe of the project. Some of these research works consisted of details that would help to work with TFS 2012 more efficiently and in more valuable manner.
4. Discussion of the Review research issues with the Company Management 1 day 10-20-2013 10-20-2013
The ideas gained in the process of the attentive reseasrch were discussed at the management meeting since the research is completed. The information gained during research process was critically analyzed and suitable alternatives were found and discussed along with the main idea of the project. The plan could be to accomplish this in 1 day.
5. Finalize goals & obtain signoff 1 day 10-20-2013 10-20-2013
The goals should be finalized at the meeting. The copy of the Business Objectives Plan was distributed to every participant of this meeting, so that they can become familiar with all updates and corrections dropped at the initiative project stage. Clearly set goals and objectives in this document should be followed at the project planning stage that will develop into implementation. The finalized goals document was signed by the top manager in consent of every member of the team.
Project Stage: Plan
1. Develop specifications (functional/technical) docs 1 day 10-21-2013 10-21-2013
Functional and technical specifications were developed according to the marketing and business plan objectives that had been approved by the top-managers of the company in the team consent. The background for documents development was chosen from previous successful documents with requirements for the members of the team. They were chosen on a similarity basis. However, even requirements documents for non-related products development were helpful to solve this task and provide team members with task files both in docx and pdf formats in order to facilitate work. In addition, the prototype of the application was chosen to help them to work for success.
2.Complete system analysis 2 days 10-22-2013 10-23-2013
System analysis was completed according to available solutions that were analyzed, including system requirements and available hardware that was an essential component of this system analysis. This task was completed according to the set deadlines.
3. Analyze research solutions and requirements 2 days 10-24-2013 10-25-2013
Research solutions and requirements are features, information and data that were gathered according to the needs of completion of this project. Although this task was set to be completed in 2 days, I was able to finish it within one day. The aim of this part of the task was to clarify the requirements within the set research solutions in order to understand this subject much better. This was expected to help in finding solutions in the process of project development and implementation.
4. Finalize fucntional and technical specifications 1 day 10-26-2013 10-26-2013
Final decisions were made about tools and components that would be expected to be in use throughout the whole project lifecycle. These statements were formulated in documents that were signed by top-managers of the company and by stakeholders. This task was completed in 2 days, as was expected.
Project Stage: Execute
1. Prepare tools for development 1 day 10-27-2013 10-27-2013
The installation of the development software was made on two computers that would be expexcted to be used both for development and later for testing purposes. This task was completed according to the set deadlines.
2. Start to develop an application 1 day 10-28-2013 10-28-2013
The process of development was started, when important tools were installed and there was enough hard drive space to work for every member of the team. The process of development began by analyzing the prototype of application that had been chosen in order to have a sample of the work. However, the task was not just to edit code, but to create a brand new application that would meet needs and requirements of the given project according to the set timframe.
3. Preparing to complete application development 30 days 10-29-2013 11-27-2013
The preparation for application development was held folowing the steps:
2. Learn Apache Jena. 3. Learn about Semantic Web. 4. Implement Search command using Java. 5. Implement the string matching criterion using Sparql. 6. Scoring is a way to calculate how close the inputs are to the documents retrieved. 7. Implement the ontology-based search criteria using Sparql and Jena.
Before starting preparation, every member of the team got manuals in Apache Jena, Semantic Web, Java, Sparql, etc. so that they could become familiar with what they develop and how to go about it correctly. The team included highly educated professionals that could manage to work efficiently, professionally, within the set deadlines. Since we could not afford any loss of time, we had to prepare faster by reading the updated manuals, learning some tips and tricks in order to succeed in the process of development.
4. Presenting the draft results to the stakeholders 2 days 12-02-2013 12-03-2013
The results of the application development start were presented at the meeting of stakeholders so that they could provide feedback and comments regarding developing work. At the meeting it was decided to proceed with work in order to complete the project as soon as possible to use it commercially. This task was completed in one day, although it had taken two days to plan from the beginning.
5. Developing the application according to requirements within the TFS 2012 environment 25 days 12-04-2013 to 12-23-2013, 01-06-2014 to 01-10-2014
Although all team members were trying hard to develop the application according to the confirmed deadlines, the software was developed 7 days later, due to the upcoming winter holidays. The deployment scenario was executed within the TFS 2012. The application was tested on the server, errors in code were fixed by means of code editing applications within TFS 2012, and some parts were edited in Notepad+.
Project Stage: Evaluate
1. Review the application with stakeholders 1 day 01-13-2014 01-13-2014
As a leader of the project, I completed a prototype of the ready-made application in the form of ta PowerPoint presentation to familiarize them with how the application works, describing all features of it and pointing out how they are useful. I presented this application on a formal meeting of stakeholders to get positive evaluations. In addition, I suggested that every one present on this formal meeting install this applicatiion on their iPhones, and I pointed out that it worked very well with the latest version of this Apple device. At the meeting hall, two remote servers were installed, so that they could operate with genom data that were being sent from iPhone devices. I suggested providing an experiment in this meeting hall, although the setting of the meeting hall had drawbacks in relation to experimental purpose. The experiment was just aimed to present features of this application that may facilitate research work in future within research institutions and laboratories. Only 20% of the stakeholders present at the meeting agreed to participate in this improvised experiment. The data were sent to the remote server. The human genom expert was invited to analyze the data that were processed by the remote server. The expert was taught how to deal with this application and its features. When the data were collected by iPhones and sent to the remote server, it was found out that 5% of participants are risk takers for leukemia, due to the some wrong combinations of genes code. It was revealed by the medical expert that was invited to the meeting. Since the results of this experiment were true, as the risk takers knew their level of risk for leukemia as they were medically certified with it, the application was evaluated as suitable for commercial use.
2. Determine objectives are met 1 day 01-14-2014 01-14-2014
At the formal meeting, the stakeholders agreed that the developed application met the outlines objectives in the Business Objectives Plan. The feedback from the stakeholders was fixed in documents – in the report of the meeting. This task was completed in 1 day.
3. Complete revisions 1 day 01-15-2014 01-15-2014
There was no request of any revisions on the side of stakeholders. They agreed that the develop application meets all standards for the works of this type and needed requirements.
Project Stage: Closeout
1. Organize a project closeout meeting 1 day 01-16-2014 01-16-2014
As the final stage of the project, a closeout meeting was held once again to ensure that this project meets requirements and contemporary standards. None of those present at this meeting requested any need for revision, since positive expert feedback was expressed, and every stakeholder was ensured that this project would be great to use for commercial purposes. In addition, it was decided to sell this application via Apple Store, in order to gain a profit, since many research institutions are in need of applications of this type. In addition, it was decided to proceed with planning for the new similar applications in order to ensure success in diagnosing more genetic deaseses. The commerical promotion of them would be the next stage. In order to complete it, marketing strategy would be required.
2. Obtain signoff from stakeholders 1 day 01-17-2014 01-17-2014
Formally, every stakeholder should sign the document to certify the closeout of this project. This task was completed in 1 day, as it was expected.
3. Finalize the closeout documentation 2 days 01-20-2014 01-21-2014
In order to complete this task, it was required to make sure if all documentation was binded together, ensuring nothing was missing. This task was completed in 1 day, even earlier than anticipated.
Team Work Assessment Results
Assessment results are placed in the following sections. In order to assess the perceptions of the team members concerning gains related to working at this project, pre-work and post-work surveys were distributed. The members of the team were asked to rate themselves on a certain number of questions in skills. A 5-point scale with anchors was used in this process:
1 – Novice = new to the skill/concept.
2 – Beginner = having some exposure to the skill/concept, but not using it frequently, therefore having a need to improve.
3 – Competent = having had reasonable exposure to use of the skill/concept, although more development is required.
4 – Proficient = using the concept/skill regularly, however, there are some areas that need advanced features in.
5 – Expert = having had significant exposure in use the skill/concept routinely, with virtually no areas that need further improvement.
The sample size is small, so the Mann-Whitney U-test has been employed to reveal the major response differences. In Table 1, the results of assessment are presented to show every question asked, regarding some significant different changes that are highlighted in gray with an alpha of 0.05 in use.
In the process of application development, there were no communication problems noticed within the development team. All of the developers agreed to work as a team, discussing ideas and problems with each other, so that they could be fixed as soon as it possible.
Some problems were encountered at the stage of code testing process, when some errors in code were detected. However, they were fixed easily, as the facilities of TFS 2012 environment are well adjusted to the current needs of developers. However, some problems were solved by means of traditional Notepad+.
The effects of this project will be detected in the future, when this application will be sold commerically by means of the Apple Store. It should be promoted so that users become familiar with facilities they can obtain after they buy this application. Particularly, in this purpose, the demo-version should be implemented and tested in order to show research workers all advantages of the application.
The iPhone application that was developed by means of this project would have the greatest marketing effects and bring success to the company.
Initial competencies to complete this project include the features of character of the leader of the team of developers. He/she should have the confidence to guide other members and lead them in the right way. Leadership qualities go along with proper project management qualities that turn to be possible in the context of the Team Foundation Server 2012 environment. This allows for the development of applications on one or two servers, to simplify or get it right and more secured.
Furthermore, according to the Competency Matrix Table, this project will be possible and successful only if members of the team are getting familiar with additional software, including SPARQL, Apache Jena, and Semantic Web. They should be ready to implement search commands using Java, as well as string matching criterion using Sparql and the ontology-based search criteria using Sparql and Jena. These programs will help to develop competency more effectively.
The competency of the leader and members of the team include readiness for collective problem solving, fixing defaults and errors within the environment, and providing high-quality development activities. Testing applications on a server is a very important part of the process. Working within the local and remote network, securing private data via SSL protocol are additional competencies for developers. It is of great importance as the application within the Capstone Project will be developed for a hospital or research center.
The other side of competency is language and communication abilities. Developers should improve their professionalism by always open for communication inside the team, discussing issues while developing the application. The author of this project, while developing the idea, has got the competency in technical writing that allows developing projects of greater complexity in the nearest future.
The Capstone Project is only the first step to encourage developers to work in a team and switch to Team Foundation Server 2012 in the nearest future. Luckily, there will be chances to complete more projects of the similar kind, particularly, aimed to facilitate researchers in diagnosing more diseases related to wrong genom code combinations.
Appendix 1. Competency Matrix
Language and Communication
Technical writing capabilities, proper lexicon
Operating with numbers and definitions
1. Learn SPARQL 2. Learn Apache Jena 3. Learn about Semantic Web 4. Implement Search command using Java 5. Implement the string matching criterion using Sparql 6. Implement the ontology-based search criteria using Sparql and Jena
Local and remote
Managing projects with Team Foundation Server 2012
Leadership and Professionalism
Professional attitude to project implementation, being the leader of the team, taking responsibility
Project management within the given developing environment
Securing data through SSL protocol
Creating databases for health care institution
Upper Division Collegiate Level Reasoning and
Solving problems and team work in the frames of Team Foundation Server 2012
Designing technical architecture
Aimed to reduce development costs. TFS architecture consists of two layers: application level data and client level
Integrating systems within a single server
Creating acceptable deployment scenarios
Errors in code
Detecting errors in code and fixing them
Testing application via TFS 2012
Understanding existing and emerging technologies
Learning new software and using advantages of it, according to requirements
Configuring deployment process via scripts
Set up the deployment scenario using scripts
Influencing and persuading
Attitude to the members of the team
Adapt to changes in development process
Making strategic planning of the project
Communicating and listening; gathering information
Developing skills in communicating with the members of the team