FACTOID # 73: 62% of Bulgarians describe themselves as either 'not very' or 'not at all' happy.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Methodology (software engineering)

In software engineering and project management, a methodology is a codified set of practices (sometimes accompanied by training materials, formal educational programs, worksheets, and diagramming tools) that may be repeatably carried out to produce software. e. ... Project Management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, quality, time and cost constraints. ...


Software engineering methodologies span many disciplines, including project management, analysis, specification, design, coding, testing, and quality assurance. All of the methodologies guiding this field are collations of all of these disciplines. Discipline is any training intended to produce a specific character or pattern of behaviour, especially training that produces moral, physical, or mental development in a particular direction. ... Project Management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, quality, time and cost constraints. ... To analyze an algorithm is to determine the amount of resources (such as time and storage) necessary to execute it. ... Specification may refer to several different concepts: Specification (standards) refers to specific standards Specificatio - a legal concept Specification (regression) refers to the practice of translating theory into a regression model Category: ... All Saints Chapel in the Cathedral Basilica of St. ... The term coding has the following meanings: In communications systems, the altering of the characteristics of a signal to make the signal more suitable for an intended application, such as optimizing the signal for transmission, improving transmission quality and fidelity, modifying the signal spectrum, increasing the information content, providing error... Software testing is the process used to help identify the correctness, completeness, security, and quality of developed computer software. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ...

Contents

Methodology versus method

Disagreement exists regarding the relationship between the terms method and methodology. In common use, the methodology is frequently substituted for method; seldom does the opposite occur. Some argue this occurs because methodology sounds more scholarly or important than method. A footnote to the word methodology in the 2006 American Heritage Dictionary notes that, "the misuse of methodology obscures an important conceptual distinction between the tools of scientific investigation (properly methods) and the principles that determine how such tools are deployed and interpreted." In academia, the distinction between practice (i.e., method) and the philosophical basis for the practice (i.e., methodology) tends to be more clearly delineated. method (from Greek methodos, met hodos literally way across). The word entered English in 1541 via French and Latin. ... Methodology is defined as the analysis of the // == Headline text == principles of methods, rules, and postulates employed by a discipline or the development of methods, to be applied within a discipline a particular procedure or set of procedures. [1]. It should be noted that methodology is frequently used when method... The American Heritage Dictionary of the English Language (AHD) is a dictionary of American English published by Boston publisher Houghton-Mifflin, the first edition of which appeared in 1969. ...


In Software Engineering in particular, the discussion continues. One could argue that a software engineering method is a recipe, a series of steps, to build software, while a methodology is a codified set of recommended practices, sometimes accompanied by training materials, formal educational programs, worksheets, and diagramming tools. In this way, a software engineering method could be part of a methodology. Also, some authors believe that in a methodology there is an overall philosophical approach to the problem. Using these definitions, Software Engineering is rich in methods, but has fewer methodologies. There are two main stream types of methodologies: Structured Methodology (Information Engineering, SSADM and others), which encompass many methods and software processes; and Object Oriented Methodology (OOA/OOD and others). e. ... Information Engineering (IE) or Information Engineering Methodology (IEM) is an approach to designing and developing information systems. ... It has been suggested that this article or section be merged into Structured Systems Analysis and Design Methodology. ... In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ... Object-oriented design (OOD) is a design method in which a system is modelled as a collection of cooperating objects and individual objects are treated as instances of a class within a class hierarchy. ...


Criticisms

Algorithms for Programmers 1 
Many methodologies feel like an attempt to define algorithms for programmers to follow. This has the effect of making software more impersonal and less worth doing. This lowers motivation and job satisfaction for programmers. Programmers have resisted most rigid methodologies.
Counterargument: Most workers resist a contract when possible. A contract can be ego damaging when you fail to meet the terms. Nevertheless, it is a valid point that not all contracts should be accepted, especially when the contract is a boilerplate that does not fit the new job well. In this case, that means a programmer should be able to propose changes to any method or methodology they are given and be given explanation if such changes are not accepted.
Algorithms for Programmers 2 
If it were possible to define a methodology precisely, it should be encoded in a program, and the computer should carry it out. The reason methodologies do not work as programs is that they are too vague to be usefully defined.
Everyone already knows 
Most methodologies are composed of tools and practices that are widely known, such as using object-oriented languages and doing requirements before doing implementation. Many methodologies clearly enumerate the state of the art, but add nothing that is not widely known.
No more methodologies 
Recently, some (like Karl Weigers) have argued for no more methodologies. Methodologies tend to list the contemporary technologies and practices and insist that everyone use them. This advice is obvious for those who work on new systems and have the opportunity to use contemporary technologies and practices. This advice is useless for those who maintain legacy systems and must use legacy tools and must use older technologies and practice, due to circumstance. So, methodologies are not specifically useful, beyond identifying state of the art at a particular time. And methodologies must be updated as technologies and practices evolve.
Counterarguments: The maintainers of legacy systems are entirely free to use legacy methodologies. And every project has to have its ground rules; there is no one set of accepted rules or even one agreed vocabulary in some disciplines. Agreeing upon the rules, the tools and the vocabulary is adopting a methodology. All successful (and many unsuccessful) large teams do so.
Amplification: Methods and methodology should be assigned in a creative way that fits the project. They should not be blindly carried onwards to new projects nor retrofitted to legacy projects without consideration of the cost to bring old code and documentation up to the new standards.
Expectations 
Methodologies in and of themselves are meaningless without clear expectations. Expectations can include terminology, process, procedure, etc. It will not matter how a problem is approached, if the expectation was not managed and/or met, the solution is worthless. That said, methodologies are as much a matter of best practice as they are personal style. In this craft of software engineering, a certain amount of familiarity is necessary of best practices or similar such guidelines, while at the same time remaining flexible to personal styles or approaches to a problem. Then creativity is not stifled in the midst of the science.
Communications and Agreement and Maintenance 
First, there is almost a rule that the more efficient and clever an implementation, the more difficult it will be for an uninitiated programmer to maintain in the absence of a documented method embedded as source comments. But more importantly in terms of wasted time and money, often "everyone does not know" or at least "know" the same thing. Final testing is not the best place to find that out. At its simplest methods and methodology are merely documentation about what the coders are to accomplish and how they interact with other team members. Unfortunately, verbal handshakes or terse emails are the key source of miscommunication in human endeavor. In the absence of a description, the coder of any particular software segment may well have done the wrong job correctly. The same words without sufficient context often mean different things to two different people with different backgrounds. Additionally a code segment may even have restrictions on implementation due to things the coder may not be informed about, such as the form or quality of data coming in or going out or some external consideration like law. Or supervisors may want a way to confirm that the programmer does know the correct way to implement a given business process that is outside their experience.

It has been suggested that Legacy code be merged into this article or section. ...

Examples

Examples of methodologies in software engineering: e. ...

Scott Amblers Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP). ... The Constructionist Design Methodology (CDM) was developed by artificial intelligence (AI) researcher Kristinn R. Thórisson and his students at Columbia University and Reykjavik University for use in the development of cognitive robotics, communicative humanoids and broad AI systems. ... Dynamic Systems Development Method (DSDM) is a framework based originally around Rapid Application Development (RAD), supported by its continuous user involvement in an iterative development and incremental approach which is responsive to changing requirements, in order to develop a system that meets the business needs on time and on budget. ... The Enterprise Unified Process (EUP) is an extension of the Rational Unified Process. ... Extreme Programming (XP) is a software engineering methodology, the most prominent of several agile software development methodologies. ... A simple flowchart for what to do if a lamp doesnt work A flowchart (also spelled flow-chart and flow chart) is a schematic representation of an algorithm or a process. ... Information Engineering (IE) or Information Engineering Methodology (IEM) is an approach to designing and developing information systems. ... Jackson Structured Programming or JSP is a method for structured programming based on correspondences between data stream structure and program structure. ... Metaprogramming is the name of a management technique invented by Charles Simonyi for organizing the work of a team of programmers. ... Charles Simonyi (Hungarian: Simonyi Károly; born September 10, 1948, Budapest) is a computer software executive who, as head of Microsofts application software group, oversaw the creation of Microsofts flagship office applications. ... As a word, praxis can mean: Praxis is a Latinate English noun, referring to the process of putting theoretical knowledge into practice. ... The Rational Unified Process (RUP) is an iterative software development process created by the Rational Software Corporation, now a division of IBM. The RUP is an extensive refinement of the (generic) Unified Process. ... Scrum is a lightweight agile method for software development. ... Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. ... Structured Systems Analysis and Design Method (SSADM) is a systems approach to the analysis and design of information systems. ... System Development Methodology (SDM) is primarily being used for the development of IT-projects. ... This article needs to be cleaned up to conform to a higher standard of quality. ... Figure 1: VFSM in the Virtual Environment A finite state machine (FSM) defined in a virtual environment is called virtual finite state machine (VFSM). ... The waterfall model is a sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. ...

See also

e. ... Project Management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, quality, time and cost constraints. ... This list complements the software engineering article, giving more details and examples. ... This does not adequately cite its references or sources. ...

External links

  • Software Methodologies Book Reviews An extensive set of book reviews related to software methodologies and processes

  Results from FactBites:
 
Methodology (software engineering) - Wikipedia, the free encyclopedia (991 words)
In software engineering and project management, a methodology is a codified set of practices (sometimes accompanied by training materials, formal educational programs, worksheets, and diagramming tools) that may be repeatably carried out to produce software.
One could argue that a (software engineering) method is a recipe, a series of steps, to build software, where a methodology is a codified set of recommended practices, sometimes accompanied by training materials, formal educational programs, worksheets, and diagramming tools.
In this craft of software engineering, a certain amount of familiarity is necessary of best practices or similar such guidelines, while at the same time remaining flexible to personal styles or approaches to a problem.
Software engineering - Wikipedia, the free encyclopedia (3686 words)
Software engineering is "(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software," and "(2) the study of approaches as in (1)." – IEEE Standard 610.12
Software Engineering is considered by many to be an engineering discipline because there are pragmatic approaches and expected characteristics of engineers.
Experimental software engineering is a branch of software engineering interested in devising experiments on software, in collecting data from these experiments, and in devising laws and theories from this data.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.