14
Role of an Role of an Architect in Architect in Software Software Engineering Engineering Arpan Darivemula Arpan Darivemula CSC 532 CSC 532 Research Paper Research Paper

Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Embed Size (px)

Citation preview

Page 1: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Role of an Role of an Architect in Architect in

Software Software EngineeringEngineering

Arpan DarivemulaArpan Darivemula

CSC 532CSC 532

Research PaperResearch Paper

Page 2: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

IntroductionIntroduction

• Vast majority of people can define a Vast majority of people can define a builder, architect, engineer but are builder, architect, engineer but are confused when it comes to softwareconfused when it comes to software

• Probable reasons?Probable reasons?– No major for Software ArchitectsNo major for Software Architects– Present Architects do not fulfill rolePresent Architects do not fulfill role– Lack of a common standard point of Lack of a common standard point of

viewview

Page 3: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Bigger pictureBigger picture

• Commonly used – meaning lostCommonly used – meaning lost• Each product requires 3 thingsEach product requires 3 things

– Client, Architect, PlanClient, Architect, Plan

• Client - Client - ArchitectArchitect - Builder - Builder• Gives blueprintGives blueprint• Client can look and blueprint and Client can look and blueprint and

decidedecide• Building analogyBuilding analogy

Page 4: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Architects v/s EngineersArchitects v/s Engineers

• Architects think top down – come up Architects think top down – come up with a global solutionwith a global solution

• Engineers thing bottom up – analyze Engineers thing bottom up – analyze data and come up with best solutiondata and come up with best solution

• Software Architects go through both Software Architects go through both educations as an Architect and as an educations as an Architect and as an EngineerEngineer

• Therefore can conceptualize AND Therefore can conceptualize AND analyzeanalyze

Page 5: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

The RoleThe Role

• PRIMARY GOALPRIMARY GOAL• Client AdvocacyClient Advocacy• Client needs and expectationsClient needs and expectations• Client requirementsClient requirements• Client understanding blueprintClient understanding blueprint• Client finalizingClient finalizing• Client satisfactionClient satisfaction

Page 6: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Architects create architecturesArchitects create architectures• They do not guide developmentThey do not guide development• They oversee constructionThey oversee construction• Need experience, well rounded, Need experience, well rounded,

adaptabilityadaptability• Plethora of choicesPlethora of choices• Should not minimize choices to customerShould not minimize choices to customer• Personal preference based on refinementPersonal preference based on refinement

Page 7: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Articulate architectural visionArticulate architectural vision• Create blueprintsCreate blueprints• Models if neededModels if needed• Explore alternative architectural Explore alternative architectural

approachesapproaches• Validate against customer reqs.Validate against customer reqs.

Page 8: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Not just technical activitiesNot just technical activities• Strategic activitiesStrategic activities• ConsultantConsultant• Distaste for organizational politicsDistaste for organizational politics• Actively interact to sell the Actively interact to sell the

architecture to stakeholdersarchitecture to stakeholders• Communicate extensively to ensure Communicate extensively to ensure

successsuccess

Page 9: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

World wide Inst. For SAWorld wide Inst. For SA

• 8 key areas for an Architect8 key areas for an Architect• Pre-design – listen to client reqs, explore Pre-design – listen to client reqs, explore

solu.solu.• Domain analysis – Understand reqs in detail. Domain analysis – Understand reqs in detail.

Identifies the domain, outlines the desired Identifies the domain, outlines the desired behavior of system. Evaluates client environ.behavior of system. Evaluates client environ.

• Schematic design – architectural lvl designs, Schematic design – architectural lvl designs, UI, prototype, migration and risk assessmentUI, prototype, migration and risk assessment

• Design development – converge and finalize Design development – converge and finalize designdesign

Page 10: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Projects document – reqs of builders, Projects document – reqs of builders, document team members and roles, const. document team members and roles, const. guide, UI guide, test guide, tools and guide, UI guide, test guide, tools and methodologiesmethodologies

• Staffing – identify actual builders, outsourceStaffing – identify actual builders, outsource• Construction – supervise, design reviews, Construction – supervise, design reviews,

analyze problems, document change in analyze problems, document change in designdesign

• Post construction – assist client in merging Post construction – assist client in merging system or migrate, user trainingsystem or migrate, user training

Page 11: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

DutiesDuties

• Define, document, communicate Define, document, communicate architecturearchitecture

• Comes out in stages in timely mannerComes out in stages in timely manner• Software and system architecture are in Software and system architecture are in

syncsync• Make sure mngmt. UnderstandsMake sure mngmt. Understands• Make sure client understandsMake sure client understands• Input on tools and environmentInput on tools and environment• Make sure architecture is not only right for Make sure architecture is not only right for

operations but also deployment and sustainoperations but also deployment and sustain

Page 12: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Resolve technical problemsResolve technical problems• Maintain morale within and outsideMaintain morale within and outside• Presentations on progress of projectPresentations on progress of project• Plan for new technology insertionPlan for new technology insertion• Manage risk identification and Manage risk identification and

assessmentassessment

Page 13: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

ConclusionConclusion

• Well rounded, mature, adaptable, Well rounded, mature, adaptable, vision, experience to make critical vision, experience to make critical judgment in absence of complete judgment in absence of complete informationinformation

• Oversee construction, do not guide Oversee construction, do not guide developmentdevelopment

• Interact with client and fulfill needs Interact with client and fulfill needs and expectations without narrowing and expectations without narrowing choiceschoices

Page 14: Role of an Architect in Software Engineering Arpan Darivemula CSC 532 Research Paper

Cont.Cont.

• Role changes throughoutRole changes throughout• Visionary – early stagesVisionary – early stages• Translator, Designer, Critic – Translator, Designer, Critic –

creation of architecturecreation of architecture• Consultant – deploymentConsultant – deployment• Vital Leadership role maintained Vital Leadership role maintained

throughoutthroughout