SOFTWARE DEVELOPMENT USING SPECIFICATION AND DESCRIPTION LANGUAGE REAL TIME



Similar documents
2 SYSTEM DESCRIPTION TECHNIQUES

Lecture 1: Introduction

Moving from CS 61A Scheme to CS 61B Java

Real Time Developer Studio. Emmanuel Gaudin

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Using UML Part Two Behavioral Modeling Diagrams

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Sources: On the Web: Slides will be available on:

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

Arena 9.0 Basic Modules based on Arena Online Help

Flowchart Techniques

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

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

Comparing RTOS to Infinite Loop Designs

Data Flow Diagram (DFD) Tutorial Written Date : January 27, 2012

50 Computer Science MI-SG-FLD050-02

Computer Programming Lecturer: Dr. Laith Abdullah Mohammed

SignalDraw: GUI Tool For Generating Pulse Sequences

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Requirements Management

Chapter 13: Program Development and Programming Languages

Insulin Pump System Design

Chapter 13: Program Development and Programming Languages

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

ServerView Inventory Manager

Algorithms, Flowcharts & Program Design. ComPro

Graph-Grammar Based Completion and Transformation of SDL/UML-Diagrams

Revealing the Big Picture Using Business Process Management

Application Note: AN00141 xcore-xa - Application Development

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

UML FOR OBJECTIVE-C. Excel Software

Process Modeling Notations and Workflow Patterns

Create a credit card and/or cash reimbursement expense report

Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

Discrete-Event Simulation

Software Development Life Cycle (SDLC)

Human-Readable BPMN Diagrams

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Oracle Service Bus Examples and Tutorials

NATIONAL CERTIFICATE (VOCATIONAL)

Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go

Fault Localization in a Software Project using Back- Tracking Principles of Matrix Dependency

The Trip Scheduling Problem

Integrating Legacy Code / Models with Model Based Development Using Rhapsody

Lecture 26 CPM / PERT Network Diagram

Introduction to LabVIEW Design Patterns

Analysis of traffic engineering parameters while using multi-protocol label switching (MPLS) and traditional IP networks

Animation-Based Explanation of Basic Data Communication Principles

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Chapter 6, The Operating System Machine Level

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Fluke 89-IV & 189 Event Logging

The programming language C. sws1 1

Curriculum Map. Discipline: Computer Science Course: C++

Real Time Programming: Concepts

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Fundamentals of Programming and Software Development Lesson Objectives

Chapter 4 Software Lifecycle and Performance Analysis

CREDIT CARD FRAUD DETECTION SYSTEM USING GENETIC ALGORITHM

Mapping Business Process Modeling constructs to Behavior Driven Development Ubiquitous Language

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

(Refer Slide Time: 01:52)

Enterprise Recipes with Ruby and Rails

Programming Languages

Lessons Learned Applying Model-Based System Engineering Methods to a Strategic Planning Activity

Configuration Management: An Object-Based Method Barbara Dumas

TD 271 Rev.1 (PLEN/15)

INTERNATIONAL TELECOMMUNICATION UNION

Team Builder Project

Fundamentals of Java Programming

Memory Database Application in the Processing of Huge Amounts of Data Daqiang Xiao 1, Qi Qian 2, Jianhua Yang 3, Guang Chen 4

Chapter 5. Regression Testing of Web-Components

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

Jobs Guide Identity Manager February 10, 2012

New Generation of Software Development

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ

International Journal of Engineering Technology, Management and Applied Sciences. November 2014, Volume 2 Issue 6, ISSN

Malay A. Dalal Madhav Erraguntla Perakath Benjamin. Knowledge Based Systems, Inc. (KBSI) College Station, TX 77840, U.S.A.

INTERNATIONAL TELECOMMUNICATION UNION $!4! #/--5.)#!4)/. /6%2 4(% 4%,%0(/.%.%47/2+

TRAFFIC LIGHT: A PEDAGOGICAL EXPLORATION

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Formulas, Functions and Charts

2. Distributed Handwriting Recognition. Abstract. 1. Introduction

2. Basic Relational Data Model

Visual Logic Instructions and Assignments

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Layered Approach to Development of OO War Game Models Using DEVS Framework

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

Testing automation of projects in telecommunication domain

The value of modeling

Process Modeling and Process Improvement. Process Modeling

Execution of A Requirement Model in Software Development

(Refer Slide Time: 2:03)

Chapter One Introduction to Programming

Transcription:

SOFTWARE DEVELOPMENT USING SPECIFICATION AND DESCRIPTION LANGUAGE REAL TIME Sharath Gopalappa Dr.Dar-Biau Liu Graduate Student Professor CECS Department CECS Department California State University, Long Beach California State University, Long Beach CA 90840 CA 90840 Sharath.gopalappa@gmail.com liu@cecs.csulb.edu Abstract: Cost over-run and production delay have been serious problems faced by software developers for the past several decades. One way of mitigating this is the use of pictorial symbols instead of text for expressing the design and implementation details involved in software development. As we say, a picture is worth a thousand words and one such representational system which uses this aphorism in actual practice is the Specification and Description Language. Pictorial representations, being self-explanatory, naturally reduce the costs incurred for documentation. Moreover, most of these symbols can be efficiently used for the auto-generation of some of the basic functionalities thereby reducing the production time. This is especially useful because it is not possible for a software developer to keep track of the continuously evolving and newer software languages. So the pictorial representation comes in handy because of its capacity for the said code auto-generation! We feel that the most efficient way of doing this is using symbols confirming to Specification and Description Language- Real Time (SDL- RT) standards. 1. Introduction: SDL is an objectoriented high-level programming language that is formal and graphical in nature. It is designed for the description of complex, event-driven systems capable of communicating in real time. SDL development was originally initiated by International Telecommunication Union (ITU) in 1972. The ITU has been launching newer versions of this language every fourth year or so since the first launch in 1976, the latest being in 2000 SDL diagrams are easy to understand by laymen and software developers alike, thanks to its highly graphical character. This results in greatly enhanced interaction between the system designer and the client. It is for this reason that SDL can be efficiently used to autogenerate executable applications, leading to reduced time and cost to develop the desired software product. Due to the readability of SDL diagrams, its specification becomes documentation in itself, thereby generating efficient documents and reducing the cost and time required for documentation during software development. Specification Description Language - Real Time (SDL-RT) is based on SDL standards developed by ITU, extended with real time concepts. It is designed

for the real time developer looking for graphical representations of traditional concepts used in his domain, without leaving behind a legacy code and years of experience. SDL-RT is based on tasks running concurrently that exchange information through messages and synchronizes with each other using semaphores. SDL has its own data types and syntax whereas SDL-RT basically uses ANSI C language. Some symbols have a specific syntax with SDL-RT since there is no C equivalent instructions such as output, input, save, or semaphore manipulations. 2. SDL-RT Standards: The following sections discuss the symbols used in SDL-RT that can be used in the development of the desired software product. System: The overall design of the software product is called the system. The universe outside the system is called the environment. divisions of the system. A block can be further divided into sub-blocks and so on. Dividing the system into blocks thus enables the pictorial representation of all the essential components of the given system. A block is represented by a solid rectangle with its name in it. Block Name Figure 1: Block When the system is divided down to the simplest block, the way that block fulfils its functionality is described by processes. A process is represented by a rectangle with cut corners with its name in it: Figure 2: Process Symbol A process is basically the code that will be executed. It is possible to have several instances of the same process running independently. The full syntax in the process symbol is: <Process name> [(<number of instances at startup>, <maximum number of instances>)] If omitted, the default values are as follows: 1 for the number of instances at startup and infinite for the maximum number of instances. Agent: An agent is a component in the system structure. There are two kinds of agents namely, blocks and processes. Blocks are the primary SDL-RT is based on an even driven architecture that accomplishes the required task through an exchange of messages. A message has a name and a parameter that is basically a pointer to some data. Messages go through

channels that connect agents and end up in queues implicit to every process. Channels have names and are represented by one-way or two-way arrows. A channel name is written next to the arrow and the list of messages going in a specific way are listed next to it between brackets, separated by commas. A channel end point can be connected to: the environment, another channel or a process. Whereas the output message coming from any particular agent is represented by: Figure 7: Message Output Symbol A process may be multi-step and then it may not be able to handle newer requests until the on-going job is complete. It is therefore imperative that this new information be saved until the process reaches a stable state. This information that needs to be saved is represented as: Figure 3: Channel Symbol The beginning of the process is represented by the following symbol: Figure 8: Save Symbol There are several times wherein the flow of control in the process depends on certain conditions. Such conditions are represented using the following symbol. Figure 4: Start Symbol A process can terminate itself which can be represented by: Figure 5: Stop Symbol Figure 9: Condition Symbol The program control flow is determined by certain variable conditions. The possible options or paths that might be used are thus represented: Messages move between different agents: The Input message for any particular agent is represented by: Figure 6: Message Input Symbol Figure 9: Decision Symbol

The values of the branches have keyword expressions such as: >, <, >=, <=,!=, == true, false, else Semaphore take: The Semaphore take symbol is used when the process attempts to take a semaphore. Figure 13: New Process creation Symbol To create several instances of the same process which may run concurrently, we use the following symbols: Figure 10: Semaphore Take Symbol Similarly, the Semaphore give symbol is used when the process attempts to leave the semaphore. Figure 14: Instances of a single process Connectors: Connectors are used to split a transition into several pieces so that the diagram stays legible and printable. A connector contains a name that has to be unique in the process Figure 11: Semaphore give Symbol Timer Start: A Timer start symbol represents the timer used to set the time for a certain event to take place in terms of clock ticks. Figure 15: Connector Symbol Comment: The comment symbol is used to write any type of informal text and connect it to the desired symbol. Figure 12: Timer start symbol New process creation: A new process to be created is represented using the following symbol. Figure 16: Comment Symbol

Extension symbol: The extension symbol is used to complete an expression in a symbol. The expression in the extension symbol is considered part of the expression in the connected symbol. Therefore the syntax is the one of the connected symbol. Procedure return: indicates the end of the procedure. Figure 19: Procedure return symbol Text Symbol: is used to declare C-type variables. Figure 17: Extension Symbol Example: Figure 20: Text Symbol Object Creation Symbol: represents a pictorial way of creating objects. This is equivalent to creating an instance of class <class name> named <object name>. Procedure start symbol: It indicates the procedure entry point. Figure 18: Procedure start symbol Figure 21: Object Creation Symbol Time interval: To specify a time interval between two events the following symbol is used.

Package: serves as a container for agents or classes. They are similar to packages present in Java and are represented by the following symbol. Figure 22: Time Interval Symbol Co-region: is used whenever the sequence of events does not matter. Events in a Co-region can happen in any order. Figure 23: Co-region Symbol Class: A Class describes the set of objects similar in structure, behavior and relationships. It is represented by: Figure 24: Class Symbol Figure 25: Package Symbol Based on the recent analysis of the development of various software projects, it is found that 51% to 53% of the total time invested in software development is spent on documentation. Similarly, around 20%-33% of the total time is spent on coding. Code generators can be used to auto-generate certain pieces of standard code for each standard SDL-RT symbol; in such case the task of the programmer would only be the integration of SDL-RT symbols at the front end and corresponding code gets auto generated at the backend 3. Conclusion: We feel one of the possible ways of mitigating delays and cost over-run during software development is to use pictorial symbols for expressing the design and implementation details involved in software development. Pictorial representations, being self-explanatory, naturally reduce the costs incurred for documentation. Moreover, most of these symbols can be efficiently used for the auto-generation of some of the basic functionalities thereby reducing the production time. We feel that the most efficient way of doing this is using symbols confirming to Specification and Description Language- Real Time (SDL- RT) standards.

4. References: 1. SDL Forum Society (www.sdlforum.org). 2. International Engineering Consortium (www.iec.org/online/tutorials/sdl). 3. Protocol & testing Competence Centre (www.etsi.org/ptcc/ptccsdl.htm). 4. Telelogic Products - Telelogic TAU - Languages SDL (www.telelogic.com/products/tau/languages/sdl. cfm) 5. Specification and Description Language - Real Time (www.sdl-rt.org) 6. Kevin Strike, Khaled El Emam and Nazim Madhavji Software Cost Estimation with Incomplete Data 7. Claudine Toffolon, Salem Dakhli The Cost of Co-ordination in Software Engineering 8. Serge Oligny, Pierre Bourque, Alain Abran and Bertrand Fournier Developing Project Duration Models in Software Engineering 9. Sonke Hartmann. A Self-Adapting Genetic Algorithm for Project Scheduling under Resource Constraints 10. Frank Padberg and Fakult at f ur Informatik. Applying Process Simulation to Software Project Scheduling 11. Sarah Jane Delany1, Pádraig Cunningham2 and Wolfgang Wilke3 The Limits of CBR in Software Project Estimation 12. Kadoda, Michelle Gada Cartwright, Liguang Chen, and Martin Shepperd Experiences Using Case- Based Reasoning to Predict Software Project Effort 13. Warren Rost Bennett, Jr. Predicting Software System Development Effort Very Early in the Life Cycle using Idef0 and Indef1X models 14. Thomas McGibbon Modern Empirical Cost and Schedule Estimation Tools