Your SlideShare is downloading. ×
  • Like
Imagine cup- Architecture/Design talk
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Imagine cup- Architecture/Design talk

  • 1,091 views
Published

A presentation I did to support the Egyptian Imagine cup team, but anyone is welcome to use/download/comment

A presentation I did to support the Egyptian Imagine cup team, but anyone is welcome to use/download/comment

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,091
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
29
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Future proofing
  • Yasalam law nedeehashewayet inheritance
  • ”A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away”

Transcript

  • 1. Designing your solution
    Mohamed R. Samy
    3 April 2010
  • 2. About the Speaker
    Snr. Application Architect Right Solutions
    Solutions Architect MVP 2008- 2009
    MCP, MCSD Since 2001
    Aiming for 2 communities
    ALM
    Dynamics AX
    http://developmentmaster.spaces.live.com
    @msamy
  • 3. Your Mission
    Together you can make a difference. Create inventive software and service solutions that unleash the power of technology to benefit your community, country or region… or … the entire planet.
  • 4. Agenda
    Problem domain
    Solution domain
    Conceptual view
    Logical view
    Physical view
    Elements of a SOLID design
  • 5. Problem domain
    So what is your problem?
  • 6. U.N. millennium goals
    Reduce child mortality
    Eradicate extreme hunger and poverty
    Promote gender equality and empower women
    Achieve universal primary education
  • 7. U.N. millennium goals
    Improve maternal health
    Combat HIV/AIDS, malaria and other diseases
    Ensure environmental sustainability
    Develop a global partnership for development
  • 8. Problem definition
    What is the problem?
    Who has the problem or who is the client/customer? This should explain who needs the solution and who will decide the problem has been solved.
    What form can the resolution be? What is the scope and limitations (in time, money, resources, technologies) that can be used to solve the problem?
  • 9. Solution domain
    Define your architecture
    “Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability.”
  • 10. Define your architecture goals
  • 11. Architeture goals
    Start with use cases and usage scenarios or “user stories”
    Have a scenario for each feature in your system
    How will your system be part of the scenario?
  • 12. Architecture principles
    Build to change not to last
    Model and analyze to reduce risk
    Use the model as a collab. Tool
    Identify key engineering decisions
  • 13. Build to change not to last
  • 14. Model to analyze and reduce risk
    Yasalam law nedeehashewayetinheritance!
  • 15. Use models as a comm. & collab. tool
  • 16. Identify key engineering decisions
  • 17. Evaluating your architecture
    What assumptions have I made in this architecture?
    What explicit or implied requirements is this architecture meeting?
    What are the key risks with this architectural approach?
    What countermeasures are in place to mitigate key risks?
  • 18. Design principles
    Separation of concerns
    Single responsibility
    Don’t repeat yourself (Dry)
    Minimize BDUF
  • 19. Single responsibility
  • 20. Separation of concerns
  • 21. Don’t repeat yourself
  • 22. Don’t BDUF/YAGNI
    Yagnibalash big design up front !
  • 23. So what do I do then?
    There are some things you need to determine.
  • 24. What type of application is it?
    Web, desktop, cloud service?
  • 25. How will it be deployed?
    Mobile app, specialized hardware? Web inerface?
    Don’t forget the physics!! Bandwidth, network latency, processor speeds?
  • 26. Choosing the appropriate technology
    Shouldn’t we just use the buzzwords?
  • 27. Determine quality attributes
    How good? How fast? How much is enough?
    “Quality is not a goal, it’s a lifestyle.” Dubai one
    Happy scenarios vs exceptions.
  • 28. Determine crosscutting concerns
    Loggging
    Exception handling
    Caching
    Security
    Profile management … etc
  • 29. Architecture styles
    Layered
    Service bus
    DDD
    Client/Server
    SOA
    Which is better?
  • 30. Arch Styles
  • 31. So can I see a sample design document?
    Use a wiki, or office live.
    Forget templates, build your own.
  • 32. How can we support you?
    Me evil idea…
    How else may we help?
  • 33. Make us proud 
  • 34. Thank You
    m_raafat_samy@hotmail.com
    @msamy
  • 35. Q&A