Software Design Specification (SDS) - talshi/Yerushalmit GitHub Wiki
SDS - Software Design Specification
1. Introduction Document Goals & Capabilities
This document serves us as a documentation and a guideline of implementation of our project. Diagrams attached to this document provide analytic design of each part of the whole system and connecting all the diagrams constitutes the architecture of the system. It supplies a snapshot of the intended system from multiple points of view. Finally, it is the “how will we do it” part after we wrote the “what will we do” part, which is the SRS.
Capability | Risk Level if not implemented | Capability Description |
---|---|---|
Add an image | Critical | Convert an image to a map |
Add a new marker to the map | Critical | Marker will indicate an activity |
Edit activity information (name, date, etc) | Critical | Know the activity’s information and the ability to classify the activities |
Delete a marker | Critical | Manage old and irrelevant activities |
Sort activities by category | Medium | Show the relevant activities only |
Manage activities | Medium | Implement a management page with deletion/editing activities. |
Deployment Diagrams
2.The deployment diagram describe the hardware devices and software that our program is based upon.
Class Diagrams
3. CRC Cards &Activity
|Responsibilities|Collaborators| | ------------- | ------------- | ----- | |Know details about the activity|Category| |Know its category|Category| |Edit activity|| |Does the activity is shown on map?|Category|
Mapify
|Responsibilities|Collaborators| | ------------- | ------------- | ----- | |Init the objects module|Map, activityList, categoryList, DBController| |Add new object|activityList, categoryList| |Remove an object |Activity, Category| |Get the activities depending on the category|Activity, Category|
DBController
|Responsibilities|Collaborators| | ------------- | ------------- | ----- | |Get data from the DB|DB| |Set data in DB|DB, activity properties, Category properties, Map properties|
Sequence Diagram
4.5. Persistence
Website:
The website based on wordpress, therefore it is based on wordpress database. All pages, content and any kind of data in website will be stored in our own wordpress database.
Plugin:
The information about the activities will be stored in database placed at organization’s server. Temporary information, which may be extracted from the database by sorting and classification, will be stored in data structure (it can be a list or array, but it is not necessary it supports any kind of sorting). This data structure will be used as temporary storage for data which will be shown on map.
Note:
plugin data might be stored in different way, e.g in file as JSON/XML data. The exact way to store plugin data will be decided in the implementation stage.
6. Non-functional Requirements
- External interfaces
- Mailchimp - install this plugin on the wordpress website.
- Donation management system - the organization uses an external donation system. The requirement is to continue use it.
- Wordpress website based requirement
- All system’s components are based on wordpress, as required.
- Wordpress CMS provides simple management interface which does not require any knowledge in software development or programming languages.
- The plugin is also based on wordpress. It is installed by using wordpress’ plugin installation manager.
- Mobile compatibility / Responsive website
- Wordpress supports mobile compatibility as default.
- As already said, the plugin based on wordpress, therefore it will be also responsive.
7. Risks Management
Risk | Explanation | Severity | Probability | Lowering the risk | Competing |
---|---|---|---|---|---|
Changing customer requirements. | Customer changes his requirements endangering the project's end date, or the project is carried out not comply with the customer. | 1 | 3 | Increase cooperation and coordination with customer expectations. In addition, the development team will work flexibly so that any changes to the customer will be easy to carry out. | Changing the program according to the new requirements, rewriting of some parts. |
Team turnover | Central personality can leave the project which may be a significant risk project’s ending time. | 2 | 2 | Share information with crew. | Redistribution of roles in the group. |
Wrong estimation of system's size. | The system is more complex and bigger than we thought initially. | 1 | 3 | Requirements document, detailed design. | Reducing customer requirements. |
Development tools do not meet expectations. | System that should help develop not fulfill all our expectations of them. For examples: Wordpress. | 1 | 3 | Depth overview about the development tools. | Setting alternative development tools. |
Standing the test of time. | It will cause a delay in the project completion date. | 1 | 2 | Prioritizing the customer requirements. Appoint one team member whose job was to analyze the progress. | Reducing customer requirements. |
Team is unfamiliar with development tools. | Lack of familiarity with Wordpress and with PHP programming language, may cause a delay at the end of the project. | 1 | 1 | Selecting a variety team. | Division to a few teams, where each team member knows to perform the work and is aware to tools he is going to use them. Cooperative learning. |
Technology revival. | During development appears In the labor market a new Technology that significantly affecting the product. | 1 | 2 | Using Wordpress - this system is very strong, many people from around the world are constantly perfecting this system would always be the best and most advanced. | Learn as fast as you can the new technology platform. |
User Manual
8.9. Initial Test Plan
- Wordpress Test Plan
- Wordpress is an external system, which has its own updates and upgrades.
- Therefore, this unit will not be tested in depth.
- However, trivial checks will be tested. e.g create new page/edit existing page/delete page or add any kind of content.
- Plugin Test Plan
- Installation test.
- Management setting test.
- Add a picture test (and a non-image file).
- Add markers to map with all information required. Check they saved to database.
- Delete markers from map.
- Edit markers.
- Using plugin test.
- Open markers and check the information is valid. It should open a bubble with all the information (Google Maps style).