In: Computer Science
During the past weeks, you have been introduced to software development planning techniques and tools. You have actually gained some experience using a few design techniques and tools in planning to create an application that meets business requirements. A design document was the resultant outcome of your efforts. You have also coded a couple object-oriented programs that meet these planned-for requirements. These tasks have given you a sense of what is required to plan for and to develop applications. In this assignment, you should consider all that you have learned thus far in planning activities, and consider how architectures might aid in software development.
Prepare a 3-5 page Word document that answers the following questions: What does software architecture provide? What exactly is the role of the software architect and how does this individual work with the development team? Do you believe that architectural design is important? Support your statements. Identify and describe architectural drivers.
Please give detailed answers in paragraph and please don't copy or spinbot from other posts.
Software Architecture alludes to the crucial structures of a product framework and the control of making such structures and frameworks. Each structure includes programming components, relations among them, and properties of the two components and relations.The architecture of a software system is a metaphor, analogous to the architecture of a building.Programming engineering is tied in with settling on basic decisions that are exorbitant to change once executed. Programming engineering decisions remember explicit basic choices from opportunities for the plan of the product. For instance, the frameworks that controlled the Space Shuttle dispatch vehicle had the necessity of being extremely quick and entirely dependable.
Normally, Software Architects should be very experienced with regards to the innovation that they are arranging. Not exclusively do Software Architects need to comprehend the capacities of the dialects and frameworks included, however they likewise need to know precisely what they can convey and what might be hard to execute. Software Architects or Programming modelers must have the option to communicate in a specialized language that their software engineers and designers comprehend. They additionally should have the option to make the most proficient items and recognize possible traps.
Software Architect Responsibilities:
1.Collaborating with various stakeholders to determine software requirements.
2.Creating high-level product specifications and design documents.
3.Providing the development team with architectural blueprints to follow.
4.Guiding and assisting the development team throughout the process.
5.Troubleshooting and resolving issues with coding or design.
6.Ensuring that you and the team adhere to development schedules and deadlines.
7.Presenting regular progress reports and setting goals.
8.Testing the final product to ensure it is completely functional and meets requirements.
9.Updating software solutions as required.
Architechtural Design is Very important as
Without doing some architectural thinking and some early design work, you cannot confidently predict project cost, schedule, and quality. Even at this early stage, an architecture will determine the key approaches for achieving architectural drivers, the gross work-breakdown structure, and the choices of tools, skills, and technologies needed to realize the system.In addition, architecture is a key enabler of agility, as we will discuss in Chapter 9. Whether your organization has embraced Agile processes or not, it is difficult to imagine anyone who would willingly choose an architecture that is brittle and hard to change or extend or tune—and yet it happens all the time. This so-called technical debt occurs for a variety of reasons, but paramount among these is the combination of a focus on features—typically driven by stakeholder demands—and the inability of architects and project managers to measure the return on investment of good architectural practices. Features provide immediate benefit. Architectural improvement provides immediate costs and long-term benefits. Put this way, why would anyone ever “invest” in architecture? The answer is simple: Without architecture, the benefits that the system is supposed to bring will be far harder to realize.Furthermore, the architecture will influence, but not determine, other decisions that are not in and of themselves design decisions. These decisions do not influence the achievement of quality attributes directly, but they may still need to be made by the architect. For example, such decisions may include selection of tools; structuring the development environment; supporting releases, deployment, and operations; and making work assignments.
Architectural drivers have significant influence over the design of a system and are the determining factor over whether one design is “better” or “worse” than another that produces the same features. Architectural drivers are nearly always divided into four categories. Some people might go with only three categories (talking generally about constraints), and others might include other things as drivers, but if this is your first time working with architectural drivers you should start with these four categories before tailoring.
Architectural drivers can be one of the following.
1.Technical Constraints
2.Business Constraints
3.Quality Attributes
4.High-Level Functional Requirements