-1

I have to design and develop stand alone desktop application using NetBeans , Java and MySQL. I need to know how to plan my software step by step before coding, like create SRS document, drawing use cases, plan ER Diagram, Flow charts , BP Diagrams, Class Diagrams, etc...

complete quality product with less errors

2 Answers2

1

As per my understanding, the development model needs to be determined - if it is waterfall or prototypical. Waterfall model is not much in use these days as per my knowledge. Under waterfall model, the coding begins only after the requirements specifications and software design is fully developed and nailed down such that there is almost negligible chance that they would change. However, in modern world, the agile or prototypical software development model is being followed where we start with basic requirements and basic software design and then directly proceed to coding, testing and also sometimes releasing the product as soon as possible. And then all the steps of srs, design, coding, testing and releasing get repeated continously until the application's life time, thus the product gets better with each release and only after few releases it will reach at a point where it has got many features live in production.

The reason that the iterative model of software development is more popular is because the requirements keep changing and it is hard to nail down the requirements for all the features of the product beforehand because the stakeholders don't have the full idea of what they want and/or how they want. The same is true for design, due to change in requirements, the software design also needs to be changed and hence it is not beneficial to lock down the software design either.

However that being said, it is not the case that iterative development does not have any srs or any design specs. I would suggest to start with basic srs and basic software design that captures the very core part of the application and also keep it flexible so that it can accommodate the changes easily.

The diagrams and documents that you mentioned are all good starting points. However, they need to be kept at minimal capturing only the core part of the application so that the coding, testing and releasing part can proceed quickly and thus accomplish the goal of getting that initial version (proof of concept) out so that it can be demonstrated to the stakeholders.

Let us say, it is a shopping application, the core part of it may have these features:

  • Ability to add items to inventory
  • Ability to show all the items to user (search comes later, user authentication comes later)
  • Ability for a user to view details of the item
  • Ability to make a purchase (fake purchase, actual payment processing can be done later)
  • Ability to view the orders and order details.

Thus the above features try to complete the critical path of the application so that it can be a working application as soon as possible and can be demonstrated and iterated over. The features that are not critical initially can be stubbed out - such as authentication, search, payment processing, sending emails and so on.

I am not sure if this answers your question but hope it provides some pointers in order to start the application development from scratch.

punitoza
  • 544
  • 3
  • 8
  • Thank you so much for the answer. It's really helpful and as you mentioned am following Agile method too. Main thing is that i have to start with basic things and launch project as soon as possible. With your answer, now I have clear idea about this. Thank you again. – Nuwan Dissanayaka May 04 '19 at 02:10
1

If you have more time then follow waterfall model. You can go for Agile methodology for fast delivery of application. Planning of software depends on following factors 1)scope of project 2)deadlines of project 3)Number of resources available 4)cost of project 5)R&D work time etc

i hope , it will help you