Minggu, 07 Oktober 2012

Membangun Model Spesifikasi Software

Apa yang dimaksud dengan Membangun Model Spesifikasi Software?

Kita tahu bersama, setelah tim pengembang dan stakeholders selesai melakukan elisitasi dan pendefinisian persyaratan perangkat lunak, maka langkah selanjutnya adalah membangun model spesifikasi perangkat lunak. Model spesifikasi perangkat lunak, merupakan "gambaran" awal dari setiap kebutuhan fungsional (dan non fungsional) yang akan dikembangkan, sebagai fungsi (atau fitur) perangkat lunak tersebut.

Proses membangun model spesifikasi perangkat lunak, tidaklah sulit, namun memerlukan fokus perhatian yang extra dari tim pengembang. Aktivitas ini merupakan tugas system analyst, dengan tujuan, membangun model sistem perangkat lunak dgn "bahasa" yang dapat dipahami oleh tim pengembang dan, tentu saja stajeholders. Membahasakan sistem perangkat lunak dalam "bahasa" teknis, namun harus dapat dipahami oleh stakeholders adalah tantangan terbesar yang harus dihadapi oleh system analyst.

Biasanya, setelah daftar kebutuhan perangkat lunak, disepakati oleh stakeholders dan tim pengembang, maka system analyst akan segera membuat apa yang disebut requirements model. Inilah yang disebut representasi teknis dari sistem perangkat lunak yang akan dibangun. Proses pemodelan teknis dari requirements software ini, akan menggunakan teks dan diagram.

Aturan-aturan pemodelan spesifikasi teknis, ditulis oleh DeMarco, hingga kini masih digunakan dalam disiplin rekayasa perangkat lunak modern. Alan Davis mengatakan bahwa: ... Suatu pandangan kebutuhan dari sudut pandang tertentu tidak memadai untuk memahami atau mendeskripsikan perilaku yang dikehendaki dari suatu sistem yang kompleks ..., atas dasar pertimbangan DeMarco dan Alan Davis tersebut, maka disiplin pemodelan spesifikasi sistem perangkat lunak, dibedakan menjadi beberapa sudut pandang, yakni:
1). Model berbasis Skenario (scenario-based); model ini merupakan model perangkat lunak, dari sudut pandang user atau pengguna;
2). Model Data; yakni merupakan model yang menjelaskan bagaimana data ditransformasikan dalam sistem perangkat lunak yang akan dikembangkan;
3). Model Kelas (class-oriented); yakni merupakan model yang mendefinisikan objects, attributes serta relasi antar kelas yang ada;
4). Model berorientasi aliran (flow-oriented); adalah model yang menjelaskan bagaimana hubungan antara elemen fungsional dan data berinteraksi; bagaimana data dikelola, saat melintasi sistem perangkat lunak;
5). Model Perilaku (behavioral); yakni menggambarkan bagaiman sistem perangkat lunak "berperilaku" terhadap event-event yang datang dari luar sistem.

Jadi, banyak "model" bukan untuk membingungkan tim pengembang terlebih stakeholders. Justru dengan memandang sistem perangkat lunak dari "berbagai" perspektif, maka tim pengembang dan stakeholders akan semakin "memahami" perangkat lunak yang akan dikembangkan. Singkatnya, model membantu "proses pendefinisian" perangkat lunak.

Menurut Pressman, terdapat 3 tujuan dari tahap ini, yaitu:
1). untuk menjelaskan apa yang diinginkan oleh stakeholders;
2). untuk meletakkan dasar2 bagi tahap sottware design berikutnya;
3). untuk menajamkan sekumpulan requirements perangkat lunak, yang dapat divalidasi, saat akan membangun sistem perangkat lunak tersebut.




Requirements Software (again)

Sekali lagi, saya ingin menulis tentang Requirements Perangkat Lunak. Mengapa sekali lagi, karena sebenarnya sudah banyak tulisan saya tentang langkah-krusial ini. Silahkan melihat link URL dibawah ini untuk acuan tulisan-tulisan saya sebelumnya ....
1. Tentang memahami software requirements bisa dilihat di:
http://stanlysk.blogspot.com/2012/09/memahami-requirements-perangkat-lunak.html
dan disini:
http://stanlysk.blogspot.com/2012/07/requirements-engineering.html
2. Tentang Teknik QFD dalam pendefinisian Requirements Perangkat Lunak, dapat dilihat disini: 
http://stanlysk.blogspot.com/2012/10/qfd-dan-elisitasi-software-requirements.html

Semua tulisan diatas, sudah menjelaskan banyak mengenai pengertian, metode dan dokumentasi Persyaratan Perangkat Lunak.

Berikut ini, saya ingin memberikan sebuah kumpulan tautan lainnya, terkait metode pendefinisian perangkat lunak.
1. Tentang Pengertian Requirements Perangkat Lunak:
http://www.barbarabea.com/?page_id=134

2. Tentang menggunakan Excel dalam Melengkapi Pendefinisian Perangkat Lunak, bisa dilihat disini.: http://www.barbarabea.com/?page_id=11

Tulisan diatas, merupakan sebuah teknik yang sedikit berbeda, karena tidak menggunakan pendekatan buku teks, melainkan berfokus pada pendekatan praktisi. Namun demikian, pendekatan tersebut layak untuk dicoba, mengingat adanya kelemahan dalam bahasa notasi UML.

Sebuah slide prsentasi mengenati teknik pendefinisian perangkat lunak juga dapat ditemukan disini: http://www.barbarabea.com/wp-content/uploads/2011/07/Requirements%20Patterns%20Presentation%202011%20Public%20Domain.ppt

Demikian, kiranya dapat bermanfaat menambah khasanah pengetahuan dan kompetensi kita dalam mendefinisikan perangkat lunak!

Selasa, 02 Oktober 2012

Membuat Use Case dan Use Case Description 2

Berikut ini adalah sebuah teknik pembuatan Use Case Diagram pada studi kasus aplikasi berbasis Web 2.0. Langkah-langkah penentuan requirements, mengikuti pendekatan agile, yakni dimulai dengan pendefinisian masalah, kemudian dilanjutkan dengan pemodelan permasalahan. Persyaratan perangkat lunak, dikelompokkan dengan teknik QFD, dan menghasilkan persyaratan fungsional dan non fungsional.


1.1 Background
The using of internet by the government instituion and society rapidly grow. Internet user grows in number and services. North Sulawesi Local Government, especially the office of Investment Expert Staff seeing this phenomena as opportunity to promote exotic tourism. Using Web 2.0 technology to create competitive advantage as strategic and crusial considerations to foster investment climate for North Sulawesi tourism. Utilization of Web based 2.0 technology is expected to improve service, market share and shaping public opinion by providing targeted and comprehensive information on North Sulawesi exotic tourism, which is easily obtained by anyone, anywhere, anytime using any device.

1.2 Problems
Exotic tourism places owned by North Sulawesi Province is threatened by the onslaught of tourism promotions of some new netrants such as Wakatobi and Raja Amplat. While the number of foriegn tourist realtively declined over the 5 years before, the tourism potential of Bunaken National Park is not fully optimized by stakeholders. Lack of comprehensive information about Bunaken National Park is one of the resons for the decline of foreign tourist visiting. Structuring a comprehensive information related to the potential of tourism placesm tourism activities is one of a strategic solution that must be done to fix the pre-eminent tourism promotion. In addtion, the information must be displayed in such as interative user interface, constantly available for 24/7 and able to be found easily. Web Portal Amazing North Sulawesi is expected to be effective solution.

1.3 Functional Requirements
List of functional requirements are:
1). Viewing Info
1.1 The system can display information about the ads, profile, headline news, main headline news, North Sulawesi Profile and general articles.
1.2  The system can display links.
1.3  The system can displat visitor counter for each pages.
1.4 The system can display currency value and weather report.
2). Managing Info
2.1 Input ads, profile, news, headline, main headline and articles.
2.2 Edit ads, profile, news, headline, main headline and articles.
2.3 Delete ads, profile, news, headline, main headline and articles
2.4 Save ads, profile, news, headline, main headline and articles.
3). Collaborating
3.1 The system must provide facilities for  posting and reply comments for news, headline, main headline and articles.
3.2 The system must provide sharing and collaborating tools for social media, i.e: facebook, twitter dan G+.
3.3  The system musti provide polling feature.

1.4. Non-Functional Requirements
For non-functional requirements are distinguished in terms of operational, performance and security. Some non-functional terms to be met by the system are as follows:
Operational Requirements (the physical and technical systems that apply):
1) The system must be displayed in Indonesian and English
2) The system can be operated on a smartphone, desktop and notebook on the optimal display resolution.
3) The system must be able to work on all web browsers.
4) The System must running through the operating system Windows and Linux.
Performance Requirements (speed, capacity and reliability):
1) The system must be used or operated within 24 hours a day, 7 days a week and 356 days a year.
2) Each user interaction with the system should not be longer than 3 seconds.
Security Requirements
1) The system must provide privilege access for groups of admins and users.
2) The system must provide verification procedure for posting comments.

Gambar Use Case dan Use Case Description adalah sebagai berikut:





Senin, 01 Oktober 2012

Membuat Use Case dan Use Case Description


Membangun use case model, merupakan salah satu kompetensi yang HARUS dikuasai oleh seorang software engineers. Apalagi saat menggunakan pendekatan model driven engineering dan membangun aplikasi berorientasi object, maka kemampuan membuat use case model survey, menjadi sangat krusial. Tentu saja, dengan melatih diri berulang-ulang, maka kompetensi membuat use case model survey akan makin baik.

Berikut saya berikan sebuah contoh, membuat use case model pada aplikasi tes online. Langkah penyelesaiannya adalah 1.1 Membuat deskripsi masalah yang akan diselesaikan; 1.2 Membuat model penyelesaian masalah. Kemudian melakukan 1.3 Requirements Capturing. Berikut adalah penjelesan detailnya:

1.1 Problem description
This case study comprises an electronic examining system. A teacher makes use of the system to give an examination to her/his students. We assume that creating an examination is a separate task performed out of the scope of the examining system. This system should be made available on the web, so that both the teacher and the students have remote access to it. 
A teacher creates a test and stores this test into a test repository. Afterwards the teacher can assign this test to a group of students. There can be different types of tests but all of them must have a deadline defined by the teacher. So, for example the teacher may propose an examination in which the students are requested to write an essay about a certain subject or to solve some questions. The former activity may take several days to be completed while the latter may take only a limited number of minutes. The teacher also evaluates a student’s test answer by attaching comments and grading it.
When a student access the system, this student can consult his/her personal profile and do a test. A student personal profile contains his/her personal information, the list of tests to be done and the answers, grades and comments of completed tests. A student does a test by submitting the answers for this test. Once an answer is submitted it can not be resubmitted. All the student personal profiles are stored in a profile repository, however the access of a student is limited to his/her personal profile.

1.2 Problem modelling
This section reports the results of case study modelling activities. Each of the following subsections presents some of the results of these activities, viz., requirements capturing and analysis. The complete UML documentation of this case study can be found in Fig below. The development of this case study was performed making use of Rational Rose as a modelling support tool.

1.3 Requirements capturing
The requirements of the electronic examining system were captured by means of a use case diagram according to the following steps:
1. Identification of the actors;
2. Identification of the use cases;
3. Description of each use case.

1) Process Identification of the Actors
The identification of the actors of the system was straightforward. We simply identified the roles of the potential users of the system. The identified actors are the following:
Student, who is a person who takes exams and consults some personal and test related information that are stored in his/her profile. The student has limited access rights to the system;
Teacher, who is a person that assigns tests to groups of students and grade the assigned tests. The teacher has full rights to the system.

2) Process Identification of the use cases
The identification of the use cases was more complex. As a rule of thumb to identify a use case we considered the following criteria: a use case should represent a sequence of related actions that provide some functionality to the actor when successfully executed. Whenever a variation on a normal behaviour or a repetition of a separate use case were identified, the extends and uses relationships between use cases were used. 

The identified use cases are the following:
Access Student Profile, which is used to access the student profiles. All student profiles are kept in a profile repository ordered according to the student groups that the student belongs. The teacher reads and writes the student profile, while the student reads the student profile. The student can write to his/her profile only the test results. 
Access Test Repository, which is used to access the test repository. The teacher can read and write to the test repository, while the student can read from the test repository only the tests that are assigned to his/her profile.
Assign Test, which is used to select a test from the test repository and assign the selected test to a group of students.
Consult Profile, which is used to consult a student personal profile. The student profile contains the student personal information, the tests to be done, the test answers and the grades received so far. The student profiles are stored in a profile repository. A student has access rights only to his/her personal profile.
Do Test, which is used to do a test. The student selects one of the tests from his/her profile. The student retrieves this test from the test repository. Then, the student does the test and submits the test answers, which are stored in his/her profile.
Evaluate Test, which is used to evaluate a performed test. The evaluation of a test consists of making comments concerning the answers provided and grading the test. The teacher first selects a test to be evaluated and then retrieves from the student profiles some or all the answers provided for that test.
Register Test, which is used to register and store one test in the test repository.

Each use case was described briefly, by means of few sentences that summarises the actions (see previous use case descriptions), and in a step-by-step manner, by means of a detailed description of what the system needs to do when interacting with its actors. 

Detailed Use cases Description
1. Access Student Profile
This use case is used to access the student profiles All student profiles are kept in a profile repository ordered according to the student groups that the student belongs. The teacher reads and writes the student profile, while the student reads the student profile. The student can write to his/her profile only the test results. 
----------------------------------------------
Detailed use case description (I):
1 - Teacher assigns a test to group of students.
Detailed use case description (II):
1 - Teacher retrieves a student test answer
2 - Teacher adds a comment to the test answer.
3 - Teacher grades the test answer.
PS: 2 is optional. 1/2/3 can be executed in any order.
Detailed use case description (III):
1 - Student browses his/her personal information.
2 - Student browses his/her test list.
3 - Student browses his/her grade list.
4 - Student browses his/her test comments.
PS: 1/2/3/4 can be executed in any order.
Detailed use case description (IV):
1 - Student selects a test to do.
2 - Student does a test, storing the test result into his/her personal profile.

2. Access Test Repository
This use case is used to access the test repository. The teacher can read and write to the test repository, while the student can read from the test repository only the tests that are assigned to his/her profile.
----------------------------------------------
Detailed use case description (I):
1 - Teacher stores a test into the test repository.
Detailed use case description (II):
1 - Teacher browses the tests available in the test repository.
Detailed use case description (III):
1 - Teacher retrieves a test from the test repository. 
Detailed use case description (IV):
1 - Student reads a test from the test repository with restrictions.

3. Assign Test 
This use case is used to select a test from the test repository and assign the selected test to a group of students.
---------------------------------------------
Detailed use case description:
1 - Teacher browses test list/repository
2 - Teacher select a test and assign it to a group of students. The selected test is added to the test list of the group of students.

4.Consult Profile
This use case is used to consult a student personal profile. The student profile contains the student personal information, the tests to be done, the test answers and the grades received so far. The student profiles are stored in a profile repository. A student has access rights only to his/her personal profile.
-------------------------------------------
Detailed description:
1 - Student browses his/her personal information.
2 - Student browses his/her assigned test.
3 - Student browses his/her grades.
4 - Student browses his/her test comments.
PS: 1/2/3/4 can be executed in any order.

5. Do Test
This use case is used to do a test. The student selects one of the tests from his/her profile. The student retrieves this test from the test repository. Then, the student does the test and submits the test answers, which are stored in his/her profile.
----------------------------------------------
Detailed use case description:
1 - Student selects a test from the test list.
2 - Selected test is loaded from the test repository.
3 - Student does the test. Test answers are stored stored in the student profile.

6. Evaluate Test
This use case is used to evaluate a performed test. The evaluation of a test consists of making comments concerning the answers provided and grading the test. The teacher first selects a test to be evaluated and then retrieves from the student profiles some or all the answers provided for that test.
----------------------------------------------
Detailed description:
1 - Teacher retrieves the test from the test repository.
2 - Teacher retrieves student test answers from the profile repository.
3 - Teacher adds comment to the student test 
4 - Teacher grades the student test
PS: 3 is optional

7. Register Test
This use case is used to register and store a test into the test repository.
--------------------------------------------
Detailed use case description: 
1 - Teacher registers a test to the test repository. The test is stored into the test repositor.

Gambar Use Case dari Studi Kasus diatas adalah ...




QFD dan Elisitasi Software Requirements


Terdapat beberapa teknik untuk mendefinisikan persyaratan perangkat lunak. Salah satunya adalah yang disebut Quality function deployment (QFD). Pressman menjelaskan bahwa QFD merupakan salah satu teknik manajemen kualitas yang dapat "menterjemahkan" kebutuhan pelanggan ke dalam bentuk persyaratan software yang teknis; dengan berpedoman pada kebutuhan pelanggan. Teknik QFD dimulai dengan mengklasifikasikan requirements ke dalam tiga tipe yakni normal, expected dan exciting. Kebutuhan "normal" adalah persyaratan yang mandatory dikembangkan oleh tim pengembang. Sementara untuk kategori expected dan exciting adalah persyaratan yang dapat "ditunda". Klasifikasi pesyaratan kebutuhan ini didasarkan atas value (atau manfaat) yang bisa diperoleh dari implementasi fitur tersebut pada sistem aplikasi perangkat lunak yang akan dikembangkan. Tentu saja dibutuhkan sebuah proses yang disebut "value analysis" untuk mengidentifikasi secara lengkap setiap persyaratan perangkat lunak tersebut.

Melakukan elisitasi persyaratan perangkat lunak, bukanlah pekerjaan yang mudah, meski demikian dengan sering melakukan latihan, maka tim pengembang akan makin baik. Penyebabnya adalah user yang sering tidak memahami perangkat lunak yang akan dibangun dan komunikasi tim pengembang yang tidak efektif. Kedua faktor ini sering menyebabkan "gagalnya" proses elisitasi mendapatkan persyaratan perangkat lunak dengan lengkap.

Menurut Pressman, terdapat beberapa produk yang dapat dihasilkan dari proses elisitasi persyaratan perangkat lunak ini, diantaranya adalah:
1) Statement of need and feasibility
2) Bounded statement of scope for system or product
3) List of stakeholders involved in requirements elicitation
4) Description of system’s technical environment
5) List of requirements organized by function and applicable domain constraints
6) Set of usage scenarios (use-cases) that provide use insight into operation of deployed system
7) Prototypes developed to better understand requirements 

Setelah melakukan proses elisitasi persyaratan perangkat lunak, maka tim pengembang akan membuat dokumen vision. Sebuah contoh dari dokumen vision tersebut dapat dilihat disini:

Untuk penjelasan lebih mendalam mengenai teknik QFD dapat mengacu pada URL dibawah ini:
dan