Tuesday, April 2, 2019
Complexity Measures in Design and Development
complexness Measures in cast and growingAlbert Einstein at a time said E realthing should be make as plain as possible, b atomic act 18ly no simple(a)r. These simple words coming tabu of a geniuss mind carry a eitherot of core and depth in them. The last devil decades saw an exp geniusntial function rise in contrasting branches of design and sciences and with these developments came in a group of real(prenominal) travel yet very complicated technologies. Are these intricateities think?The answer is very simple NO the very word advanced is al approximately always inherited by complexness. No unrivaled would indispensableness to creation and manu featureure virtuallything very complex, besides the to a greater extent advanced a applied science is, the to a greater extent complex it gets. Even the sues make by the man who said those words atomic number 18 far too complex for a common man and actually that is exactly what he implicatet. Everyone tries to snitch things as simple as possible, yet no simpler than that, they b atomic number 18ly suffert and the simplest product concept possible nookie become very complex in nearly regards.With increasing complexness, thither is always a danger of administration be destabilized, reduction in boilersuit per constituteance, higher(prenominal) constitute, higher maintenance, etc. The way to keep keep oer complexness is to have none of it, so that management and reconciles k flat what exactly mental disturbance and how to change their running(a) strategy. In this address I am h gray-headeding a detailed over get a line of complexity, its different ungenerousings and interpretations in conf drilld industries and a swarm of nebs that were developed to measure and prize complexity. at that place be a similar a hardly a(prenominal) methods of minimizing complexity presented along with plaint studies illustrating the way in which these measures were employ to rea l-time manufacturing and plan cultivatees.ComplexityWhat is complexity? could be one of the virtually complex headlands tube answered. The very definition of complexity from dictionary would stir the marrying Consisting of interconnected or interwoven sorts Composed of two or more than units Offers great difficulty in recogniseing, solving, or explaining The entwine of parts so as to make it nearly impossible to follow or grasp them separately Extreme tortuosity and often disease complication and entanglement that make solution or empathiseing incredibleThe frontmost two meanings atomic number 18 non too think to to our present context so I go extinct ignore them, provided the larn a breath mention the exact meaning of what complexity is. As we freighter confabulate, if I do not view something ripely or am not capable enough to understand it, that thing is complex tome. Does this mean it is truly complex? The answer over again is very simple, NO a nd that is the very yard why complexity is so hard to define. Complexity of allthing is wagerent on m each factors and one very authorized factor is human understanding. A subject complex to me could be a piece of cake for mortal else and this very behavior of complexity makes it very hard to measure and treasure it.An authoritative and interesting question that may arise in lectors minds, Does the very equivalent meaning of complexity stand in assiduity standards too? The answer could be both a YES and a NO. It does stand the same thing in some cases, but in rest, the definition of complexity is comp permitely modified. A best sheath would be industries involved in computer sciences and engineering. T here(predicate) complexity of a engrave does not really mean it is hard to understand, it rather means that it takes a lot of time for computer to calculate and knock over the results.In most of the mechanical and electronic figs, complexity would mean systems with mu ltiple interacting parts, the behaviour of which cannot be related with respect to individual parts. That is their collectivebehavior is entirely different and /or unpredictable from their individual behaviour. Again this unpredictability can be related to just the passive structure of these dowers or dynamic nature, and so the specialty amid static complexity and dynamic complexity. at a time Avery good question to answer is What exactly ar these static and dynamic complexities?Static Complexity Given a picky system (could be some(prenominal) system like manufacturing architectural plant with different manual of arms and automated equipment or just a small network with multiple master of ceremoniess/ clients ), in that location is always some complexity involved with the static structure of these components, could be just their somatic shapes/ coats or their alignment with an some other(prenominal) objects or with environment. This complexity which is made up as a function of respective(a) arguings like physical shapes, structures, connectivity, variation and strengths of components is called static complexity.Dynamic complexity Dynamic complexity is more related towards the behaviour of these components as a unit. As mentioned earlier, the pattern of behaviour for a group of components is roughly always different than the pattern for individual components this behaviour measured over a finale of time is a major parameter in dynamic complexity.A very classic model of complexity that is usually taken as constant or zilch while evaluating static or dynamic complexities is complexity arising because of meet that is, granted(p) a particular system, there could be umteen ways in which it can controlled and each one of these methods can result in a different static / dynamic complexity measure, indeedly to really evaluate a system, we should besides consider this parameter and measure a control complexity too. But for most practica l excogitations, it is assumed that there is undivided one way to control, thus ignoring control complexity.Measuring and evaluating dynamic complexity is highly dependent on the industry and its specific design, thus forming generic measures for dynamic complexity is not only complicated but to a fault inapplicable invest majority of other designs. so research is more foc employ towards static complexity and its measures. Though there be cover which concentrate only on dynamic complexity, they ar very ofttimes oriented towards a specific industry and its related fields. Does this mean that static complexity is similar for all industries and designs? No, but a particular measure calculated for static complexity could be easily expanded to other designs too, which is not the same for dynamic complexity. In this story, I will give bills of both static and dynamic complexities with respect to manufacturing environment.Before we go any further into measurement of complexity, it is a good theme to understand why and how complexity arises in systems? There is general belief that complexity arises repayable to many random factors. It could be true in some sense, but that only indicates a very bad design. For systems which are well designed, make and maintained, randomness is not a major factor it is rather the fact that the system cannot be easily happen upond which causes more complexity.According to Axelrod and Cohen describe systems as comprising of agents and artifacts. The artefacts are just physical (or virtual) objects that comprise the system where as the agents who have attributes like location, memory, ability to interact with other agents, ability to fudge and change functions, control these objects. The agents may not have to be slew alone they can be computer classs, groups, political entities etc. that may affect the system directly or indirectly.Another important and very interesting concept of complexity comes from Wolfram, in which he states that complexity in a system comes from randomness produced because of three sources. The outgrowth source is the environment and its intervention, either directly or indirectly, on the system. The second source is the initial conditions that the system was in, before creation utilize. These initial conditions could be random thus adding more weight to the complexity. The third and most important one is the interior(a) or intrinsic complexity of the system. That is the complexity of the system when there is no external influence or affect.With all these different views of complexity, we are immediately ready to go ahead and describe what complexity in design is? But before that, let us see what exactly design means.Design and wherefore is it done?In this section, let us see what exactly design means and as in either case, let us start with the exact dictionary definition of design. To conceive or fashion in the mind invent To formulate a plan for devise To plan out in systematic, usually graphic form To create or contrive for a particular purpose or effect To have as a goal or purpose intend To create or execute in an artistic or highly skilled mannerThese, may be with little twists here and there, are the exact definitions of Design that you see in dictionaries and they almost suggest what precisely designing means in industry standards. Basically designing involves making things better and more reclaimable to customers (or good deal). Almost every individual(a) thing that we use is (/was)designed at some point of time things that we take for granted were once designed and engineered. Design is an integral part of us and our society and is united in almost everything and anything we do and we use. pattern anything starts with an whim, any idea good or bad. The main job of occasions is to reform this idea so that it is understandable for the people who need to work on it and manufacture it, sort of able print. Whether it is a mult ibillion dollar dam or a small fashion hair pin, the branch of creating them is all the same and involves almost the same underlying general dance go. Before we discuss these steps, its important for us to understand why designing is done on the first place?Designing is a very important and staple fibre step in any product. To deliver product, there are many steps involved. There are scientists who invent forward-looking technologies, engineers who use these technologies to develop confused components, manufactures that use these components in manufacturing different products and finally marketers who take the prime use behind delivering the product. But who is tone ending to coordinate their efforts to produce a delectable and successful product, no one else but the designers. They are the people who understand what the customer deprivation and deliver a mechanism to make it happen.Designing is not just what we read in magazines which depict it as in general involved wi th fashion industry. No that is not at all the case it involves a lot of insight into the way customer thinks and requires his product. As I mentioned earlier, everything that we use was designed at some point of time. There are some very important things that every design is supposed to follow, a apprise list of which is as follows User requirements The very first and most important aspect designer has to consider is drug user. In this world where the number of competitors for a product is more than the product itself, there are very few designs which are being accepted into user community. The main movement behind their success being complete satisfaction of customers. The very first step of any design suffice is to know what exactly customers expect? Creativity Next comes creativity. When the designer knows what the customer wants, he has to create something new he just cant give the same old stuff which just satisfies the needs. If I am buying a camera, being a picky cus tomer I wouldnt buy any camera that can take a snap of me, NO, I want so many other things which may be I will not even dream of using, but equable I want them in my camera. That is how customers think and that is what exactly designers provide. Innovation has to be there in a product without which there is no order to it.Designers explore all the different combinations in which a product can be designed and seek new methods in doing so. The stranger it is the better. Now that there are so many simulation tools and other devices that provide so ofttimes insight into the product even before it is made, this work is simplified a lot. Business act the other very important consideration a designer has to go through is the business process both from confederacy perspective and user perspective. The overall price of the product may depend on the design and considering this is a very important thing. The best examples are the products from Microsoft, take for example PowerPoint, tho ugh costing only 50-100 dollars, its overall revenue may be grater than some very big computer bundle package curriculum companies whose products cost millions of dollars. wherefore? The design was so done that there are millions of satisfied customers to PowerPoint or excel who can afford it easily than to products that cost millions of dollars. Manufacturing overview it is also very important for a designer tube good aware of what exactly his union is capable of and at what capacity. I can design a magnificent product in a engineering science that my company is not even aware of, there is no use to it. A designer should be completely knowledgeable in the manufacturing processes and principles of his company so that whatever he does is not counter tithe animate mechanism, but only ontogeny its productivity by using it in a better way.Now that we considered the basic aspects of design, let us now look at the design process. Being a designer is not such(prenominal) a simp le job, you will have to consider so many discrete and varied things, a small list of which was provided to a higher place. There is a lot of trial and error involved. Till you get the remedy one, there could be thousand rejected designs. Though most of the design process is done by designers, there is a lot of constituent from most of the other departments involved in getting that product out like manufacturing people, engineers, business analysts, managers etc. The interest are the basic but general steps I mentioned earlier that any designer follows consciousness and evaluating Requirements The very first step involved in design process is to understand and evaluate the user requirements. This involves defining the objectives, setting deadlines, targets and parameters. The design group is involved right from the beginning to the end as they have to understand the business process both from the companys point of view and the customers point of view. The idea being creating a n ideal final cause which will satisfy both the business processes and optimize them. A very important question to answer at this level is why are we creating / modifying this product? Once this question is properly answered, the rest of the process becomes simpler and logical. query Research is one of the most important aspects of the whole process. This is an ever going process, especially in the case of longer project. Research typically includes a mix of areas like Technology, Economy, User Satisfaction, Competitor products, trends, risks etc. Every one among them will affect the product and its design. A simple example would be the conversion from analogy to digital. May bee decade or two ago, there were some systems which were still concentrating on analogy devices. Now they are just now seen. When such drastic change is happening (a decade would not be drastic for us, but for large scale manufacturing plants to change their whole technology from analogy to digital would cost millions of dollars even though it is spread over multiple years), it would be highly beneficial to a company to be well informed beforehand rather than changing at the promote of moment. Research is more concentrated on the customer / user than anything else. any(prenominal) user wants has to be done and it would be lots more favored to know the user choices beforehand doing our own research, rather than getting a dissatisfied comment from him. Planning planning is another significant part of the whole process. As I mentioned earlier, it is always good for the designers to know the national business processes of the company beforehand rather than knowing them later on and trying to modify the design. Planning takes care of this step. With participation from wide variety of areas all across the board, it becomes simpler for the designer to know and understand different views and angles close a manufacturing process so that the overall design is acceptable and enjoyable by everyone. Communication In a business process, there are always instances when the customer thinks of something, the designer understand something else and the manufacturing guys create something completely different. why does this happen? Lack of communication. Whose mistake is this? Nobodys. It is very important for a designer and his team to keep inconstant touch with both the customers and the manufacturing guys at the same time. Designers are the only bridge between customers and manufacturers and they should be completely aware of the business process from both the sides. It is clients indebtedness that he conveys the proper requirements to the designers so that they care-convey them to their manufacturing guys, a small leak here and there can result in disaster. But does the client do this always? NO. So it becomes an additional burden on the designer to keep in constant touch with the customer and keep him affix of what is going on with the product, so that if there i s some discrepancy, indeed the meaning is obtained instantly, same is the case with manufacturing people. Implementation the last step is implementation, mostly done by the manufacturing people but involves a little contribution from design team too. First of all, they may have to monitor the whole process and may be even test it thoroughly. Being the only people with complete knowledge of clients business requirements, they are also responsible for quality.This is how a generic design process goes, let me accent the word generic again. Depending on industry, this process may change here and there, but the changes would be nominal. Now let us consider the different contexts of complexity in different industries and their detailed analysis, the major contrariety between the following topic and the one presented earlier being that the following one is description of complexity from design perspective.Different Contexts of complexity in different industriesI already mentioned whi le explaining the definition of complexity that its basic meaning may change from industry to industry. In this section let me cotton up some key industries and illustrate the meaning of complexity with respect to that particular industry. In the very same process let us also try to combine the design process into the contexts that we can start concentrating more on complexity in design more than complexity in general. let us start with the software industry where the definition of complexity is very fundamental but very useful.Complexity in Design for software system industriesWhat exactly does complexity in software design mean? IEEE standard 729gives the following definition for complexity in software, The gradation of complication of a system or system component, determined by such factors as the number and intricacy of interfaces, the number and intricacy of conditional branches, the degree of nesting, the types of data structures, and other system characteristics. Though ve ry extensive, this definition still doesnt cover all the aspects ofcompelxity in software. There are many things to be considered while stating complexity in software a few of which are the operating system, programming language , database, interface being used etc. and etc.Now familiar question could be, Does all this matter, a complexity has tube related to the way you design an algorithm more than the way you program it?. Actually it does. There is a popular mental picture of measuring complexity in software industry where in they canvass a particular language (for example) with another one and decide what is more complex. Though theoretically perfect, practically this is totally wrong. How can one comparability an algorithm pen in Java to the same algorithm written in C, their applications and usages are completely different.Similarly you cannot compare a program using Oracle as its database to a program using Microsoft Access. Now can we measure complexity taking all these into consideration? non really. For measurement purposes again everything falls back to algorithm level. Whatever be the programming basis you are using, underneath it there is only a single algorithm being used. Thus in this context measurmentof complexity has to be done with a lot of risk. Later in the dissertation Aim going to suggest some popular methods of complexity measurements used in software industry.In general, complexity in software comprises mainly of the following components (apart from the algorithm) Component Reuse (so called Object Oriented Programming) This is Avery important component of complexity measurement these solar days. Given a particular algorithm, if you can use a piece of code again and again, thus avoiding redundancy, the complexity would drop by a lot. Hence this factor is a very important component of software complexity. Control Flow This takes into consideration the whole control structure of the program. Data Structures The number of data structures being used and their size (in bits and bytes) Size the overall length of the code (also including the commented lines and documentation as even they are considered in compilation process)From the above description, we can conclude that software complexity depends a lot on the algorithm being used, but many other factors contribute a lot too. Thus a good designer would first of all consider the algorithm and once the algorithm is decided, he / she would spend more time looking into various other considerations, trying to decrease the length of code, number of hits to the database, number of requests from the server etc.Complexity in Manufacturing Let me clarify what I mean by Manufacturing before I go any further, it includes almost every single sector of consumer product industry starting from auto industry to small electronic components. Why am I including them of all into a single concept? Because the way they function is almost similar with the difference in size. Th us in this section, I will try to chance on them whenever necessary, but otherwise they are all the same.Majority of these industries involve many moving parts and each one of these parts are again designed and manufactured, either in the same company of in a different one. Thus there is complexity involved in designing each one of them, and then comes the complexity of assembling them into one single system, normally carried out by various automated and / or manual methods. Consider for example an auto industry.With thousands of components going into the assembly line, the whole process becomes highly complex similar is a case with electronic devices wherein irregular parts has to placed and soldered on a PCB with utmost precision. Normally complexity of a manufacturing process is dependent on many parameters, a brief list of which is as follows Similarity in processing requirements the complexity of manufacturing process is highly dependent on the processing requirements and the ir similarity. Any process would be much simpler when it has similar methods being used across various modules. Thus with variance in processing requirements, the complexity increases. Complexity also increases ascribable to changing consumer demand, which directly affects the whole setup. Yield Manufacturing yield is another important factor that determines the complexity. There is always a constant effort to increase the yield but without proper planning and automation, this could result in colossal complexities. Miniaturization With the latest trend of miniaturization, all the components are being made as small as possible thus increasing their overall complexity. We can easily say that a laptop or as a matter of fact a palm top is much more complex than a desktop. A similar trend is being observed in many of the electronic sectors and thus enhancing the complexity of design. aptitude Efficiency More applicable in automobile than anywhere else, this parameter is affecting the complexity a lot. With advanced vehicles(hybrid electrical and gasoline ground engines), the energy efficiency is being increased a lot, but along with it, the complexity is also increasing at a similar rate.Why do we need Complexity Measures?Till now I discussed the basic definitions and detailed meanings of complexity and design. Now let me consider on measurement of complexity. The very first question to be answered in this regard is, Why do we need complexity Measures for?The answer for this question cannot be given in all technical fashion we need some doctrine for this. As can be seen from the trends in the past two decades, the existence is rising at a huge rate and along with it the technology is improving at an exponential rate. We are living in the period where Moores law is still being maintained and the devices that we use nonchalant are being made more and more sophisticated and user friendly.But what if someone wants to understand the concepts behind any of the se devices, though the advanced(a) communication is fast and very knowledgeable, it is grand too. Most of the information provided is random, not relevant, redundant and sometime inaccurate. This provides more confusion than clarity. As Simon says in his paper Creativity, Innovation, and Quality, Today, complexity is a word that is much in fashion. We have learned very well that many of the systems that we are trying to deal with in our contemporary science and engineering are very complex indeed. They are so complex that it is not obvious that the powerful tricks and procedures that served us for quaternity centuries or more in the development of modern science and engineering will enable us to understand and deal with them. We are learnedness that we need a science of complex systems, and we are beginning to constitute it, it is becoming more and more painful for common men to understand or evaluate systems because of their complexity. This complexity is increasing day by d ay rather than taking a downward step.Not only in manufacturing processes but also in other industries like software, electronics, even social, political, religious, medical, biological hectare also vastly affected. The only way out of this confusion is to do proper designing so as to asperse the complexity involved, (note the work minimize. It is impossible to eliminate complexity). Are these the only reasons of measuring complexity? No way.None of the industrialists would ever invest in research for complexity measures for the above mentioned reasons. There is a huge economic advantage by doing proper complexity measurement and then taking proper steps to minimize it. I will mention a small list of these benefits here, and then explain them in detail as we go on to accompanying sections.List of advantages for measuring, evaluating and finally minimizing complexity from financial point of view The operational strategy could be improved a lot. military operationing speed and thu s information transfer is much faster and smoother. System performance is better. change magnitude autonomy. More customer satisfaction and thus higher profit. Easier to maintain, modify or redesign.Statistics involved in Complexity measurementBefore we can go ahead and derive some formulae for complexity measures, it is a good idea to brush up some basic concepts of information theory and other related statistical engineering subjects. So this section is dedicated for a brief overview of some of these important concepts.Ensemble An ensemble X is a random variable x with a set of possible outcomes, start out = v1,v2,..vi, VI), having probabilities p1,p2,pi,..pie with P(x=vi)=pi, pi 0 andConditional ProbabilityProduct receiveSum ruleBayes TheoremStationary Process A random process where the various statistical qualities or properties do not vary with time is called a stationary random process. That is for a stationary process, the parameters like Mean, Variance, Standard pa renthesis etc. are constant across time.(Example White Noise)Erotic Process Random process in which the time series produced are the same in statistical properties. That is a set of random processes are considered as time shifts of an original stationary process.Entropy A very popular term in Information Theory, entropy means the lowest do of bit rate needed for representing a particular symbol. The exact value of Entropy is. It is also called as uncertainty of x.With this definition of Entropy and following the probability rules define earlier, joint and conditional entropies can be defined as followsJoint EntropyConditional EntropyThis information should be sufficient for us to go ahead and derive our formulae if anything is needed I will provide it at that instant.Different methods of Complexity Measures, their Evaluation and compendiumAs indicated above, different industries use the term Complexity indifferent aspects, thus there are varied meanings and definitions of it. Wit h so many differences involved in just defining complexity, we can imagine how difficult it would be to measure and find methods to reduce complexity for all these manufacturing units. Taking into consideration this vastness, normally research is done only in those fields where there is some sort of existing mathematical background, using which new complexity measures and evaluations can be done.Ones these are formed, then the same measures could be used for relating complexity of any related industry. A popular area where there is a lot of mathematical background existing is algorithmic complexity, mostly for software related industries but applied in general to a vast area of other industries too. For beginners, let me start with describing few methods in software industry and we shall proceed to manufacturing plants later on.Fan-In Fan-out complexityOne of the most basic complexity formulae to be derived is Fan-Infant-Out complexity formed by Sallie Henry and Dennis kauri. Let us define the following parameters,L = length of the code in lines Fanon = the number of functions that call a particular function Fan-out= how many functions are called by a given function is calledfanout. hence the complexity of the code by this method is given asComplexity = L* (Fanon*Fan-out)2In overall essence what exactly this formula does is, it counts the number of data counts from a particular unit of code and number of data counts into that unit or into a data structure to measure the complexity. Not so useful in real time applications with millions of lines of code and very complex algorithms.Software ScienceThis method was started by Maurice H. Halstead. Again this is a very simple and quite useless sort of algorithm to calculate complexity of program code. The formula for complexity that Halstead proposed was as followsN=n1logn1 + n2logn2Where N is the implementation length of the code, n1 is the number of unequalled distinct operators appearing in the implementation, n 2 is the number of unique distinct operands appearing in the implementation.Now he defines the program book of account as V =N log(n1 + n2)Where log is logarithm to the base of 2.Then he suggests that more the volume of the program code, more complexity is. As I said the above two measures were quite useless for modern programs involving very complicated algorithms.McCabes Cyclamate ComplexityTo measure the amount of finish logic that is loops like for loop, while loop etc. or breaks like if, case etc., for a simple software module, we can use McCabes Cyclamate Complexity.An example formula that
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment