Kurs: Software Architecture for Developers - Simon Brown
Bouvet AS
What do we cover? What is "software architecture"? How does architecture differ from design? Why do we need software architecture? How do you avoid becoming an "ivory tower architect"? What sort of technical and soft skills do you need as a software architect? How do you take a system vision through to a software architecture? How do you design for non-functional requirements? How do you document your software architecture? What other options are there for sharing your software architecture? How does software architecture fit into the software development process? How do you start delivering and evaluating your software architecture? What is the agenda? Here's a breakdown of what we cover on the course, although the timings are indicative rather than set in stone. [09:00 - 09:30] Introductions and setting the scene [10:30 - 11:00] Break [11:00 - 12:30] What is the role of a software architect? [12:30 - 13:30] Lunch [15:00 - 15:30] Break [09:00 - 10:30] Case study (defining an architecture for a software system) [15:00 - 15:30] Break [16:30 - 17:00] Discussion, questions and wrap-up
Kurset "Software Architecture for Developers" er et todagers kurs som omhandler pragmatisk arkitektur laget av programvare arkitekter som selv til daglig koder. Kurset vil gi deg et bredere perspektiv og gi deg et større spekter av ferdigheter innen systemutvikling. Det vil gjøre deg mer oppmerksom på arkitektur i utviklingsprosessen og gjøre deg istand til å utvikle bedre systemer. Kurset er rettet mot utviklere og arkitekter uavhengig av teknologi og plattform, det passer like godt om du lager systemer for Java, .NET eller noe annet.
The course is broken up into five areas as follows, each tackling a different part of the software architecture story.
What is software architecture?
"Architecture" is a very misunderstood term within the software industry, so we start out by defining what it means to us, talking about how it differs to design and introducing the context for the rest of the course. We cover architecture at different levels; from application architecture through to enterprise architecture.
What is "architecture"?
What is the role of a software architect?
With a definition of architecture under our belts, we move on to clarify the role of an architect by looking at roles and responsibilities in software teams, which leads us to the conclusion that the architect role is different from that of a lead developer. We explore everything from the technical skills and knowledge needed by a hands-on software architect through to leadership and soft skills.
What is the role of a software architect?
How do you define software architecture?
Software architecture doesn't exist in a vacuum and is driven by the functional requirements, the non-functional requirements, constraints and principles. We take a look at all of them to understand the impact that they have and the trade-offs that need to be made when defining architectures. Architecture definition is a large part of the course and is reinforced by a case study.
What impact do functional requirements, non-functional requirements, constraints and principles have on software architecture?
How do you share software architecture?
Architectures don't live in isolation and we focus on this to explore how software architecture involves more than a single view of the system, with those views being important to different stakeholders. We take a look at the various views that you might include in a software architecture document along with some other ways to collaborate on and share software architectures.
Who are the stakeholders that are interested in your software architecture?
How do you deliver software architecture?
We look at the processes used by and involvement that an architect might have during a typical software development lifecycle, all of which is applicable regardless of whether you're using a traditional, iterative or agile methodology. We also look at how you can successfully evaluate, test and deliver a software architecture with complex non-functional requirements such as performance and scalability.
What about technology?
Although the course is technology agnostic, there is lots of technical content and we relate this back to Java and Microsoft .NET in order to provide some real world context and guidance. After all, this course is about architecture within the context of software development! Day 1
[09:30 - 10:30] What is software architecture?
[13:30 - 15:00] How do you define software architecture?
[15:30 - 17:00] Case study (defining an architecture for a software system) Day 2
[10:30 - 11:00] Break
[11:00 - 12:30] Case study (review and wrap-up)
[12:30 - 13:30] Lunch
[13:30 - 15:00] How do you share software architecture?
[15:30 - 16:30] How do you deliver software architecture?
Software Architecture for Developers - Simon Brown
100% sikkert skjema
Tar ett minutt å fullføre
Hurtig respons
Åpen deltakerdiskusjon om kurset eller emnet
Del gjerne din erfaring eller tanker om dette kurset eller temaet med andre!
