Untitled Document
Services
Software Modeling

What is modeling?

A model is a simplification of reality. A model provides the blueprints of a system. Models may encompass detailed plans, as well as more general plans. A good model includes those elements that have broad effect and omits those minor elements that are not relevant to the given level of abstraction.

  • A competent worker can build a simple shed without a blueprint, just as your developers can write a program without a model. But a multi story building needs a blueprint to make sure everyone has the same understanding and can work efficiently, meet the client's needs and satisfy local code requirements. And surely no construction company considers building a multi-story business building such as Buj at Dubai without extremely detailed blueprints
  • According to report published by the Standish Group, for every software application development embarked upon, there is a 23% chance of failure, a 49% chance of becoming sidetracked from initial functional schedule and budgetary provisions, and only a 28% chance of success.
  • The future success or failure of a development is essentially determined during the initial phases preceding actual software development itself.
  • During these phases, the main project participation, who have the power to make key fundamental decisions(decision makers, users, clients), build strategic objectives.
  • An outline of the domain to be handled is sketched and functional budgetary, planning ad architectural commitments are agreed upon.
  • At this stage, the aim is to define realistic objectives that will be understood by everyone and that will exhaustively cover the innovatory vision of the project.
  • Armed with a successful preliminary analysis, a list of well-formalized requirements and a sufficiently complete domain definitions, development realization allows the isolation and reduction of risks which can be mastered through.
    • The appropriate selection of development resources
    • Sound technical skills
    • A realistic budget and schedule
    • Well-organized and well followed-up project management
    • A development method and quality control adapted to the topology of the project.
    • Better Communication
    • Better planning
    • Reduced risk
    • Reduced costs
    • Rigidity – make it hard to change
    • Fragility – make it easy to break
    • Immobility – make it hard to reuse
    • Viscosity – make it hard to do the right thing
    • Needless Complexity – over design
    • Needless Repetition – error prone
      • Terminology, definitions and domain boundaries are clarified, in order to explain the problem in a clear context.
      • In this domain modeling, functioning must be explained in the form of business procedures, but also in the form of rules and business constraints.
      • An analysis of what already exists must be carried out, by representing it as a system whose structure roles, responsibilities and internal and external information exchanges are shown.
      • All preliminary information must be collected in the form of documents models, forms or any other representation. The nature of the products developed by the processes is explained.
    • During the preliminary phase, a major issue consists of using representations, which allow dialog between involved parties, such as users, analysts, hierarchical managers and domain experts. The exaggerated use of modeling techniques like UML hinders understanding for certain participants and can be detrimental to their involvement in modeling or reviews. On the other hand, the absence of a rigorous method of representations can prevent the gathering of precise, consistent and relevant information, which can be summarized or detailed according to desired dialog levels. Several techniques will therefore be combined so as to specifically address each type of problem, but also to provide representations that are easily understandable by the various categories of people involved in the initial phase.

      It is necessary to define the application domains on which a system is to be put in place and the processes that the system must support. Because:

      To conclude, modeling can be an effective way to manage the complexity of software development. It enables communication, design and assessment of requirements, architectures, software and systems. Modeling provides not only visual but also textual content

  • Benefits of Software Modeling

    Modeling provide:

    There are some deadly sins of software design