The document discusses different approaches and methods for synchronizing team members during software development projects. It describes static waterfall and agile iterative development processes. It also introduces Unified Modeling Language (UML) diagrams for visually representing software architecture and interactions, including activity diagrams, sequence diagrams, and use case diagrams. These diagrams use standardized symbols and notation to clearly depict processes, objects, messages, and functionality.
Course material from my Object-Oriented Development course.This presentation covers the analysis phases and focuses on class discovery, domain modeling, activity diagrams, and sequence diagrams.
Course material from my Object-Oriented Development course.This presentation covers the analysis phases and focuses on class discovery, domain modeling, activity diagrams, and sequence diagrams.
Welcome to my series of articles on Unified Modeling Language. This is "Session 10 – Sequence Diagram" of the series. Please view my other documents where I have covered each UML diagram with examples
Materi yang ada pada slide ini berisi :
Pengenalan UML Sebagai Alat Bantu Pemodelan Pada Pembangunan Perangkat Lunak Menggunakan Pendekatan Analisis dan Desain Berorientasi Objek
Notasi, Semantik, dan Stereotype Pada UML
Komponen pada UML (Use Case View, Logical View, Physical View, dan Process View)
Pengenalan Use Case Diagram sebagai Use Case View Pada UML
Penjelasan Aktor, Generalisasi Aktor, dan Use Case
Penjelasan Use Case Scenario
Use Case Refinement (Relasi Include, Extends, dan Generalisasi Use Case)
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
IG : @rizkiadamkurniawan
Software design is a process through which requirements are translated into a ― blueprint for constructing the software.
Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it.
The software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease.
This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.
Welcome to my series of articles on Unified Modeling Language. This is "Session 5 – Composite Structure Diagram" of the series. Please view my other documents where I have covered each UML diagram with examples
Master sequence diagrams with this sequence diagram guide. It describes everything you need to know on sequence diagram notations, best practices as well as common mistakes. It also explains how to draw a sequence diagram step by step. Plus it offers Creately sequence diagram templates you can click and edit right away.
This ppt covers the object modeling techniques. It has four topics: object model, dynamic model, functional model and the relationship between these models.
Welcome to my series of articles on Unified Modeling Language. This is "Session 10 – Sequence Diagram" of the series. Please view my other documents where I have covered each UML diagram with examples
Materi yang ada pada slide ini berisi :
Pengenalan UML Sebagai Alat Bantu Pemodelan Pada Pembangunan Perangkat Lunak Menggunakan Pendekatan Analisis dan Desain Berorientasi Objek
Notasi, Semantik, dan Stereotype Pada UML
Komponen pada UML (Use Case View, Logical View, Physical View, dan Process View)
Pengenalan Use Case Diagram sebagai Use Case View Pada UML
Penjelasan Aktor, Generalisasi Aktor, dan Use Case
Penjelasan Use Case Scenario
Use Case Refinement (Relasi Include, Extends, dan Generalisasi Use Case)
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
IG : @rizkiadamkurniawan
Software design is a process through which requirements are translated into a ― blueprint for constructing the software.
Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it.
The software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease.
This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.
Welcome to my series of articles on Unified Modeling Language. This is "Session 5 – Composite Structure Diagram" of the series. Please view my other documents where I have covered each UML diagram with examples
Master sequence diagrams with this sequence diagram guide. It describes everything you need to know on sequence diagram notations, best practices as well as common mistakes. It also explains how to draw a sequence diagram step by step. Plus it offers Creately sequence diagram templates you can click and edit right away.
This ppt covers the object modeling techniques. It has four topics: object model, dynamic model, functional model and the relationship between these models.
I am a passionate and very highly motivated Football Person, and strongly looking for desire to do good work somewhere now.
I look forward to hearing nice information from you!!
TESHIMA, ATSUSHI
A Model of Local Area Network Based Application for Inter-office Communicationtheijes
In most organizations, information circulation within offices poses a problem because clerical officers and office messengers usually dispatch letters and memos from one office to another manually. Sequel to this circulation procedure, implementation of decisions is always difficult and slow. On one hand, clerical officers sometimes divulge confidential information during the process of receiving and sending of mails and other documents. On the other hand, money is wasted on the purchase of paper for printing. However, it is cheerful to learn that technology has made it possible for staff, structures and infrastructures to control and share organization resources; hardware; software and knowledge by means of modern electronic communication. One cannot deny the fact that the flow of information is very imperative in every organization as it determines the effectiveness of decision-making and implementation. This feat can be achieved using Object-Oriented System Analysis and Design Methodology (OSADM). This is structurally analyzed with Use Case Diagram (UCD), Class Diagram, Sequence Diagram, State Transition Diagram, and Activity Diagram. Moreover, the system is coded with Java 1.6 version, in a client-server network running on star topology in LAN environment. This is the concept of this paper. The system is designed to work in two parts – the control part that is installed on the server; and the messenger part that is installed in the clients. This research work integrates the utility and organization resources into a shared center for all users to have access to; and for free communication during office hours.
UML is not dead. Even if you feed your team with agile fuel, UML can save you some time and extra discussions. In this super short presentation we show you how we apply UML to speed up software requirement extractions.
Stop writing docs that nobody reads and go directly to the point!
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...cscpconf
In object oriented analysis and design, use cases represent the things of value that the system performs for its actors in UML and unified process. Use cases are not functions or features.
They allow us to get behavioral abstraction of the system to be. The purpose of the behavioral abstraction is to get to the heart of what a system must do, we must first focus on who (or what)
will use it, or be used by it. After we do this, we look at what the system must do for those users in order to do something useful. That is what exactly we expect from the use cases as the
behavioral abstraction. Apart from this fact use cases are the poor candidates for the data abstraction. Rather the do not have data abstraction. The main reason is it shows or describes
the sequence of events or actions performed by the actor or use case, it does not take data in to account. As we know in earlier stages of the development we believe in ‘what’ rather than
‘how’. ‘What’ does not need to include data whereas ‘how’ depicts the data. As use case moves around ‘what’ only we are not able to extract the data. So in order to incorporate data in use cases one must feel the need of data at the initial stages of the development. We have developed the technique to integrate data in to the uses cases. This paper is regarding our investigations to take care of data during early stages of the software development. The collected abstraction of data helps in the analysis and then assist in forming the attributes of the candidate classes. This makes sure that we will not miss any attribute that is required in the abstracted behavior using use cases. Formalization adds to the accuracy of the data abstraction. We have investigated object constraint language to perform better data abstraction during analysis & design in unified paradigm. In this paper we have presented our research regarding early stage data abstraction and its formalization.
Formalization & data abstraction during use case modeling in object oriented ...csandit
In object oriented analysis and design, use cases represent the things of value that the system
performs for its actors in UML and unified process. Use cases are not functions or features.
They allow us to get behavioral abstraction of the system to be. The purpose of the behavioral
abstraction is to get to the heart of what a system must do, we must first focus on who (or what)
will use it, or be used by it. After we do this, we look at what the system must do for those users
in order to do something useful. That is what exactly we expect from the use cases as the
behavioral abstraction. Apart from this fact use cases are the poor candidates for the data
abstraction. Rather the do not have data abstraction. The main reason is it shows or describes
the sequence of events or actions performed by the actor or use case, it does not take data in to
account. As we know in earlier stages of the development we believe in ‘what’ rather than
‘how’. ‘What’ does not need to include data whereas ‘how’ depicts the data. As use case moves
around ‘what’ only we are not able to extract the data. So in order to incorporate data in use
cases one must feel the need of data at the initial stages of the development. We have developed
the technique to integrate data in to the uses cases. This paper is regarding our investigations
to take care of data during early stages of the software development. The collected abstraction
of data helps in the analysis and then assist in forming the attributes of the candidate classes.
This makes sure that we will not miss any attribute that is required in the abstracted behavior
using use cases. Formalization adds to the accuracy of the data abstraction. We have
investigated object constraint language to perform better data abstraction during analysis &
design in unified paradigm. In this paper we have presented our research regarding early stage
data abstraction and its formalization.
Analysis of Agile and Multi-Agent Based Process Scheduling Modelirjes
As an answer of long growing frustration of waterfall Software development life cycle concepts,
agile software development concept was evolved in 90’s. The most popular agile methodologies is the Extreme
Programming (XP). Most software companies nowadays aim to produce efficient, flexible and valuable
Software in short time period with minimal costs, and within unstable, changing environments. This complex
problem can be modeled as a multi-agent based system, where agents negotiate resources. Agents can be used to
represent projects and resources. Crucial for the multi-agent based system in project scheduling model, is the
availability of an effective algorithm for prioritizing and scheduling of task. To evaluate the models, simulations
were carried out with real life and several generated data sets. The developed model (Multi-agent based System)
provides an optimized and flexible agile process scheduling and reduces overheads in the software process as it
responds quickly to changing requirements without excessive work in project scheduling.
1. -Gene Sher
Software Development Processes:
Those in engineering and science will sooner or later either be members of teams solving some large
project, or be managing teams solving some large project. There needs to be a way in which to
synchronize the members of the team and the project development, so that everyone on the team knows
what parts they must complete, and when, without interfering with the work being done by other
members of the team. For this purpose, when working on large projects, there needs to be a
synchronizing process that puts all the members of the team on the same page, and so that all the
members know what they must work on. There are two main approaches to synchronizing the team
members on a project, 1. using a static method, and 2. using an agile method.
-The most standard and oldest software development process is the waterfall model. It is composed of
the following steps:
1. Requirements Specifications
2. Design
3. Implementation
4. Integration
5. Testing
6. Installation
7. Maintenance
A static approach is very useful because it can be planned out to completion at the very start of the
project, and each part could then be assigned to every team member. Within a company, this also allows
for technical writers to begin working on documentation based on the requirements section of the
document.
In a competitive market though, a company can not wait two or three years to produce a polished
product. For example, assume that you're developing a software product using the static model, and
that you will have a full product produced in 1 year. But your competitor in the same area has decided
to release their unpolished version a few months before you. A number of costumers will start using
your competitor's product, and while they are doing so they will become more familiar with its
interface, and begin establishing repore with that company. Thus, even though you might release a
better and more polished product a few months after your competitor, there will be a large portion of
the market that is already used to your competitor's product, and thus they will not be willing to switch.
An iterative and agile approach to product development allows you to get to market before the
competition. In software, first mover advantage [1] is significant
The agile approaches to software development, like XP and Scrum for example, are more flexible.
They are constantly interacting with their costumers, and based on this feedback adjust various features
of the product, dropping some, adding others. But there is an overhead to agile development, and that
overhead is team synchronization. Every time a feature of a product is changed, there needs to be
another meeting, and document specifications have to be rewritten or readjusted. Also, if there is a
documentation team, they might have to rewrite things again and again if features keep changing on
monthly bases for example. For this reason there is now a market opening for startups creating agile
project management tools[2], allowing for an easier documentation exchange, synchronization,
distribution and assignment of work within the team.
[1] http://en.wikipedia.org/wiki/First-mover_advantage
[2] http://www.acunote.com
2. UML:
Software projects are usually large and complex, composed of multiple interacting modules. There is a
need to represent the interacting modules and the architecture of the project in a manner that is easy to
grasp. Rather than writing pages upon pages of how each particular module and function within a
larger project are interacting with each other, a visual diagram can much more rapidly be absorbed by
team members. Also, it is much easier to diagram the various parts of the software, and then assign
those parts to the members. Through a diagram each member would know exactly what part he is
working on, and how it functions with relation to the other modules in the project, as shown in Fig-1.
Fig-1: An example diagram of a 3 module Neural Network software, each isolated module assigned to
a different team member.
Different diagramming methods have different advantages and disadvantages. The following 3
diagramming methods are used within the assigned homework:
1. Activity Diagram [3]
2. Use Case Diagram [4]
3. Sequence Diagram [5]
Activity Diagram
Quoted from [3]: “Activity Diagrams: are graphical representations of workflows of stepwise
activities and actions with support for choice, iteration and concurrency. Activity diagrams are
constructed from a limited number of shapes, connected with arrows. The most important shape types:
• rounded rectangles represent activities;
• diamonds represent decisions;
• bars represent the start (split) or end (join) of concurrent activities;
• a black circle represents the start (initial state) of the work-flow;
• an encircled black circle represents the end (final state).
Arrows run from the start towards the end and represent the order in which activities happen.” These
most often used shapes are shown in Fig-2, with an example of a model in Fig-3..
NN Project
Sensor
Modules
Neuron
Modules
Actuator
Modules
Interface Protocol
Jack Max Sally
3. Fig-2: Most important activity diagram shapes
Fig-3: Activity diagram of the brainstorming process.
Sequence Diagram:
Quoted from [4]. “Sequence Diagrams: show how processes operate with one another and in what
order. A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that
live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in
which they occur.”
Sequence Diagrams are excellent for representing message passing of parallel processes. If you've ever
taken a computer networking class and remember the diagrams drawn, with messages being passed
Start, Initial State
Activity Decision
End, Final State
Split into concurrent
activities
Join from concurrent
activities
4. from one computer to another, these were the Sequence Diagrams. For example, assume I need to
quickly show how a Neural Network works, and the pattern of signal passing between the sensors,
neurons, and actuators of this type of distributed system. It is very simple to do so using this diagram,
as shown in Fig-4. Another example is shown in Fig-5. Some diagramming methods are better suited
for particular jobs than others.
Fig-4: A simple neural network (NN) architecture, and the pattern of signal passing between the
network's elements. First the sensor process (independent parallel program) sends a signal to N1 & N2 ,
N1 & N2 process the signal, then N1 sends its output to N3, and N2 sends its output to N4. N3 sends it
output to the actuator, and N4 replies to N2 and sends an output to the actuator as well. Sometime later,
the user from the outside, terminates all the elements of this neural network.
Fig-5: Sequence diagram of checking your email.
Sensor
N1
N2
N3
N4
Actuator
Sensor N1 N2 N3 N4 Actuator
1
1
3
2
5
4
X X
X
X X X
lifeline
Outside
process
End of
lifeline
Instances
Activation
Box
Signal Reply
5. “Diagram Building blocks:
If the lifeline is that of an object, it demonstrates a role. Note that leaving the instance name blank can
represent anonymous and unnamed instances.
In order to display interaction, messages are used. These are horizontal arrows with the message name
written above them. Solid arrows with full heads are synchronous calls, solid arrows with stick heads
are asynchronous calls and dashed arrows with stick heads are return messages.
Activation boxes, or method-call boxes, are opaque rectangles drawn on top of lifelines to represent
that processes are being performed in response to the message.
Objects calling methods on themselves use messages and add new activation boxes on top of any others
to indicate a further level of processing.
When an object is destroyed (removed from memory), an X is drawn on top of the lifeline, and the
dashed line ceases to be drawn below it. It should be the result of a message, either from the object
itself, or another.
A message sent from outside the diagram can be represented by a message originating from a filled-in
circle or from a border of sequence diagram.”
Use Case Diagram:
Quoted from [5]: Use Case Diagram: is a type of behavioral diagram defined by and created from a
Use-cases analysis. Its purpose is to present a graphical overview of the functionality provided by a
system in terms of actors, their goals (represented as use cases), and any dependencies between those
use cases. The main purpose of a use case diagram is to show what system functions are performed for
which actor.
Diagram Building Blocks:
Use cases : A use case describes a sequence of actions that provide something of measurable value to
an actor and is drawn as a horizontal ellipse.
Actors: An actor is a person, organization, or external system that plays a role in one or more
interactions with the system.
System boundary boxes (optional) : A rectangle is drawn around the use cases, called the system
boundary box, to indicate the scope of system. Anything within the box represents functionality that is
in scope and anything outside the box is not.
Include: In one form of interaction, a given use case may include another. "Include is a Directed
Relationship between two use cases, implying that the behavior of the included use case is inserted into
the behavior of the including use case".
The first use case often depends on the outcome of the included use case. This is useful for extracting
truly common behaviors from multiple use cases into a single description. The notation is a dashed
arrow from the including to the included use case, with the label "«include»". This usage resembles a
macro expansion where the included use case behavior is placed in-line in the base use case behavior.
There are no parameters or return values. To specify the location in a flow of events in which the base
use case includes the behavior of another, you simply write include followed by the name of use case
you want to include.
Extend: In another form of interaction, a given use case (the extension) may extend another. The
relationship indicates that the behavior of the extension use case may be inserted in the extended use
case under some conditions. The notation is a dashed arrow from the extension to the extended use
6. case, with the label "«extend»". The notes or constraints may be associated with this relationship to
illustrate the conditions under which this behavior will be executed.
Modelers use the «extend» relationship to indicate use cases that are "optional" to the base use case.
Depending on the modeler's approach "optional" may mean "potentially not executed with the base use
case" or it may mean "not required to achieve the base use case goal".
Generalization: In the third form of relationship among use cases, a generalization/specialization
relationship exists. A given use case may have common behaviors, requirements, constraints, and
assumptions with a more general use case. In this case, describe them once, and deal with it in the same
way, describing any differences in the specialized cases. The notation is a solid line ending in a hollow
triangle drawn from the specialized to the more general use case (following the standard generalization
notation)
Associations: Associations between actors and use cases are indicated in use case diagrams by solid
lines. An association exists whenever an actor is involved with an interaction described by a use case.
Associations are modeled as lines connecting use cases and actors to one another, with an optional
arrowhead on one end of the line. The arrowhead is often used to indicate the direction of the initial
invocation of the relationship or to indicate the primary actor within the use case. The arrowheads
imply control flow and should not be confused with data flow.”
Fig-4 & Fig-5 show use case diagram examples, while Fig-6 presents the diagram building blocks.
Fig-4: Use case diagram example, simple restaurant model.
7. Fig-5: Use case diagram example, simpler restaurant model.
Fig-6: Use case diagram building blocks.
[3] http://en.wikipedia.org/wiki/Activity_diagram
[4] http://en.wikipedia.org/wiki/Sequence_diagram
[5] http://en.wikipedia.org/wiki/Use_case_diagram
Use Case
Actor
Use Case-A Use Case-B
<<include>>
including included
Use case-A depends on use case-B
Use Case-A Use Case-B
<<extend>>
extended extension
Use case-B could be included (optional) in use case-A
Use Case-A Use Case-B
general specialized
Use CaseActor
association
System boundary box
Represents
scope of
system.
Everything
inside is within
scope.
8. UML Examples:: 4331C
Class Diagram Example:
Suppose you are responsible for designing an online photograph library. Users should be able to create
and modify their profile, upload and manage their images, and share their images with selected friends.
You assume the roles of both the system analyst and the developer. Following are the requirements of
the system:
*Each user should be able to create and modify their profile
*Each user should be able to search for and friend other users
*Each user should be able to accept or deny friend requests
*Each user should be able to create, store and view albums
*Each user should be able to create, delete, store, view, and organize photos
*Each user should be able to mark their photos as public, private, o friends-only
*Each user should be able to add comments to both photos and albums
Class Diagram: Include the following classes: Photo, JPEG, Bitmap, GIF, Photo
Album, User:
9. Use Case Diagram Example:
Suppose you are responsible for designing an online photograph library. Users should be able to create
and modify their profile, upload and manage their images, and share their images with selected friends.
You assume the roles of both the system analyst and the developer.
Following are the requirements of the system:
*Each user should be able to create and modify their profile
*Each user should be able to search for and friend other users
*Users should be able to accept or deny friend requests
*Each user should be able to create, store and view albums
*Each user should be able to create, delete, store, view, and organize photos
*Each user should be able to mark their photos as public, private, or friends-only
*Each users should be able to add comments to both photos and albums
(a) Use case diagram
10. (b) Activity diagram for the following processes
1. Uploading a new photograph (include album placement, visibility, and comments)
11. 2. Viewing a friend’s albums (include login, permission checks, and browsing)
12. C) Sequence diagrams
1) Creating a new album
2) Placing an existing photo within an existing album