Designing your solution Mohamed R. Samy 3 April 2010
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
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.
Agenda Problem domain Solution domain Conceptual view Logical view Physical view Elements of a SOLID design
U.N. millennium goals Reduce child mortality Eradicate extreme hunger and poverty Promote gender equality and empower women Achieve universal primary education
U.N. millennium goals Improve maternal health Combat HIV/AIDS, malaria and other diseases Ensure environmental sustainability Develop a global partnership for development
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?
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.”
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?
Design principles Separation of concerns Single responsibility Don’t repeat yourself (Dry) Minimize BDUF