به نام خدا

Fatal Error
Welcome To Fatal Error Weblog

  Content Management System Software Requirements Specification

Software Requirements Specification

1.      Introduction

1.      Purpose :

The purpose of this SRS is to make a good perspective about the system and allow the team members to focus on the functional requirements. As the result this document can help the programmers to implement the software easier.

1.2 Scope

This document provides a good landscape from project and helps the costumer learn more about this document.

The scope of this document is rest of the project It means that the rest of the project is influenced by this document and this document's change can change the path of the project.

Here  we have listed some of functional and non-functional requirements of the system for the first step of the project.

1.3 Definitions , Acronyms And Abbreviations

See The Glossary.

/* Notice : This definition can be changed by other teams . We can remove administrator from system and allow writers to write in systems or we can let any user to register as writer without any limitation and provide us some content */

1.4 References

Digital Content Management System ,Yan Han,Systems Librarian University Of Arizona 2004.

2.      Overall Description

Product Perspective & Function

 

 

Provide a stable and extensible foundation to provide preservation and access services for end users .

 

Provide a stable and extensible foundation to provide preservation access and information sharing for other information systems .

 

Provide a long-term strategy for preserving , organizing and disseminating locally developed and external content .

 

Provide a long-term strategy for preserving , organizing and disseminating meta data associated with the content .

 

Provide a stable and extensible foundation to support reuse able content.

Requirements Subsets

 

 

Organization Requirements (Content , meta data)

 

Presentation Requirements

 

Access Requirements(Internal , External , Authentication , Systems)

 

Preservation Requirements

User Characteristics

 

 

In This System users are grouped in 4 groups : end user , writer , administrator , manager.

 

Each user can do his defined actions.

 

3.      Specific Requirements

3.1 Functionality

 

1

The system must keep the original file’s name, size and created date.

2

Users must be able to download digital objects and all associated meta data from the system.

3

Writers(any user who writes in system) must be able to modify digital objects within the system.

4

System must provide online help.

5

System must be able to be accessible all the time.

6

System must provide a persistent unique URL for a digital object.

7

System must export content and meta data as original format.

8

It is desirable to transform one meta data schema to another meta data schema.

9

The system must provide a web-based interface for all its functionality.

10

The system should be able to present a unicode -compatible interface.

11

The system should be able to allow users to submit feedback on system problems.

12

The system must be able to notify users current state of the task.

13

The system must be able to provide statistical usage and relevant reports.

14

Users must be able to search content via meta data.

15

The system should provide full-text searching.

16

The system should provide Boolean (AND, OR, NOT)searching.

17

The system must display rights information to users.

18

The system must provide help documentation for access methods(API)

19

The system should provide other standard web services access to content and meta data.

20

The system must be able to support different roles.

21

The system must be able to support the feature that groups are assigned to one or more roles.

22

The system must be able to support the feature that users are assigned to one or more groups.

23

The system should support the following roles : End user , Writer , Administrator , Manager

24

Manager must be able to do ANYTHING within the system.

25

Administrator : must be able to create/add/delete writers.

26

Writers : must be able to create/edit/add/delete meta data and content in defined(not ALL) collections.

27

End user : only can browse and search meta data and content.

28

The system must use authorization to support different roles within this system.

29

The system must be ACID (Atomicity, Consistency, Isolation, Durability).

30

The system must be unicode compatible for all functionalities.

31

The system must store meta data records separately from content.

32

 The system must be able to store any file format.

33

The system must be able to keep error/usage/debug log files.

 

3.2 Usability

Required training time for a normal users and a power user to become productive at particular operations must be less than minutes or even seconds. If this system is going to work as Wikipedia.

System must use HTML standards to work which are more popular.

3.3 Reliability

System must be available all the time.

System must be able to answer to many users in the minimum turnaround time.

Mean Time Between Failures : (it depends on the hardware) but in the worst state it can be 3 months.

Mean Time To Repair : in the worst condition it must be near 36 hours.

Accuracy : ?

Maximum Bugs : ?

Maximum Defects : ?

3.4 Performance

The system must notify and update users’ request status within reasonable time.

The average response time for our system must be less than 3 seconds.

Throughput for our system must be 100 per second.

Capacity of the must be less more than 100 costumers transaction.

3.5 Supportability

The system must take a backup from contents every day.         

System must receive latest information about latest version of software.

3.6 Design Constraints

Designer must adopt a modular layout and approach, so as to facilitate a flexible management of content through a web content management system.

Designer must implementation and use of standard, and accessible, dynamic PHP.

Designer must prepare style sheet definitions and employ a moderate use of images.

 

3.7 Online User Documentation And Help System Requirements

system must provide an animated film to help managers and administrators to work better , this film can be presented after installing the system.

3.8 Purchased Components

/* As the system is going to be implement on internet or LAN or other types of networks the following list contains the purchased components */

Designer desired to implement the system on a hired Apache server or prepare a Apache server himself ( this item depends on the organization and the budget )

Designer must prepare a MySQL database for developers and the latest version for PHP and install them on the computer they are going to work , this computer acts as server , but it is not the main server , this server will simulate the real states for us. Even he must prepare these softwares for team members.(these softwares are available on internet)

Designer must prepare a computer as server to test the system.

3.9 Interfaces

3.9.1 User Interfaces

One of the user interfaces are built by PHP. And they can access to their account by internet. Each user according to his role in system has his own interface.

Somehow this software will offer a good interface for presenting contents and data on the system. And adding / deleting  or updating meta data and content for users.

3.9.2 Hardware Interfaces

Our system will be implemented in a server on internet so it must have some Hardware interfaces for its IP address and other requirements to make a host for our CMS. This software will be implemented by PHP , and Apache server and Our OS will make good interface for us to connect to those Hardware components(NIC , Ports , Modems , etc).

Another important interface for system is its report which is available  when the manager or administrators request them. Presenting this report in digital form is easy but for printing it on a paper we must make an interface for this problem.

/* As the Internet Explorer and other web browsers provide a good  interface to print. So the only important thing is to preview a printable or a PDF page on the internet */

3.9.3 Software Interfaces

One of the important software interfaces is a connection between our PHP application and Database. As PHP is consistent with My SQL , we must not be so worried about this matter. And the most important thing is to make a high secure and high performance system in our network configurations by using secure protocols and firewalls for our system.

/* These characteristics are special for hardware part of our system not software part */

3.9.4 Communications Interfaces

this part is explained in previous items.

3.10 Licensing Requirements , Legal , Copyright And Other Notices

As this system will be implemented by PHP , so the server which we are going to install our software on , can be Windows or Linux server. As the Linux server is cheaper than windows server so we will use Open Source Licensing such GFDL (GNU Free Documentation License) which allow other people to see , copy and establish it but they are not free to change it ! The main purpose of GFDL is to offer a good documentation or manual for users. This license is a sort of Copyleft.

تگ های این مطلب :content management system
و تگ های این مطلب :software requirements specification
و تگ های این مطلب :سیستم مدیریت محتوا
نویسنده : Fatal Error | ساعت ٢:۳٩ ‎ب.ظ روز ۱۳۸۸/۱/٤
پيام هاي ديگران () | لینک ثابت

  جاوا در لینوکس

جاوا در گنو/لینوکس


زبان Java یکی از قدرتمندترین و کارامدترین زبان‌های بـرنامه سازی است که توسط شرکت SUN Microsystems طراحی شده است. این زبان که یک زبان کاملا شی گراست دارای قابلیت‌های بسیار زیادی در زمینه‌های مختلف می‌باشد.

Java و تکنولوژی‌های وابسته به آن در زمینه‌هایی چون برنامه‌های کاربردی، وب، شبکه، امنیت، پایگاه داده، پردازش موازی، طراحی و پردازش چند رسانه ای و غیره کاربرد بسیار دارند.

سوالی کـــه ممکن است برای هر توسعه دهنده نرم افزارهای Java کـه به تازگی با دنیای سیستم عامل لینوکس آشنا شده است مطرح شود، این است که در لینوکس چگونه می‌توان از Java استفاده نمود؟ مــا در این مقاله به بررسی این موضوع خواهیم پرداخت.

برای این منظور دو راه در لینوکس وجود دارد که نسبت به بقیه موارد متعارف‌تر است:

۱) استفاده از بسته JDK شرکت SUN

۲) استفاده از کامپایلر و دیگر ابزار های مربوط به Java در مجموعه GCC

 

بسته JDK

همان طور که می دانید یکی از Platform های متعددی کــه Java پشتیبانی می‌کند، لینــوکس است . یعنی به سادگی می‌توانید بــا مــراجعه به سایت جاوا [۱] و یا یکی از mirror های آن و دریــافت بستـــه JDK و نصب آن، از ایـــن بســـته استفاده کنید. بــرای این کار فایل با پسوند bin را download کـرده و به صورت زیر اجرا کنید تا JDK بر روی سیستم شما نصب شود.

# ./jdk-1_5_0_04-linux-i586.bin

 

پس از اجرای این دستور فایل‌ها از حـالت فشرده خارج شده و در دایرکتوری جاری شما قرار خواهند گرفت. با استفاده از دستور export برای تنظیم متغیر های PATH و CLASSPATH می‌توانید از این بسته استفاده کنید.

$ export PATH=/home/<user>/jdk1.5.0_04/bin:$PATH

$ export CLASSPATH=/home/<user>/jdk1.5.0_04/lib:<other paths to class libraries>

بـــرای اطلاعات کامــلتر در مورد نصب و پیــکربندی JDK به فایلـهــای install.html و system-configurations.html در وب سایت جاوا مراجعه کنید.

 

نحوه استفاده از ابزارهای JDK

بسته JDK دارای ابزارهای مختلفی می‌باشد. در اینجا به چند نمونه از مهم ترین این ابزارها خواهیم پرداخت.

javac : این ابزار کامپایلر Java می‌باشد که کدهای منبع Java را به bytecode تبدیل می‌کند. صورت کلی این دستور به صورت زیر می باشد:

$ javac [options] [sourcefiles.java]

معمــولا option هــای زیــادی با javac به کار نمی‌رود. شــاید مهم ترین آنها g- و classpath- باشند. بــرای آگــاهــی از لیست کامل این گزینه ها دستور زیر را اجرا کنید:

$ man javac

java: این ابزار یک Java Application را اجرا می کند. صورت کلی این دستور به دو صورت زیر می باشد:

$ java [options] class [arguments]

$ java [options] –jar file.jar [arguments]

Options ورودی هایی هستند که می‌توانند نحوه اجرا را تغییر دهند. مانند javac معمـــولا option های زیــادی با java به کار نمی‌رود. برای اطلاع از لیست کامل این option ها دستور man java را اجرا کنید.

Class نام کلاسی است که به عنوان main صدا زده خواهد شد. file.jar نام jar فایلی است که مورد اجرا قرار می‌گیرد و در نهایت arguments ورودی‌هایی هستند که به تابع اصلی برنامه پاس خواهند شد.

jar: این ابزار چندین فایــل را بــه صــورت یــک فــایــل jar ترکیب می‌کنـــد. این ابزار می تواند jar فایل را به روز کند، آن را Extract کند، محتوای آن را لیست کند و یا به آن یک index اضافه کــنــد. ایــن دستـور دارای صورت‌های بسیار زیادی می‌باشد. برای استفاده مناسب از این ابزار به manual page آن مراجعه کنید.

jdb: برنامه اشکال زدایی کدهای Java – صورت کلی این دستور به صورت زیر می باشد:

$ jdb [options] class [arguments]

یک مثال: فرض کنید که دو فایل Hello.java و MyString.java داریم و کدهای زیر را به صورت زیر در ان وارد کرده‌ایم .

/* Hello.java */

public class Hello {

public static void main(String args[]) {

MyString str = new MyString();

str.add(“Hello”);

str.add(“World”);

str.print();

}

}

/* MyString.java */

public class MyString {

private String string = “”;

public void add(String newword) {

if (string.length() > 0)

string += “ ”;

string += newword;

}

public void print() {

if (string.length() > 0)

System.out.println(string);

else

System.out.println(“The string is empty”);

}

}

به سادگی با دو دستور زیر می‌توانید این برنامه کامپایل و اجرا نمایید:

$ javac Hello.java

$ java Hello

 

نحوه استفاده از ابزارهای GCC

یکی از زبان‌های مــورد پشتیبانی در مجــمــوعه بـسیــار مـعروف GCC کامپایلر زبان Java می باشد . این مجموعه دارای ابزارهای زیادی در ارتباط با Java می‌باشد. مــهـم ترین ابزارهای آن که ما در این مقاله به آنها خواهیم پرداختjar ،gij gcj می‌باشند.

ابزارهای مجموعه GCC کاملا با استاندارد Java مطابقـت دارند بدین معنی که اگر شما کد Java ای را با استفاده از GCC کامپایل کنید بدون هیچ گونه ایرادی با استفاده از ابزارهای JDK قابل اجرا می باشد و بالعکس.

gcj: کامپایلر کدهای Java در مجموعه GCC ( معادل javac در JDK )

gij: مترجم Java bytecode در مجموعه GCC ( معادل java در JDK )

jar: ابزاری برای Java Archives ( معادل jar در JDK )

مــزیتی کــه ابـزارهای GCC بر ابزارهای JDK دارند این است که می‌توانند عملیات بسیار بیشتری را بر روی کدهای Java انجام دهند. برخی از این عملیات عبارتند از: ایــجــاد کد اسمبلی – ایجــاد کتابخانه ( static و shared ) و از همه مهمتر تولید برنامه قابل اجرا. در زیر به این موارد خواهیم پرداخت:

 

عملیاتی بر روی یک فایل

فرض کنید که کد Java زیر را داشته باشیم:

/* MyHello.java */

public class MyHello {

public static void main(String args[])

{

System.out.println(“Hello World”);

}

}

برای تبدیل این کد به یک کد اجرایی دستور زیر را وارد کنید.

$ gcj --main=MyHello --Wall MyHello.java -o MyHello

بایستی با استفاده از main-- کلاس اصلی را مشخص کنید و برای اجرای ان به صورت زیر عمل کنید:

$ ./MyHello

برای تبدیل همین کد به bytecode دستور زیر را به کار ببرید.

$ gcj --C --Wall MyHello.java

و برای اجرای ان به دو صورت زیر می توانید عمل کنید.

$ gij MyHello

$ java MyHello

 

برای تبدیل این کد Java به object file دستور زیر را به کار ببرید.

$ gcj -c MyHello.java

و برای تبدیل object file ها به فایل اجرایی دستور زیر را به کار ببرید:

$ gcj --main=MyHello MyHello.o -o MyHello

و برای تبدیل فایل bytecode به فایل اجرایی دستور زیر را به کار ببرید:

$ gcj MyHello.class -o MyHello

و در نهایت برای تولید کد اسمبلی دستور زیر را به کار ببرید:

$ gcj -S MyHello.java

عملیاتی بر روی چند فایل

مثال بخش مربوط به JDK که شامل دو فایل بود را در نظر بگیرید . برای تبدیل ان مثال به برنامه قابل اجرا دستور زیر را به کار ببرید.

$ gcj --main=Hello Hello.java MyString.java -o Hello

$ ./Hello

می توانید هر کدام از دو فایل Java را به object file تبدیل کرده و با یکدیگر لینک کنید به صورت زیر:

$ gcj -c Hello.java

$ gcj -c MyString.jaav

$ gcj --main=Hello Hello.o MyString.o -o Hello

$ ./Hello

همچنین می توانید هر کدام از دو فایل java را به bytecode تبدیل کرده و پس از ان با یکدیگر لینک کنید. به صورت زیر :

$ gcj -C Hello.java MyString.java

$ gcj --main=Hello Hello.class MyString.class -o Hello

$ ./Hello

یا اینکه می توانید مستقیما bytecode را به وسیله java یا gij اجرا کنید:

$ java Hello or $ gij Hello

 

ایجاد static library

برای این کار ابتدا باید فایلهای java را به object file تبدیل کنید و سپس با استفاده از دستور ar این کار انجام می پذیرد.

$ ar -rc libMyString.a MyString.o …… ( other object files )

 

ایجاد shared object

بــرای تولید shared object ابتدا باید فایل‌های java را بــه شــکــلی متفـاوت نسبت به قبل کامپایل کنید. به صورت زیر با

 

استفاده از ورودی –fpic

$ gcj -fpic -c MyString.java

و به صورت زیر shared object ساخته خواهد شد.

$ gcj -shared MyString.o …… ( other object files ) -o libMyString.so

 

ایجاد jar فایل

ابتدا بایستی فایل‌های java را به byetcode تبدیل کنید:

$ gcj -C MyString.java

و سپس با استفاده از دستور زیر jar فایل ساخته خواهد شد:

$ jar cf libMyString.jar MyString.class …… ( other class files )

 

نتیجه گیری

در این مقاله به بررسی اجمالــی دو بستــه JDK و GCC-Java کــه بـــرای تــوســعــه Java Applications بـه کار می‌روند پرداختیم. مــوارد ذکر شده در ایـن مقاله تنها بخش کوچکی از امکانات و ابزارهای موجود در سیستم عامل لینوکس برای توسعه کد های Java می‌باشد. امید است که مورد فایده واقع شود.

منبع :irantux

تگ های این مطلب :برنامه نویسی جاوا در لینوکس
و تگ های این مطلب :java programming on linux
و تگ های این مطلب :java programming
و تگ های این مطلب :برنامه نویسی در لینوکس
نویسنده : Fatal Error | ساعت ٢:٢٦ ‎ب.ظ روز ۱۳۸۸/۱/٤
پيام هاي ديگران () | لینک ثابت