Vous êtes sur la page 1sur 10

INTRODUCTION

UML (Unified Modeling Language) is a substitute for object-oriented analysis


methods and object-oriented design (OOAD & D / object-oriented analysis and design) which
emerged around the end of the 80s and early 90s. UML is a combination of the methods of
Booch, Rumbaugh (OMT) and Jacobson. But the UML covers more than OOAD. In the
middle of the development of UML, standardization of processes was carried out with OMG
(Object Management Group) in the hope that UML would become the standard language of
modeling in the future which is now widely used by various groups. UML is used to build a
system and not just software that uses object-oriented concepts. It also creates a modeling
language that can be used by both humans and machines.

1
Investigate the Unified Modeling Language (UML) on the Internet. Briefly describe the
history UML. List down all the diagrams used in the latest UML version and describe
its functionality.

UML is a language for specifying, visualizing, building and documenting information


(part of the information used to be generated by the software manufacturing process, such
artifacts can be models, descriptions or software) of software systems, such as business
modeling and other non-software systems. In addition, UML is a modeling language that uses
the concept of Orient object. UML created by Grady Booch, James Rumbaugh, and Ivar
Jacobson under the banner of National Software Corps. UML provides notations that help
model systems from various perspectives. UML is not only used in software modeling, but
almost in all fields that require modeling.

Graphical diagram that shows the symbol elements of a model arranged to illustrate certain
parts or aspects of the system. A diagram is part of a particular view and when drawn is
usually allocated to a particular view.

Use Case Diagram describes a number of external actors and their relationship to the use
case provided by the system. Use case is a description of the function provided by the
system in the form of text as a documentation of the use case symbol but can also be
performed in the activity diagrams. Use case is illustrated only by outside view by the actor
(the environment of the user-facing system) and not how the function is in the system.

Class Diagram describes the static structure of classes in the system. Class represents
something that is handled by the system. Classes can relate to others through various ways:
associated (connected to each other), dependent (one class depends / uses another class),
speciated (one class is a specialization of another class), or package (group together as a
unit). A system usually has several class diagrams.

State Diagram describes all the states that are owned by an object from a class and the
conditions that cause the state to change. Events can be other objects that send messages.
State classes are not described for all classes, only those that have a number of well-defined
states and class conditions change by different states.

2
Sequence Diagrams describe dynamic collaboration between a number of objects. The ability
to show a series of messages sent between objects as well as interactions between objects,
something that happens at a certain point in the system execution.

Collaboration Diagram describes dynamic collaboration such as sequence diagrams. In


showing message exchange, collaboration diagrams describe objects and their relationships
(referring to context). If the emphasis is on time or sequence use sequence diagrams, but if
the emphasis is on context use collaboration diagrams.

Activity Diagram describes a series of flows from activities, used to describe activities formed
in an operation so that it can also be used for other activities such as use cases or
interactions.

Deployment Diagram describing the physical architecture of system hardware and software,
showing the relationship between computers and devices (nodes) with each other and the
type of relationship. In the nodes, executable components and objects are allocated to show
software units executed by a particular node and component dependencies.

3
UML, along with the Meta Object Facility (MOF™), also provides a key
foundation for OMG's Model-Driven Architecture®, which unifies every
step of development and integration from business modeling, through
architectural and application modeling, to development, deployment,
maintenance, and evolution. Discuss what MDA is, the uses of MDA and
advantages and disadvantages of MDA.

Model Driven Architecture (MDA) is an architecture introduced by the Object Management


Group (OMG). This MDA is an approach to system specifications and support interoperability
based on the use of formal models.

4
Using the Internet, find a set of CASE tools that support the UML. A
couple of examples include Rational Rose and Poseidon. Find at least
three additional ones and describe the visual and emerging
development tools for UML. Identify the trade-off when using CASE
tools. Describe the roles of CASE tools and how they are used to support
UML and also explain the typical components of a comprehensive CASE
environment.

In software engineering there are many tools (computer-based systems) known as


Computer-Aided Software Engineering (CASE). CASE is a technique used to help one or
several phases in software life-cycle, including the analysis, design, implementation and
maintenance phases of the software.

ArgoUML is an open source tool or software that is easily available to analysts or system
designers. ArgoUML is a Java-developed tool for creating UML models that are compatible
with standards set by language version 1.4.

StarUML is a modeling software that supports UML "Unified Modeling Language. Based on
UML version 1.4 and equipped with 11 different types of diagrams, it supports UML 2.0
notation and also supports MDA (Model driven architecture) approach with the support of
UML concept. StarUML can maximize productivity and quality from a software project.

Umbrello UML Modeller is a UML drawing tool for KDE. At present, Umbrello is one of the
best UML applications for LINUX. The Umbrello UML modeler is divided into three main
areas on the interface, which can be monitored for all systems and access to different
diagrams quickly while working on the model being worked on.

Methodology is the systematic, theoretical analysis of the methods applied to a field of


study, or the theoretical analysis of the body of methods and principles associated

5
with a branch of knowledge. Do we really need methodology? Are methods
necessary?

Methodology is very important in project or system development. methodology will help to


make project become more systematic and efficient. The development will be following step
by step based on the phase that are been implement in inside the methodology. Various type
of methodology that are available in system development process.

For example, waterfall methodology that are old type of methodology been used in system
development. the waterfall methodology not very flexible or agile because of the phase that
need to complete before proceed with the other phase. Each phase cannot back to the
previous phase.

The modern methodology that available for example rapid application development (rad) that
are one of the reliable and effective methodology. Rad methodology has the phase that will
wait for the approved from the stakeholder or client before proceed with the final
implementation of the system. The system still can be edit or develop with prototype modal
as example for the system review of the client or stakeholder to confirm.

In February 2001, 17 software developers[6] met at the Snowbird, Utah, resort, to


discuss lightweight development methods. They published the Manifesto for Agile
Software Development to define the approach now known as agile software
development. Some of the manifesto's authors formed the Agile Alliance, a nonprofit
organization that promotes software development according to the manifesto's
principles. Well-known agile software development methods include:
 Agile Modeling
 Agile Unified Process (AUP)
 Crystal Clear
 Crystal Methods
 Dynamic Systems Development Method (DSDM)
 Extreme Programming (XP) (Extreme programming is actually not regarded as
Agile Software Development by many Academics)

6
 Feature Driven Development (FDD)
 Graphical System Design (GSD)
 Kanban
 Lean software development
 Scrum
 Velocity tracking
 Software Development Rhythms
Discuss and compare any FIVE (5) Agile Development Methods in terms of its
strengths, weaknesses and what these methods are most suitable for and other
related issues.

1) Software Development Rhythms

Software Development Rhythms is the flexibility of agile practice that are pair
programming, refactoring, test-driven development, stand – up meeting, plagiarism
programming, and focusing on why and when of the effectiveness of the application of
practice – move – activity or activity – move – activity. This type of methodology also helps to
increase software quality and profitability. The software development rhythms provide or give
programmer strong metaphor for resolving some classic software management controversies
and dealing with some common difficulties in agile software management. Software
development rhythms can be divided into two part that is essential and Rhythms. The
essential part of software development rhythms will provide or make an introduction to the
software development rhythms. Investigate or discover the programmer unconscious mind at
work on software methodology. Discusses the characteristics of the iterative cycle and open
source software development. For Rhythms will compares the plagiarism programming with
the cut – paste programming. It will provide the different ways of collaboration to approach
programming. It will show the ways of combine and harmonize these practices so they can be
applied to common software management problems such as motivating the programmer,
discovering solution pattern, managing software teams, and rescuing troubled IT projects.

This agile development will make the programmer and code become more
systematic. Make development process more efficient because of the method that are
focusing on the code and programmer to make sure the system works perfectly without
having problem with the code and programmer. The method will make sure development

7
process will not interrupt with the programmer problem and code problem that can be one of
the main problems in development process.

2) Velocity tracking

The velocity tracking is one of the agile developments that used to track or measure
team performance. This method will to increase the effectiveness or team performance that
will lead to the improvement of team. This method has no scientific evidence that velocity
improve team performance. There is terminology that is used in the velocity such as unit of
work, and interval. Unit of work is the unit that chosen by team to measure velocity. This unit
measure can be a real unit like engineer – hours or engineer – days or an abstract unit. For
each task of software or system development process should then be valued in terms of the
chosen unit. The interval of velocity tracking is the duration of each iteration in the software
development process for which the velocity is measured. Team will determine the length of an
interval. Mostly the length of interval can be week but sometimes can be monthly based on
the duration needed.

Velocity tracking method also have own calculation that available in order to
calculate the duration of the tracking. Velocity involve in counting number of units of work
completed in a certain interval. However, the unit can be measured in many different units.
The velocity main idea is to help teams estimate how much work can be complete in a given
time period based on how quick similar work was previously completed. Velocity can be
relative measured because it will measure the different of time needed with the order task
that has been completed.

3) Scrum

Scrum is an iterative method that is included in the Agile method of how user
manage and run a project. This can be used to manage all types of projects ranging from
software creation, website, hardware, marketing, event planning, and so on. Scrum helps

8
user organize a team and they must have strong communication between the team
members. Scrum says that every "sprint" starts with a brief meeting for planning and ends
with a review. This is the fundamental idea of Scrum for project management.

Scrum is a framework where people can solve complex problems that are
constantly changing, while at the same time producing products of the highest possible value
creatively and productively. Many people who are seeing Scrum for the first time will consider
Scrum a newer methodology from Waterfall, Spiral, etc. Scrum is not a methodology, but is a
simple process for developing complex products and for improving the performance of an
organization. Scrum is very suitable for developing complex software products because the
Scrum process uses empirical methods or in other words each stage involves inspection and
adaptation. Instead of formalizing the solution to the risks that will be faced in the project,
Scrum uses an approach to use the data found from the inspection and adaptation process
as learning material to be able to find a way out. Scrum is not also a process that can be
changed to suit the circumstances of the organization because Scrum aims to bring to the
surface the problems that exist within the organization. The problems facing the organization
will not be visible and the benefits of Scrum will not be obtained when Scrum is changed.
Although Scrum originated from an IT project, today Scrum is also widely used in non-IT
projects such as Marketing, Sales, Advertising because the process is very simple.

4) Lean Software Development

Lean software development is an engineering process used to develop and produce


a high-quality software that has guaranteed reliability so that there is no failure in the use of
the software. Lean software development is guided by understanding the field and the
suitability of implementing lean principles throughout the entire software development
process. The slogan used is thinking big, acting small, failing fast, learning fast.
Lean can reduce software development time because software development time
can be reduced by reducing software work errors using seven Lean principles. The principles
are Eliminate Waste, Amplifying Learning, Decide As Late As Possible, Deliver As Fast As
Possible, Empower The Team, Built Integrity, See The Whole.
The use of LSD depends on the characteristics of the organization and the project
to be built. The characteristics of organizations that are suitable in using LSD are
manufacturing, product development, supply chain development and back-office operations

9
and characteristics of projects that are suitable for using LSD, namely software development
that takes little time but high productivity and projects that are concerned with customer
satisfaction.

5) Agile Modeling

Agile Modeling is a practical methodology for the documentation process and


software system modeling. Agile Modeling itself is a collection of values, principles and
practices for modeling software so that it can be applied to software development projects
effectively and efficiently.

Principles in Agile Modeling are including:


 Make a model with the aim: set goals before making a model
 Use multiple models: each model represents a different aspect from another model.
 Travel light: save only long-term models
 Content is more important than appearance: modeling presents information to the
audience right.
 Understand the models and tools used to make software
 Adaptation locally

From the point of view of agile modeling, documents are anything external to the
source code whose purpose is to convey information persistently. This is different from the
concept of the model, which is an abstraction that describes one or more aspects of a
problem or potential solution in overcoming a problem. Some models will be documents,
although more will be discarded as soon as they are fulfilled. Some models will be used to
encourage the development of source code, although some models may only be used to
encourage the development of other models.

10

Vous aimerez peut-être aussi