what is cyclomatic complexity in Software Engineering?
369484
its a measure (metric) of the complexity (or testability) of a program or function...\n\nat its basic its the number of possible execution paths through the code...\n\nyou can use it to compare pieces of code for as a pointer to their logical complexity. \n\nhth
687505
The Brown University pattern theory group is working with the belief that the world is complex, and to understand it, or a part of it, requires realistic representations of knowledge about it. We create such representations using a mathematical formalism, pattern theory, that is compositional in that the representations are built from simple primitives, combined into (often) complicated structures according to rules that can be deterministic or random. This is similar to the formation of molecules from atoms connected by various forms of bonds. \n\nPattern theory is transformational in that groups or semigroups of transformations operate on the primitives. These transformations express the invariances of the worlds we are looking at. \n\nPattern theory is variational in that it describes the variability of the phenomena observed in different applications in terms of probability measures that are used with a Bayesian interpretation. This leads to inferences that will be realized by computer algorithms. Our aim is to realize them through codes that can be executed on currently available hardware.
1052364
Computer engineering is far more complex and challenging than, say, vehicular engineering or constuction engineering. It's more along the lines of rocket science or bio-warfare chemistry in degree of difficulty. Did you really expect to be able to come on a place like this and ask other people to do your homework assignment questions or you on a very challenging subject with questions that are written and designed to require the answerer to have a clear, well understood working knowledge of the subject matter beforehand. Questions like these, as I've said to many a peroson, are great for speciality groups, like the ones I've referenced below, that are perfect resources for students looking for people who may work in the area, or teach the subject. Otherwise I can only suggest reading your text book and figuring it out for yourself. Good luck with that. Blessed Be.
1152865
This is a very difficult question to really answer correctly. According to Godel's incompleteness theorem, a system is either complete or inconsistent. Although Godel proved it for the natural numbers, i have taken the liberty of using it as an analogy for software systems.\n\nA practical way to proceed is to test throughout the life cycle and to correct errors. As the software gets used and errors get fixed, (without introducing new errors), it becomes more reliable. The existence of various software environments (different operating systems, transaction monitors, database systems, interfaces to other applications and services, etc.) complicates matters. Particlarly when you have little knowledge and/or control over the environmental systems and software.\n\nSo what to do about the initial and subsequent releases. One way is to classify errors into severe, medium and minor. The classification depends on the application and impact of the application. Then have a release policy depending on the number and type of errors detected in testing.\n\nTo illustrate, consider the following applications:\n\nreal time flight control software for a passenger aircraft, passenger reservation software for airlines or trains, on-line stock trading software, word processing software, chat and email software.\n\nClearly the societal impact of errors in the above applications differs considerably.\n\nSome organizations also use quantitative models to predict residual-error distributions based on on-going test results.\n\nTesting, maintenance and support are part of the software life cycle and i think its very difficult to say "i've tested enough", simply because it's difficult to define "enough".\n\nTo build and maintain good software you need good requirements and analysis, good design which is maintainable and testable, good practices, good tools, good environments, good infrastructure, good communication and most of all good people.
314178
The Confederacy of Independent Systems
382433
If you know JavaScript or a C-type language fairly well, and understand the ideas behind event-driven programming models, then yes, it's easy. If you don't, then it is quite hard.
720478
Its called Software Development Life Cycle [SDLC]. Begins with Requirement Planning, Documentation, Coding, Testing and Implementation.
1172101
Doesn't sound like you know what ID means let alone irreducible complexity or paley's watchmaker argument to back it up at all and what the hell is your question?  Seems to just be a ignorant claim without any good supporting evidence or logic to back it up.  Keep reading and maybe you'll learn something.
1046357
critical path method CPM
634162
I found the programming algorithms the most difficult.
363716
For an engineer you have committed an uncommon error -- creating a general rule based purely on a limited (and likely flawed)sample. \n\nIn your own words: "I have never met a computer programmer... who had any real engineering skills(or an real engineering degree)."\n\nIs not THE foundational principle of Engineering that only calculable, repeatable, verifable infomation should be the basis for decisions?\n\nI assure you there ARE plenty of people who "write code" that have REAL enginnering degrees, those degrees may be in the traditional engineering disciplines of ME, EE, CE, ChemE as well as Industrial Engineering, Systems Engineering, Software Engineering, and other fields from schools as "hard core" as Georgia Tech, Carnegie Mellon, MIT, Purdue, Univeristy of Illinions, Cal Tech or others. Typically people with such skills are much more likely to be found in highly techincal fields, were their skills are more valuable. You certainly would want not the same person hacking together a website that you would trust to write the code that guides the Space Shuttle, manages doses of gamma radiation, or powers the internal workings of life-safety communication equipment.\n\nComputer Science is a field of study that has existed at the University level for over fifty years. While the logic contructs that are its underpinnings are shared by both fundamental mathematics and linguistics, its reliance on technolgy set it distinctly apart from those related fields -- just as chemistry & physics share many foundational tenants one deals primarly with the constituents of matter while the other deals with its motion/energy.\n\nVirtually all complex software can be reduced to a small decision tree, just all virtually all engineering problems can be reduced to simple calculations, yet I wonder if engineers who oversee pot hole repairs need to rely on as robust a set of calculations as those who construct bridges that span San Francisco Bay?\n\nThere ARE standards to become a Licensed Professional Engineer in CE, ME, EE, ChemE, and there are standards  for those interested in Computer Engineering as well. I suspect that the number of CEs that are LPEs far far exceeds those who are Software Engineers...\n\nRight now I know of no "search engine" that can tell me instantly how many engineers are in the US and the world. Further there is no simple query that I know of that would separate out those that are restricted to "computer code writers". I suspect that if and when such search engines and query facilites are built it will be by those who have a thorough knowledge of both Computer Science and Engineering...
362281
1. Lack of coordination\n2. Harder to implement big projects
306220
non functional requirements in software engineering are like \n\n- performance , maintainability , ease of use\n\ni.e :\n\nease of use : does ur software provide a nice interface and easy to navigate or not \n\nmaintainability : does ur software maintainable like it can be upgraded or updated easily \n\nand so on
411263
AC or DC\n\nany phase differences\n\ndependent sources\n\nlinear or non linear elements\n\napplicability of theorems\n\nbilateral or not\n\nhomogeneity
1172183
waterfall model\n\nThis is the most common and classic of life cycle models, also referred to as a linear-sequential life cycle model.  It is very simple to understand and use.  In a waterfall model, each phase must be completed in its entirety before the next phase can begin.  At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project.  Unlike in the general model, phases do not overlap in a waterfall model\n\nAdvantages\n\nSimple and easy to use. \nEasy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. \nPhases are processed and completed one at a time. \nWorks well for smaller projects where requirements are very well understood.\nDisadvantages\n\nAdjusting scope during the life cycle can kill a project \nNo working software is produced until late during the life cycle. \nHigh amounts of risk and uncertainty. \nPoor model for complex and object-oriented projects. \nPoor model for long and ongoing projects. \nPoor model where requirements are at a moderate to high risk of changing.\n\nV-Shaped Model\n\nJust like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes.  Each phase must be completed before the next phase begins.  Testing is emphasized in this model more so than the waterfall model though.  The testing procedures are developed early in the life cycle before any coding is done, during each of the phases preceding implementation.\n\nRequirements begin the life cycle model just like the waterfall model.  Before development is started, a system test plan is created.  The test plan focuses on meeting the functionality specified in the requirements gathering.\n\nThe high-level design phase focuses on system architecture and design.  An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.\n\nThe low-level design phase is where the actual software components are designed, and unit tests are created in this phase as well.\n\nThe implementation phase is, again, where all coding takes place.  Once coding is complete, the path of execution continues up the right side of the V where the test plans developed earlier are now put to use.\n\nAdvantages\n\nSimple and easy to use. \nEach phase has specific deliverables. \nHigher chance of success over the waterfall model due to the development of test plans early on during the life cycle. \nWorks well for small projects where requirements are easily understood.\nDisadvantages\n\nVery rigid, like the waterfall model. \nLittle flexibility and adjusting scope is difficult and expensive. \nSoftware is developed during the implementation phase, so no early prototypes of the software are produced. \nModel doesn’t provide a clear path for problems found during testing phases.
437927
Software Processes is an evolving field which takes a small library to explain; the term refers to the design of processes for Software Engineering.  (That is, design and production of a substantial piece of software beyond use-cases.\n\nHaving studied XM and Grady Booch's corpus, you might decide which Layered Technologies paradigm has been mentioned to you (e.g. by searching with 'GSA' or 'DOD' or 'GM' in your terms), of the several model architectures available; primitive layered technologies suggests that you're going to pick a series of technologies and model the competencies of it with respect to each other tech it can be expected to talk with, perhaps choosing the layering to look like the OSI networking model or some Model-View-Controller stack or the Seattle skyline.\n\nI think the original process of this sort was a Cambrian C stack where your program execution stack looked like your architecture; you call up or down one technology at a time, and its model will have to act or defer in the same direction and then return.  It's like writing excellent exceptions code but within a spinlock.
597977
deoending on how well defined the language is, it could be a lot more difficult to program