[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com



Similar documents
Using UML Part Two Behavioral Modeling Diagrams

Object Oriented Programming. Risk Management

Aspect Oriented Strategy to model the Examination Management Systems

Process Modeling Notations and Workflow Patterns

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

The Business Process Model

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Model Simulation in Rational Software Architect: Business Process Simulation

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur. School of Computing, Department of IT

Types of UML Diagram. UML Diagrams OOAD. Computer Engineering Sem -IV

Introduction to BPMN

ATM Case Study Part 1

Interaction Diagrams. Use Cases and Actors INTERACTION MODELING

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Writing Use Case Scenarios for Model Driven Development

ATM Case Study OBJECTIVES Pearson Education, Inc. All rights reserved Pearson Education, Inc. All rights reserved.

SOFTWARE PROCESS MODELS

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

UML basics: An introduction to the Unified Modeling Language

Chapter 4 Software Lifecycle and Performance Analysis

Business Process Modelling. CA4 Business Process Modelling 1

Communication Diagrams

ADMINISTRATORS GUIDE EPISUITE 6

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

Elfring Fonts, Inc. PCL MICR Fonts

Quick Guide Business Process Modeling Notation (BPMN)

Data Analysis 1. SET08104 Database Systems. Napier University

Fahad H.Alshammari, Rami Alnaqeib, M.A.Zaidan, Ali K.Hmood, B.B.Zaidan, A.A.Zaidan

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

Technical analysis. Course 11

Fireworks CS4 Tutorial Part 1: Intro

Unit 2.1. Data Analysis 1 - V Data Analysis 1. Dr Gordon Russell, Napier University

Goals of the Unit. spm adolfo villafiorita - introduction to software project management

How To Develop Software

Sequence Diagram Tutorial. From: UML Distilled, Third Edition, Chapter 4 M. Fowler

Formulas, Functions and Charts

Using Rational Rose to Create Object-Oriented Diagrams

1. INTRODUCTION. Hamdan.O.Alanazi, Rami Alnaqeib, Ali K.Hmood, M.A.Zaidan, Yahya Al Nabhani

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Designing Real-Time and Embedded Systems with the COMET/UML method

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Using UML Part One Structural Modeling Diagrams

Tutorial - Building a Use Case Diagram

Introduction to MS WINDOWS XP

Objectives After completion of study of this unit you should be able to:

Communications Software Engineering Design Model

Algolab Photo Vector

Manual. OIRE Escuela de Profesiones de la Salud. Power Point 2007

A system is a set of integrated components interacting with each other to serve a common purpose.

Using the Mindjet Platform and Templates for Marketing Launch Plans

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

CPS122 Lecture: State and Activity Diagrams in UML

CHAPTER 1 Introduction

UML basics. Part II: The activity diagram. The activity diagram's purpose. by Donald Bell IBM Global Services

Microsoft Office Access 2007 Basics

Software Project Management and UML

Ontological Identification of Patterns for Choreographing Business Workflow

BPMN by example. Bizagi Suite. Copyright 2014 Bizagi

Intellect Platform - Tables and Templates Basic Document Management System - A101

SECTION 2 PROGRAMMING & DEVELOPMENT

Object Oriented Design

SMART Board Training Outline Trainer: Basel Badran

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

Web Conferencing Demo and Tutorial

Microsoft Excel 2010 Charts and Graphs

Customizing your Blackboard Course

Instructional Systems Design

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

CHAPTER 11 REQUIREMENTS

Creating PDF Forms in Adobe Acrobat

DESIGN A WEB SITE USING PUBLISHER Before you begin, plan your Web site

Process Modeling using BPMN 2.0

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

Information Technology Solutions

LECTURE 1. SYSTEMS DEVELOPMENT

Higher Computing. Software Development. LO1 Software Development process

Basic Unified Process: A Process for Small and Agile Projects

Module 1. 4 Login-Send Message to Teacher

Organizing image files in Lightroom part 2

IBM Business Process Manager Version 8 Release 5. Hiring Tutorial IBM

Visualization of 2D Domains

Getting Started Guide

Experimenting in the domain of RIA's and Web 2.0

drawings_how_to?? Arch 172: Building Construction 1 Fall 2013

Architecture Design & Sequence Diagram. Week 7

Understanding Data Flow Diagrams Donald S. Le Vie, Jr.

Tutorials. If you have any questions, comments, or suggestions about these lessons, don't hesitate to contact us at

Business Process Modeling Notation. Bruce Silver Principal, BPMessentials

Creating Basic HTML Forms in Microsoft FrontPage

SIMATIC. WinCC V7.0. Getting started. Getting started. Welcome 2. Icons 3. Creating a project 4. Configure communication 5

Scenario-based Requirements Engineering and User-Interface Design

Basic AutoSketch Manual

BPMN Business Process Modelling Notation

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Florence School District #1

PowerPoint 2007: Basics Learning Guide

Creating a website using Voice: Beginners Course. Participant course notes

Transcription:

-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

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. Interface Protocol NN Project Jack Max Sally Sensor Modules Neuron Modules Actuator Modules 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..

Fig-2: Most important activity diagram shapes Activity Decision Split into concurrent activities Start, Initial State End, Final State Join from concurrent activities 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

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. Instances Sensor N1 N2 N3 N4 Actuator 1 N1 2 N3 5 lifeline Sensor Actuator 1 N2 3 N4 4 X X X X X X Outside process End of lifeline Signal Reply Activation Box Fig-5: Sequence diagram of checking your email.

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

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.

Fig-5: Use case diagram example, simpler restaurant model. Fig-6: Use case diagram building blocks. Use Case including Use Case-A <<include>> included Use Case-B Use case-a depends on use case-b Actor extended Use Case-A <<extend>> extension Use Case-B Use case-b could be included (optional) in use case-a System boundary box Represents scope of system. Everything inside is within scope. Actor general Use Case-A association specialized Use Case-B Use Case [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

Class Diagram Example: UML Examples:: 4331C 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:

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

(b) Activity diagram for the following processes 1. Uploading a new photograph (include album placement, visibility, and comments)

2. Viewing a friend s albums (include login, permission checks, and browsing)

C) Sequence diagrams 1) Creating a new album 2) Placing an existing photo within an existing album

3) Sending a friend request to another user