Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Becoming A Software Architect

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 38
At a glance
Powered by AI
Some of the key takeaways are that becoming a software architect requires strong technical skills as well as soft skills like communication and leadership. Architects need a broad understanding of technologies, domains, and how to make good decisions with limited information.

The objectives of the talk are to give a sense of what software architecture is, provide an example, discuss principles of good architecture, how to prepare to become an architect, and that architects don't need to make suboptimal decisions.

Several definitions of software architecture are discussed, including it being a set of frameworks that map to a problem domain, the concepts used to view software before design, and an abstract view of a system distinct from implementation details.

Becoming a Good Software

Architect
Session 1: Introduction to Software
Architecture
Session 2: What it takes to become Software
Architect
By
Terry Cheng ( )
terrycheng@maveosystems.com
Chief Technology Officer

http://www.maveosystems.com
Copyright Maveo Sys

Session 1

Introduction to
Software
Architecture

Copyright Maveo Sys

Software Architect
is
Someone Who Can
Make
Sub-optimal Decision
in
Total Darkness
Copyright Maveo Sys

Objectives of this talk


Give a sense of what is Software
architecture
Example of Software Architecture
Principle of good Software Architecture
How to prepare to become a good Software
Architect
Do not have to make Sub-optimal Decision
anymore

Copyright Maveo Sys

Intro. to Software
Architecture
Definition of Software Architecture
History/evolution of Software Architecture
Overview of System Architecture
How Software Architecture fit into System
Architecture
A Typical Software architecture
Components of a typical Software architecture
What to consider -- internal/external constrains

Copyright Maveo Sys

Definition of Software
Architecture

Francis Anderson (Chief Object Architect,


ClearSystems): A set of solution frameworks to which all
aspects of the problem domain are mapped.
Brahim Djoudi (Software developer, GIAT Industries,
Toulouse, France): The software architecture is the set of
all the concepts (software components, frameworks,
DB, paradigm, programming language, ...) used to "view"
an entire software before it's designed.
SEI:A software architecture is an abstract view of a
software system distinct from the details of
implementation, algorithms, and data representation.
Architecture is, increasingly, a crucial part of a software
organization's business strategy
Copyright Maveo Sys
6

Definition of Software
Architecture
Software Architecture for Product Families
Software architecture is a set of concepts and design
decisions about the structure and texture of software
that must be made prior to concurrent engineering to
enable effective satisfaction of architecturally
significant explicit functional and quality
requirements and implicit requirements of the
product family, the problem, and the solution
domains.

Copyright Maveo Sys

Definition of Software
Architecture
UML 1.3:
Architecture is the organizational structure of a system. An
architecture can be recursively decomposed into parts
that interact through interfaces, relationships that connect
parts, and constraints for assembling parts. Parts that
interact through interfaces include classes, components
and subsystems.

Copyright Maveo Sys

History/Evolution
Driven by business need
Cost cutting
Increase Revenue
Strategic Advantage
Driven by new technology
Main Frame/Batch
PC/interactive Real time
LAN/WAN
Internet
Driven by Software Engineering principle,
methodology
Functional decomposition, sub routines
Information Engineering
Object Oriented
Methodology
Copyright
Maveo Sys

Over View of System


Architecture
Enterprise Architecture
Business Architecture
Application Architecture
Technical Architecture
Product Architecture

Copyright Maveo Sys

10

How Software Architecture


fit in Enterprise
Architecture
Software Architecture transforms Business
Architecture into an set of designs and guidelines
to realize business process in an information
systems
Software Architecture relays on Technical
Architecture to provide an
efficient/scalable/secure environment to

Copyright Maveo Sys

11

Example of Software
Architecture
Tech View

Copyright Maveo Sys

12

Example of Software
Architecture Tech View

Copyright Maveo Sys

13

Example of Software
Architecture
Tech View

Copyright Maveo Sys

14

Example of Software Architecture


Tech
Client Side
Server Side
xml (from Asynchronous Information Request)
xml (from Servlet Request)
ActionServlet
(struts-config.xml)

Browser

ActionForm

Asynchronous
Information Request

Agnt
Applet

struts
framework

Servlet Controller
Servlet Request
(Form Submission)

getter/
setter
Parameter
Validation

xml

Action

Servlet
Actions

EJB

ActionMapping

URL Request
html

Content
Display
XSLT
Processor
(Microsoft DOM)

xsl

xsl

JSP

JSP
Mapping

struts taglibs
maveo
taglibs
HTML / XSL /
css / js /
images etc.

Content
Caching
(JavaScript
Object Pool)

utility classes
com.maveo.util
package

Database

MAVEO UI Framework
Diagram By: Patrick Lai
Last Updated: 2 July 2002
Version: 2.0

Copyright Maveo Sys

15

Example of Software
Architecture
Business/Function

Supplier: Company

EligibilityCriteria

Debtor

RealEstate

Equipment

OutStanding: double
RealEstateT ype: int

+1
OweBy

AvailabilityCalculation

+0..n

RealEstateType

AR

PhysicalStaticCollateral
-

TimeBasedRule:

PurchaseCost: double
PurchaseDate: date
CurrentMarketValue: double
appraisedby: company
AppraisedDate: date

DynamicCollateral

Ow ner

Owned By

AdjForInventory: double = 0

OwnerType:

Located At
Is a type of
Address

Appraised by

Inv entory
Colaterral

Company

#
#
#

Ev aluateationFreq

currency:
AdvanceRatio: float
Value: double

IntellectualProperties

ReportFreq: ReportFreqType
GrossMargin: float

ReportFreqType
WIP

StaticCollateral
#
-

Priv atePublicCoShare

Location: address*
NextEvaluationDate: date

FinishedGoods

AdvanceRatio: float

Raw Material
-

AdvanceRatio: float
-

AdvanceRatio: float

CashDeposite

StandByLOC
-

DateExpire: date

BankGuaranties
-

DateExpire: date

Bank: char
DateDeposited: date
DateExpire: date
Amount: double
Currency: int

Copyright Maveo Sys

16

Components of Software
Architecture
Business model
Platform
Layer/Network Model
Domain Framework
Technical Framework
Deployment Model

Copyright Maveo Sys

17

Components of Software
Architecture
Logical
View

Allocates classes and responsibilities to packages and


subsystems.

Develop
ment
View

Allocates packages and subsystems to layers and


components. Also defines the development structure.

Process
View

Allocates components to processes.

Physical Allocates processes to processors, nodes, networks.


View
Use
Case
View

(The Plus One) Captures requirements used to develop and


validate each of the other views.

Copyright Maveo Sys

18

Principles of Good
Architecture
Scalable
Flexible
Extensible
Reusable
Open
Common semantics
Secure

Copyright Maveo Sys

19

What others to consider


Business objectives
Skill of development team and local market of
team
Cost to build and Maintain
Materiality of Technology
Current System constrain
Migration, migration, migration

Copyright Maveo Sys

20

Software Architecture
Business High
Level Req High Level Architecture
Processes
Decision

Market/Technical Consideration Network


Model/Platform Decision
Business Modeling Class/Data modeling Data
architecture decision
Use case, process/flow modeling UI decision
Domain Framework from above two
Implementation analysis Technical implementation
decision Technical Framework
Implementation Language Tool decision
Platform specific implementation architecture
Sample/framework
development
http://www.bredemeyer.com/

Copyright Maveo Sys

21

Whats Next
Pattern
Product line Architecture
Documenting Software
Architecture
Evaluate Software Architecture

Copyright Maveo Sys

22

Summary
Software Architecture need to consider from
both technical point of view as well as business
point of view
There are different ways to communicate
architecture design
There is no THE best architecture for any one
software system
Always need consider
external constrain, such cost, infrastructure,
Maturity of IT organization, not only
development, but also operations
Architecture is a live entity, therefore, ability to
grow, migrate is very important
Copyright Maveo Sys
23

Q&A

Q&A
&
Break
Copyright Maveo Sys

24

Session 2

What it takes to
become a Software
Architect

Copyright Maveo Sys

25

What it takes to become Software


Architect
What an Software Architect do
How to become a Software Architect
Technical skill
Non-Technical Skill
Conclusion
Q&A

Copyright Maveo Sys

26

What is Software
Architect
The Software Architect operates nearly as a
peer to the project manager. While the
project manager deals with budgets, plans,
resources and tracking progress, the
architect sets the technical vision for the
project, mentors the technical staff, and
monitors design and implementation
artifacts for quality and compliance to
standards.

Copyright Maveo Sys

27

Job Description
This position will be part of a team responsible for
improving the quality of internally developed
Mutual Fund Customer Service applications.
Specific assignments may include large projects as
well as small enhancements with both prioritized
by business needs. Development takes place in a
highly collaborative environment that places value
on effective communication skills. Under minimal
supervision, the position plans, coordinates and
analyses new and existing application
designs/techniques to meet current and future
needs. The position works with users and
developers to analyze, design, and implement
application systems and/or enhancements to
existing systems and may include leading a team
Copyright
Maveo
Sys provides deep
28
for a specific project.
This
position

Job Requirements
Advanced knowledge of programming language(s),
software development tools and environment(s) and
systems analysis and functional design is required.
In addition, thorough knowledge of database concepts,
database design, data modeling and system
architectures is also required.
Expert knowledge of application design principles,
practices, system development methodologies,
(preferably OO), and software life cycles is required.
The ideal candidate possesses expert knowledge in
one or more highly specialized areas of application
development.
Experience in application development with the design
and programming of multi-tier applications utilizing J2EE
technology coupled with strong server programming
abilities including Servlets, EJBs, and JSPs is required.
Experience with programming in Smalltalk is highly
desired.
Copyright Maveo Sys

29

Job Description
Senior position with a heavy emphasis on .NET
technologies. This position has sales support as
well as hands-on responsibilities. Collaborates
with customers, designers, and database
programmers to construct an optimal web
solution using Microsoft tools. Understands the
aims of development customers and works with
business analysts to ensure those needs are met
with the software.

Copyright Maveo Sys

30

Responsibilities
Participate in complete software development lifecycle,
including analysis, design, code and unit test, for applications
based on Microsoft .NET technologies.
Act as "subject matter expert" in assigned area of
responsibility.
Work with customers to formulate and define application
scope and objectives.
Build relationships with customers to determine business
requirements
Build relationships with business partners.
Provide technical consultation in new systems development,
new package evaluations, and enhancement of existing
systems; participate in structured walkthrough and technical
reviews.
Prepare functional specifications from which programs will be
written; design, code, test, debug, and document programs.
Keep technical, communications, and business skills current
with an emphasis on understanding emerging Microsoft-based
web/e-commerce technologies and their impact on Berbee's
customers.
Copyright Maveo Sys
31

Job Requirements
Broad awareness of basic Internet, intranet, and WWW
technologies, including: Inter/intra/extranet tools; Web
installation, configuration and performance management;
Web navigation, content, linking, and browser tuning;
Web security and encryption
Experience with .NET servers and tools required
Web site design and development experience in a
Microsoft environment
Working knowledge and skills in ASP, JavaScript,
VBScript, and XML as well as upcoming .NET technologies
such as ASP.NET and Visual Studio.NET
Experience with the Microsoft family of .NET servers
including Content Management Server, BizTalk Server,
Application Center Server, Sharepoint Portal Server, etc.
Working knowledge of SQL Server 2000 with
database/Web connectivity familiarity, plus database
management and file access methods
Strong communications and interpersonal skills
Strong problem solving/analysis skills
Ability to work well
both in teams
Copyright
Maveoand
Sysindependently 32

Technical Skills
Requirement gathering/Management
Modeling and analysis methodology
Full Software Development Life Cycle
Modern architectural technologies, such as J2EE
and .NET
In depth knowledge of programming languages
Network, Security, hardware platforms
Database

Copyright Maveo Sys

33

None Technical Skills


Facilitation
Communication/Presentation/Sales Skill
Mentoring
Domain Knowledge of area you working on
Leadership
Business acumen

Copyright Maveo Sys

34

Conclusion 1
How do I start
Become an excellent developer who
knows why not just how
Understand the relationship of
underline technical architecture and
software systems
Understand current platform specific
architecture, J2EE and .NET
Know the domain you are working on,
become an expert
Read, read, read, think think think
Copyright Maveo Sys

35

Conclusion 2

Technical Ability
alone
is never enough
Copyright Maveo Sys

36

Q&A

Q&A

Copyright Maveo Sys

37

Copyright Maveo Sys

38

You might also like