الأحد، 18 مارس 2012

اهميه الفوتوشوب..week5

اهمية الفوتوشوب


الفوتوشوب هو أحد برامج شركة أدوبي الشهيرة وهذا البرنامج هو برنامج خاص بعمل الرسومات ، وهو البرنامج الأول في العالم من ناحية القوة وكثرة المستخدمين لهذا البرنامج


يمكنك من إنشاء الصور والتصاميم التي يمكنك استعمالها فيما تريد من أمورك الفوتوشوب برنامج أكثر من رائع لما له من المميزت والقدرات الفائقة واللا محدودة في معالجة الصور ووضع الإضافات عليها كما يمكن للفوتوشوب إعادة ترميم الصور القديمة والمتكسرة وتلوينها وجعلها تنبض بالحياة والألوان لذلك نجد أن الفوتوشوب برنامج يستطيع تغير الحقيقة بدون أية صعوبات وبواقعية شديدة جداًبمجرد  إدخالك الصورة إلى الفوتوشوب فإنك تبدأ في بناء عمل فني له لمستك وشخصيتك وذلك من خلال إضافة المزيد من الرسوم عليها أو بدمج الصورة مع صور أخرى أو من خلال قص أجزاء ووضعها مع أجزاء أخرى كما أنك تستطيع تصحيح الألوان وزيادة السطوع والحدة او زيادة التعتيم فيها لتحصل في النهاية على لوحة فنية تجسد خيالك وإبداعك ومهارتك في التصميم لكي تعرضها على الانترنت أو لعرضها بإستخدام البرامج الخاصة بعرض الشرائح أو بطباعتها


لماذا الفوتوشوب يحظى بإنتشار واسع وصيت عالي ومستخدمين لاحصر لهم



توفر الدروس لهذا البرنامج سواء العربية أو الأجنبية ، وهذا بطبيعة الحال يزيد من قوة البرنامج

1ـ البرنامج معروف عالميا ً ، وهو الأكثر استخداما ً بين المصممين .
2ـ 3ـ أن تعلمه ليس بالصعب ، فواجهته سهلة وبسيطة .

4ـ امكانية تصدير الصور وحفظها للويب ودعمه له بشكل قوي جدا ً .

5ـ الشركة المنتجة تطوّر من البرنامج باستمرار وهذا مما يكسب البرنامج تجددا ً واضحا ً .

6ـ أن هذا البرنامج بفضل ما يحويه من امكانات  وأدوات ، يغنيك  عما هو سواه من برامج الرسوم الأخرى .


 ماذا تعنى كلمة "فوتوشوب" ؟؟
فوتوشوب هى ترجمة حرفية لكلمة Photoshop و التى تعنى ورشة عمل للصور و المقصود أنك تستطيع صنعها و التعديل فيها و الابداع بها..

- ما عمل الفوتوشوب و ما أهميته؟؟
الفوتوشوب يعتبر أقوى برامج تصميم الصور بأشكالها فى العالم , و يعطيك الحرية الكاملة بوضع أى شئ بالصورة أو التغيير فيها اعتمادا على نظام الطبقات Layers الذى يعمل به , و أهمية الفوتوشوب كبيرة حيث أنه مستخدم بين كل أوساط الانترنت و التصميم فى تصميم الصور , المواقع , المنتديات و غيرهم..

- ما طريقة عمل الفوتوشوب؟؟
الفوتوشوب يعمل على بعض الأساسيات فى تصميم صوره , الشئ الأول و الأهم نظام الطبقات Layer و الى يجعلك تتحكم فى الصور و كأنها أكثر من شريحة فوق بعضها , الشئ الثانى : الفلاتر , الفلاتر هى العامل الأكبر فى التأثير على الصور حيث أن هناك العديد من الفلاتر تجعلنا الأن لا نبذل جهد فيما كنا نبذل به جهد فى الماضى , الفلاتر عبارة عن دخيل يؤثر فى الصورة حسب نوع الفلتر..

- ما هى مكملات برنامج الفوتوشوب؟؟
الفوتوشوب برنامج تصميم الصور بكل أنواعها , و لكن هل هو كافى لتصميم موقع أو منتدى بأكلمه وحده؟؟ كلا , هناك توابع و مكملات للفوتوشوب لتصميم مواقع كاملة , مثل برنامجى : الفرونت بيج Front Page و DreamWaver و الفرونت بيج هو الأكثر استخداما لأنه الأسهل و لكن من ناحية التقدم فالدريم ويفر يكتسح الفرونت بيج..
أيضا نجد فى الكثير من المواقع صور متحركة , فهل تم صنعها بالفوتوشوب؟؟ لا , بل هى ببرنامج ImageReady رفيق و تابع و الذى يكون مرفق معه , و لكن فى وقتنا الحالى الكثير يرى أن الصور المتحركة تراجعت لسببين , الأول : الصور المتحركة تكون ذو حركات محدودة و حجم كبير , الثانى : وجود و اشتهار ملفات الفلاش SWF و هذا اختصار لكلمة "Shock Wave Flash" هذه الملفات تكون بها الكثير الكثير من الحركات و لكن فى الأخر لا تجد حجمها يتعدى ال40 كيلوبايت , و هذه أحد مميزات ملفات الفلاش , لذلك الفلاش Macromedia Flash أحد ملحقات الفوتوشوب , فالصور نأتيها من الفوتوشوب و نضيف اليها الحركات بالفلاش , و الدليل على ذلك أن شركة أدوبى Adobe منتجة الفوتوشوب , أدركت ذلك فقامت بشراء الفلاش و ذكر أنها تريد دمج الفوتوشوب مع الفلاش..

الأحد، 11 مارس 2012

هندسه البرمجيااات..week4

هي نوع من الهندسة يهتم بتطوير و بناء البرامج و تحسينها بطرق هندسية على عدة مراحل محددة هي:
  1. تحليل متطلبات و مواصفات البرنامج
  2. تصميم البرنامج
  3. برمجة البرنامج
  4. اختبار البرنامج
  5. صيانة البرنامج
تُطبق أساساً هندسة البرمجيات بهذه المراحل في بناء البرامج كبيرة الحجم بالذات، كبرامج الشركات و البرامج التقنية أو أنظمة الإدارة أو التشغيل, ذلك لأنها تحتاج إلى تحليل وتفصيل أكثر في مواصفاتها، و إلى تصميم بنيتها بطريقة مناسبة و منظمة ليسهّل ذلك عملية الإضافة عليها لاحقاً و في اختبارها و صيانتها.  الهدف الأساسي من ذلك هو بناء برامج ذات مواصفات و جودة عالية High Quality Softwares.

بصورة مختصرة، تعريف لكل مرحلة من التطوير و ما ينتج عنها:
  1. تحليل متطلبات و مواصفات البرنامج
    وفيها يتم جمع مواصفات البرنامج من الزبون، ثم دراستها و تحليلها و بيان الغامض و المتعارض منها، الناتج من هذه المرحلة: سرد المواصفات بتحليلاتها في مستند خاص يسمى (
    SRS (Software Requirements Specification – مستند مواصفات متطلبات البرنامج.
  2. تصميم البرنامج
    ولا يقصد فيها تصميم الشكل المظهري للبرنامج فقط، بل تصميم البرنامج كبنية و كلاسات و كائنات و تحليله من هذه النواحي. وتعتبر هذه المرحلة من أهم المراحل حيث تحدد فيها جودة البرنامج و تركيبه، و تستخدم اللغة الرسومية
    UML لهذا الغرض.  توفر الـ UML العديد من التصاميم و الرسوم البيانية، كتصميم حالة الاستخدام Use Case Diagram و تصميم تسلسل الأحداث Sequence Diagram.
    الناتج من هذه المرحلة عرض التصاميم و تحليلاتها مع مواصفات البرنامج في مستند باسم (
    SDD (Software Design Description – مستند وصف تصميم البرنامج.
  3. برمجة البرنامج
    وفيها يتم كتابة كود البرنامج. يعتمد المبرمج على مستند الـ SDD “فقط”، لذا، يجب كتابة مستند الـ SDD بتفصيل و عرض التصاميم بوضوح لمساعدة المبرمج على البرمجة.
    النتيجة: الكود المصدري أو Source Code للبرنامج.
  4. اختبار البرنامج
    أولاً تُحدد الأساليب المناسب لاختبار البرنامج و تدرس بعناية، ثم تحدد مجموعة من حالات الاختبار أو Test Cases لتطبيقها على البرنامج و دراسة القيم الناتجة منها.  في حالة وجود أخطاء و عيوب، يُعاد البرنامج إلى المختصصين في المراحل السابقة لفهم المشكلة و إصلاحها.
    النتيجة: إصلاح عيوب البرنامج.
  5. صيانة البرنام
    وهذه المرحلة تطبق بعد تسليم البرنامج إلى الزبون، حيث تهتم بصاينة المشاكل التي لم تكتشف في مرحلة الاختبار و تحديث البرنامج باستمرار لمواكبة التغييرات التقنية.  و يوجد العديد من المراحل الأخرى كمرحلة توثيق معلومات التطوير في مستندات ، تسويق البرنامج ، التدريب، و غيرها





هندسة البرمجيات (بالإنكليزية: Software engineering) هي مهنة تهتم بتطوير وتصميم البرمجيات عالية الجودة آخذة بعين الاعتبار تخصيصات المستخدم ومتطلباته على جميع المستويات. تهتم هندسة البرمجيات بتكوين البرنامج منذ مراحله الأولى أثناء تحليل المشكلة ومن ثم التصميم وكتابة البرنامج حتى القيام بتجريبه واختباره وتنصيبه على الأجهزة والقيام بعملية صيانته.

 تاريخ هندسة البرمجيات

هندسة البرمجيات كمفهوم نظري من حين لآخر في أواخر الخمسينات وبداية الستينات من القرن الماضي. أما الاستخدام الرسمي الأول لهذا المصطلح فكان في مؤتمر عقد من قبل اللجنة العلمية في منظمة حلف شمال الأطلسي 1968 حول البرمجيات، وقد أخذ هذا المصطلح بالانتشار منذ ذلك الحين ولاقى اهتماماً متزايداً في نواح مختلفة. عقد المؤتمر لمعالجة مايعرف "أزمة البرمجيات" والتي ظهرت بسبب عدم استخدام منهجية في التفكير (Software Development Process)عند بناء البرمجيات، مما أدى إلى ظهور أخطاء كثيرة خلال عملية بناء وصيانة البرمجيات، وبالتالي أصبحت البرمجيات تحتاج إلى وقت كبير لتطويرها ولصيانتها، وكلفة مالية عالية أكثر مما هو مخمن لها، وبعد تحمل التأخر في الوقت وتجاوز الميزانية كانت البرمجيات ذات كفاءة ضعيفة في إنجاز الوظائف المطلوبة، وقلة في الفعالية كذلك بعدم تلبية كافة المتطلبات بالشكل الكامل أو\و الصحيح.

 مفهوم هندسة البرمجيات

البرمجية (Software) شيء غير ملموس إلى حد ما بالمقارنة مع المنتجات الأخرى، وهي سلسلة من آلاف أو ملايين الأوامر التي تطلب من الحاسوب إجراء عمليات معينة مثل عرض المعلومات، أو إجراء الحسابات، أو تخزين البيانات. هذه البرمجيات هي بمثابة الروح من الجسد في النظام الحاسوبي وهي في توسع دائم وازدياد في التعقيد والمتطلبات والمهام التي تقوم بتنفيذها. أما هندسة البرمجيات فهي فرع من فروع الهندسة يقوم على مجموعة أسس وقواعد تهدف إلى تصميم وتطوير البرامج بوفرة ونوعية عالية تلبي احتياجات المستخدمين، هذا الفرع من الهندسة يتميز بأنه لا يحتاج إلى رأس مال كبير وبالتالي الخسارة فيه قليلة على عــكس بقية الفروع الأخرى من الهندسة، كما لا يكفي لإيجاد البرمجية المتكاملة والجيدة عمل شخص واحد وإنما يتطلب ذلك فريقاً من المهندسين الجيدين. وقد كان ضروريا إيجاد علم يعني بهندسة البرمجيات لوضع الأسس والمعايير التي تصون هذه المهنة من المتطفلين بحيث يصبح بالإمكان تمييز البرنامج الجيد من غير الجيد.

 مراحل بناء النظام البرمجي

في هندسة البرمجيات، بناء النظام البرمجي ليس مجرد كتابة شفرة، وإنما هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على المنتج، وهو البرنامج بأقل كلفة ممكنة وأفضل أداء محتمل. يطلق على هذه المراحل اسم دورة حياة النظام البرمجي(Software Lifecycle) التي قد يبدو بعضها ليس له علاقة بالبرمجة. وهناك الكثير من التصورات والنماذج في هندسة البرمجيات تصف عملية إنتاج برنامج والخطوات اللازمة لذلك. كما أن هذه الدورة خاضعة للتطوير دائما، حيث بالإضافة للدورات الكلاسيكية، ظهر مفهوم المنظومة المرنة (Agile Process) والتي تتخلي عن النموذج الثابت للمنظومة الكلاسيكية في سبيل المزيد من حرية الحركة للمشروع.
و فيما يلي عرض لإحدى أشهر دورات حياة النظام البرمجي الكلاسيكية وهي دورة الشلال (Waterfall Model):

كتابة وثيقة الشروط الخارجية والداخلية

وثيقة الشروط الخارجية يتم أخذها من الزبون. تحتوي الوثيقة على متطلبات الزبون في ما يخص مواصفات البرنامج الذي يجب إنشاؤه. ثم يتم تحليل المتطلبات بشكل أولي ثم كتابة وثيقة شروط داخلية تحتوي على تفسير المواصفات التي يريدها الزبون بدقة أكبر، وبطريقة تتماشى مع مصطلحات المبرمجين. قد تكون طلبات الزبون متعارضة وفي هذه الحالة يتم الرجوع إليه لتنقيح وثيقة الشروط. ثم يتم تحديد عدد الساعات اللازمة للعمل وحساب التكلفة.

 التحليلٍ

في هذه العملية تجمع المعلومات بدقة ثم تحدد المتطلبات والمهام التي سيقوم بها البرنامج، وتوصف هذه المهام بدقة تامة، كما تدرس الجدوى المرجوة من البرنامج، فالمستخدم مثلاً يضع تصوراً للبرنامج ليقوم بعمليات معينة، ومهمة مهندس البرمجيات في هذه المرحلة هي استخلاص هذه الأفكار وتحديدها؛ لذلك فهي تتطلب مهارة عالية في التعامل مع الزبائن، وقدرة على التحليل الصحيح. ينتج في نهاية هذه المرحلة وثيقة تدعى جدول الشروط والمواصفات دينامكاميد

 التصميم

في هذه المرحلة، تقسم البرمجية إلى كتل وتعرف العلاقات بين هذه الكتل ثم توضع الخوارزميات الملائمة لكل كتلة. في نهاية هذه العملية تكون البرمجية جاهزة لعملية الترميز، كما يتم اختيار لغة أو لغات البرمجة الملائمة لهذا البرنامج.] الترميز
تحول الخوارزميات السابقة إلى إحدى اللغات البرمجية، والتأكد من صحتها لكل كتلة من الكتل. ثم تحول إلى لغة الآلة التي يتعامل بها جهاز الحاسب فقط.

 الاختبار والتكاملية

تجمع الكتل مع بعضها ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات، وخاصة إذا كانت الكتل قد كتبت من قبل عدة أعضاء في الفريق

التوثيق
وهي مرحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض الصيانة والتطوير. يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة واللاحقة، وأن يكون هناك فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية. وبدون التوثيق قد يصل مصنع البرمجية إلى مرحلة لا يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية الخاصة بهذه البرمجية إلى حدود غير متوقعة، أو بمعنى آخر الفشل في بناء برمجية ذات جودة عالية ودورة حياة طويلة. وهناك أكثر من طريقة للتوثيق -توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية. -توثيق المحلل بكتابة مستندات شرح لدورة البرنامج المستندية وخلافة. -توثيق مختبر النظام وفيها يتم تسجيل نقاط الخلل في البرنامج. -...........الخ.الصيانة والتطوير
إن هذه المرحلة هي المرحلة الأطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات والمعدات الحديثة، جزء من هذه المرحلة يكون في تصحيح الأخطاء، والجزء الآخر يكون في التطوير وإضافة تقنيات جديدة. إن هذه الخطوات كما نلاحظ مشابهة لخطوات الإنتاج في الهندسيات الأخرى.

 الفرق بين البرمجة وهندسة البرمجيات

البرمجة هي كتابة الكود، يعتبرها البعض أهم عملية في بناء البرامج. لا تهتم البرمجة بأمور كالجدوى من البرنامج، أو إمكانية قبول المستخدم له، أو حتى قابلية تطويره. في حين أن هندسة البرمجيات تعمل على بناء النظام البرمجي كمشروع متكامل، وتدرسه من كافة الجوانب: البناء البرمجي، الدعم الفني والصيانة، التسويق والمبيعات، التطوير والتدريب على استخدامه، وبذلك يمكنها بناء الأنظمة الكبيرة لاستخدامها نظام فريق العمل في حين أن البرمجة الفردية تعجز عن ذلك.

 المجالات المختلفة التي لها علاقة بهندسة البرمجيات

  • الرياضيات: يحتوى أغلب البرنامج على عناصر رياضيات مثل (algorithms) لذلك فإن مطوري هذا النوع من البرامج يكونون على اطلاع بالعديد من النواحي الرياضية.
  • العلوم: البرنامج له مواصفات علمية قياسية عديدة، مثل: الأداء وحجم البرنامج وتنوع الأحمال.network speed المعادلات الرياضية الطرق الحديثة لقواعد البيانات
  • الهندسة
  • التصنيع: البرامج عبارة عن مجموعة من الخطوات. كل خطوة يتم تحديدها وتنفذ بدقة. مثل الكثير من الصناعات، لتحسين وتطوير خطوط الآنتاج والوصول إلى مستوى الجودة المطلوب.
  • إدارة المشروعات: سواء كان تجاريا أو غير تجارى فإنة يحتاج إلى إدارة. مثل: جدول زمني وتكلفة تخصص له. عوامل بشرية للإدارة ومصادر مثل مكتب وأجهزة كمبيوتر

هندسه البرمجيااات..week4

هي نوع من الهندسة يهتم بتطوير و بناء البرامج و تحسينها بطرق هندسية على عدة مراحل محددة هي:
  1. تحليل متطلبات و مواصفات البرنامج
  2. تصميم البرنامج
  3. برمجة البرنامج
  4. اختبار البرنامج
  5. صيانة البرنامج
تُطبق أساساً هندسة البرمجيات بهذه المراحل في بناء البرامج كبيرة الحجم بالذات، كبرامج الشركات و البرامج التقنية أو أنظمة الإدارة أو التشغيل, ذلك لأنها تحتاج إلى تحليل وتفصيل أكثر في مواصفاتها، و إلى تصميم بنيتها بطريقة مناسبة و منظمة ليسهّل ذلك عملية الإضافة عليها لاحقاً و في اختبارها و صيانتها.  الهدف الأساسي من ذلك هو بناء برامج ذات مواصفات و جودة عالية High Quality Softwares.

بصورة مختصرة، تعريف لكل مرحلة من التطوير و ما ينتج عنها:
  1. تحليل متطلبات و مواصفات البرنامج
    وفيها يتم جمع مواصفات البرنامج من الزبون، ثم دراستها و تحليلها و بيان الغامض و المتعارض منها، الناتج من هذه المرحلة: سرد المواصفات بتحليلاتها في مستند خاص يسمى (
    SRS (Software Requirements Specification – مستند مواصفات متطلبات البرنامج.
  2. تصميم البرنامج
    ولا يقصد فيها تصميم الشكل المظهري للبرنامج فقط، بل تصميم البرنامج كبنية و كلاسات و كائنات و تحليله من هذه النواحي. وتعتبر هذه المرحلة من أهم المراحل حيث تحدد فيها جودة البرنامج و تركيبه، و تستخدم اللغة الرسومية
    UML لهذا الغرض.  توفر الـ UML العديد من التصاميم و الرسوم البيانية، كتصميم حالة الاستخدام Use Case Diagram و تصميم تسلسل الأحداث Sequence Diagram.
    الناتج من هذه المرحلة عرض التصاميم و تحليلاتها مع مواصفات البرنامج في مستند باسم (
    SDD (Software Design Description – مستند وصف تصميم البرنامج.
  3. برمجة البرنامج
    وفيها يتم كتابة كود البرنامج. يعتمد المبرمج على مستند الـ SDD “فقط”، لذا، يجب كتابة مستند الـ SDD بتفصيل و عرض التصاميم بوضوح لمساعدة المبرمج على البرمجة.
    النتيجة: الكود المصدري أو Source Code للبرنامج.
  4. اختبار البرنامج
    أولاً تُحدد الأساليب المناسب لاختبار البرنامج و تدرس بعناية، ثم تحدد مجموعة من حالات الاختبار أو Test Cases لتطبيقها على البرنامج و دراسة القيم الناتجة منها.  في حالة وجود أخطاء و عيوب، يُعاد البرنامج إلى المختصصين في المراحل السابقة لفهم المشكلة و إصلاحها.
    النتيجة: إصلاح عيوب البرنامج.
  5. صيانة البرنام
    وهذه المرحلة تطبق بعد تسليم البرنامج إلى الزبون، حيث تهتم بصاينة المشاكل التي لم تكتشف في مرحلة الاختبار و تحديث البرنامج باستمرار لمواكبة التغييرات التقنية.  و يوجد العديد من المراحل الأخرى كمرحلة توثيق معلومات التطوير في مستندات ، تسويق البرنامج ، التدريب، و غيرها





هندسة البرمجيات (بالإنكليزية: Software engineering) هي مهنة تهتم بتطوير وتصميم البرمجيات عالية الجودة آخذة بعين الاعتبار تخصيصات المستخدم ومتطلباته على جميع المستويات. تهتم هندسة البرمجيات بتكوين البرنامج منذ مراحله الأولى أثناء تحليل المشكلة ومن ثم التصميم وكتابة البرنامج حتى القيام بتجريبه واختباره وتنصيبه على الأجهزة والقيام بعملية صيانته.

 تاريخ هندسة البرمجيات

هندسة البرمجيات كمفهوم نظري من حين لآخر في أواخر الخمسينات وبداية الستينات من القرن الماضي. أما الاستخدام الرسمي الأول لهذا المصطلح فكان في مؤتمر عقد من قبل اللجنة العلمية في منظمة حلف شمال الأطلسي 1968 حول البرمجيات، وقد أخذ هذا المصطلح بالانتشار منذ ذلك الحين ولاقى اهتماماً متزايداً في نواح مختلفة. عقد المؤتمر لمعالجة مايعرف "أزمة البرمجيات" والتي ظهرت بسبب عدم استخدام منهجية في التفكير (Software Development Process)عند بناء البرمجيات، مما أدى إلى ظهور أخطاء كثيرة خلال عملية بناء وصيانة البرمجيات، وبالتالي أصبحت البرمجيات تحتاج إلى وقت كبير لتطويرها ولصيانتها، وكلفة مالية عالية أكثر مما هو مخمن لها، وبعد تحمل التأخر في الوقت وتجاوز الميزانية كانت البرمجيات ذات كفاءة ضعيفة في إنجاز الوظائف المطلوبة، وقلة في الفعالية كذلك بعدم تلبية كافة المتطلبات بالشكل الكامل أو\و الصحيح.

 مفهوم هندسة البرمجيات

البرمجية (Software) شيء غير ملموس إلى حد ما بالمقارنة مع المنتجات الأخرى، وهي سلسلة من آلاف أو ملايين الأوامر التي تطلب من الحاسوب إجراء عمليات معينة مثل عرض المعلومات، أو إجراء الحسابات، أو تخزين البيانات. هذه البرمجيات هي بمثابة الروح من الجسد في النظام الحاسوبي وهي في توسع دائم وازدياد في التعقيد والمتطلبات والمهام التي تقوم بتنفيذها. أما هندسة البرمجيات فهي فرع من فروع الهندسة يقوم على مجموعة أسس وقواعد تهدف إلى تصميم وتطوير البرامج بوفرة ونوعية عالية تلبي احتياجات المستخدمين، هذا الفرع من الهندسة يتميز بأنه لا يحتاج إلى رأس مال كبير وبالتالي الخسارة فيه قليلة على عــكس بقية الفروع الأخرى من الهندسة، كما لا يكفي لإيجاد البرمجية المتكاملة والجيدة عمل شخص واحد وإنما يتطلب ذلك فريقاً من المهندسين الجيدين. وقد كان ضروريا إيجاد علم يعني بهندسة البرمجيات لوضع الأسس والمعايير التي تصون هذه المهنة من المتطفلين بحيث يصبح بالإمكان تمييز البرنامج الجيد من غير الجيد.

 مراحل بناء النظام البرمجي

في هندسة البرمجيات، بناء النظام البرمجي ليس مجرد كتابة شفرة، وإنما هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على المنتج، وهو البرنامج بأقل كلفة ممكنة وأفضل أداء محتمل. يطلق على هذه المراحل اسم دورة حياة النظام البرمجي(Software Lifecycle) التي قد يبدو بعضها ليس له علاقة بالبرمجة. وهناك الكثير من التصورات والنماذج في هندسة البرمجيات تصف عملية إنتاج برنامج والخطوات اللازمة لذلك. كما أن هذه الدورة خاضعة للتطوير دائما، حيث بالإضافة للدورات الكلاسيكية، ظهر مفهوم المنظومة المرنة (Agile Process) والتي تتخلي عن النموذج الثابت للمنظومة الكلاسيكية في سبيل المزيد من حرية الحركة للمشروع.
و فيما يلي عرض لإحدى أشهر دورات حياة النظام البرمجي الكلاسيكية وهي دورة الشلال (Waterfall Model):

كتابة وثيقة الشروط الخارجية والداخلية

وثيقة الشروط الخارجية يتم أخذها من الزبون. تحتوي الوثيقة على متطلبات الزبون في ما يخص مواصفات البرنامج الذي يجب إنشاؤه. ثم يتم تحليل المتطلبات بشكل أولي ثم كتابة وثيقة شروط داخلية تحتوي على تفسير المواصفات التي يريدها الزبون بدقة أكبر، وبطريقة تتماشى مع مصطلحات المبرمجين. قد تكون طلبات الزبون متعارضة وفي هذه الحالة يتم الرجوع إليه لتنقيح وثيقة الشروط. ثم يتم تحديد عدد الساعات اللازمة للعمل وحساب التكلفة.

 التحليلٍ

في هذه العملية تجمع المعلومات بدقة ثم تحدد المتطلبات والمهام التي سيقوم بها البرنامج، وتوصف هذه المهام بدقة تامة، كما تدرس الجدوى المرجوة من البرنامج، فالمستخدم مثلاً يضع تصوراً للبرنامج ليقوم بعمليات معينة، ومهمة مهندس البرمجيات في هذه المرحلة هي استخلاص هذه الأفكار وتحديدها؛ لذلك فهي تتطلب مهارة عالية في التعامل مع الزبائن، وقدرة على التحليل الصحيح. ينتج في نهاية هذه المرحلة وثيقة تدعى جدول الشروط والمواصفات دينامكاميد

 التصميم

في هذه المرحلة، تقسم البرمجية إلى كتل وتعرف العلاقات بين هذه الكتل ثم توضع الخوارزميات الملائمة لكل كتلة. في نهاية هذه العملية تكون البرمجية جاهزة لعملية الترميز، كما يتم اختيار لغة أو لغات البرمجة الملائمة لهذا البرنامج.] الترميز
تحول الخوارزميات السابقة إلى إحدى اللغات البرمجية، والتأكد من صحتها لكل كتلة من الكتل. ثم تحول إلى لغة الآلة التي يتعامل بها جهاز الحاسب فقط.

 الاختبار والتكاملية

تجمع الكتل مع بعضها ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات، وخاصة إذا كانت الكتل قد كتبت من قبل عدة أعضاء في الفريق

التوثيق
وهي مرحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض الصيانة والتطوير. يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة واللاحقة، وأن يكون هناك فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية. وبدون التوثيق قد يصل مصنع البرمجية إلى مرحلة لا يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية الخاصة بهذه البرمجية إلى حدود غير متوقعة، أو بمعنى آخر الفشل في بناء برمجية ذات جودة عالية ودورة حياة طويلة. وهناك أكثر من طريقة للتوثيق -توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية. -توثيق المحلل بكتابة مستندات شرح لدورة البرنامج المستندية وخلافة. -توثيق مختبر النظام وفيها يتم تسجيل نقاط الخلل في البرنامج. -...........الخ.الصيانة والتطوير
إن هذه المرحلة هي المرحلة الأطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات والمعدات الحديثة، جزء من هذه المرحلة يكون في تصحيح الأخطاء، والجزء الآخر يكون في التطوير وإضافة تقنيات جديدة. إن هذه الخطوات كما نلاحظ مشابهة لخطوات الإنتاج في الهندسيات الأخرى.

 الفرق بين البرمجة وهندسة البرمجيات

البرمجة هي كتابة الكود، يعتبرها البعض أهم عملية في بناء البرامج. لا تهتم البرمجة بأمور كالجدوى من البرنامج، أو إمكانية قبول المستخدم له، أو حتى قابلية تطويره. في حين أن هندسة البرمجيات تعمل على بناء النظام البرمجي كمشروع متكامل، وتدرسه من كافة الجوانب: البناء البرمجي، الدعم الفني والصيانة، التسويق والمبيعات، التطوير والتدريب على استخدامه، وبذلك يمكنها بناء الأنظمة الكبيرة لاستخدامها نظام فريق العمل في حين أن البرمجة الفردية تعجز عن ذلك.

 المجالات المختلفة التي لها علاقة بهندسة البرمجيات

  • الرياضيات: يحتوى أغلب البرنامج على عناصر رياضيات مثل (algorithms) لذلك فإن مطوري هذا النوع من البرامج يكونون على اطلاع بالعديد من النواحي الرياضية.
  • العلوم: البرنامج له مواصفات علمية قياسية عديدة، مثل: الأداء وحجم البرنامج وتنوع الأحمال.network speed المعادلات الرياضية الطرق الحديثة لقواعد البيانات
  • الهندسة
  • التصنيع: البرامج عبارة عن مجموعة من الخطوات. كل خطوة يتم تحديدها وتنفذ بدقة. مثل الكثير من الصناعات، لتحسين وتطوير خطوط الآنتاج والوصول إلى مستوى الجودة المطلوب.
  • إدارة المشروعات: سواء كان تجاريا أو غير تجارى فإنة يحتاج إلى إدارة. مثل: جدول زمني وتكلفة تخصص له. عوامل بشرية للإدارة ومصادر مثل مكتب وأجهزة كمبيوتر

السبت، 10 مارس 2012

نظم المعلومات الإدارية (: Management Information Systems)، واختصارها (بالإنجليزية: MIS)، هي نوع من أنواع تقنية المعلومات وتعتبر من تخصصات الحاسوب (بالإنجليزية: Computer) الجديدة. نظم المعلومات الإدارية أو ما يعرف باسم (MIS) يجمع ما بين تقنية المعلومات وعلوم الحاسبات والإدارة هدفها بناء أنظمة حاسوبية تكنولوجية تعمل على مساعدة المؤسسات المختلفة للقيام بأعمالها، وتقوم بعدة وظائف، المساعدة المكتبية والقيام بالمهمات المحاسبية وتنظيم الاجتماعات، وكل ما يساعد المؤسسات في عملية اتخاذ القرار.
كما أن استخدام المؤسسات للنظم الحاسوبية في العمليات الإدارية يخفف من الأعباء، والمصاريف المالية على الموظفين، ويتغلب على العديد من سلبيات العمل البشري الذي قد يتسبب بها الملل من العمل الروتيني أو عدم وجود الحوافز المعنوية اللازمة. كما تساعد على تصغير حجم المؤسسات. كما أن امتلاك المؤسسات لنظم المعلومات الإدارية يزيد من القدرة التنافسية للمؤسسة في بيئة العمل. ولكن يعيب البعض على استخدام هذه النظم في المؤسسات الإدارية على التخلص من المستندات الورقية.

يهدف قسم نظم معلومات إلى إيجاد متخصصين متمكنين بالحاسب والبرمجة في مجال العلوم الإدارية والمحاسبية والتجارية وتحليل وتصميم النظم وقواعد البيانات وإدارة تطوير البرامج وإدارة مراكز المعلومات، ويدمج التخصص بين الحلول التي تقدمها تقنية المعلومات والعمليات الإدارية لتنفيذ المشاريع ويركز المتخصصون في هذا المجال على المعلومات التي يقدمها نظام الحاسب لمساعدة البرامج والمشاريع والعمليات الإدارية في تحديد أهداف المنظمة لتطبيق وتطوير تقنية المعلومات واستخداماها في الأعمال الإدارية. والمتخصص في مجال نظم المعلومات يجب أن يكون قادراً على فهم الجوانب الفنية Technical Factors والجوانب التنظيمية Organizational factors ليـكون قادر على تحديد المشكلة وتحليل النظام وتصميم وتطبيق نظام قادر علي تلبية احتياجات المنظمات والافراد. بمعنى آخر المتخصص في مجال نظم المعلومات يجب أن يعمل كجسر أو حلقة وصل بين الإدارة والمتخصصين في الجوانب الفنية فهو الذي يفهم اللغة المشتركة بين الفنيين والإداريين في المنظمات ويجعلهم يعملون بإنسجام ويفهم كل منهم الأخر ولذلك من المهم جداً للمتخصص في مجال نظم المعلومات أن يكون لديه مهارات اتصال عالية ليكون قادراً على التعامل مع أشخاص من مختلف المستويات والتخصصات. ويغطي القسم أغلب مجالات البحث في نظم المعلومات كتحليل وتصميم النظم وتطوير البرامج وإدارة المشاريع ونظم دعم القرارات ونظم المعلومات الإدارية وإدارة مراكز الحاسب الآلي والمعلومات. ويظهر تخصص نظم المعلومات بأسماء مختلفة وتحت كليات مختلفة فيكون أحياناً في كلية إدارة الأعمال Business school ويظهر باسم نظم المعلومات الإدارية Management information systems وهنا يدمج بين مواد علم الحاسب وإدارة الأعمال ويظهر أحياناً تحت كلية علوم الحاسب والمعلومات باسم information systems Computer ويركز على الجوانب الفنية والبرامج أكثر من التركيز على الجوانب الإدارية وعموماً ليس هناك ثبات على اسم البرنامج ولكن يعتمد هذا على موقع البرنامج والكلية التابع لها. المجالات التي يمكن أن يعمل فيها خريج قسم نظم المعلومات خريج قسم نظم المعلومات يستطيع العمل في الوظائف التالية : محلل نظم ومطور نظم معلومات Systems Analyst مستشار نظم Systems Consultant مدير نظم معلومات Information systems Officer مدير مركز الحاسب Computer Center Manager مستشار تقنية معلومات Information Technology Consultant ضابط أمن معلومات Information Security Officer مصمم مواقع Web Site Designer مدير موقع Web Master مدير قواعد بيانات Database Administrator مهندس نظم معلومات Information Systems Engineer مطور نظم Systems Developer مطور أعمال Business Developer


قسم تكنولوجيا المعلومات (IT) يتكون من عدة وظائف ، هي :
محلل البرامج / مدخل البيانات / مشرف إعداد البيانات / مدير قاعدة البيانات / مدير قسم تكنولوجيا المعلومات / منسق مشروعات في قسم تكنولوجيا المعلومات / مدير نظم المعلومات / مسئول الدعم لأجهزة الحاسوب / مبرمج / مدير تصميم البرامج / محلل نظم / مصمم مواقع .
والوظائف المتجانسة يمكن أن تدمج معا في المؤسسات الصغيرة فيقوم بها موظف واحد ، مثلا :محلل النظم ، مدير نظم المعلومات .
وذلك كله يتوقف على حجم المنظمة أو المؤسسة .
وظيفة مدير تكنولوجيا المعلومات :
توجيه وإدارة عمليات تطوير وتنفيذ ومتابعة خطة المؤسسة في المعلومات والاتصالات والنظم المختلفة وذلك دعما لأهداف التي تسعى المؤسسة إلى تحقيقها .
وظيفة مدير نظم المعلومات :
تطوير وصيانة نظم المعلومات في الشركة لضمان دعم هذه النظم ومتابعة ميزانية نظم المعلومات لضمان توقع النفقات وعدم تخطيها الحدود المتفق عليها .
تقديم كل إجراءات التأمين لنظم البيانات ضد الضياع أو سوء الاستخدام ، ومراقبة جميع نظم الإدارة الأساسية لضمان التعامل السريع مع أية مشكلة قد تطرأ ، توفير المعلومات الإدارية المطلوبة للمساعدة في عملية اتخاذ القرار الفعال ، توفير التدريب والإرشاد على النحو المطلوب لمستخدمي نظم المعلومات لضمان الاستخدام الأمثل ، إدارة مشروعات النظم للتأكد من تسليم النتائج في النظام الزمني والميزانية المتفق عليها ، الإلمام بالتطورات الحاصلة في مجال نظم المعلومات ، وتوجيه وإدارة العاملين بالقسم لضمان دفعهم وتدريبهم بشكل جيد ، ولتنفيذ المسئوليات المنوطة بهم وفق المعايير الموضوعة .
وظيفة محلل البرامج :
يعمل على تقييم المؤسسة من تكنولوجيا المعلومات والخروج بالحلول المناسبة للوفاء بمثل هذه المتطلبات سواء فيما يتعلق بالبرامج أو الأجهزة .
وظيفة المبرمج :
تصميم وتنفيذ برامج الحاسوب وتعديل البرامج الموجودة بالفعل لتفي بمتطلبات المستخدمين التي تم تحديدها لتحسين مستويات الكفاءة والفعالية في المؤسسة .
موظف الدعم لأجهزة الحاسوب :
توفير الدعم الفني للعاملين بالمؤسسة لمساعدتهم في حل المشكلات التي تواجههم في برامج أجهزة الحاسوب أو في الأجهزة ذاتها أو في أية تقنيات أخرى .
وظيفة مدير قاعدة البيانات :
تنظيم وإدارة قاعدة البيانات الخاصة بالمنظمة لضمان إدارة المعلومات بكفاءة دعما لاتخاذ القرار الإداري الصحيح ووفاء بالمتطلبات التشريعية المعينة .
وظيفة منسق مشروعات في قسم تكنولوجيا المعلومات :
يعمل على وضع الخطط والتنسيق بين مشروعات تكنولوجيا المعلومات الأساسية ضمن المؤسسة وذلك لضمان تقديم حلول فعالة تتعلق بتكنولوجيا المعلومات في ظل النطاق الزمني والتكفة المعينين من ذي قبل
مصمم المواقع :
تصميم وتحديث مواقع الويب الخارجية والداخلية بالمؤسسة والمستندات المتعلقة بتلك المواقع لتقديم صورة إيجابية عن المؤسسة .
يقوم في سبيل تحقيق ذلك بما يلي :
تصميم وتطوير موقع المؤسسة بحيث تتحقق فعاليته وسهولة الوصول إليه ، تطوير وتحديث شبكة الإنترنت للمؤسسة لتوفير مصدر معلومات دقيق ومباشر لجميع الموظفين ، تصميم وتوزيع الرسائل الإخبارية وغيرها من المستندات التي ترتبط بموقع الويب والإنترنت ,، إجراء الاتصالات مع المزودين من خارج المؤسسة والتفاوض بشأن العقود الخاصة بتصميم وتوفير الخدمات التي لايمكن توفيرها داخليا فيما يتعلق بموقع الويب والإنترنت ،، إنشاء عروض توضيحية داخليا وخارجيا لدعم وتعزيز موقع الويب والإنترنت المتعلقين بالشركة .

الجمعة، 2 مارس 2012

قواعد البيانات

قاعدة البيانات (Database) هي مجموعة من عناصرِ البيانات المنطقية المرتبطة مع بعضها البعض بعلاقة رياضية، وتتكون قاعدة البيانات من جدول واحد أو أكثر من جدول. ويتكون الجدول من سجل (Record)أو أكثر من سجل ويتكون السجل من حقل (Field) أو أكثر من حقل ومثال على السجل :السجل الخاص بموظف معين يتكون من عدة حقول مثل رقم الموظف - اسم الموظف - درجة الموظف - تاريخ التعيين - الراتب - والقسم التابع له...إلخ من بيانات الموظف تخزن في جهاز الحاسوب عَلى نحو منظّم، حيث يقوم برنامج (حاسوب) يسمى محرك قاعدة البيانات (Database Engine) بتسهيل التعامل معها والبحث ضمن هذه البيانات، وتمكين المستخدم من الإضافة والتعديل عليها..
يتم استرجاع البيانات باستخدام أوامر من لغة للاستعلام حيث تعتبر معلومات تساعد في عملية اتخاذ القرار.

نظام إدارة قواعد البيانات هو البرنامج الذي يتم من خلاله استرجاع البيانات، أو الإضافة أو التعديل عليها، أو حذفها، حيث يقوم البرنامج بالربط بين المستخدم وبين محرك قاعدة البيانات، لأداء تلك المهمة.

وفى حالة مايكون هناك علاقة بين جداول قاعدة البيانات يسمى هذا بنظام قواعد البيانات العلائقية (Relational Database Management System - RDBMS) الهدف الأساسي لقواعد البيانات هو التركيز على طريقة تنظيم البيانات وليس على التطبيقات الخاصة. أي أن الهدف الرئيسي لمصمم قاعدة البيانات هو تصميم البيانات بحيث تكون خالية من التكرار ويمكن استرجاعها وتعديلها والإضافة عليها دون المشاكل التي يمكن أن تحدث مع وجود التكرار فيها. يتم ذلك عن طريق ايجاد ثلاث مستويات من التجريد أو النماذج لقواعد البيانات تسمى نماذج التطبيع (Normalizing Forms)، ويقصد بها جعل تركيبة البيانات أقرب للطبيعة التصنيفية.

وهناك تركيبات لقواعد البيانات حسب نوع العلاقة الرياضية بين البيانات، ومنها:
· التركيب العلائقي : وهو اعتماد علاقة محددة بين عناصر البيانات، مثل أن تكون قيمة عنصر معتمدة على حاصل جمع عنصرين. وهذا التركيب هو أنجح التراكيب المطبقة في عالم قواعد البيانات المعلوماتية، وذلك بسبب إعطائه تنوع في نوع العلاقة بين البيانات، لأن احتمالية تنفيذ العلاقات فيه أكبر من اي تركيب اخر.
· التركيب الهيكلي : وهو اعتماد علاقة الهيكل التنظيمي بين عناصر البيانات، مثل أن يكون عنصرين مصنفين تحت عنصر واحد أو تابعين له.
· التركيب الهرمي : وهو اعتماد علاقة الهرم بين عناصر البيانات، مثل أن يكون كل عنصر مسؤول عن عنصر واحد فقط وليس أكثر

بيئات قواعد البيانات

أوراكل


شركة أوراكل (Oracle Corporation) هي واحدة من أضخم وأهم شركات تقنية المعلومات بشكل عام وقواعد البيانات بشكل خاص. تأسست شركة أوراكل في العام 1977 على يد "لاري اليسون" ولدى الشركة مراكز خدمة للعملاء في أكثر من 145 دولة. يعمل لاري اليسون كمدير تنفيذي لشركة اوراكل لعدة سنوات الآن وابتداءً من العام 2003 عمل لاري كرئيس لمجلس إدارة الشركة ذاتها. أعجب لاري بالورقة التي كتبها "إيدجار ف. كود" والتي تناول فيها ايدجار قواعد البيانات وبالتخصيص، قواعد البيانات ذات الحجم الكبير كقاعدة بيانات نظام التأمين الاجتماعي والتي عادة ما تضمّ العدد الهائل من المعلومات، فقام لاري بإنشاء شركة اوراكل ليتسنّى له تطبيق قاعدة البيانات التي وصفها ايدجار في ورقته البحثية. لم تكن الشركة التي أسسها لاري آنذاك تعرف باسمها الحالي "اوراكل" ولكن كان اسمها في العام 1977 "مختبرات تطوير البرامج". .
أراد لاري أن يجعل قاعدة البيانات "اوراكل" متطابقة مع قاعدة بيانات شركة "آي بي أم" والتي تعرف آنذاك بنظام R لقاعدة البيانات إلا ان شركة "آي بي أم" حالت دون ذلك بجعل الرسائل المتعلقة بالأخطاء الصادرة من قاعدة بيانات النظام R سريّة.

قاعدة البيانات اوراكل هي المنتج الرئيسي لشركة اوراكل وبدمج البرمجية جافا مع قاعدة البيانات اوراكل مكّن قاعدة البيانات من استخدامها لخوادم الويب وتمكين المبرمجين من إضافة برامجهم الخاصة على قاعدة بيانات اوراكل ليتصرفوا بشكل أفضل ويتحكموا بمخرجات البرامج التي يستعملونها على الويب. تنتج شركة اوراكل برامج مساندة لقاعدة البيانات كـ "مُصمم اوراكل" و"مُطوّر اوراكل" وتقوم هذه الأدوات البرمجية بالمساعدة على كتابة برامج تتعلق بقاعدة البيانات اوراكل بشكل أفضل واسرع.

يقع المركز الرئيسي لشركة اوراكل في مدينة "ريد وود" من سان فرانسيسكو الواقعة على الساحل الغربي من الولايات الأمريكية المتحدة في ولاية كاليفورنيا. تجدر الإشارة أن كلمة "اوراكل" تقابل كلمة العرّاف أو العرافة بالعربية، والمقصود بأوراكل هو الذي/التي لها إطّلاع على الأمور الغيبية نتيجة المعرفة، الحكمة أو الاتصال بالآلهة.