Architectual steps in Software Development RRS feed

  • Question

  • Hi,

    I have a very basic question. Say, I am going to architect a software solution. I have to go throgh the UML diagrams in the total lifetime of the project. What should be exact sequence of UML diagrams in the life time of the project?

    Also, what are different models (Domain model, Data model etc.),  which are used while architecting a Software? If I follow the this modelling approach, should I require to use UML any more ?



    • Edited by ronit_rc Monday, May 7, 2012 7:22 AM
    Sunday, May 6, 2012 7:32 AM

All replies

  • Hello romit_rc,

    UML diagrams are always helpful to communicate what your design is. Domain and Data models are High-Level Models compared to UML. Because in a Domain Modle you desgin the Elements of your Business Domain like Trading for example. These elements don't have to match classes and stuff. 

    Here comes UML to your help. You Design the elements of your Domain in UML Class Diagramms or the like. There you model the real classes with thier dependencies, functions and so on. With this diagramm you can easily see the "big picture".

    The Data Model on the other hand describes how you store your data in example how you build and name your tables in the SQL Database and what are the key fields, indexes, constraints and so on. UML can help you here to.

    In my opinion the most usefull UML Diagrams are the Class Diagrams for Modeling and Designing your classes and the Use-Cases to show how the Users interact with your system and what happens inside your Application. Use Cases are great to discuss worflows and tasks with your customer to make sure you are talking about the same.

    UML has many Diagrams so pick the ones suitable for your scenarios or customer needs.

    Hope that helpds,



    Tuesday, May 8, 2012 7:16 AM
  • Hi,

    Thanks for the answer. What are the different High level models used in SDLC starting from requirement to deployment ?



    Tuesday, May 8, 2012 8:11 AM
  • Hi,

    Well for Requirements you have to use something easy for you to unterstand and for your customer. Use Cases and User Stories are a good way do document them.

    Coming from those requirements you have to choose what kind of application you build. Web and Windows Applications use different Styles and have diffrent challenges. So this step is important. After that Decission you have lots of patterns and models to choose from all depending on your application size and requirments and plans for the future.

    A good Starting point for all that options, patterns and models is the "patterns & practices Application Architecture Guide 2.0" there should be a PDF download. And you can look at the "Patterns of Enterprise Application Architecture" by Martin Fowler

    On that way you will encounter UML at all levels.


    • Proposed as answer by Ashwini47 Thursday, May 10, 2012 12:10 PM
    Tuesday, May 8, 2012 12:30 PM
  • Hi,

    Thanks for the answer. Actually my question is according to high level models what are the list of models used in SDLC ? Like I can name Domain model and Data model. I want to know what are other models used in SDLC and in what sequence?



    Tuesday, May 8, 2012 1:00 PM
  • Hi,

    I guess you think of SDLC as this. You see, a Domain Model and a Data Model are patterns applied in the design and implementation stage of your life cycle. Unit Tests, Blackbox Tests are parts of the Testing stage and so on.

    There is no default sequence for this models or patterns because it depends on what kind of application in what size you build. You will meet Uses Cases, Class Diagramms, Sequence Diagrams in all diffrent stages to better communicate amog developers and/or customers.

    The Development Lifecycle is more a case for SCRUM, XP and so on real development processes and practices. The Architecture of your software is one gear in the whole lifecylce machinery.


    Tuesday, May 8, 2012 1:12 PM
  • Hello ronit_rc.

    First of all, architecture of the application is always an open ended question and there is no single answer to them.

    They depend on specific project requirements, deployment strategy, traffic and performance. For ex. if you architect a website which will be used by lets say 100-1000 users per day, then you might not look into some perspective of performance and deployment. But websites like Amazon will have completely different architecture to cop up with performance, reliability and availability req. By saying this your architecture style and procedure of developing High Level Models will be different most probably.

    Generally speaking, you start High Level Domain Model which only includes entities (classes) within your application, this can be used to comminicate with your stake holders since its very high level. Then you develop Detail Domain Model with attributes and operations for Entities. There are static diagrams expressing "WHAT" and not "HOW". Then to express "HOW" you develop sequence diagrams which shows how your entities interact with each other to accomplish business process. This can be high level and low level.

    I can list out following models

    1. High Level Use Cases (Can be used to communicate to Client)

    2. Detailed Use Cases

    3. High level Domain Model (Can be used to communicate to Client)

    4. Low level Domain Model - with all attributes and operations

    5. Business Process Sequence Diagram

    6. Technical Sequence Diagrams

    7. Deployment Strategy Model


    Thursday, May 10, 2012 4:55 PM