Iteration 1: Requirements - edogdu/software-engineering-course GitHub Wiki
In this iteration you need to give the requirements your project should meet, and an outline of the planned architecture.
Your team's submission should include the following.
- Project/Product Title
- Team Info: Include team's name, team members' names.
- Vision Statement: Summarize your project in a few sentences.
- Feature List: List the features of final product. If the project/product is in an area that is something not common knowledge, include a Domain Analysis along with your features -- Some details here.
- UML Use Case Diagram: Draw your system's use case model and include here.
- UI Sketches: (aka storyboards/mocks) Key UI elements to help express your vision. If it is a phone app you are encouraged to use one of the many nice storyboarding tools for this. Focus on the non-trivial aspects of the app, not the obvious features such as login or change password.
- Key use-cases You don't need to write a long list of use-cases; instead we want use-cases only for complex multi-step processes which are not obvious from the UI sketches. For example, "login" in most applications is a self-explanatory process so you do not need to make a use-case for it. Also if your storyboards/mocks clearly show the stepwise sequence there is no need to repeat that information in a use-case. If you don't have any key use-cases it is a sign your project is too data-centric: it has no interesting algorithms in it.
- Architecture: Describe the major packages, components, and your proposed deployment methodology. Include a listing of Frameworks, libraries, tools, etc. you plan to use.
- While no code is required for this submission, you should be downloading and installing various frameworks you have not used before, reading the documentation on how to use those frameworks, installing, running, and playing with provided demo examples, etc. You are also encouraged to develop one-off prototypes if you need to check feasibility of a design idea.
- If your project is a variation on an existing application, mention somewhere the application and describe how you plan to make your project different.
Make sure you have been thorough in your requirements. Some common incompletenesses include:
- Your overview is incredibly vague and lacks concrete features or requirements that show you put some real time into thinking about your design.
- Features apparent from the vision statement and UI sketches are missing from the feature list, or key features are not appearing in any UI sketch.
- An important sequence of actions is not made clear in either UI sketches or a use-case.
Submission
- Team leader creates a project repository in GitHub, share with all team members.
- In the Wiki pages of the repo, create a page named “Iteration 1 - Requirements”. Submit all requirements (above) in this page.
- Wiki text should be formatted using markdown. See: Adam's Markdown Cheatsheet for a few tips. Or https://github.com/tchapi/markdown-cheatsheet/blob/master/README.md.
- You will need to make a well-organized and readable wiki.
- Use draw.io to draw UML Use Case Model.
- Use draw.io to draw UI sketches (type UI in the search box). You can use other UI design tools available (see below in the reading list).
- For UI sketches, you can scan them in if drawn by hand, or you can use a tool. All that matters is that they are easy to read. Some good UI prototyping tools are listed on the course tools page.
- Print the wiki page as PDF and upload to BB.
Reading
- UML Use Case Diagram by Ambler
- JHU lecture notes on requirements capture phase
- UI/UX Sketching Techniques
- Guide to UI/UX Tools 2020
(Adapted from http://pl.cs.jhu.edu/oose/index.shtml)