Software developmentSoftware development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development involves writing and maintaining the source code, but in a broader sense, it includes all processes from the conception of the desired software through the final manifestation, typically in a planned and structured process often overlapping with software engineering.
Software development processIn software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Agile software developmentIn software development, agile practices (sometimes written "Agile") include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.
Academic degreeAn academic degree is a qualification awarded to a student upon successful completion of a course of study in higher education, usually at a college or university. These institutions often offer degrees at various levels, usually divided into undergraduate and postgraduate degrees. The most common undergraduate degree is the bachelor's degree, although some educational systems offer lower level undergraduate degrees such as associate and foundation degrees. Common postgraduate degrees include master's degrees and doctorates.
Master's degreeA master's degree (from Latin magister) is a postgraduate academic degree awarded by universities or colleges upon completion of a course of study demonstrating mastery or a high-order overview of a specific field of study or area of professional practice. A master's degree normally requires previous study at the bachelor's level, either as a separate degree or as part of an integrated course.
Unified ProcessThe unified software development process or unified process is an iterative and incremental software development process framework. The best-known and extensively documented refinement of the unified process is the rational unified process (RUP). Other examples are OpenUP and agile unified process. The unified process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. The rational unified process is, similarly, a customizable framework.
Honours degreeHonours degree has various meanings in the context of different degrees and education systems. Most commonly it refers to a variant of the undergraduate bachelor's degree containing a larger volume of material or a higher standard of study, or both, rather than an "ordinary", "general" or "pass" bachelor's degree. Honours degrees are sometimes indicated by "Hons" after the degree abbreviation, with various punctuation according to local custom, e.g. "BA (Hons)", "B.A., Hons", etc.
Bachelor's degreeA bachelor's degree (from Middle Latin baccalaureus) or baccalaureate (from Modern Latin baccalaureatus) is an undergraduate academic degree awarded by colleges and universities upon completion of a course of study lasting three to six years (depending on institution and academic discipline). The two most common bachelor's degrees are the Bachelor of Arts (BA) and the Bachelor of Science (BS or BSc).
Associate degreeAn associate degree or associate's degree is an undergraduate degree awarded after a course of post-secondary study lasting two to three years. It is a level of academic qualification above a high school diploma and below a bachelor's degree. The first associate degrees were awarded in the UK (where they are no longer awarded) in 1873 before spreading to the US in 1898. In the United States, the associate degree may allow transfer into the third year of a bachelor's degree.
Problem solvingProblem solving is the process of achieving a goal by overcoming obstacles, a frequent part of most activities. Problems in need of solutions range from simple personal tasks (e.g. how to turn on an appliance) to complex issues in business and technical fields. The former is an example of simple problem solving (SPS) addressing one issue, whereas the latter is complex problem solving (CPS) with multiple interrelated obstacles.
Rational unified processThe rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.
Law degreeA law degree is an academic degree conferred for studies in law. Such degrees are generally preparation for legal careers. But while their curricula may be reviewed by legal authority, they do not confer a license themselves. A legal license is granted by examination, and exercised locally. The law degree can have local, international, and world-wide aspects, such as in England and Wales, where the Legal Practice Course or passing Solicitors Qualifying Examination (SQE) is required to become a solicitor or the Bar Professional Training Course (BPTC) to become a barrister.
Honorary degreeAn honorary degree is an academic degree for which a university (or other degree-awarding institution) has waived all of the usual requirements. It is also known by the Latin phrases honoris causa ("for the sake of the honour") or ad honorem ("to the honour"). The degree is typically a doctorate or, less commonly, a master's degree, and may be awarded to someone who has no prior connection with the academic institution or no previous postsecondary education.
Test-driven developmentTest-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later. Software engineer Kent Beck, who is credited with having developed or "rediscovered" the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.
Software prototypingSoftware prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing. A prototype typically simulates only a few aspects of, and may be completely different from, the final product. Prototyping has several benefits: the software designer and implementer can get valuable feedback from the users early in the project.
International developmentInternational development or global development is a broad concept denoting the idea that societies and countries have differing levels of economic or human development on an international scale. It is the basis for international classifications such as developed country, developing country and least developed country, and for a field of practice and research that in various ways engages with international development processes. There are, however, many schools of thought and conventions regarding which are the exact features constituting the "development" of a country.
Software engineeringSoftware engineering is an engineering-based approach to software development. A software engineer is a person who applies the engineering design process to design, develop, maintain, test, and evaluate computer software. The term programmer is sometimes used as a synonym, but may emphasize software implementation over design and can also lack connotations of engineering education or skills. Engineering techniques are used to inform the software development process, which involves the definition, implementation, assessment, measurement, management, change, and improvement of the software life cycle process itself.
Decision problemIn computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values. An example of a decision problem is deciding by means of an algorithm whether a given natural number is prime. Another is the problem "given two numbers x and y, does x evenly divide y?". The answer is either 'yes' or 'no' depending upon the values of x and y. A method for solving a decision problem, given in the form of an algorithm, is called a decision procedure for that problem.
Development studiesDevelopment studies is an interdisciplinary branch of social science. Development studies is offered as a specialized master's degree in a number of reputed universities around the world. It has grown in popularity as a subject of study since the early 1990s, and has been most widely taught and researched in developing countries and countries with a colonial history, such as the UK, where the discipline originated.
Development aidDevelopment aid is a type of foreign/international/overseas aid given by governments and other agencies to support the economic, environmental, social, and political development of developing countries. Closely related concepts include: developmental aid, development assistance, official development assistance, development policy, development cooperation and technical assistance. It is distinguished from humanitarian aid by aiming at a sustained improvement in the conditions in a developing country, rather than short-term relief.