![]() ![]() Focus especially on the edges of the tools - a real gotcha I hit in a recent project was emulating the databases of previous tools. (1) - what will they be using as part of the process, along side your tool? Consider direct input/output needs - what might they want to cut/copy/paste from or to? What tools might you want to offer file upload/download for with specific formats, what tools are they using alongside your tool that you might want to share terminology, layout, color coding, icons or other GUI elements with.You need to know two main things about the other tools you users use: What other tools exist in this sphere? These days, it seems to me that users never use just one tool, they swap around alot.I like to start with screen mockups as well, with or without lots of hands on time with users, I find that having a screen gives our team something really finite to argue about. Starting with what tasks the user will try to do, and evaluating how frequently they are likely to be is a great starting point. User stories or use cases are often a good starting point.If this is false, I'd probably move the order of steps around quite a bit.įirst, you've got to get a sense of what's around you so you can really understand the problem that you are trying to solve. So bottom line : Start with DB, DB integeration layer, Controller and last Presentation Layer.įor the purpose of discussion, I'm going to assume that you are working with a starting application that doesn't have a pre-existing database. ![]() This will help you to design applications that can be scalable and adaptable to new requirements. When you develop the db layer, assume that not just your presentation layer but any client can call it. Developing your application layer by layer helps since it will force you to decouple the db logic from the presentation logic. Then move on to develop the above presentation layer. Design your db layer generic enough so that it can build queries based on the params that you pass to it. The challenging task is design your DB layer which will be the glue between your application and db. Make sure the tables are sufficiently indexed so your queries can run faster if filtered based on index fields. Since most of your operations looks like querying db, hibernate should help. Do investigate upon using Hibernate/Spring. #Free relational database application how to#I can only do a good job of telling how to do things. I realize that's a controversial position, but my point is that the user stories (and implied business-rules that come with them) have ALREADY told you a LOT about the business and user layers - so, "nailing down" (relatively speaking - agility and "embrace change!" should always rule -) the data storage layer is the next order of business, and refining ("drilling down") the higher layers can and should come after. I think the business layer and user-experience layers should come after. Thirdly, you may sketch layers such as views on top of the schema fourthly, and optionally, triggers and stored procedures that might live in the DB to ensure consistency and ease of use for higher layers (but, no matter how strongly DBAs will push you towards those, don't accept their assurances that they're a MUST: they aren't - if your storage layer is well designed in terms of normalization and maybe useful views on top, non-storage-layer functionality CAN always reside elsewhere, it's an issue of convenience and performance, NOT logical consistency, completeness, correctness). The best way to start is by figuring out "user stories" (or "use cases" - but the "story" approach tends to really work great and start dragging shareholder into the shared storytelling.!-) on top of that, designing the database schema as the best-normalized idea you can find to satisfy all data layer needs of the user stories.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |