CSC/ECE 517 Fall 2013/ch1 1w48 x: Difference between revisions
Line 20: | Line 20: | ||
== Agile Development == | == Agile Development == | ||
==== Overview ==== | ==== Overview ==== | ||
Agile development is a methodology that reduces software development cost and risk, improves quality and enhances your customers’ satisfaction by better meeting their needs and expectations.<ref>IBM what is agile? http://www-01.ibm.com/software/rational/agile/</ref> Agile development methods promote evolutionary development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project, and encourage rapid and flexible response to change.<ref>Agile software development http://en.wikipedia.org/wiki/Agile_software_development</ref> Agile development is based on iterative and incremental development. It break tasks into small increments with minimal planning and do | Agile development is a methodology that reduces software development cost and risk, improves quality and enhances your customers’ satisfaction by better meeting their needs and expectations.<ref>IBM what is agile? http://www-01.ibm.com/software/rational/agile/</ref> Agile development methods promote evolutionary development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project, and encourage rapid and flexible response to change.<ref>Agile software development http://en.wikipedia.org/wiki/Agile_software_development</ref> Agile development is based on iterative and incremental development. It break tasks into small increments with minimal planning and do not directly involve long-term planning. Iterations are short time frames that typically last from one to four weeks. Each iteration involves a cross function team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing.At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration.<ref name="embracing change">{{cite journal| | ||
last=Beck|first=Kent| | |||
year=1999|title=Embracing Change with Extreme Programming| | |||
journal=Computer|volume=32|issue=10| | |||
pages=70–77| | |||
doi=10.1109/2.796139}}</ref> Multiple iterations might be required to release a product or new features. | |||
==== Agile Manifesto ==== | ==== Agile Manifesto ==== |
Revision as of 19:39, 6 October 2013
Under Construction
Introduction
Object-Oriented(O-O) design tools are mainly used to create UML visual model for software design, such as the IBM® Rational Rose®, Microsoft Visio and PowerDesigner. The Unified Modeling Language(UML) is a standardized language approved by the Objective Management Group™ (OMG™). UML is used for sepcifying, visualizing, constructing, and documenting models in software systems.The UML was developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software in the 1990s.<ref>Marc Hamilton (1999) Software Development: A Guide to Building Reliable Systems p.48</ref>The UML has synthesized the notations of the Booch method, the Object-modeling technique (OMT) and Object-oriented software engineering (OOSE) by fusing them into a single, common and widely usable modeling language.<ref>OMG Unified Modeling Language (OMG UML), Superstructure. Version 2.4.1 http://www.omg.org/spec/UML/2.4.1/Superstructure</ref>
O-O Design Tools
There are a lot of object oriented design tools can be used for software development.<ref>List of UML modeling tools http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools</ref> Rational Rose® and Enterprise Architect are the most popular commercial design tools used for developing complex software system.
IBM® Rational Rose®
Rational Rose®<ref>IBM® Rational Rose® family http://www-03.ibm.com/software/products/us/en/ratirosefami</ref> is a set of UML modeling tools for software design, which is produced and marketed by the Rational division of IBM (previous Rational Software Corporation, the developer of UML). By use of Rational Rose® software engineers can create visual models of software architectures, databases, application requirements and reusable assets. The Rational Rose® product family provides a set of model-driven capabilities for developing Java Platform, UNIX and Linux Platforms, and Microsoft Visual Studio-based software applications. Rational Rose® includes tools for reverse engineering and code generation of classes and architectures, for example, it allows software developers to generate code for Java Enterprise Edition software applications from visual models using the UML. Rational Rose® supports various of software development languages, it offers round-trip engineering for Ada, ANSI C++, C, C++, CORBA, Java, MicrosoftVisual Basic and MicrosoftVisual C++ languages, as well as database designs.<ref>IBM Rational Rose Datasheet ftp://public.dhe.ibm.com/software/rational/web/datasheets/rose_ds.pdf</ref> Rational Rose® provides full team support. The team management features support the development of large and complex projects. By the help of configuration management and version control system, changes made to a model can be set available to other teammates. Rational Rose® helps teams create rich applications based on robust architectures.<ref>IBM Rational Rose Datasheet ftp://public.dhe.ibm.com/software/rational/web/datasheets/rose_ds.pdf</ref>
Enterprise Architect
Enterprise Architect is a visual modeling, comprehensive UML analysis and design tool. Enterprise Architect supports a number of methods of modeling business processes using UML as the foundation modeling language.<ref>Enterprise Architect http://en.wikipedia.org/wiki/Enterprise_Architect_(Visual_Modeling_Platform)#General_features</ref> Enterprise Architect supports round-trip engineering (generation and reverse engineering) of source code for many programming languages, such as ActionScript, C, C++, C#, PHP, Python and so on.<ref>Enterprise Architect http://www.sparxsystems.com/products/ea/index.html</ref> Like Rational Rose®, Enterprise Architect also provides full life cycle support for software and system engineering. The reverse engineering supported by Enterprise Architect can help developers visualize applications of a wide range of programming languages and database repository schema.
Microsoft Visio
Microsoft Visio is a diagramming and vector graphics application. In Microsoft Visio Professional 2000, it first time provide support for UML modeling. The Microsoft Visio UML Model Diagram template provides full support for creating object-oriented models of complex software system. But it only support programming languages developed by Microsoft, such as Visual Basic, Visual Basic.NET and Microsoft Visual C#.NET.
Agile Development
Overview
Agile development is a methodology that reduces software development cost and risk, improves quality and enhances your customers’ satisfaction by better meeting their needs and expectations.<ref>IBM what is agile? http://www-01.ibm.com/software/rational/agile/</ref> Agile development methods promote evolutionary development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project, and encourage rapid and flexible response to change.<ref>Agile software development http://en.wikipedia.org/wiki/Agile_software_development</ref> Agile development is based on iterative and incremental development. It break tasks into small increments with minimal planning and do not directly involve long-term planning. Iterations are short time frames that typically last from one to four weeks. Each iteration involves a cross function team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing.At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration.<ref name="embracing change"></ref> Multiple iterations might be required to release a product or new features.
Agile Manifesto
Agile Methods
Examples
O-O Design Tools example. Rational Rose
Hyperlinks to important terms
UML
Agile and Iterative Development: A Manager's Guide http://www.amazon.com/dp/0131111558/?tag=stackoverfl08-20
List of UML Modeling tools
How to choose a UML modeling tool
Rational Rose
Microsoft Visio
PowerDesign
IBM Rational Software's UML Resource Page http://www-01.ibm.com/software/rational/uml/
References
<references/>