Group Project - System Analysis
Now that your team is more familiar with the problem it's time for you to plan your broader Web application. Remember that we want an application for editing map graphics in various ways and our site also hopes to serve as a community for likeminded map graphic creators. This will require a number of varied services working in concert, which is a challenge of Web development.
Who would use this site?
Anyone wanting to make custom map-based graphics based on real world geographically organized data for their own purposes. This means our users might be application developers but are more likely map enthusiasts, either for reports, posting on social media, or for general publication. This may include researchers authoring papers or educators presenting geographically-organized information.
Map File Constraints
Note that we are really interested in drawing maps according to their administrative divisions and attaching data to those divisions. SHP/DBF, GeoJSON, and KML files can all be used to store maps with such divisions and associated data. Note that for the purpose of this project we are not interested in things like drawing roads, data that can be found in some shapefiles. The same is true of topology data unless it is discreet data separated by administrative division, but remember, we are dealing with vector maps, not raster maps. So again, we are interested in drawing regional boundaries and attaching data to such subregions for custom purposes. To better understand, imagine one wished to compare the GDPs off all the nations in Europe. One would have to find a map of Europe (either externally or via the site). That map may have GDP data already or the user should be able to enter/edit it via your site. Then, they can create a map graphic making use of that GDP data.
Now understand that there might be other people who might like to make a similar but different map graphic, maybe involving Europe but not GDP, some other metric. The original map graphic creator could share their map with the broader community and save them the struggle of having to find and upload it. You can see that we hope such a site would allow a collaborative community to spring up around the editing process.
What services must your site provide?
Note that in this project you are working for a specific customer, and the customer does have a list of broad services that are required of this Web application, but how they should be provided, meaning what application strategy, and thus what narrowly-defined services, and thus what use cases and thus what user interface components, should be used is to be determined by your team. Below are the broad services that the customer requires:
- Accounts Management - the application will require a secure accounts system and all
that entails. Note that this system should integrate into content creation as content may be public
or private and should have an owner. Note also there must be mechanisms for recovering forgotten
passwords.
- Map Graphic Creation - users should be able to begin the map graphic creation process in three
different ways:
- Uploading SHP/DBF files
- Uploading a GeoJSON file
- Uploading a KML file
- Forking an existing map already on the site
- Map Graphic Editing - this is a real star of the show. It's a primary purpose for this
application and presents a real technological challenge. It is certainly a priority because if it
isn't done well there is not much reason to use the site. We have to be able to edit geometry and
data for these maps, including, but not limited to:
- Naming Regions
- Attaching Custom Data Properties of various types like strings, numbers, colors, etc. to Map Regions
- Attaching Custom Properties to Maps
- Map Viewing and Navigation
- Editing - it would be nice if our users could find an existing map, and decorate it with text and colors and a legend to give it specific meaning. This would require a graphics editor so one could specify the decorating details (texts, fonts, text positions, fill colors, color gradients, border colors, background colors, legend details, etc.). It would also require a mechansim to view it and to export it as an image file. We then presume if one finds a map it may have a graphic attached to it that one may use or fork and update for ones own purposes. To get a better understanding, see how Vox uses the map below in one of their articles. Lots of publications present complex data with maps because it allows complex geographic information to be found and understood quickly. Note, if you choose this service, you should be careful to constrain the types of graphics that can and cannot be made with your tool.
- Undo/Redo
- Map Graphics Exporting - map graphics don't exist just for this program, they exist to be used
externally by other applications. Your application should work such that it can export maps into at
least three formats: PNG, JPG, and your own JSON file format.
- Map Classification and Search - maps should be given properties such that they can
be searched for and found and used by users (public ones, anyway).
- Community Interactions - users of your application should be able to exchange and
discuss created maps. This works in concert with map search and the real key here is feedback to the map creator ("Hey, your map has an error!"), pointing other users in the right direction ("Hey, the map you are looking for is over here!") and general discussion ("John": "Wouldn't it be great if we had a map of 1311 Portugal?", "Jane": "I'll get right on it!").
So what types of "map graphics"? It all sounds so vague
Yes, customers can be fickle. They know they want their problems solved within some problem domain but they don't always know precisely what they want. Many times this is what being a Software Engineer is all about, i.e. first figuring out what the customer really wants. Hopefully the discovery stage has helped you better understand what is needed. Your application must provide all of the broad services the customer has asked for, but there are many approaches that could be used here. One key is to ask your customer questions and to get into the mind of how end users really wish to make use of this application.
So where do we start?
In this first assignment you will be making important decisions about what to make. First, pick a name for your application. Then, create a Google Drive directory named for your application and share access with your instructor. You'll provide access to TAs as well once they are assigned. Then, within your directory, put a subdirectory for Meetings and another for Docs. For this assignment, inside Docs, add a Google Doc called Section 1 - System Analysis. The format of this document is described below:
- Section 1 - System Analysis (Three Page Limit) - Inside the Docs directory put a single Google Doc file to
contain your system analysis. What is System Analysis? Well, it involves studying the project
landscape to better understand it and we'll use that to then
figure out what you actually propose to do. So one typically starts by studying existing products,
projects, and processes. Note that your system analysis should not include details regarding the
technology used, user interface detail, or even use case details, those will come later. But this
section of your document should include:
- Executive Summary - this frames the project, explaining the need for the product and the big picture philosophy in a way that brings the reader to understand the product vision. It should also discuss some of the existing products in the marketplace and how your team's vision sets it apart from existing software.
- Objectives - these are the things this project hopes to achieve. Management has provided much of this already but you should formalize this yourself and may add your own relevant project objectives.
- Strategies/Philosophies - what are the guiding principles you plan to use in the creation of your application. Are there any particular methodologies or other usability philosophies you wish to use in your approach?
- Constraints - describes all limitations that will be placed on the software either due to things that are out of the team's control or constraints deliberately imposed by the team in order to set clear boundaries for the scope of the project. Note, at this time the major constraint for your application you must consider is what types of map graphics will your application be able to produce. Your application should have at least 5 map graphic types (i.e. templates) that can be created. These should be named types (you can name them what you like, i.e. heat map) but much of the utility of your site will be determined by the varied quality of the map graphics your site can produce as well as customization possible for map graphic creators.
- Actors - describes all the different categories of users for the software and what privileges and restrictions they may have in using the software.
- Services - start with a complete list of all services to be provided by your site. Note that you want to sharply define each service so that someone unfamiliar with the project will understand. Also note you are committing to one of the two aforementioned options here.
What's next?
As the semester rolls along we will add more planning, design, and implementation documentation, which will all end up in our completed document. So, be ready to create documents for:
- Use Case Model
- User Interface Model
- Data Model
- Domain Analysis Model
- Software Model
- Progress Reviews (one per build)
- Post Mortem
- Appendix A: All Meeting Minutes
- Appendix B: Requirements Presentation Slides
- Appendix C: Final Presentation Slides
- Appendix D: Detailed Descriptions of Team Member Contributions
Handin Instructions
Each team should submit their System Analysis PDF via Brightspace.
Grading
This assignment will be graded based on the thoroughness and quality of the submitted document. Does it adequately describe the vision for the team in sufficient detail? Is it well written using precise language? Does it include all required sections? Is it carefully organized? Does it clearly specify the types of map graphics your site will be able to create? Remember, a picture is worth 1000 words.


Web page created and maintained
by Richard McKenna