Top Banner
Designing your solution Mohamed R. Samy 3 April 2010
36

Imagine cup- Architecture/Design talk

May 17, 2015

Download

Technology

Mohamed Samy

A presentation I did to support the Egyptian Imagine cup team, but anyone is welcome to use/download/comment
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Imagine cup- Architecture/Design talk

Designing your solution Mohamed R. Samy

3 April 2010

Page 2: Imagine cup- Architecture/Design talk

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

Page 3: Imagine cup- Architecture/Design talk

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.

Page 4: Imagine cup- Architecture/Design talk

Agenda• Problem domain• Solution domain– Conceptual view– Logical view– Physical view

• Elements of a SOLID design

Page 5: Imagine cup- Architecture/Design talk

Problem domain• So what is your problem?

Page 6: Imagine cup- Architecture/Design talk

U.N. millennium goals

• Reduce child mortality

• Eradicate extreme hunger and poverty

• Promote gender equality and empower women

• Achieve universal primary education

Page 7: Imagine cup- Architecture/Design talk

U.N. millennium goals• Improve maternal health

• Combat HIV/AIDS, malaria and other diseases

• Ensure environmental sustainability

• Develop a global partnership for development

Page 8: Imagine cup- Architecture/Design talk

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?

Page 9: Imagine cup- Architecture/Design talk

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.”

Page 10: Imagine cup- Architecture/Design talk

Define your architecture goals

Page 11: Imagine cup- Architecture/Design talk

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?

Page 12: Imagine cup- Architecture/Design talk

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

Page 13: Imagine cup- Architecture/Design talk

Build to change not to last

Page 14: Imagine cup- Architecture/Design talk

Model to analyze and reduce risk

Ya salam law nedeeha shewayet inheritance!

Page 15: Imagine cup- Architecture/Design talk

Use models as a comm. & collab. tool

Page 16: Imagine cup- Architecture/Design talk

Identify key engineering decisions

Page 17: Imagine cup- Architecture/Design talk

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?

Page 18: Imagine cup- Architecture/Design talk

Design principles• Separation of concerns• Single responsibility• Don’t repeat yourself (Dry)• Minimize BDUF

Page 19: Imagine cup- Architecture/Design talk

Single responsibility

Page 20: Imagine cup- Architecture/Design talk

Separation of concerns

Page 21: Imagine cup- Architecture/Design talk

Don’t repeat yourself

Page 22: Imagine cup- Architecture/Design talk

Don’t BDUF/YAGNI

Yagni balash big design up front !

Page 23: Imagine cup- Architecture/Design talk

So what do I do then?• There are some things you need to determine.

Page 24: Imagine cup- Architecture/Design talk

What type of application is it?• Web, desktop, cloud service?

Page 25: Imagine cup- Architecture/Design talk

How will it be deployed?• Mobile app, specialized hardware? Web

inerface?

• Don’t forget the physics!! Bandwidth, network latency, processor speeds?

Page 26: Imagine cup- Architecture/Design talk

Choosing the appropriate technology• Shouldn’t we just use the buzzwords?

Page 27: Imagine cup- Architecture/Design talk

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.

Page 28: Imagine cup- Architecture/Design talk

Determine crosscutting concerns• Loggging• Exception handling• Caching• Security• Profile management … etc

Page 29: Imagine cup- Architecture/Design talk

Architecture styles• Layered• Service bus• DDD• Client/Server• SOA• Which is better?

Page 30: Imagine cup- Architecture/Design talk

Arch Styles

Page 31: Imagine cup- Architecture/Design talk

So can I see a sample design document?

• Use a wiki, or office live.• Forget templates, build your own.

Page 32: Imagine cup- Architecture/Design talk

How can we support you?• Me evil idea… • How else may we help?

Page 33: Imagine cup- Architecture/Design talk

Make us proud

Page 35: Imagine cup- Architecture/Design talk

Q&A

Page 36: Imagine cup- Architecture/Design talk