Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Sunday, August 1, 2010

SOFTWARE-DEVELOPMENT

"Students of engineering learn engineering and are rarely exposed to finance or marketing. Students of marketing learn marketing and are rarely exposed to finance or engineering. Most of us become specialists in just one area. To complicate matters, few of us meet interdisciplinary people in the workforce, so there are few roles to mimic. Yet, software product planning is critical to the development success and absolutely requires knowledge of multiple disciplines"

Software development (also known as Application Development; Software Design, Designing Software, Software Engineering, Software Application Development, Enterprise Application Development, Platform Development is the development of a software product in a planned and structured process. This software could be produced for a variety of purposes - the three most common purposes are to meet specific needs of a specific client/business, to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task).

The term software development is often used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, whereas the broader sense of the term includes all that is involved between the conception of the desired software through to the final manifestation of the software. Therefore, software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. For larger software systems, usually developed by a team of people, some form of process is typically followed to guide the stages of production of the software.Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.

Software development methodology

A software development methodology is a framework that is used to structure, plan, and control the process of developing information systems. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.

Overview

There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. Most methodologies share some combination of the following stages of software development:

* Market research
* Gathering requirements for the proposed business solution
* Analyzing the problem
* Devising a plan or design for the software-based solution
* Implementation (coding) of the software
* Testing the software
* Development
* Maintenance and bug fixing

These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a “waterfall” based approach), or they may be repeated over various cycles or iterations (a more "extreme" approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or “waterfall” based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle.

There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is well understood and a solution can be effectively planned out ahead of time, the more "waterfall" based approach may work the best. If, on the other hand, the problem is unique (at least to the development team) and the structure of the software solution cannot be easily envisioned, then a more "extreme" incremental approach may work best. A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

Sunday, July 25, 2010

ABOUT ENGINEERING COURSE

FOR THE STUDENTS WHO IS INTERESTED TO CHOSE ENGINEERING AS THEIR FIELD HERE IS THE USEFUL INFORMATION FOR THEM
Engineering is the discipline, art and profession of acquiring and applying technical, scientific, and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or invention.
The creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utilizing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation and safety to life and property.

One who practices engineering is called an engineer, and those licensed to do so may have more formal designations such as Professional Engineer, Chartered Engineer, Incorporated Engineer, or European Engineer. The broad discipline of engineering encompasses a range of more specialized subdisciplines, each with a more specific emphasis on certain fields of application and particular areas of technology.

METHODOLOGY

Engineers apply the sciences of physics and mathematics to find suitable solutions to problems or to make improvements to the status quo. More than ever, engineers are now required to have knowledge of relevant sciences for their design projects, as a result, they keep on learning new material throughout their career.

If multiple options exist, engineers weigh different design choices on their merits and choose the solution that best matches the requirements. The crucial and unique task of the engineer is to identify, understand, and interpret the constraints on a design in order to produce a successful result. It is usually not enough to build a technically successful product; it must also meet further requirements.

Constraints may include available resources, physical, imaginative or technical limitations, flexibility for future modifications and additions, and other factors, such as requirements for cost, safety, marketability, productibility, and serviceability. By understanding the constraints, engineers derive specifications for the limits within which a viable object or system may be produced and operated.

COMPUTER USE

As with all modern scientific and technological endeavors, computers and software play an increasingly important role. As well as the typical business application software there are a number of computer aided applications (Computer-aided technologies) specifically for engineering. Computers can be used to generate models of fundamental physical processes, which can be solved using numerical methods.

One of the most widely used tools in the profession is computer-aided design (CAD) software which enables engineers to create 3D models, 2D drawings, and schematics of their designs. CAD together with Digital mockup (DMU) and CAE software such as finite element method analysis or analytic element method allows engineers to create models of designs that can be analyzed without having to make expensive and time-consuming physical prototypes.

These allow products and components to be checked for flaws; assess fit and assembly; study ergonomics; and to analyze static and dynamic characteristics of systems such as stresses, temperatures, electromagnetic emissions, electrical currents and voltages, digital logic levels, fluid flows, and kinematics. Access and distribution of all this information is generally organized with the use of Product Data Management software.[18]

There are also many tools to support specific engineering tasks such as Computer-aided manufacture (CAM) software to generate CNC machining instructions; Manufacturing Process Management software for production engineering; EDA for printed circuit board (PCB) and circuit schematics for electronic engineers; MRO applications for maintenance management; and AEC software for civil engineering.In recent years the use of computer software to aid the development of goods has collectively come to be known as Product Lifecycle Management(PLM)

PROBLEM SOLVING

Engineers use their knowledge of science, mathematics, and appropriate experience to find suitable solutions to a problem. Engineering is considered a branch of applied mathematics and science. Creating an appropriate mathematical model of a problem allows them to analyze it (sometimes definitively), and to test potential solutions.

Usually multiple reasonable solutions exist, so engineers must evaluate the different design choices on their merits and choose the solution that best meets their requirements. Genrich Altshuller, after gathering statistics on a large number of patents, suggested that compromises are at the heart of "low-level" engineering designs, while at a higher level the best design is one which eliminates the core contradiction causing the problem.

Engineers typically attempt to predict how well their designs will perform to their specifications prior to full-scale production. They use, among other things: prototypes, scale models, simulations, destructive tests, nondestructive tests, and stress tests. Testing ensures that products will perform as expected.

Engineers as professionals take seriously their responsibility to produce designs that will perform as expected and will not cause unintended harm to the public at large. Engineers typically include a factor of safety in their designs to reduce the risk of unexpected failure. However, the greater the safety factor, the less efficient the design may be.

The study of failed products is known as forensic engineering, and can help the product designer in evaluating his or her design in the light of real conditions. The discipline is of greatest value after disasters, such as bridge collapses, when careful analysis is needed to establish the cause or causes of the failure.

MAIN BRANCHES OF ENGINEERING

Engineering, much like other science, is a broad discipline which is often broken down into several sub-disciplines. These disciplines concern themselves with differing areas of engineering work. Although initially an engineer will be trained in a specific discipline, throughout an engineer's career the engineer may become multi-disciplined, having worked in several of the outlined areas. Historically the main Branches of Engineering are categorized as follows:

* Chemical engineering - The exploitation of chemical principles in order to carry out large scale chemical process, as well as designing new specialty materials and fuels.

* Civil engineering - The design and construction of public and private works, such as infrastructure (roads, railways, water supply and treatment etc.), bridges and buildings.

* Electrical engineering - a very broad area that may encompass the design and study of various electrical & electronic systems, such as electrical circuits, generators, motors, electromagnetic/electromechanical devices, electronic devices, electronic circuits, optical fibers, optoelectronic devices, computer systems, telecommunications and electronics.

* Mechanical engineering - The design of physical or mechanical systems, such as engines, powertrains, kinematic chains, vacuum technology, and vibration isolation equipment.

With the rapid advancement of technology many new fields are gaining prominence and new branches are developing such as aerospace engineering, agricultural engineering, architectural engineering, biomedical engineering, cloud engineering, computer engineering, environmental engineering, genetic engineering, industrial engineering, manufacturing engineering, materials engineering, mechatronics, nanotechnology, nuclear engineering, robotics, software engineering, tribology etc. These new specialties sometimes combine with the traditional fields and form new branches such as mechanical engineering and mechatronics and electrical and computer engineering.

A new or emerging area of application will commonly be defined temporarily as a permutation or subset of existing disciplines; there is often gray area as to when a given sub-field becomes large and/or prominent enough to warrant classification as a new "branch." One key indicator of such emergence is when major universities start establishing departments and programs in the new field.For each of these fields there exists considerable overlap, especially in the areas of the application of sciences to their disciplines such as physics, chemistry and mathematics.
Bookmark and Share hair loss products free directories Make Money Blogging