Chapter 6 Design and Implementation Software design and implementation is the stage in SDLC where executable software system is developed. Software design and implementation, activities are invariably inter-leaved. Software design is a creative activity in which you identify software components and their relationships, based on a customer's requirements Implementation is the process of realizing the design as a program. تصميم و تنفيذ تصميم البرامج وتنفيذها هو المرحلة في SDLC حيث يتم تطوير نظام برمجي قابل للتنفيذ. تصميم البرامج وتنفيذها واألنشطة هي دائما بين محفورة. تصميم البرامج هو نشاط مبتكر تحدد فيه مكونات البرامج وعالقاتها بناء على متطلبات العميل. التنفيذ هو عملية تحقيق التصميم كبرنامج. An Object-oriented Design Process Structured object-oriented design processes involve developing a number of different system models. They require a lot of effort for development and maintenance of these models and, for small systems, this may not be cost-effective. However, for large systems developed by different groups design models are an important communication mechanism. عملية تصميم وجوه المنحى تتضمن عمليات التصميم الهيكلية الموجهة للكائنات تطوير عدد من طرازات النظام المختلفة. وهي تتطلب الكثير من الجهد لتطوير وصيانة هذه الطرازات وبالنسبة لألنظمة الصغيرة قد ال يكون ذلك فعاال من حيث التكلفة. ومع ذلك بالنسبة للنظم الكبيرة التي طورتها المجموعات المختلفة تعد نماذج التصميم آلية اتصال مهمة. process Stages There are a variety of different object-oriented design processes that depend on the organization using the process. Common activities in these processes include: Define the context and modes of use of the system; Design the system architecture;
Identify the principal system objects; Develop design models; Specify object interfaces. مراحل العملية هناك مجموعة متنوعة من عمليات التصميم الموجهة للكائنات المختلفة التي تعتمد على المؤسسة باستخدام العملية. تشمل األنشطة الشائعة في هذه العمليات ما يلي: تحديد سياق وأنماط استخدام النظام تصميم بنية النظام تحديد كائنات النظام الرئيسية تطوير نماذج التصميم تحديد واجهات الكائن. Context and Interaction Models A system context model is a structural model that demonstrates the other systems in the environment of the system being developed. An interaction model is a dynamic model that shuows how the system interacts with environment as it used. نماذج السياق والتفاعل نموذج سياق النظام هو نموذج بنيوي يوضح األنظمة األخرى في بيئة النظام الجاري تطويره. نموذج التفاعل هو نموذج ديناميكي يفسد كيف يتفاعل النظام مع البيئة أثناء استخدامه. Fig 6.It Context Model for the Weather Station
Fig 6.2: Weather Station Use Cases Implementation Issues Software engineering includes all of the activities involved in software development from the initial requirements of the system system. A critical stage of this process is, of course, system implementation, where you create an through to maintenance and management of the deployed executable version of the software. Implementation may involve developing programs in highprogramming or tailoring and adapting generic, off-the-shelf systems to meet the or low-level specific requirements of an organization. قضايا التنفيذ تشمل هندسة البرمجيات جميع األنشطة التي ينطوي عليها تطوير البرمجيات من المتطلبات األولية لنظام النظام. إن المرحلة الحرجة من هذه العملية هي بالطبع تنفيذ النظام حيث تقوم بإنشاء نسخة إلى الصيانة وإدارة.اإلصدار القابل للتنفيذ من البرنامج قد ينطوي التنفيذ على تطوير برامج في البرمجة عالية المستوى أو منخفضة المستوى أو تكييف وتكييف.األنظمة العامة الجاهزة لتلبية المتطلبات المحددة للمنظمة Some aspects of implementation that are particularly important to software engineering that are often not covered in programming texts. These are: Reuse Configuration management Host-target development
Reuse From the 1960s to the 1990s, most new software was developed from scratch, by writing all code in a high-level programming language. The only significant reuse or software was the reuse of finctions and objets in programming language libraries Costs and schedule pressure mean that this approach became increasingly unviable, especially for commercial and Internet-based systems. An approach to development based around the reuse of existing software emerged and is now generally used for business and scientific software. بعض جوانب التنفيذ ذات األهمية الخاصة لهندسة البرمجيات التي غالب ا ما ال تغطيها نصوص البرمجة. هؤالء هم: إعادة استخدام إدارة التكوين تطوير المضيف الهدف إعادة استخدام من الستينات إلى التسعينات تم تطوير معظم البرامج الجديدة من الصفر عن طريق كتابة جميع الرموز بلغة برمجة عالية المستوى. كانت إعادة االستخدام أو البرنامج الوحيد المهم هو إعادة استخدام الزوايا واألشياء في مكتبات لغات البرمجة تعني التكاليف وجدول الضغط أن هذا النهج أصبح غير قابل للتطبيق بشكل متزايد خاصة لألنظمة التجارية واإلنترنت. ظهر نهج للتنمية يستند إلى إعادة استخدام البرمجيات الموجودة وهو ي ستخدم اآلن بشكل عام لألعمال التجارية والبرامج العلمية. Reuse Levels The abstraction level: At this level, we don't reuse software directly but use knowledge of successful abstractions in the design of your software. The object level: At this level, we directly reuse objects from a library rather than writing the code yourself. The component level: Components are collections of objects and object classes that we reuse in application systems. The system level: At this level, we reuse entire application systems. مستويات إعادة االستخدام مستوى التجريد: على هذا المستوى ال نعيد استخدام البرنامج مباشرة ولكن نستخدم معرفة التجريدات الناجحة في تصميم برنامجك. مستوى الكائن: في هذا المستوى نعيد استخدام الكائنات مباشرة من مكتبة بدال من كتابة الشفرة بنفسك.
مستوى المكون: المكونات هي مجموعات من الكائنات وفئات الكائن التي نستخدمها في أنظمة التطبيق. مستوى النظام: على هذا المستوى نعيد استخدام أنظمة التطبيقات بالكامل. Configuration Management Configuration management is the name given to the general process of managing a changing software system. The aim of configuration management is to support the system integration process so that all developers can access the project code and documents in a controlled way, find out what changes have been made, and compile and link components to create a system. إدارة التكوين إدارة التهيئة هي االسم الذي يطلق على العملية العامة إلدارة نظام برمجي متغير. الهدف من إدارة التهيئة هو دعم عملية تكامل النظام بحيث يتمكن جميع المطورين من الوصول إلى كود المشروع والمستندات بطريقة مضبوطة ومعرفة التغييرات التي تم إجراؤها وترجمة المكونات وربطها إلنشاء نظام. Configuration Management Activities Version management, where support is provided to keep track of the different versions of software components Version management systems include facilities to coordinate development by several programmers. System integration, where support is provided to help developers define what versions of components are used to create each version of a system. This description is then used to build system automatically by compiling and linking the required components. Problem tracking where support is provided to allow user to report bugs and other Problems, and to allow all developers to see who is working on these problems and when they are fixed. أنشطة إدارة التكوين إدارة اإلصدارات حيث يتم توفير الدعم لتتبع اإلصدارات المختلفة من مكونات البرامج تتضمن أنظمة إدارة اإلصدارات تسهيالت لتنسيق التطوير من قبل العديد من المبرمجين. تكامل النظام حيث يتم توفير الدعم لمساعدة المطورين على تحديد إصدارات المكونات المستخدمة إلنشاء كل إصدار من النظام. يستخدم هذا الوصف بعد ذلك لبناء النظام تلقائي ا عن طريق تجميع المكونات المطلوبة وربطها. تتبع المشكلة حيث يتم توفير الدعم للسماح للمستخدم باإلبالغ عن األخطاء والمشاكل األخرى والسماح لجميع المطورين لمعرفة من الذي يعمل على هذه المشاكل وعندما يتم إصالحها.
Host-Target Development Most software is developed on one computer (the host), but runs on a separate machine target). In general terms we can say development platform and an execution platform. A platform is more than just hardware. It includes the installed operating system plus other supporting software such as a database management system or, for development platforms, an interactive development environment. Development platform usually has different installed software than execution platform;, these platforms may have different architectures. تطوير المستضيف يتم تطوير معظم البرامج على جهاز كمبيوتر واحد )المضيف( ولكن يعمل على هدف جهاز منفصل(. بشكل عام يمكننا أن نقول منصة التطوير ومنصة التنفيذ. النظام األساسي هو أكثر من مجرد أجهزة. يشمل نظام التشغيل المثبت باإلضافة إلى البرامج الداعمة األخرى مثل نظام إدارة قواعد البيانات أو منصات التطوير بيئة تطوير تفاعلية. عادة ما تحتوي منصة التطوير على برامج تثبيت مختلفة عن منصة التنفيذ وقد يكون لهذه المنصات أبنية مختلفة. Open Source Development open-source software (OSS) is computer software distribute modification. The software usually includes a license for programmers to change the any way they choose. They can fix bugs, improve functions, or adapt the software t own needs. Its roots are in the Free Software Foundation (www.fsf.org), which advocates that source code should not be proprietary but rather should always be available for users to examine and modify as they wish. تطوير المصدر المفتوح برنامج مفتوح المصدر )OSS( هو برنامج كمبيوتر يوزع التعديل. عادة ما يشتمل البرنامج على ترخيص للمبرمجين لتغيير أي طريقة يختارونها. يمكنهم إصالح األخطاء أو تحسين الوظائف أو تكييف احتياجات البرامج الخاصة. تكمن جذورها في مؤسسة البرمجيات الحرة )www.fsf.org( التي تدعو إلى أال تكون شفرة المصدر ملكية خاصة بل يجب أن تكون متاحة دائم ا للمستخدمين لفحصها وتعديلها كما يحلو لهم. Open Source Systems
The best-known open source product is, of course, the Linux operating system which is widely used as a server system and, increasingly, as a desktop environment أنظمة المصدر المفتوح إن أفضل منتج مفتوح المصدر هو بطبيعة الحال نظام التشغيل Linux الذي يستخدم على نطاق واسع كنظام خادم وبشكل متزايد كبيئة سطح مكتب Other important open source products are: Apache HTTP Server (web server) Blender 3D graphics and animation package) GNOME (Linux desktop environment) GNU Compiler Collection (GCC, a suite of compilation tools for C, C++, etc) Moodle (virtual learning system) firefox (web browser based on Mozilla) MySQL (database) openoffice.org (off ice suite, including word processor, spreadsheet, and presentation software) Perl (programming/scripting language) Python (programming/scripting language) المنتجات الهامة األخرى مفتوحة المصدر هي: خادم Apache HTTP )خادم الويب( خالط D3 الرسومات ومجموعة الرسوم المتحركة( جنوم )بيئة سطح المكتب )Linux GCC( GNU Compiler Collection مجموعة من أدوات التجميع ل ++ C C إلخ( موودل )نظام التعلم االفتراضي( فايرفوكس )مستعرض ويب يستند إلى موزيال( MySQL )قاعدة بيانات( openoffice.org )خارج مجموعة الجليد بما في ذلك معالج النصوص وجداول البيانات وبرنامج العرض التقديمي( بيرل )لغة برمجة / برمجة( بايثون )لغة برمجة / برمجة(
Open Source Business More and more product companies are using an open source approach to development. Their business model is not reliant on selling a software product but on selling support for that product. They believe that involving the open source community will allow software to be developed more cheaply, more quickly and will create a community of users for the software. المصدر المفتوح األعمال المزيد والمزيد من شركات المنتجات تستخدم نهج المصدر المفتوح للتنمية. ال يعتمد نموذج أعمالهم على بيع منتج برمجيات ولكن على بيع الدعم لهذا المنتج. يعتقدون أن إشراك مجتمع المصدر المفتوح سوف يسمح بتطوير البرمجيات با سعار رخيصة وبسرعة أآبر وسيؤدي إلى إنشاء مجتمع من المستخدمين للبرنامج. Open Source Licensing A fundamental principle of open-source development is that source code should be freely available, this does not mean that anyone can do as they wish with that code. Legally, the developer of the code (either a company or an individual) still owns the code. They can place restrictions on how it is used by including legally binding conditions in an open source software license. Some open source developers believe that if' an open source component s used develop a new system, then that system should also be open source. Others are willing to allow their code to be used without this restriction. The developed systems may be proprietary and sold as closed source systems. ترخيص المصدر المفتوح المبدأ األساسي لتطور المصادر المفتوحة هو أن شفرة المصدر يجب أن تكون متاحة بحرية وهذا ال يعني أن أي شخص يستطيع أن يفعل ما يشاء مع هذا الرمز. من الناحية القانونية ال يزال مطور الشفرة )سواء شركة أو فرد( يمتلك الرمز. يمكنهم وضع قيود على كيفية استخدامها من خالل تضمين شروط ملزمة قانون ا في ترخيص برنامج مفتوح المصدر. يعتقد بعض مطوري المصادر المفتوحة أنه إذا كان "مكون المصدر المفتوح المستخدم في تطوير نظام جديد فإن هذا النظام يجب أن يكون مفتوح المصدر أيض ا. آخرون على استعداد للسماح باستخدام رمزهم دون هذا القيد. قد تكون األنظمة المتقدمة ملكية خاصة ويتم بيعها كنظم مغلقة المصدر.