er diagram

12
Banyak Perusahaan Tidak Mempunyai Standar Dokumentasi Pengembangan Software April 2, 2008 oleh Arry Akhmad Arman Bagaimanapun bentuknya, saya kira perusahaan-perusahaan besar pada umumnya mempunyai standar proses pengembangan software yang secara umum biasanya disebut SDLC (Software Development Life Cycle). Di beberapa perusahaan yang manajemen TI nya sudah mapan, SDLC tersebut biasanya diterapkan secara konsisten baik untuk pengembangan software oleh pihak internal, maupun pengembangan software yang melibatkan pihak eksternal (outsourcing). SDLC yang diterapkan secara ketat secara tidak langsung akan meningkatkan kualitas software yang dihasilkan. Bagian dari SDLC juga mensyaratkan adanya dokumentasi software yang baik. Apakah SDLC saja serta keberadaan dokumentasi software sudah cukup? Jawabannya biasanya baru diketahui setelah ada masalah-masalah berkaitan dengan software aplikasi yang sudah pernah dibuat. Beberapa permasalahan tipikal diantaranya adalah sebagai berikut: 1. Dokumentasi software ternyata tidak lengkap, ada bagian penting dari software yang tidak dijelaskan dengan cukup, sehingga sulit untuk memahaminya. 2. Format dan struktur dokumen berbeda-beda 3. Cara pemodelan berbeda-beda. Mungkin ada yang masih menggunakan flowchart + ER Diagram saja, ada yang menambahkan Data Flow Diagram (DFD), ada yang mencampur adukan UML dengan DFD, atau ada yang secara penuh sudah menerapkan UML. Permasalahan-permasalahan tersebut di atas akan menghambat tujuan-tujuan sebagai berikut: 1. Melakukan modifikasi software menjadi sulit dilakukan. Kadang perusahaan ingin melakukan modifikasi kecil dari software yang sudah dibuat dan sudah diluar masa garansi. Tapi sulit dilakukan karena hambatan dokumentasi. 2. Melakukan pengembangan lebih lanjut menggunakan vendor lain. Dokumentasi yang buruk, yang hanya dimengerti oleh pembuatnya saja, menyulitkan dipahami oleh pihak lain yang akan meneruskan pekerjaan tersebut. 3. Melakukan integrasi dengan aplikasi lain. Ketika sistem berkembang dan ada tuntutan integrasi, dokumentasi yang buruk mungkin akan menyulitkan untuk memahami struktur data, cara berkomunikasi data, apalagi kalau ada keperluan modifikasi algoritma untuk mencapai tujuan integrasi. Bagaimana solusinya? Sederhana! Buatlah standar (template) dokumentasi pengembangan software aplikasi di perusahaan anda. Standar dokumentasi berbeda dengan standar proses pengembangan (SDLC). Semua pengembangan software, baik yang dilakukan oleh pihak internal maupun cara outsource harus membuat dokumentasi sesuai standar tersebut. Hal yang harus diingat adalah:

Upload: zackyzz

Post on 18-Aug-2014

592 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ER Diagram

Banyak Perusahaan Tidak Mempunyai Standar

Dokumentasi Pengembangan Software

April 2, 2008 oleh Arry Akhmad Arman

Bagaimanapun bentuknya, saya kira perusahaan-perusahaan besar pada umumnya

mempunyai standar proses pengembangan software yang secara umum biasanya disebut

SDLC (Software Development Life Cycle). Di beberapa perusahaan yang manajemen TI nya

sudah mapan, SDLC tersebut biasanya diterapkan secara konsisten baik untuk pengembangan

software oleh pihak internal, maupun pengembangan software yang melibatkan pihak

eksternal (outsourcing). SDLC yang diterapkan secara ketat secara tidak langsung akan

meningkatkan kualitas software yang dihasilkan. Bagian dari SDLC juga mensyaratkan

adanya dokumentasi software yang baik.

Apakah SDLC saja serta keberadaan dokumentasi software sudah cukup? Jawabannya

biasanya baru diketahui setelah ada masalah-masalah berkaitan dengan software aplikasi

yang sudah pernah dibuat. Beberapa permasalahan tipikal diantaranya adalah sebagai berikut:

1. Dokumentasi software ternyata tidak lengkap, ada bagian penting dari software yang

tidak dijelaskan dengan cukup, sehingga sulit untuk memahaminya.

2. Format dan struktur dokumen berbeda-beda

3. Cara pemodelan berbeda-beda. Mungkin ada yang masih menggunakan flowchart +

ER Diagram saja, ada yang menambahkan Data Flow Diagram (DFD), ada yang

mencampur adukan UML dengan DFD, atau ada yang secara penuh sudah

menerapkan UML.

Permasalahan-permasalahan tersebut di atas akan menghambat tujuan-tujuan sebagai berikut:

1. Melakukan modifikasi software menjadi sulit dilakukan. Kadang perusahaan

ingin melakukan modifikasi kecil dari software yang sudah dibuat dan sudah diluar

masa garansi. Tapi sulit dilakukan karena hambatan dokumentasi.

2. Melakukan pengembangan lebih lanjut menggunakan vendor lain. Dokumentasi

yang buruk, yang hanya dimengerti oleh pembuatnya saja, menyulitkan dipahami oleh

pihak lain yang akan meneruskan pekerjaan tersebut.

3. Melakukan integrasi dengan aplikasi lain. Ketika sistem berkembang dan ada

tuntutan integrasi, dokumentasi yang buruk mungkin akan menyulitkan untuk

memahami struktur data, cara berkomunikasi data, apalagi kalau ada keperluan

modifikasi algoritma untuk mencapai tujuan integrasi.

Bagaimana solusinya? Sederhana!

Buatlah standar (template) dokumentasi pengembangan software aplikasi di

perusahaan anda. Standar dokumentasi berbeda dengan standar proses pengembangan

(SDLC).

Semua pengembangan software, baik yang dilakukan oleh pihak internal maupun cara

outsource harus membuat dokumentasi sesuai standar tersebut. Hal yang harus diingat adalah:

Page 2: ER Diagram

Jangan membuat standar dokumentasi yang bentuknya tidak biasa. Saya sarankan untuk

mengadopsi dari suatu standar, lalu lakukan penyesuaian minor. Untuk pemodelannya, saya

menganjurkan untuk menggunakan UML secara penuh.

Nah, kalau ini sudah tercapai, anda buka dokumen software manapun selalu sama bentuknya

dan kelengkapannya cenderung lebih terjamin karena mengikuti template yang sudah ada.

Semoga bermanfaat!

Ditulis dalam Manajemen TI, Teknologi Informasi | Bertanda software, standar dokumentasi,

standar dokumentasi pengembangan software, UML | 6 Komentar

Suka

Be the first to like this post.

6 Tanggapan

1. pada April 2, 2008 pada 9:48 am | Balas kaitokid724

Tulisan artikel di blog Anda bagus-bagus. Agar lebih bermanfaat lagi, Anda bisa lebih

mempromosikan dan mempopulerkan artikel Anda di infoGue.com ke semua

pembaca di seluruh Indonesia. Salam Blogger!

http://www.infogue.com/

http://www.infogue.com/bisnis_keuangan/banyak_perusahaan_tidak_mempunyai_sta

ndar_dokumentasi_pengembangan_software/

2. pada April 2, 2008 pada 12:32 pm | Balas Identifikasi Ancaman dalam Disaster

Recovery Jangan Terfokus Hanya Pada Bencana Alam | Sharing Vision

[...] Artikel diambil dari sini, dari Blog Arry Akhmad [...]

3. pada April 2, 2008 pada 1:01 pm | Balas ayi purbasari

SW = program + data + dokumentasi

Tepat sekali bu!

Page 3: ER Diagram

4. pada Desember 16, 2008 pada 8:45 pm | Balas agus sukoco

Buatlah standar (template) dokumentasi pengembangan software aplikasi di

perusahaan anda. Standar dokumentasi berbeda dengan standar proses pengembangan

(SDLC).??

standardnya apa ya?

5. pada Desember 17, 2008 pada 7:19 am | Balas Arry Akhmad Arman

SDLC hanya menjelaskan siklus. Pengembangan yang menggunakan siklus yang

sama bisa mempunyai cara mendokumentasikan yang berbeda-beda. MUngkin

semuanya benar, tidak ada yang salah, tetapi itu akan menyulitkan bagi perusahaan

yang sering melakukan outsource pengembangan aplikasi, karena style-nya berbeda-

beda.

Standar dokumentasi adalah buku panduan standar menyajikan report pengembangan

aplikasi, dalam hal ini untuk kemudahan perusahaan yang sering melakukan

outsource.

SDLC bisa dipilih yang manapun. Walaupun paling kuno, Waterfall masih sering

digunakan, karena lebih memudahkan dari sisi manajemen proyek.

Standar dokumentasi, sebaiknya simbol-simbolnya menggunakan UML dan diatur

penulisannya dengan ketat.

6. pada Juli 22, 2010 pada 5:50 pm | Balas Indri

Maaf pak,

punya contoh format dokumentasi yang baik?

boleh saya minta?

untuk dijadikan referensi.

thanks…

Page 4: ER Diagram

From Wikipedia, the free encyclopedia

Jump to: navigation, search

A sample Entity-relationship diagram using Chen's notation

In software engineering, an entity-relationship model (ERM) is an abstract and conceptual

representation of data. Entity-relationship modeling is a database modeling method, used to

produce a type of conceptual schema or semantic data model of a system, often a relational

database, and its requirements in a top-down fashion. Diagrams created by this process are

called entity-relationship diagrams, ER diagrams, or ERDs.

The definitive reference for entity-relationship modeling is Peter Chen's 1976 paper.[1]

However, variants of the idea existed previously,[2]

and have been devised subsequently.

Contents

[hide]

1 Overview

2 The building blocks: entities, relationships, and attributes

3 Diagramming conventions

o 3.1 Crow's Foot Notation

4 ER diagramming tools

5 See also

6 References

7 Further reading

8 External links

[edit] Overview

The first stage of information system design uses these models during the requirements

analysis to describe information needs or the type of information that is to be stored in a

Page 5: ER Diagram

database. The data modeling technique can be used to describe any ontology (i.e. an overview

and classifications of used terms and their relationships) for a certain area of interest. In the

case of the design of an information system that is based on a database, the conceptual data

model is, at a later stage (usually called logical design), mapped to a logical data model, such

as the relational model; this in turn is mapped to a physical model during physical design.

Note that sometimes, both of these phases are referred to as "physical design".

[edit] The building blocks: entities, relationships, and

attributes

Two related entities

An entity with an attribute

A relationship with an attribute

Primary key

An entity may be defined as a thing which is recognized as being capable of an independent

existence and which can be uniquely identified. An entity is an abstraction from the

complexities of some domain. When we speak of an entity we normally speak of some aspect

of the real world which can be distinguished from other aspects of the real world.[3]

An entity may be a physical object such as a house or a car, an event such as a house sale or a

car service, or a concept such as a customer transaction or order. Although the term entity is

the one most commonly used, following Chen we should really distinguish between an entity

and an entity-type. An entity-type is a category. An entity, strictly speaking, is an instance of

a given entity-type. There are usually many instances of an entity-type. Because the term

entity-type is somewhat cumbersome, most people tend to use the term entity as a synonym

for this term.

Entities can be thought of as nouns. Examples: a computer, an employee, a song, a

mathematical theorem.

A relationship captures how two or more entities are related to one another. Relationships can

be thought of as verbs, linking two or more nouns. Examples: an owns relationship between a

company and a computer, a supervises relationship between an employee and a department, a

performs relationship between an artist and a song, a proved relationship between a

mathematician and a theorem.

The model's linguistic aspect described above is utilized in the declarative database query

language ERROL, which mimics natural language constructs.

Page 6: ER Diagram

Entities and relationships can both have attributes. Examples: an employee entity might have

a Social Security Number (SSN) attribute; the proved relationship may have a date attribute.

Every entity (unless it is a weak entity) must have a minimal set of uniquely identifying

attributes, which is called the entity's primary key.

Entity-relationship diagrams don't show single entities or single instances of relations. Rather,

they show entity sets and relationship sets. Example: a particular song is an entity. The

collection of all songs in a database is an entity set. The eaten relationship between a child

and her lunch is a single relationship. The set of all such child-lunch relationships in a

database is a relationship set. In other words, a relationship set corresponds to a relation in

mathematics, while a relationship corresponds to a member of the relation.

Certain cardinality constraints on relationship sets may be indicated as well.

[edit] Diagramming conventions

Entity sets are drawn as rectangles, relationship sets as diamonds. If an entity set participates

in a relationship set, they are connected with a line.

Attributes are drawn as ovals and are connected with a line to exactly one entity or

relationship set.

Cardinality constraints are expressed as follows:

a double line indicates a participation constraint, totality or surjectivity: all entities in

the entity set must participate in at least one relationship in the relationship set;

an arrow from entity set to relationship set indicates a key constraint, i.e. injectivity:

each entity of the entity set can participate in at most one relationship in the

relationship set;

a thick line indicates both, i.e. bijectivity: each entity in the entity set is involved in

exactly one relationship.

an underlined name of an attribute indicates that it is a key: two different entities or

relationships with this attribute always have different values for this attribute.

Attributes are often omitted as they can clutter up a diagram; other diagram techniques often

list entity attributes within the rectangles drawn for entity sets.

Page 8: ER Diagram

Crow's Foot notation is used in Barker's Notation, SSADM and Information Engineering.

Crow's Foot diagrams represent entities as boxes, and relationships as lines between the

boxes. The ends of these lines are shaped to represent the cardinality of the relationship.

Usage of Chen notation is more prevalent in the United States, while Crow's Foot notation is

used primarily in the UK. Crow's Foot notation was used in the 1980s by the consultancy

practice CACI. Many of the consultants at CACI (including Barker) subsequently moved to

Oracle UK, where they developed the early versions of Oracle's CASE tools, introducing the

notation to a wider audience. Crow's Foot notation is used by these tools: ARIS, System

Architect, Visio, PowerDesigner, Toad Data Modeler, DeZign for Databases, Devgems Data

Modeler, OmniGraffle, and MySQL Workbench. CA's ICASE tool, CA Gen aka

Information_Engineering_Facility also uses this notation.

[edit] ER diagramming tools

There are many ER diagramming tools. Some free software ER diagramming tools that can

interpret and generate ER models, SQL and do database analysis are MySQL Workbench

(formerly DBDesigner), and Open ModelSphere (open-source). A freeware ER tool that can

generate database and application layer code (webservices) is the RISE Editor. The Open

Source Erviz takes a simple textual description of the ERD and then uses Graphviz to

automatically produce a nice, if slightly spaced out, layout.

Some of the proprietary ER diagramming tools are ARIS, Avolution, Aqua Data Studio,

dbForge Studio for MySQL, DeZign for Databases, ER/Studio, Devgems Data Modeler,

ERwin, MEGA International, ModelRight, OmniGraffle, Oracle Designer, PowerDesigner,

Rational Rose, Sparx Enterprise Architect, SQLyog, System Architect, Toad Data Modeler,

SQL Maestro, Microsoft Visio, Visible Analyst, and Visual Paradigm.

Some free software diagram tools just draw the shapes without having any knowledge of

what they mean, nor do they generate SQL. These include Gliffy[5]

, Kivio and Dia. DIA

diagrams, however, can be translated with tedia2sql.

Database design is the process of producing a detailed data model of a database. This logical

data model contains all the needed logical and physical design choices and physical storage

parameters needed to generate a design in a Data Definition Language, which can then be

used to create a database. A fully attributed data model contains detailed attributes for each

entity.

The term database design can be used to describe many different parts of the design of an

overall database system. Principally, and most correctly, it can be thought of as the logical

design of the base data structures used to store the data. In the relational model these are the

tables and views. In an object database the entities and relationships map directly to object

classes and named relationships. However, the term database design could also be used to

apply to the overall process of designing, not just the base data structures, but also the forms

and queries used as part of the overall database application within the database management

system (DBMS).[1]

Page 9: ER Diagram

The process of doing database design generally consists of a number of steps which will be

carried out by the database designer. Usually, the designer must:

Determine the relationships between the different data elements.

Superimpose a logical structure upon the data on the basis of these relationships.[2]

Contents

[hide]

1 ER Diagram (Entity-relationship model)

2 The Design Process

3 Determining data to be stored

4 Normalization

5 Types of Database design

o 5.1 Conceptual schema

o 5.2 Logically structuring data

o 5.3 Physical database design

6 See also

7 References

8 Further reading

9 External links

[edit] ER Diagram (Entity-relationship model)

A sample Entity-relationship diagram

Database designs also include ER(Entity-relationship model) diagrams. An ER diagram is a

diagram that helps to design databases in an efficient way.

Page 10: ER Diagram

Attributes in ER diagrams are usually modeled as an oval with the name of the attribute,

linked to the entity or relationship that contains the attribute.

Within the relational model the final step can generally be broken down into two further

steps, that of determining the grouping of information within the system, generally

determining what are the basic objects about which information is being stored, and then

determining the relationships between these groups of information, or objects. This step is not

necessary with an Object database.[2]

[edit] The Design Process

The design process consists of the following steps[3]

:

1. Determine the purpose of your database - This helps prepare you for the remaining

steps.

2. Find and organize the information required - Gather all of the types of information

you might want to record in the database, such as product name and order number.

3. Divide the information into tables - Divide your information items into major

entities or subjects, such as Products or Orders. Each subject then becomes a table.

4. Turn information items into columns - Decide what information you want to store

in each table. Each item becomes a field, and is displayed as a column in the table.

For example, an Employees table might include fields such as Last Name and Hire

Date.

5. Specify primary keys - Choose each table’s primary key. The primary key is a

column that is used to uniquely identify each row. An example might be Product ID

or Order ID.

6. Set up the table relationships - Look at each table and decide how the data in one

table is related to the data in other tables. Add fields to tables or create new tables to

clarify the relationships, as necessary.

7. Refine your design - Analyze your design for errors. Create the tables and add a few

records of sample data. See if you can get the results you want from your tables. Make

adjustments to the design, as needed.

8. Apply the normalization rules - Apply the data normalization rules to see if your

tables are structured correctly. Make adjustments to the tables.

[edit] Determining data to be stored

In a majority of cases, a person who is doing the design of a database is a person with

expertise in the area of database design, rather than expertise in the domain from which the

data to be stored is drawn e.g. financial information, biological information etc. Therefore the

data to be stored in the database must be determined in cooperation with a person who does

have expertise in that domain, and who is aware of what data must be stored within the

system.

This process is one which is generally considered part of requirements analysis, and requires

skill on the part of the database designer to elicit the needed information from those with the

domain knowledge. This is because those with the necessary domain knowledge frequently

cannot express clearly what their system requirements for the database are as they are

Page 11: ER Diagram

unaccustomed to thinking in terms of the discrete data elements which must be stored. Data

to be stored can be determined by Requirement Specification.[4]

[edit] Normalization

Main article: Database normalization

In the field of relational database design, normalization is a systematic way of ensuring that

a database structure is suitable for general-purpose querying and free of certain undesirable

characteristics—insertion, update, and deletion anomalies—that could lead to a loss of data

integrity.

A standard piece of database design guidance is that the designer should create a fully

normalized design; selective denormalization can subsequently be performed, but only for

performance reasons. However, some modeling disciplines, such as the dimensional

modeling approach to data warehouse design, explicitly recommend non-normalized designs,

i.e. designs that in large part do not adhere to 3NF.

[edit] Types of Database design

This section does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be

challenged and removed. (August 2010)

[edit] Conceptual schema

Main article: Conceptual schema

Once a database designer is aware of the data which is to be stored within the database, they

must then determine where dependancy is within the data. Sometimes when data is changed

you can be changing other data that is not visible. For example, in a list of names and

addresses, assuming a situation where multiple people can have the same address, but one

person cannot have more than one address, the name is dependent upon the address, because

if the address is different, then the associated name is different too. However, the other way

around is different. One attribute can change and not another.

(NOTE: A common misconception is that the relational model is so called because of the

stating of relationships between data elements therein. This is not true. The relational model

is so named because it is based upon the mathematical structures known as relations.)

[edit] Logically structuring data

Once the relationships and dependencies amongst the various pieces of information have

been determined, it is possible to arrange the data into a logical structure which can then be

mapped into the storage objects supported by the database management system. In the case of

relational databases the storage objects are tables which store data in rows and columns.

Each table may represent an implementation of either a logical object or a relationship joining

one or more instances of one or more logical objects. Relationships between tables may then

Page 12: ER Diagram

be stored as links connecting child tables with parents. Since complex logical relationships

are themselves tables they will probably have links to more than one parent.

In an Object database the storage objects correspond directly to the objects used by the

Object-oriented programming language used to write the applications that will manage and

access the data. The relationships may be defined as attributes of the object classes involved

or as methods that operate on the object classes.

[edit] Physical database design

The physical design of the database specifies the physical configuration of the database on

the storage media. This includes detailed specification of data elements, data types, indexing

options and other parameters residing in the DBMS data dictionary. It is the detailed design

of a system that includes modules & the database's hardware & software specifications of the

system.