ArticleslgStudy

computer science

Functional software architecture

Functional software architecture is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Functional software architecture rather than just read about it. In short: A functional software architecture (FSA) is an architectural model that identifies enterprise functions, interactions and corresponding IT needs. These functions can be used as a reference by different domain experts to develop IT-systems as part of a co-operative information-driven enterprise.

Key takeaways

  • Functional software architecture belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Functional software architecture to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Functional software architecture from memory before moving on to harder problems.

Reference excerpt

A functional software architecture (FSA) is an architectural model that identifies enterprise functions, interactions and corresponding IT needs. These functions can be used as a reference by different domain experts to develop IT-systems as part of a co-operative information-driven enterprise. In this way, both software engineers and enterprise architects can create an information-driven, integrated organizational environment.

Overview When an integrated software system needs to be developed and implemented several tasks and corresponding responsibilities can normally be divided:

Strategic management and business consultants set objectives in relation to a more efficient/effective business process. Enterprise engineers come up with a design of a more efficient business process and a request for a certain information system in the form of an Enterprise Architecture. Software engineers come up with the design of this information system, which describes the components and structural features of the system by use of a certain architecture description language (ADL). Computer programmers code the different modules and actually implement the system. The described work division is in reality much more complex and also involves more actors but it outlines the involvement of people with different backgrounds in creating a software system that enables the organization to reach business objectives. A wide variety of material produced by different actors within this system development process needs to be exchanged between, and understood by, multiple actors. Especially in the field of software engineering many tools (A4 Tool, CAME, ARIS), languages (ACME, Rapide, UML) and methods (DSDM, RUP, ISPL) are developed and extensively used. Also, the transition between the software engineers (step 3) and computer programmers (step 4) is already highly formalized by, for instance, object-oriented development. Setting strategic objectives (step 1) and the corresponding search for business opportunities and weaknesses is a subject extensively discussed and investigated for more than a hundred years. Concepts like business process reengineering, product software market analysis, and requirements analysis are commonly known and extensively used in this context. These strategic inputs must be used for the development of a good enterprise design (step 2), which can then be used for software design and implementation respectively. Recent studies have shown that these enterprise architectures can be developed by several different methods and techniques. Before these methods and techniques are discussed in detail a definition of an enterprise architecture is given:

An Enterprise Architecture is a strategic information asset base, which defines the mission, the information necessary to perform the mission and the technologies necessary to perform the mission, and the transitional processes for implementing new technologies in response to the changing mission needs. This definition emphasizes the use of the architecture as a rich strategic information source for the improvement of business processes and development of needed information systems. If defined, maintained, and implemented effectively, these institutional blueprints assist in optimizing the interdependencies and interrelationships among an organization's business operations and the underlying IT that support operations. Having read the definition of functional software architecture at the beginning of this entry we can see a functional software architecture as a type of enterprise architecture that can be used as a rich reference for the development of an integrated information system. Naming it a functional software architecture encourages practitioners to use it as a strategic input for a technical architecture. A formal mapping between functional software architecture and a type of ADL is therefore needed. In this way, the formal use and reuse of enterprise architectures as strategic input for software architectures can be realized.

Development As the boundary of an enterprise is extended, it becomes increasingly important that a common "big picture" of needed business, people and IT system activities is developed and shared by all the parties involved. A functional software architecture does this by breaking down the organization in business functions and corresponding IT needs. In this way, the enterprise engineer provides a rich schematic reference that can be used by the software engineer in the development of these IT-systems. The development of a functional software architecture can be done by a number of (combined) methods and techniques. Filling in the "gap" between the enterprise engineers and software engineers through the use of different combinations of methods and techniques will be the main objective. However, this objective can only be reached when combined methods result in clear and rich functional software architectures that are developed and used by both parties. Optimizing the internal and external business processes through process reengineering is one of the main objectives an enterprise can have in times of high external pressure. A business process involves value-creating activities with certain inputs and outputs, which are interconnected and thereby jointly contribute to the outcome (product or service) of the process. Process reengineering covers a variety of perspectives on how to change the organization. It is concerned with the redesign of strategic, value-adding processes, systems, policies and organizational structures to optimize the processes of an organization.

Modeling the business Within the area of enterprise engineering formal methodologies, methods and techniques are designed, tested and extensively used in order to offer organizations reusable business process solutions:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Functional software architecture

Start with the simplest possible case. Write down what Functional software architecture claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Functional software architecture before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Functional software architecture ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Functional software architecture

In research
Functional software architecture appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Functional software architecture in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Functional software architecture is common in secondary-school and first-year university syllabi. It links to neighbouring topics Enterprise architecture, Software architecture, so understanding it makes those chapters shorter.
In everyday life
Look for Functional software architecture outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Functional software architecture in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Functional software architecture means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Functional software architecture out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Functional software architecture in simple terms?

A functional software architecture (FSA) is an architectural model that identifies enterprise functions, interactions and corresponding IT needs. These functions can be used as a reference by different domain experts to develop IT-systems as part of a co-operative information-driven enterprise.

Why does Functional software architecture matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Functional software architecture?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Functional software architecture.

Tags

  • Enterprise architecture
  • Software architecture

Keep exploring