Methodology Tips

My Preference of Order Before Construction

Define use cases (use case analysis) — > Estimation —> Identify application interfaces —> Fix high level architecture —> Create object model from usecases —> Turn objects into classes and refine your design —> Identify objects into layers or packages they belong to —> Identify methods —> Create data model (can be done before object model if you like) —> Network architecture design

Defining the Project

  • Document usecases even when the project is small. No need for usecase diagrams.
  • Do not repeat terms in every usecase. Have a reference document.
  • Prototyping the GUI and signing it off is always a good idea.

Estimation

  • Estimate based on the slowest person in the team
  • Always consult the person responsible for the task for the estimation.
  • Consider time for environment setup, testing, leaves, etc.
  • More man power rarely saves a late project! That is because of the increase in communication and coordination. It usually adds more cost and it is better to be done as early as possible.

An Algo for Estimation

  • Step 1: For each usecase account for the number of screens in GUI, external application interfaces, database tables, table or file conversions.
  • Step 2: Account for analysis, design, development, integration and unit testing time.
  • Step 3: Add 20% to your estimate for any additional developer.
  • Step 4: Review your estimate over time, consider risk and share it with the others.

Objects Identification

  • Identify objects as early as possible. Relations are not that important now.
  • Trying to generate code from UML is just a time loss!
  • Turn objects into classes

Data Model

  • Pay attention to m-m and normal forms. m-m relations may produce extra objects.

Construction Phase

  • Do some design even in the fastest agile methods. Do not dive into coding straight away.
  • Once the project passed the analysis and high level design then you need a change request control mechanism.

Roles in UML association

At the end of each association the role each object might take is written. It can be applied to other types of association like generalization as well.

role.JPG
role2.JPG
page_revision: 20, last_edited: 1221372979|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License