Wednesday, 21 December 2011

Software Development Process

        A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. Some people consider a lifecycle model a more general term and a software development process a more specific term.

        Software development (also known as application development, software design, designing software, software application development, enterprise application development, or platform development) is the development of a software product. The term "software development" may be used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process.Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

        Software can be developed for a variety of purposes, the three most common being to meet specific needs of a specific client/business (the case with custom software), 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). Embedded software development, that is, the development of embedded software such as used for controlling consumer products, requires the development process to be integrated with the development of the controlled physical product

                  Software development has come a long way in the last decade, and modeling tools form an important component of today's development environment. Demands on the industry have increased many times over, particularly in the areas of robustness, portability and reusability, and by harnessing the power of UML 2.1 and MDA technologies you can keep up with those demands.
Languages
        The UML is primarily a language for describing object-oriented systems independent of any specific programming language. It is simple to learn, yet highly flexible, and consistent from planning to deployment. Benefits of using UML include enhanced traceability, intelligibility among users and greatly simplified maintainability. Enterprise Architect supports UML 2.1 standard, and Sparx Systems have available customisable extensions to the UML for the purposes of modeling Business Processes, XSD Schema and more.
            The MDA framework enhances the UML's capabilities by providing model-to-model transformations, giving you the ability to maintain platform-independent models of a system, and to generate and maintain synchronized platform-specific models, across a variety of platforms concurrently.
Methodologies
                There are a great range of development practices, for instance methods like the Unified Process and Agile Development. No particular practice is the best, as requirements can vary greatly from project to project, which is why EA facilitates a broad range of methodologies.
The Role of Enterprise Architect plays in Software Engineering
The goal of Enterprise Architect is to bring all these elements together in an environment that is both coherent and flexible. Comprehensive support for UML 2.1 notation combines with process management tools that let you decide on a software development methodology.
Enterprise Architect supports the full range of UML 2.1 diagrams, enabling you to model almost any system, from web applications to embedded systems. Generation of UML Diagrams is quick and easy, and the graphics engine produces crisp, highly readable diagrams. The project browser makes navigating the software models a simple affair, and EA's comprehensive documentation features enable you to easily generate, customize, and maintain complete system documents.

If you need to:
Manage Requirements
Enhance your software modeling
Model and analyze business processes
Build design and behavioral models
Generate and import source code in a variety of languages
Generate and import database schema
Generate and import XSD
Create component and deployment models
Track changes
Manage tests
Confirm traceability from requirements through to deployment
Document your software development
Communicate and develop team based software engineering projects
Rapid modeling/engineering of your software's development