Professional Documents
Culture Documents
Research Project Description: Universe Type System
Research Project Description: Universe Type System
Research Project Description: Universe Type System
http://sct.ethz.ch/research/universes/
Research Project
Description: Universe
Type System
Overview
Results so far
We integrated the Universe type system into the MultiJava
compiler and the JML Tools.
Contents
[hide]
• 1 History
o 1.1 Software Development Methodology (noun)
o 1.2 Software Development Methodology (verb)
• 2 Software development methodology (verb) approaches
o 2.1 Waterfall Approach
o 2.2 Prototyping Approach
o 2.3 Incremental Approach
o 2.4 Spiral Approach
o 2.5 Rapid Application Development (RAD) Approach
o 2.6 Other software development practices and techniques
• 3 Software development methodology topics
o 3.1 View model
o 3.2 Business process and data modelling
o 3.3 Computer-aided Software Engineering
o 3.4 Integrated development environment
o 3.5 Modeling language
o 3.6 Programming paradigm
o 3.7 Software framework
o 3.8 Software development process
• 4 See also
• 5 References
• 6 External links
[edit] History
The software development methodology framework didn't emerge until the 1960s.
According to Elliott (2004) the systems development life cycle (SDLC) can be
considered to be the oldest formalized methodology framework for building information
systems. The main idea of the SDLC has been "to pursue the development of information
systems in a very deliberate, structured and methodical way, requiring each stage of the
life cycle from inception of the idea to delivery of the final system, to be carried out in
rigidly and sequentially".[2] within the context of the framework being applied. The main
target of this methodology framework in the 1960s was "to develop large scale functional
business systems in an age of large scale business conglomerates. Information systems
activities revolved around heavy data processing and number crunching routines".[2].
A wide variety of such frameworks have evolved over the years, each with its own
recognized strengths and weaknesses. One software development methodology
framework is not necessarily suitable for use by all projects. Each of the available
methodology frameworks are best suited to specific kinds of projects, based on various
technical, organizational, project and team considerations.[1]
These software development frameworks are often bound to some kind of organization,
which further develops, supports the use, and promotes the methodology framework. The
methodology framework is often defined in some kind of formal documentation. Specific
software development methodology frameworks (noun) include
1970s
1980s
1990s
• Object-oriented programming (OOP) has been developed since the early 1960s,
and developed as the dominant object oriented programming approach during the
mid-1990s.
• Rapid application development (RAD) since 1991.
• Scrum (development), since the late 1990s
• Team software process developed by Watts Humphrey at the SEI
• Extreme Programming since 1999
• Project is divided into sequential phases, with some overlap and splashback
acceptable between phases.
• Emphasis is on planning, time schedules, target dates, budgets and
implementation of an entire system at one time.
• Tight control is maintained over the life of the project through the use of
extensive written documentation, as well as through formal reviews and
approval/signoff by the user and information technology management occurring
at the end of most phases before beginning the next phase.
Various methods are acceptable for combining linear and iterative systems development
methodology approaches, with the primary objective of each being to reduce inherent
project risk by breaking a project into smaller segments and providing more ease-of-
change during the development process.
• Begin each cycle with an identification of stakeholders and their win conditions,
and end each cycle with review and commitment.[6]
Basic principles:[1]
• Key objective is for fast development and delivery of a high quality system at a
relatively low investment cost.
• Attempts to reduce inherent project risk by breaking a project into smaller
segments and providing more ease-of-change during the development process.
• Aims to produce high quality systems quickly, primarily through the use of
iterative Prototyping (at any stage of development), active user involvement, and
computerized development tools. These tools may include Graphical User
Interface (GUI) builders, Computer Aided Software Engineering (CASE) tools,
Database Management Systems (DBMS), fourth-generation programming
languages, code generators, and object-oriented techniques.
• Key emphasis is on fulfilling the business need, while technological or
engineering excellence is of lesser importance.
• Project control involves prioritizing development and defining delivery deadlines
or “timeboxes”. If the project starts to slip, emphasis is on reducing requirements
to fit the timebox, not in increasing the deadline.
• Generally includes Joint Application Development (JAD), where users are
intensely involved in system design, either through consensus building in
structured workshops, or through electronically facilitated interaction.
• Active user involvement is imperative.
• Iteratively produces production software, as opposed to a throwaway prototype.
• Produces documentation necessary to facilitate future development and
maintenance.
• Standard systems analysis and design techniques can be fitted into this
framework.
A View model is framework which provides the viewpoints on the system and its
environment, to be used in the software development process. It is a graphical
representation of the underlying semantics of a view.
The purpose of viewpoints and views is to enable human engineers to comprehend very
complex systems, and to organize the elements of the problem and the solution around
domains of expertise. In the engineering of physically-intensive systems, viewpoints
often correspond to capabilities and responsibilities within the engineering organization.[8]
Most complex system specifications are so extensive that no single individual can fully
comprehend all aspects of the specifications. Furthermore, we all have different interests
in a given system and different reasons for examining the system's specifications. A
business executive will ask different questions of a system make-up than would a system
implementer. The concept of viewpoints framework, therefore, is to provide separate
viewpoints into the specification of a given complex system. These viewpoints each
satisfy an audience with interest in a particular set of aspects of the system. Associated
with each viewpoint is a viewpoint language that optimizes the vocabulary and
presentation for the audience of that viewpoint.
• A business model illustrates the functions associated with the business process
being modeled and the organizations that perform these functions. By depicting
activities and information flows, a foundation is created to visualize, define,
understand, and validate the nature of a process.
• A data model provides the details of information to be stored, and is of primary
use when the final product is the generation of computer software code for an
application or the preparation of a functional specification to aid a computer
software make-or-buy decision. See the figure on the right for an example of the
interaction between business process and data models.[9]
The models are developed as defining either the current state of the process, in which
case the final product is called the "as-is" snapshot model, or a collection of ideas of what
the process should contain, resulting in a "what-can-be" model. Generation of process
and data models can be used to determine if the existing processes and information
systems are sound and only need minor modifications or enhancements, or if
reengineering is required as corrective action. The creation of business models is more
than a way to view or automate your information process analysis can be used to
fundamentally reshape the way your business or organization conducts its operations.[9]
[edit] Computer-aided Software Engineering
Some typical CASE tools are Configuration management tools, Data modeling tools,
Model transformation tools, Refactoring tools, Source code generation tools, and Unified
Modeling Language.
A modeling language is any artificial language that can be used to express information or
knowledge or systems in a structure that is defined by a consistent set of rules. The rules
are used for interpretation of the meaning of components in the structure. A modeling
language can be graphical or textual.[14] Graphical modeling languages use a diagram
techniques with named symbols that represent concepts and lines that connect the
symbols and that represent relationships and various other graphical annotation to
represent constraints. Textual modeling languages typically use standardised keywords
accompanied by parameters to make computer-interpretable expressions.
• Business Process Modeling Notation (BPMN, and the XML form BPML) is an
example of a Process Modeling language.
• EXPRESS and EXPRESS-G (ISO 10303-11) is an international standard general-
purpose data modeling language.
• Extended Enterprise Modeling Language (EEML) is commonly used for business
process modeling across a number of layers.
• Flowchart is a schematic representation of an algorithm or a stepwise process,
• Fundamental Modeling Concepts (FMC) modeling language for software-
intensive systems.
• IDEF is a family of modeling languages, the most notable of which include
IDEF0 for functional modeling, IDEF1X for information modeling, and IDEF5
for modeling ontologies.
• LePUS3 is an object-oriented visual Design Description Language and a formal
specification language that is suitable primarily for modelling large object-
oriented (Java, C++, C#) programs and design patterns.
• Specification and Description Language(SDL) is a specification language targeted
at the unambiguous specification and description of the behaviour of reactive and
distributed systems.
• Unified Modeling Language (UML) is a general-purpose modeling language that
is an industry standard for specifying software-intensive systems. UML 2.0, the
current version, supports thirteen different diagram techniques, and has
widespread tool support.
Not all modeling languages are executable, and for those that are, the use of them doesn't
necessarily mean that programmers are no longer required. On the contrary, executable
modeling languages are intended to amplify the productivity of skilled programmers, so
that they can address more challenging problems, such as parallel computing and
distributed systems.
A programming language can support multiple paradigms. For example programs written
in C++ or Object Pascal can be purely procedural, or purely object-oriented, or contain
elements of both paradigms. Software designers and programmers decide how to use
those paradigm elements. In object-oriented programming, programmers can think of a
program as a collection of interacting objects, while in functional programming a
program can be thought of as a sequence of stateless function evaluations. When
programming computers or systems with many processors, process-oriented
programming allows programmers to think about applications as sets of concurrent
processes acting upon logically shared data structures.
Many programming paradigms are as well known for what techniques they forbid as for
what they enable. For instance, pure functional programming disallows the use of side-
effects; structured programming disallows the use of the goto statement. Partly for this
reason, new paradigms are often regarded as doctrinaire or overly rigid by those
accustomed to earlier styles.[citation needed] Avoiding certain techniques can make it easier to
prove theorems about a program's correctness—or simply to understand its behavior.
A decades-long goal has been to find repeatable, predictable processes that improve
productivity and quality. Some try to systematize or formalize the seemingly unruly task
of writing software. Others apply project management techniques to writing software.
Without project management, software projects can easily be delivered late or over
budget. With large numbers of software projects not meeting their expectations in terms
of functionality, cost, or delivery schedule, effective project management appears to be
lacking.
Related topics
• Domain-specific modeling
• Lightweight methodology
• Object modeling language
• Structured programming
• Integrated IT Methodology
[edit] References
1. ^ a b c d e f g h i SELECTING A DEVELOPMENT APPROACH. Revalidated:
March 27, 2008. Retrieved 27 Oct 2008.
2. ^ a b Geoffrey Elliott (2004) Global Business Information Technology. p.87.
3. ^ Wasserfallmodell > Entstehungskontext, Markus Rerych, Institut für
Gestaltungs- und Wirkungsforschung, TU-Wien. Accessed on line November 28,
2007.
4. ^ (Boehm, 1986)
5. ^ (Boehm, 1986 and 1988)
6. ^ (Boehm, 2000)
7. ^ Georges Gauthier Merx & Ronald J. Norman (2006). Unified Software
Engineering with Java. p.201.
8. ^ Edward J. Barkmeyer ea (2003). Concepts for Automating Systems Integration
NIST 2003.
9. ^ a b c d Paul R. Smith & Richard Sarfaty (1993). Creating a strategic plan for
configuration management using Computer Aided Software Engineering (CASE)
tools. Paper For 1993 National DOE/Contractors and Facilities CAD/CAE User's
Group.
10. ^ Kuhn, D.L (1989). "Selecting and effectively using a computer aided software
engineering tool". Annual Westinghouse computer symposium; 6-7 Nov 1989;
Pittsburgh, PA (USA); DOE Project.
11. ^ P.Loucopoulus and V. Karakostas. System Requirement Engineering.
12. ^ CASE definition In: Telecom Glossary 2000. Retrieved 26 Oct 2008.
13. ^ K. Robinson (1992). Putting the Software Engineering into CASE. New York :
John Wiley and Sons Inc.
14. ^ Xiao He (2007). "A metamodel for the notation of graphical modeling
languages". In: Computer Software and Applications Conference, 2007.
COMPSAC 2007 - Vol. 1. 31st Annual International, Volume 1, Issue , 24–27
July 2007, pp 219-224.
[hide]
v•d•e
Software Engineering
Modeling
IDEF • UML
languages
Personal tools
• New features
• Log in / create account
Namespaces
• Article
• Discussion
Variants
Views
• Read
• Edit
• View history
Actions
Search
Navigation
• Main page
• Contents
• Featured content
• Current events
• Random article
• Donate
Interaction
• About Wikipedia
• Community portal
• Recent changes
• Contact Wikipedia
• Help
Toolbox
Print/export
• Create a book
• Download as PDF
• Printable version
Languages
• Česky
• Español
• 한국어
• Bahasa Indonesia
• Português
• 中文
• Privacy policy
• About Wikipedia
• Disclaimers
•
Abstract
This short paper contains a preliminary description of a novel type of chat system that
aims at realizing natural and social communication between distant communication
partners. The system is based on an Emotion Estimation module that assesses the
affective content of textual chat messages and avatars associated with chat partners that
act out the assessed emotions of messages through multiple modalities, including
synthetic speech and associated affective gestures.
Fulltext Preview
http://www.springerlink.com/content/0w27fy9wtwk6e4d
d/
http://books.google.com.ph/books?
id=vz2JE33ZOGcC&pg=PA58&lpg=PA58&dq=methodologies+of+chat+system&sourc
e=bl&ots=xPJgu-
nMxw&sig=OrdlWdcICXnz0q5hdbEkAiGFI6M&hl=tl&ei=LlDGTNOtEsLQceb9oZYO
&sa=X&oi=book_result&ct=result&resnum=8&ved=0CEEQ6AEwBw#v=onepage&q&f
=false
An analysis of Internet chat systems
Christian Dewes Arne Wichmann Anja Feldmann
Universit ¨ at des Saarlandes TU M¨unchen TU M¨unchen
cdewes@net.uni-sb.de aw@net.in.tum.de anja@net.in.tum.de
Abstract
In our quest to better understand network traffic dynamics,
we examine Internet chat systems. Although chat as an application
does not contribute huge amounts of traffic, chat
systems are known to be habit-forming. This implies that
catering to such users can be a promising way of attracting
them, especially in low bandwidth environments such as
wireless networks.
Unfortunately there is no common protocol base for chat
systems. Rather there are a multitude of protocol variants
whose specifications, with some exceptions, such as IRC and
ICQ, are unavailable or ill defined. In addition, chat systems
are often layered on top of other application protocols like
HTTP. Therefore there is no simple way of even identifying
chat traffic. In this paper we show how to separate chat
traffic from other Internet traffic and present the results
of an extensive validation of our methodology. Using our
methodology we gather a week long trace of all chat traffic
that crosses a 155 Mbit/s link from the Saarland University
to the Internet and present an initial characterization.
Categories and Subject Descriptors
C.2.3 [Computer-Communication Networks]: Network
Operations
General Terms
Measurement, Experimentation
Keywords
Chat, IRC, Network Measurements
1. INTRODUCTION
Chat systems, and especially Web-chats, are used by a
sizable number of people around the world for exchanging
ideas and/or discussions. Considering the spectrum of Internet
applications, chat systems occupy the extreme, short-
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy otherwise, to
republish, to post on servers or to redistribute to lists, requires prior specific
permission and/or a fee.
IMC’03, October 27–29,2003, Miami Beach, Florida, USA
Copyright 2003 ACM 1-58133-773-7/03/0010 ...$5.00.
lived interactive end, while stable, non-interactive applications
like the Web occupy another.
Given that chat as an application does not generate a
lot of traffic it is not surprising that chat systems do not
contribute a large fraction of traffic to the Internet. Therefore
one may ask why is chat a worthwhile target for traffic
characterization. Our primary motivation is that chat offers
computer mediated communication. This means that
the measured ”behavior” is expected to mainly depend on
human behavior (maybe influenced in some ways by packet
delays). Furthermore chat is used by a large number of
users. It has the potential of being habit-forming [1]. Since
chat systems need little bandwidth, they are an interesting
and attractive wireless application. A wireless application
that has gained extreme popularity in Asia and Europe is
SMS (short message service) and is used by some users in a
manner similar to chat.
In today’s Internet there are various chat systems in use
which differ in a number of aspects. Internet Relay Chat
(IRC) [2] is one of the oldest systems still in use. From a
high level perspective an IRC-system consists of a network
of servers which form a spanning tree among them, that
is used as the backbone of the network. A client using an
IRC-system connects himself to one of these servers and the
messages will travel along the backbone to each of the connected
servers. The IRC protocol which regulates message
exchange is well defined and easy to understand. Accordingly
we chose IRC as a starting point for our analysis.
While IRC is still a widely used protocol, a significant
share of today’s users appear to be using Web-based chat
systems. There seem to be two main motivations: ease
of use and ease of access. Everyone is familiar with the
user interface of a Web browser, and most portals are offering
Web-based chat systems. Unfortunately these systems
vary widely in terms of visual appearance and technical realization
as well as in terms of protocol. Nevertheless we
have identified a number of common characteristics of Webbased
systems that can be used to separate traffic generated
by them from other traffic. As a result we can analyze
Web-based chat systems and compare their characteristics
to those of IRC-systems.
Other popular chat systems include ICQ [3] and AIM [4]
(AOL Instant Messenger). These differ from the above systems
in that they use UDP as transport protocol and that
their main goal is the exchange of short messages rather
than the exchange of opinions or longer discussions. Most
chat systems are open systems. In contrast Gale [5] is a
fairly new system which encrypts its messages cryptographically
and supports even more decentralization of the server
functions than IRC.
The main problem in analyzing chat traffic is the multitude
and the diversity of systems and protocols. In addition
IRC differs significantly from Web-chat and there is
no unique Web-chat system. Indeed most Web-chat protocols
differ widely and are usually not well documented.
Some systems do not only use the Web browser as their
user interface but realize their protocol on top of HTTP.
This implies that it becomes rather difficult to consistently
separate Web-chat traffic from regular Web traffic and other
TCP traffic. Therefore we first have to address the challenge
of capturing chat traffic before we can present the results of
our analysis.
Our approach for separating Web-chat traffic from other
network traffic is to first collect traffic generously, then identify
candidate chat traffic, and finally disregard known nonchat
traffic. We start by collecting all network traffic that
satisfies some rather general criteria. We then keep all connections
which match a number of criteria derived from our
analysis of IRC and a basic understanding of Web-chat systems.
Close inspection of the resulting traffic has shown that
some other protocols may have similar behavior. These are
easy to identify and can therefore be excluded from further
analysis. In order to show the validity of this approach we
present the results of an extensive validation and a statistical
characterization of the collected chat traffic.
Another problem with this approach is imposed by resource
limitations. The amount of traffic to process exceeded
the disk, cpu, and memory resources of our server machine.
Accordingly we further subdivided the work into two filter
steps, the first checks for the inexpensively computable criteria
while the second performs the computational expensive
ones. This pipelining enables us to cope with the amount of
data.
The remainder of this paper is structured as follows: first,
in Section 2, we will review some details of IRC and Webchat
systems. Next we present our methodology for collecting
chat traces (Section 3). In Section 4 this is followed by
an account of our experiences in realizing these ideas. As we
propose to use quite a complex heuristic Section 5 discusses
our approach for validating their appropriateness. In Section
6 we present the results of analyzing the properties of
IRC and Web-chat usage. Finally, in Section 7 we summarize
our experience and suggest future research directions.
Mobile phone
Inventor Martin Cooper
Launch year 1983
Company Motorola
Availability Worldwide
A mobile phone (also called mobile, cellular telephone, cell phone or handphone[1]) is
an electronic device used for full duplex two-way radio telecommunications over a
cellular network of base stations known as cell sites. Mobile phones differ from cordless
telephones, which only offer telephone service within limited range through a single base
station attached to a fixed land line, for example within a home or an office.
A mobile phone allows its user to make and receive telephone calls to and from the
public telephone network which includes other mobiles and fixed line phones across the
world. It does this by connecting to a cellular network owned by a mobile network
operator. A key feature of the cellular network is that it enables seamless telephone calls
even when the user is moving around wide areas via a process known as handoff or
handover.
In addition to being a telephone, modern mobile phones also support many additional
services, and accessories, such as SMS (or text) messages, email, Internet access, gaming,
Bluetooth and infrared short range wireless communication, camera, MMS messaging,
MP3 player, radio and GPS. Low-end mobile phones are often referred to as feature
phones, whereas high-end mobile phones that offer more advanced computing ability are
referred to as smartphones.
The first handheld cellular phone was demonstrated by Martin Cooper of Motorola in
1973, using a handset weighing 2 kg (4.4 lb).[2] In the year 1990, 12.4 million people
worldwide had cellular subscriptions.[3] By the end of 2009, only 20 years later, the
number of mobile cellular subscriptions worldwide reached approximately 4.6 billion,
370 times the 1990 number, penetrating the developing economies and reaching the
bottom of the economic pyramid.
cell phone
(http://www.businessdictionary.com/def
inition/cell-phone.html)
Hide links within definitionsShow links within definitions
Definition
Small wireless device that has at least the same functions of a standard wired telephone but is smaller and more
mobile. A cell phone requires a subscription to a service provider and requires either a prepaid or monthly billing
setup. Generally, they have more functions than traditional land lines and need to be charged after a period of
time. Also called mobile phone or mobile device.