Software Architecture and Software Architect T-Systems RUS. JavaSchool презентация

Содержание

Слайд 2

Intro 24.07.2015 –Internal – 0 1 2 3 Introduction Questions Terms Simplification

Intro

24.07.2015

–Internal –

0

1

2

3

Introduction

Questions

Terms

Simplification

Слайд 3

Agenda 24.07.2015 –Internal – 0 1 2 3 Basic design

Agenda

24.07.2015

–Internal –

0

1

2

3

Basic design principles

Design example

Multilayered architecture

Architect role

in PLC

4

Content

Intro

Слайд 4

Why we need Architects? 24.07.2015 –Internal – I know Java

Why we need Architects?

24.07.2015

–Internal –

I know Java and SQL, why

I need Architect for our product?
Слайд 5

Why we need Architects? Short Answer. 24.07.2015 –Internal – I

Why we need Architects? Short Answer.

24.07.2015

–Internal –

I know Java and

SQL, why I need Architect for our product?

Because your product has Architecture.

Слайд 6

Different architectures 24.07.2015 –Internal –

Different architectures

24.07.2015

–Internal –

Слайд 7

Outer Function requirements 24.07.2015 –Internal –

Outer Function requirements

24.07.2015

–Internal –

Слайд 8

Outer quality attributes 24.07.2015 –Internal –

Outer quality attributes

24.07.2015

–Internal –

Слайд 9

Our internal functional requirements 24.07.2015 –Internal –

Our internal functional requirements

24.07.2015

–Internal –

Слайд 10

Our internal quality requirements 24.07.2015 –Internal –

Our internal quality requirements

24.07.2015

–Internal –

Слайд 11

Design Guidlines 24.07.2015 –Internal –

Design Guidlines

24.07.2015

–Internal –

Слайд 12

Resources 24.07.2015 –Internal –

Resources

24.07.2015

–Internal –

Слайд 13

Personal pain experience 24.07.2015 –Internal –

Personal pain experience

24.07.2015

–Internal –

Слайд 14

Development team 24.07.2015 –Internal –

Development team

24.07.2015

–Internal –

Слайд 15

Company restriction 24.07.2015 –Internal –

Company restriction

24.07.2015

–Internal –

Слайд 16

Architecture depends on 24.07.2015 –Internal –

Architecture depends on

24.07.2015

–Internal –

Слайд 17

Architecture depends on 24.07.2015 –Internal –

Architecture depends on

24.07.2015

–Internal –

Слайд 18

But outer requirement is more important 24.07.2015 –Internal –

But outer requirement is more important

24.07.2015

–Internal –

Слайд 19

What means good architecture? 24.07.2015 –Internal – Meet requirements Ready

What means good architecture?

24.07.2015

–Internal –
Meet requirements
Ready for change
Ready for scaling

and distribution
Minimize cost
Other NFR

Quality attributes

Слайд 20

ISO 9126 Software quality 24.07.2015 –Internal – Functionality Reliability Usability Efficiency Maintainability Portability Quality attributes

ISO 9126 Software quality

24.07.2015

–Internal –
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability

Quality attributes

Слайд 21

Key architecture principles and practice 24.07.2015 –Internal – Separation of

Key architecture principles and practice

24.07.2015

–Internal –

Separation of concerns.
Single Responsibility principle.
Principle

of Least Knowledge.
Don’t repeat yourself (DRY).

Principles

Слайд 22

Key architecture principles and practices 24.07.2015 –Internal – Prefer composition

Key architecture principles and practices

24.07.2015

–Internal –

Prefer composition to inheritance
Separate the

areas of concern between layers
Be explicit about how layers communicate with each other.
Define a clear contract for components.
Keep design patterns consistent within each layer
Do not mix different types of components in the same logical layer.
Keep the data format consistent within a layer or component
A component /object should not rely on internal details of other components/objects.
Do not overload the functionality of a component.
Keep crosscutting code abstracted from the application business logic as far as possible
Establish a coding style and naming convention for development.
Maintain system quality using automated QA techniques during development.
Consider the operation of your application.

Common design practices

Слайд 23

Key architecture principles and practices 24.07.2015 –Internal – Prefer composition

Key architecture principles and practices

24.07.2015

–Internal –

Prefer composition to inheritance
Separate the

areas of concern between layers
Be explicit about how layers communicate with each other.
Define a clear contract for components.
Keep design patterns consistent within each layer
Do not mix different types of components in the same logical layer.
Keep the data format consistent within a layer or component
A component /object should not rely on internal details of other components/objects.
Do not overload the functionality of a component.
Keep crosscutting code abstracted from the application business logic as far as possible
Establish a coding style and naming convention for development.
Maintain system quality using automated QA techniques during development.
Consider the operation of your application.

Common design practices

Слайд 24

Design example

Design example

Слайд 25

Design Example: Simple Enterprise Search (SES) 24.07.2015 –Internal – Description:

Design Example: Simple Enterprise Search (SES)

24.07.2015

–Internal –

Description:
SES is software of

search information within an enterprise data.
Requirements (plain style):
Users from our company should be able to search across office document. Initially documents can be stored on external storages (ftp, corporative web server, windows shared folder). Also it should be possible to upload document directly to system. Only managers and dedicated persons should be able to search across finance documentation. All our user have browser Chrome on their PCs.
Слайд 26

Trying to rewrite requirements 24.07.2015 –Internal – UR01. Users should

Trying to rewrite requirements

24.07.2015

–Internal –

UR01. Users should be able to

search accross documents.
UR02. Users can have different access right.
UR03. Document types: Word, XLS.
UR04. Web inteface should work in Chrome.
UR05. System should be able to get document via:
1. FTP
2. SAMBA
3. HTTP
UR 06. Special users can upload document directly to System
Слайд 27

Trying to rewrite requirements 24.07.2015 –Internal –

Trying to rewrite requirements

24.07.2015

–Internal –

Слайд 28

Looking for Actors 24.07.2015 –Internal –

Looking for Actors

24.07.2015

–Internal –

Слайд 29

Actors generalization 24.07.2015 –Internal –

Actors generalization

24.07.2015

–Internal –

Слайд 30

UseCase analyzes 24.07.2015 –Internal –

UseCase analyzes

24.07.2015

–Internal –

Слайд 31

UseCase analyzes. Traceability 24.07.2015 –Internal –

UseCase analyzes. Traceability

24.07.2015

–Internal –

Слайд 32

UseCase analyzes. Traceability 24.07.2015 –Internal –

UseCase analyzes. Traceability

24.07.2015

–Internal –

Слайд 33

UseCase analyzes. Finally 24.07.2015 –Internal –

UseCase analyzes. Finally

24.07.2015

–Internal –

Слайд 34

Activity 24.07.2015 –Internal –

Activity

24.07.2015

–Internal –

Слайд 35

System analyses 24.07.2015 –Internal –

System analyses

24.07.2015

–Internal –

Слайд 36

System UseCases 24.07.2015 –Internal –

System UseCases

24.07.2015

–Internal –

Слайд 37

System Functional decomposition 24.07.2015 –Internal –

System Functional decomposition

24.07.2015

–Internal –

Слайд 38

System Components: A-architecture 24.07.2015 –Internal –

System Components: A-architecture

24.07.2015

–Internal –

Слайд 39

System Components 24.07.2015 –Internal –

System Components

24.07.2015

–Internal –

Слайд 40

Application Components + Technical components 24.07.2015 –Internal –

Application Components + Technical components

24.07.2015

–Internal –

Слайд 41

Detailed Activity Diagram 24.07.2015 –Internal –

Detailed Activity Diagram

24.07.2015

–Internal –

Слайд 42

Entity Classes 24.07.2015 –Internal –

Entity Classes

24.07.2015

–Internal –

Слайд 43

Interfaces 24.07.2015 –Internal –

Interfaces

24.07.2015

–Internal –

Слайд 44

Behavior classes 24.07.2015 –Internal –

Behavior classes

24.07.2015

–Internal –

Слайд 45

Questions? 24.07.2015 -Internal Design example ?

Questions?

24.07.2015

-Internal

Design example

?

Слайд 46

Coffe 10 minutes 18:50

Coffe

10 minutes 18:50

Слайд 47

Multilayer application pattern

Multilayer application pattern

Слайд 48

Multilayered architecture: Why? 24.07.2015 –Internal – Abstraction Isolation Manageability Performance Reusability Testability Benefits from the box

Multilayered architecture: Why?

24.07.2015

–Internal –
Abstraction
Isolation
Manageability
Performance
Reusability
Testability

Benefits from the box

Слайд 49

3-tier Architecture 24.07.2015 –Internal –

3-tier Architecture

24.07.2015

–Internal –

Слайд 50

3-tier Architecture: our application 24.07.2015 –Internal –

3-tier Architecture: our application

24.07.2015

–Internal –

Слайд 51

3-tier Architecture: our application 24.07.2015 –Internal –

3-tier Architecture: our application

24.07.2015

–Internal –

Слайд 52

n-tier Architecture 24.07.2015 –Internal –

n-tier Architecture

24.07.2015

–Internal –

Слайд 53

n-tier Architecture: JEE 24.07.2015 –Internal – Rich application or JS/Html

n-tier Architecture: JEE

24.07.2015

–Internal –

Rich application or JS/Html application

JSP / JSF

/ Struts / Spring MVC …

EJB

JPA + Database

Слайд 54

n-tier Architecture: JEE 24.07.2015 –Internal –

n-tier Architecture: JEE

24.07.2015

–Internal –

Слайд 55

Alternatives 24.07.2015 –Internal – Domain Driven Design No strict layers

Alternatives

24.07.2015

–Internal –

Domain Driven Design

No strict layers
Entity and their behavior combined

Easy

to extend domain model
Easy to test
Easy to map requirements

Hi- efforts/costs

Specific

Pro

Cons

Слайд 56

Alternatives 24.07.2015 –Internal – Event Based

Alternatives

24.07.2015

–Internal –

Event Based

Слайд 57

Important 24.07.2015 –Internal – Please start your enterprise application from

Important

24.07.2015

–Internal –

Please start your enterprise application from n-tiers architecture

It is

clear and easy to understand
It is proven by time
Most current EA using layered architecture
JEE designed for layered architecture
You don’t have any strong NFR
Слайд 58

Questions? 24.07.2015 -Internal Multilayered architecture

Questions?

24.07.2015

-Internal

Multilayered architecture

Слайд 59

Coffe 15 minutes xx:xx

Coffe

15 minutes xx:xx

Слайд 60

Architect Role in PLC

Architect Role in PLC

Слайд 61

PLC Waterfall 24.07.2015 -Internal

PLC Waterfall

24.07.2015

-Internal

Слайд 62

PLC RUP 24.07.2015 -Internal

PLC RUP

24.07.2015

-Internal

Слайд 63

PLC SE-Book Iterative development 24.07.2015 Details: http://sebook.t-systems.com/en/11116135a14c0b91.html -Internal

PLC SE-Book Iterative development

24.07.2015

Details: http://sebook.t-systems.com/en/11116135a14c0b91.html

-Internal

Слайд 64

PLC SE-Book Architect in PLC 24.07.2015 Discussion: In which project steps Architect should be involved? -Internal

PLC SE-Book Architect in PLC

24.07.2015

Discussion: In which project steps Architect should

be involved?

-Internal

Слайд 65

PLC SE-Book Architect in PLC 24.07.2015 -Internal Short answer –

PLC SE-Book Architect in PLC

24.07.2015

-Internal

Short answer – Architect or Chief Architect

should be involved in almost all project steps.
Слайд 66

PLC SE-Book Architect tasks: Plan project 24.07.2015 -Internal WBS -

PLC SE-Book Architect tasks: Plan project

24.07.2015

-Internal

WBS - Work Breakdown Structure

Provide

effort estimation
Provide technical risks list
Validate WBS and Dependencies in Project plan
Support in Configuration management
Слайд 67

PLC SE-Book Architect tasks Requirements analyses explained below Support requirements

PLC SE-Book Architect tasks Requirements analyses

explained below

Support requirements development
Validate and review
System Use

Cases
Requirements
GUI Prototype
Interface agreement
Traceability matrix (UC vs Req)
Logical Data Model
Слайд 68

Example: Traceability Matrix Bonus 24.07.2015 -Internal Rational RequisitePro

Example: Traceability Matrix Bonus

24.07.2015

-Internal

Rational RequisitePro

Слайд 69

PLC SE-Book Architect tasks Develop solution design Know your onions

PLC SE-Book Architect tasks Develop solution design

Know your onions

Design:
Database
Components
Interfaces
Review
Test Plan / Test

Specification
Provide/support:
Prototyping
Traceability (UC vs Comp)
Слайд 70

PLC SE-Book Architect tasks: Implementation Yes, we can code, at

PLC SE-Book Architect tasks: Implementation

Yes, we can code, at least

after worktime

Create program
Test program
Defect fixing
Ensure Code Quality
Refactoring
Align code and architecture

Слайд 71

PLC SE-Book Architect tasks: Test We hate QA activities, but

PLC SE-Book Architect tasks: Test

We hate QA activities, but we do

it.

Review test strategy
Should be involved in Critical defect analyses

Слайд 72

PLC SE-Book Architect tasks: Rollout 24.07.2015 -Internal Prepare Transfer to Operation Support Productive Operation

PLC SE-Book Architect tasks: Rollout

24.07.2015

-Internal

Prepare Transfer to Operation
Support Productive Operation

Слайд 73

PLC SE-Book Architect tasks: Close project 24.07.2015 -Internal Determine and Analyze KPIs and Derive Measures

PLC SE-Book Architect tasks: Close project

24.07.2015

-Internal

Determine and Analyze KPIs and Derive

Measures
Слайд 74

PLC SE-Book All activities should be documented 24.07.2015 -Internal Many many documents…

PLC SE-Book All activities should be documented

24.07.2015

-Internal

Many many documents…

Слайд 75

Questions? 24.07.2015 -Internal Architect in PLC ?

Questions?

24.07.2015

-Internal

Architect in PLC

?

Слайд 76

Resume

Resume

Слайд 77

n-tier Architecture: JEE 24.07.2015 –Internal –

n-tier Architecture: JEE

24.07.2015

–Internal –

Слайд 78

Key architecture principles and practices 24.07.2015 –Internal – Prefer composition

Key architecture principles and practices

24.07.2015

–Internal –

Prefer composition to inheritance
Separate the

areas of concern between layers
Be explicit about how layers communicate with each other.
Keep design patterns consistent within each layer
Do not mix different types of components in the same logical layer.
Keep the data format consistent within a layer or component
A component or an object should not rely on internal details of other components or objects.
Do not overload the functionality of a component.
Keep crosscutting code abstracted from the application business logic as far as possible
Define a clear contract for components.
Establish a coding style and naming convention for development.
Maintain system quality using automated QA techniques during development.
Consider the operation of your application.

Common design practices

Слайд 79

Thank you!

Thank you!

Слайд 80

References

References

Слайд 81

Sources 24.07.2015 -Internal Architecture itself Rozanski&Woods POSA Fowler EIP GOF

Sources

24.07.2015

-Internal

Architecture itself

Rozanski&Woods

POSA

Fowler

EIP

GOF

Слайд 82

Sources 24.07.2015 -Internal Architecture practice / PLC aspects CMMI® for

Sources

24.07.2015

-Internal

Architecture practice / PLC aspects

CMMI® for Development, Version 1.3
Carr, Marvin et

al, Taxonomy-Based Risk Identification, CMU/SEI-93-TR-006. Pittsburgh, Pa.: Software Engineering Institute, Carnegie Mellon University, June 1993.
Microsoft Application Architecture Guide, 2nd Edition
Слайд 83

Sources 24.07.2015 -Internal SOA / EDA The Growing Role of

Sources

24.07.2015

-Internal

SOA / EDA

The Growing Role of Events in Enterprise Applications. Five

forces. July 2003, Roy W. Schulte, Gartner
“Event-Driven Architecture Complements SOA”, by Roy W. Schulte, Yefim V. Natis, July 2003, by Gartner
“2.0 The Mission and Future of Integration” 2004, Gartner “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions” by Hohpe G., Woolf B., 2004
“Applied SOA: Conquering IT Complexity through Software Architecture”, by Yefim V. Natis, May 2005, by Gartner, Inc. “Event-driven architecture” by Hohpe G., 2006
Слайд 84

Sources 24.07.2015 -Internal Requirements IEEE Recommended Practice for Software Requirements

Sources

24.07.2015

-Internal

Requirements

IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998
Requirements management

using IBM Rational RequisitePro / Peter Zielczynski
WRITING EFFECTIVE USE CASES. Alistair Cockburn
Имя файла: Software-Architecture-and-Software-Architect-T-Systems-RUS.-JavaSchool.pptx
Количество просмотров: 76
Количество скачиваний: 0