Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 2 Software Engineering

Similar presentations


Presentation on theme: "Chapter 2 Software Engineering"— Presentation transcript:

1 Chapter 2 Software Engineering
Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 1 1

2 Software Engineering Some realities: The seminal definition:
بعض الحقائق: وينبغي بذل جهود متضافرة لفهم المشكلة قبل أن يتم وضع حل البرمجيات تصميم يصبح النشاط المحوري البرمجيات يجب أن تظهر جودة عالية وينبغي أن تكون البرامج للصيانة تعريف المنوي: [هندسة البرمجيات هي] إنشاء واستخدام مبادئ الهندسة الصوتية من أجل الحصول على اقتصاديا البرمجيات التي يمكن الاعتماد عليها ويعمل بكفاءة على الأجهزة الحقيقية. Some realities: a concerted effort should be made to understand the problem before a software solution is developed design becomes a pivotal activity software should exhibit high quality software should be maintainable The seminal definition: [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. 2

3 Software Engineering The IEEE definition: Software Engineering:
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). تعريف IEEE: هندسة البرمجيات: (1) إن تطبيق منضبطة، مقاربة منهجية، قابلة للقياس الكمي لتطوير وتشغيل وصيانة البرمجيات؛ هذا هو، وتطبيق الهندسة إلى البرنامج. (2) دراسة النهج كما في (1). These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 3

4 A Layered Technology Software Engineering tools methods process model
تقنية الطبقات tools methods process model a “quality” focus Software Engineering These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 4

5 A Process Framework Process framework Framework activities work tasks
إطار عملية Process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities إطار عملية أنشطة الإطار مهام العمل منتجات العمل المعالم والمنجزات نقاط التفتيش QA مظلة الأنشطة These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 5

6 Framework Activities Communication Planning Modeling Construction
إطار الأنشطة Communication Planning Modeling Analysis of requirements Design Construction Code generation Testing Deployment الاتصالات تخطيط تصميم تحليل المتطلبات إنشاءات رمز جيل تجريب نشر These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 6

7 Umbrella Activities Software project tracking and control
مظلة الأنشطة Software project tracking and control Risk management Software quality assurance Technical reviews Measurement Software configuration management Reusability management Work product preparation and production برنامج تتبع المشاريع ومراقبة إدارة المخاطر ضمان جودة البرمجيات الاستعراضات الفنية قياس إدارة برامج التكوين إدارة إعادة استخدام إعداد المنتج العمل والإنتاج These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 7

8 Adapting a Process Model
تكييف نموذج عملية the overall flow of activities, actions, and tasks and the interdependencies among them the degree to which actions and tasks are defined within each framework activity the degree to which work products are identified and required the manner which quality assurance activities are applied the manner in which project tracking and control activities are applied the overall degree of detail and rigor with which the process is described the degree to which the customer and other stakeholders are involved with the project the level of autonomy given to the software team the degree to which team organization and roles are prescribed التدفق الإجمالي للأنشطة والإجراءات والمهام والترابط فيما بينها يتم تحديد الدرجة التي الإجراءات والمهام داخل كل إطار النشاط الدرجة التي يتم التعرف على المنتجات والعمل المطلوب الطريقة التي يتم تطبيق أنشطة ضمان الجودة الطريقة التي يتم تطبيق أنشطة تتبع المشاريع والتحكم الدرجة الكلية من التفصيل والدقة التي وصفت عملية الدرجة التي تشارك العملاء وأصحاب المصلحة الآخرين في المشروع مستوى الحكم الذاتي الممنوح للفريق البرمجيات توصف الدرجة التي تنظيم الفريق والأدوار 8

9 The Essence of Practice
جوهر الممارسة Polya suggests: 1. Understand the problem (communication and analysis). 2. Plan a solution (modeling and software design). 3. Carry out the plan (code generation). 4. Examine the result for accuracy (testing and quality assurance). بوليا يقترح: 1. فهم المشكلة (الاتصال والتحليل). 2. خطة الحل (النمذجة وتصميم البرمجيات). 3. تنفيذ خطة (رمز جيل). 4. افحص نتيجة للتأكد من دقتها (الاختبار وضمان الجودة). These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 9

10 Understand the Problem
فهم المشكلة Who has a stake in the solution to the problem? That is, who are the stakeholders? What are the unknowns? What data, functions, and features are required to properly solve the problem? Can the problem be compartmentalized? Is it possible to represent smaller problems that may be easier to understand? Can the problem be represented graphically? Can an analysis model be created? الذي لديه مصلحة في حل لهذه المشكلة؟ وهذا هو، من هم أصحاب المصلحة؟ ما هي المجهولة؟ ما هي البيانات والوظائف والميزات المطلوبة لإيجاد حل سليم للمشكلة؟ يمكن مجزأة المشكلة؟ هل من الممكن أن تمثل المشاكل الصغيرة التي قد تكون أسهل للفهم؟ يمكن تمثيل المشكلة بوضوح؟ يمكن إنشاء نموذج التحليل؟ 10

11 Plan the Solution خطة الحل Have you seen similar problems before? Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, and features that are required? Has a similar problem been solved? If so, are elements of the solution reusable? Can subproblems be defined? If so, are solutions readily apparent for the subproblems? Can you represent a solution in a manner that leads to effective implementation? Can a design model be created? هل رأيت مشاكل مماثلة من قبل؟ هل هناك الأنماط التي يمكن التعرف عليها في حل محتمل؟ هل هناك برنامج القائمة التي تطبق على البيانات والوظائف والميزات المطلوبة؟ وقد تم حل مشكلة مماثلة؟ إذا كان الأمر كذلك، هي عناصر قابلة لإعادة الاستخدام الحل؟ يمكن تعريف المشاكل الثانوية؟ إذا كان الأمر كذلك، حلول بادية للعيان للا لمشاكل الثانوية؟ يمكنك يمثل حلا بطريقة تؤدي إلى التنفيذ الفعال؟ يمكن إنشاء نموذج التصميم؟ 11

12 Carry Out the Plan تنفيذ خطة Does the solution conform to the plan? Is source code traceable to the design model? Is each component part of the solution provably correct? Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm? هل تتفق الحل لهذه الخطة؟ هو شفرة المصدر يمكن عزوها إلى نموذج التصميم؟ هو كل جزء مكون من الحل الصحيح ثبت نجاح؟ وتصميم ورمز تم استعراض، أو أفضل، والبراهين صحة تم تطبيقها على خوارزمية؟ These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 12

13 Examine the Result دراسة نتائج Is it possible to test each component part of the solution? Has a reasonable testing strategy been implemented? Does the solution produce results that conform to the data, functions, and features that are required? Has the software been validated against all stakeholder requirements? هل من الممكن لاختبار كل جزء مكون من الحل؟ لديه استراتيجية اختبار معقولة تم تنفيذها؟ لا نتائج إنتاج الحل التي تتوافق مع البيانات والوظائف والميزات المطلوبة؟ تمت البرنامج تم التحقق من جميع متطلبات أصحاب المصلحة؟ These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 13

14 Hooker’s General Principles
المبادئ العامة هكر 1: The Reason It All Exists 2: KISS (Keep It Simple, Stupid!) 3: Maintain the Vision 4: What You Produce, Others Will Consume 5: Be Open to the Future 6: Plan Ahead for Reuse 7: Think! 1: السبب هو كل موجود 2: KISS (يبقيه بسيط، غبي!) 3: الحفاظ على الرؤية 4: ما أنت إنتاج، أخرى سوف تستهلك 5: كن منفتحا على المستقبل 6: التخطيط المبكر لإعادة الاستخدام 7: فكر! These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 14

15 Software Myths أساطير البرمجيات Affect managers, customers (and other non-technical stakeholders) and practitioners Are believable because they often have elements of truth, but … Invariably lead to bad decisions, therefore … Insist on reality as you navigate your way through software engineering تؤثر المديرين والعملاء (وأصحاب المصلحة غير الفنية) والممارسين هل يمكن تصديقها لأنها في كثير من الأحيان عناصر من الحقيقة، ولكن ... يؤدي حتما إلى قرارات سيئة، لذا … الإصرار على الواقع كما يمكنك التنقل في طريقك من خلال هندسة البرمجيات These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 15 15

16 How It all Starts SafeHome:
Every software project is precipitated by some business need— the need to correct a defect in an existing application; the need to the need to adapt a ‘legacy system’ to a changing business environment; the need to extend the functions and features of an existing application, or the need to create a new product, service, or system. كيف كل شيء يبدأ SafeHome: وعجلت كل مشروع البرنامج من قبل بعض رجال الأعمال الحاجة، الحاجة إلى تصحيح الخلل في تطبيق القائمة؛ الحاجة إلى ضرورة التكيف مع "النظام القديم" لبيئة الأعمال المتغيرة؛ الحاجة لتوسيع وظائف وميزات أحد التطبيقات الموجودة، أو الحاجة لخلق منتج جديد أو خدمة أو النظام. 16 16


Download ppt "Chapter 2 Software Engineering"

Similar presentations


Ads by Google