Friday, May 1, 2009

Development of FFBD

FFBDs can be developed in a series of levels. FFBDs show the same tasks identified through functional decomposition and display them in their logical, sequential relationship. For example, the entire flight mission of a spacecraft can be defined in a top level FFBD, as shown in Figure 2. Each block in the first level diagram can then be expanded to a series of functions, as shown in the second level diagram for "perform mission operations." Note that the diagram shows both input (transfer to operational orbit) and output (transfer to space transportation system orbit), thus initiating the interface identification and control process. Each block in the second level diagram can be progressively developed into a series of functions, as shown in the third level diagram on Figure 2.[6]

These diagrams are used both to develop requirements and to identify profitable trade studies. For example, does the spacecraft antenna acquire the tracking and data relay satellite (TDRS) only when the payload data are to be transmitted, or does it track TDRS continually to allow for the reception of emergency commands or transmission of emergency data? The FFBD also incorporates alternate and contingency operations, which improve the probability of mission success. The flow diagram provides an understanding of total operation of the system, serves as a basis for development of operational and contingency procedures, and pinpoints areas where changes in operational procedures could simplify the overall system operation. In certain cases, alternate FFBDs may be used to represent various means of satisfying a particular function until data are acquired, which permits selection among the alternatives.[6]

Functional Flow Block Diagram

A Functional Flow Block Diagram (FFBD) is a multi-tier, time-sequenced, step-by-step flow diagram of a system’s functional flow.[2]

The FFBD notation was developed in the 1950s, and is widely used in classical systems engineering. FFBDs are one of the classic business process modeling methodologies, along with flow charts, data flow diagrams, control flow diagrams, Gantt charts, PERT diagrams, and IDEF.[3]

FFBDs are also referred to as Functional Flow Diagrams, functional block diagrams, and functional flows.[4]

System Engineering - Scope


One way to understand the motivation behind systems engineering is to see it as a method, or practice, to identify and improve common rules that exist within a wide variety of systems.[citation needed] Keeping this in mind, the principles of Systems Engineering — holism, emergence, behavior, boundary, et al — can be applied to any system, complex or otherwise, provided systems thinking is employed at all levels.[18] Besides defense and aerospace, many information and technology based companies, software development firms, and industries in the field of electronics & communications require Systems engineers as part of their team[19].

An analysis by the INCOSE Systems Engineering center of excellence (SECOE) indicates that optimal effort spent on Systems Engineering is about 15-20% of the total project effort.[20] At the same time, studies have shown that Systems Engineering essentially leads to reduction in costs among other benefits.[20] However, no quantitative survey at a larger scale encompassing a wide variety of industries has been conducted until recently. Such studies are underway to determine the effectiveness and quantify the benefits of Systems engineering. [21] [22]

Systems engineering encourages the use of modeling and simulation to validate assumptions or theories on systems and the interactions within them.[23][24]

Use of methods that allow early detection of possible failures, in Safety engineering, are integrated into the design process. At the same time, decisions made at the beginning of a project whose consequences are not clearly understood can have enormous implications later in the life of a system, and it is the task of the modern systems engineer to explore these issues and make critical decisions. There is no method which guarantees that decisions made today will still be valid when a system goes into service years or decades after it is first conceived but there are techniques to support the process of systems engineering. Examples include the use of soft systems methodology, Jay Wright Forrester's System dynamics method and the Unified Modeling Language (UML), each of which are currently being explored, evaluated and developed to support the engineering decision making process.

System Engineering - Managing complexity

The need for systems engineering arose with the increase in complexity of systems and projects. When speaking in this context, complexity incorporates not only engineering systems, but also the logical human organization of data. At the same time, a system can become more complex due to an increase in size as well as with an increase in the amount of data, variables, or the number of fields that are involved in the design. The International Space Station is an example of such a system.

The development of smarter control algorithms, microprocessor design, and analysis of environmental systems also come within the purview of systems engineering. Systems engineering encourages the use of tools and methods to better comprehend and manage complexity in systems. Some examples of these tools can be seen here:[16].

Taking an interdisciplinary approach to engineering systems is inherently complex since the behavior of and interaction among system components is not always immediately well defined or understood. Defining and characterizing such systems and subsystems and the interactions among them is one of the goals of systems engineering. In doing so, the gap that exists between informal requirements from users, operators, marketing organizations, and technical specifications is successfully bridged.

System Engineering - Interdisciplinary field

System development often requires contribution from diverse technical disciplines.[13] By providing a systems (holistic) view of the development effort, systems engineering helps meld all the technical contributors into a unified team effort, forming a structured development process that proceeds from concept to production to operation and, in some cases, to termination and disposal.

This perspective is often replicated in educational programs in that Systems Engineering courses are taught by faculty from other engineering departments which, in effect, helps create an interdisciplinary environment[14][15].

System Engineering - Concept

Systems Engineering signifies both an approach and, more recently, as a discipline in engineering. The aim of education in Systems Engineering is to simply formalize the approach and in doing so, identify new methods and research opportunities similar to the way it occurs in other fields of engineering. As an approach, Systems Engineering is holistic and interdisciplinary in flavor.

[edit] Holistic view

Systems Engineering focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem, the system lifecycle. Oliver et al. claim that the systems engineering process can be decomposed into

  • a Systems Engineering Technical Process, and
  • a Systems Engineering Management Process.

Within Oliver's model, the goal of the Management Process is to organize the technical effort in the lifecycle, while the Technical Process includes assessing available information, defining effectiveness measures, to create a behavior model, create a structure model, perform trade-off analysis, and create sequential build & test plan[11].

Depending on their application, although there are several models that are used in the industry, all of them aim to identify the relation between the various stages mentioned above and incorporate feedback. Examples of such models include the Waterfall model and the VEE model[12]

Software Craftsmanship

The movement traces its roots to the ideas expressed in written works. The Pragmatic Programmer by Andy Hunt and Dave Thomas and Software Craftsmanship by Pete McBreen explicitly position software development as heir to the guild traditions of medieval Europe. The philosopher Richard Sennet wrote about software as a modern craft in his book The Craftsman. Freeman Dyson, in his essay "Science as a Craft Industry", expands software crafts to include mastery of using software as a driver for economic benefit:

"In spite of the rise of Microsoft and other giant producers, software remains in large part a craft industry. Because of the enormous variety of specialized applications, there will always be room for individuals to write software based on their unique knowledge. There will always be niche markets to keep small software companies alive. The craft of writing software will not become obsolete. And the craft of using software creatively is flourishing even more than the craft of writing it."

Project Planning

Planning is everything – or so everybody says – at least everybody who seems to achieve their goals. This is very likely to be true for you this semester as you work your way through your Senior Design Project. Although your project is not large on the scale of projects that we discussed in COMP180, there are several factors working against you that make the demands of your task similarly difficult. First, you are a completely new team working on your first project. You will be learning how to work together, how to use new tools, and perhaps a new programming language. Second, you have many other demands on your time – this is one priority among many and at a different level for each of you. Third, you might have a warped view of time right now – the end of the semester and graduation probably seem a ways away but these next few months are going to go very quickly. So, I recommend that you work very hard together to determine a schedule and a set of role assignments (see Number 2 below) that will help you stay on track.

Software Measurement

Software plays an important role in our life. We want products which affect our lives has quality attributes. We need quality software. In order to determine quality of software we must have some metrics to measure quality. The key point here is quality of the same product may be change. Software is not an exception. So if we determine quality attributes of the software we can also have more precise, predictable and repeatable control over the software development process and product. If software engineer know what will he/she do, then we can "measure" software more easly. Most of time we do not know exectly what is the problem. With only a small understanding of the desired software system, estimations of costs begin.
In the early days of computing, software costs represented a small percentage of the overall cost of a computer-based system. Therefore, a sizable error in estimates of software cost had relatively little impact. Today, software is the most expensive element in many computer-based systems. Therefore, a large cost-estimation can make the difference between profit and loss.