Summary

These are software engineering questions. They cover topics such as software development and analysis. The questions may cover various aspects of software engineering, including requirements analysis, design, testing, and documentation.

Full Transcript

INTRO TO SOFTWARE ENGINEERING 1. Explain why professional software that is developed for a customer is not simply the programs that have been developed and delivered. Answer: Professional software includes: Requirements Analysis: Understanding what the customer needs. Design: Planning ho...

INTRO TO SOFTWARE ENGINEERING 1. Explain why professional software that is developed for a customer is not simply the programs that have been developed and delivered. Answer: Professional software includes: Requirements Analysis: Understanding what the customer needs. Design: Planning how the software will work. Testing: Making sure the software works correctly. Documentation: Writing guides for users and developers. Ongoing Support: Fixing issues and updating the software over time. :‫رشح‬ :‫ بتكون شاملة‬.‫الربمجيات االحرتافية مش مجرد كتابة كود‬.‫ فهم احتياجات العميل‬:‫ تحليل المتطلبات‬.‫ تخطيط كيفية عمل الربنامج‬:‫ التصميم‬.‫ التأكد من أن الربنامج يعمل بشكل صحيح‬:‫ االختبار‬.‫ كتابة أدلة للمستخدمني والمطورين‬:‫ التوثيق‬.‫ إصالح المشاكل وتحديث الربنامج مع الوقت‬:‫ الدعم المستمر‬ 2. What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products? Answer: Generic Software: Made for many users, has fixed features, and is less flexible. Custom Software: Made for one customer, can be changed to fit their needs, and is highly flexible. In Practice: Users of generic software may find that it doesn’t fully meet their needs, while custom software is designed specifically for them. :‫رشح‬.‫ ومرونتها أقل‬،‫ ومزياتها ثابتة‬،‫ بتكون لعدد كبري من المستخدمني‬:‫ الربمجيات العامة‬ ،‫ وبتتغري عشان تناسب احتياجاتهم‬،‫ بتكون لعمالء معينني‬:‫ الربمجيات المخصصة‬.‫ومرونتها عالية‬ :‫في الواقع‬ ‫ أما الربمجيات‬،‫مستخدمي الربمجيات العامة ممكن يالقوا أنها مش بتليب كل احتياجاتهم‬ ً.‫خصيصا لهم‬ ‫المخصصة بتكون مصممة‬ 3. Briefly discuss why it is usually cheaper in the long run to use software engineering methods and techniques for software systems. Answer: Using software engineering methods: Reduces Errors: Fewer mistakes mean less time fixing them. Improves Maintainability: Easier to update and fix the software later. Saves Time and Money: Efficient processes lead to lower costs over time. :‫رشح‬ :‫استخدام أساليب هندسة الربمجيات‬.‫ عدد أقل من األخطاء يعين وقت أقل في اإلصالح‬:‫ بيقلل األخطاء‬ ً.‫الحقا‬ ‫ بيكون أسهل تحديث وإصالح الربنامج‬:‫ بيحنس الصيانة‬.‫ العمليات الفعالة بتؤدي لتكاليف أقل عىل المدى الطويل‬:‫ بيوفر وقت وفلوس‬ 4. Software engineering is not only concerned with issues like system heterogeneity, business and social change, trust, and security, but also with ethical issues affecting the domain. Give some examples of ethical issues that have an impact on the software engineering domain. Answer: Data Privacy: Protecting user data from misuse. Bias in Algorithms: Ensuring AI systems are fair and unbiased. Intellectual Property: Respecting copyrights and patents. Job Displacement: Considering how automation affects jobs. :‫رشح‬.‫ حماية بيانات المستخدمني من االستخدام الخاطئ‬:‫ خصوصية البيانات‬.‫ التأكد من أن أنظمة الذكاء االصطناعي عادلة وبدون تحزي‬:‫ التحزي في الخوارزميات‬.‫ احرتام حقوق النرش والرباءات‬:‫ الملكية الفكرية‬.‫ التفكري في تأثري األتمتة عىل الوظائف‬:‫ فقدان الوظائف‬ 5. Based on your own knowledge of some of the application types discussed in lectures, explain, with examples, why different application types require specialized software engineering techniques to support their design and development. Answer: Transaction Processing Systems: Need techniques for handling many transactions at the same time (e.g., banking systems). Real-Time Systems: Need techniques for quick responses (e.g., air traffic control). Embedded Systems: Need techniques for working with limited resources (e.g., smart home devices). :‫رشح‬ ‫ محتاجة تقنيات للتعامل مع معامالت كثرية في نفس‬:‫ أنظمة معالجة المعامالت‬.)‫الوقت (مثل أنظمة البنوك‬ ‫ محتاجة تقنيات للرد الرسيع (مثل أنظمة مراقبة الحركة‬:‫ األنظمة الزمنية الحقيقية‬.)‫الجوية‬ ‫ محتاجة تقنيات للعمل بموارد محدودة (مثل أجهزة المزنل‬:‫ األنظمة المدمجة‬.)‫الذكي‬ 6. Explain why the fundamental software engineering principles of process, dependability, requirements management, and reuse are relevant to all types of software systems. Answer: Process: Provides a structured way to develop software, making it efficient. Dependability: Ensures the software is reliable and safe. Requirements Management: Helps understand and track user needs. Reuse: Saves time and money by using existing solutions. :‫رشح‬.‫ مما يجعلها فعالة‬،‫ توفر طريقة منظمة لتطوير الربمجيات‬:‫ العملية‬.‫ تضمن أن الربنامج موثوق وآمن‬:‫ االعتمادية‬.‫ تساعد في فهم وتتبع احتياجات المستخدم‬:‫ إدارة المتطلبات‬.‫ توفر وقت ومال باستخدام حلول موجودة من قبل‬:‫ إعادة االستخدام‬ 7. Noncertified individuals are still allowed to practice software engineering. Discuss some of the possible drawbacks of this. Answer: Poor Quality: The software may have many errors. Security Risks: The software may be easy to hack. Inconsistent Standards: Each engineer may work differently. Reputation Damage: Poor software can harm the company’s reputation. :‫رشح‬.‫ الربنامج ممكن يكون مليان أخطاء‬:‫ جودة ضعيفة‬.‫ الربنامج ممكن يكون سهل االخرتاق‬:‫ مخاطر أمنية‬.‫ كل مهندس ممكن يعمل بطريقة مختلفة‬:‫ معايري غري متسقة‬.‫ الربامج الضعيفة ممكن ترض بسمعة الرشكة‬:‫ تلف السمعة‬ 8. Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems. Explain your answer according to the type of system being developed: Answer: Anti-lock Braking System: Waterfall model (needs careful planning and is safety-critical). Virtual Reality System: Agile model (needs flexibility due to changing requirements). University Accounting System: Reuse-based model (uses existing solutions and has well-known requirements). Interactive Travel Planning System: Incremental model (needs user feedback and has a complex interface). :‫رشح‬.‫ عشان محتاج تخطيط دقيق وهو نظام حساس للسالمة‬Waterfall :‫ نظام الفرامل‬.‫ عشان محتاج مرونة بسبب المتطلبات المتغرية‬Agile :‫ نظام الواقع االفرتايض‬ ‫ عشان بيستخدم حلول موجودة ومتطلباته‬Reuse-based :‫ نظام محاسبة الجامعة‬.‫معروفة‬ ‫ عشان محتاج رأي المستخدمني وواجهته‬Incremental :‫ نظام التخطيط للسفر‬.‫معقدة‬ 9. Incremental software development could be very effectively used for customers who do not have a clear idea about the systems needed for their operations. Discuss. Answer: Incremental development allows customers to see parts of the system early and give feedback. This helps clarify their needs and ensures the final system meets their requirements. :‫رشح‬ ‫ ده بيوضح‬.‫التطوير التدريجي يسمح للعميل يشوف أجزاء من النظام في البداية ويعطي رأيه‬.‫احتياجاته ويضمن أن النظام النهائي يليب متطلباته‬ 10. Explain why it is essential to repeat the requirements engineering activity in the process. Answer: Requirements can change over time. Repeating the requirements engineering activity ensures the software stays aligned with the customer’s needs. :‫رشح‬ ‫ إعادة نشاط هندسة المتطلبات يضمن أن الربنامج يظل‬.‫المتطلبات ممكن تتغري مع الوقت‬ ً.‫متوافقا مع احتياجات العميل‬ 11. Why it is important to distinguish between developing user requirements and system requirements in the requirements engineering process Answer: User Requirements: Simple descriptions of what users need. System Requirements: Detailed technical specifications of how the system will fulfill these needs. Importance: User requirements ensure the system meets the users' needs, while system requirements guide developers in how to implement those needs technically. :‫رشح‬.‫ هي عبارة عن رشح بسيط الحتياجات المستخدمني‬:‫ متطلبات المستخدم‬ ‫ هي التفاصيل التقنية اليت توضح كيف سيليب النظام هذه‬:‫ متطلبات النظام‬.‫االحتياجات‬ :‫لماذا ذلك مهم‬ ‫ بينما متطلبات‬،‫متطلبات المستخدم تضمن أن النظام يليّب احتياجات المستخدمني‬.‫النظام تساعد المطورين في فهم كيفية تنفيذ هذه االحتياجات بطريقة تقنية‬ 12. Explain why design activities such as architectural, database, interface, and component design are interdependent Answer: Example: E-commerce Platform Architectural Design: Defines the overall system structure (e.g., microservices). Database Design: Specifies how data is stored and accessed. Interface Design: Specifies how users interact with the system. Component Design: Defines how each part of the system functions. Interdependence: All these designs are interconnected. For instance, the database must align with the system architecture, and the interface design must match the components. :‫رشح‬ ‫ منصة تجارة إلكرتونية‬:‫مثال‬.)‫ يحدد بنية النظام الكلية (مثل المايكرو سريفيس‬:‫تصميم الهيكل‬.‫ يحدد كيفية تخزين البيانات وكيفية الوصول إليها‬:‫تصميم قاعدة البيانات‬.‫ يحدد كيفية تفاعل المستخدم مع النظام‬:‫تصميم الواجهة‬.‫ يحدد كيفية عمل كل جزء من النظام‬:‫تصميم المكونات‬ :‫التشابك‬ ً ‫كل هذه التصاميم يجب أن تتعاون‬ ‫ تصميم قاعدة البيانات يجب أن يتماىش‬،‫ عىل سبيل المثال‬.‫معا‬.‫ وكذلك تصميم الواجهة يجب أن يتناسب مع المكونات اليت تم تصميمها‬،‫مع الهيكل العام للنظام‬ 13. Why should software testing be incremental, and are programmers the best testers for their programs? Answer: Incremental Testing: Testing step by step to catch errors early and ensure the system behaves as expected. Programmers Testing: Programmers are not always the best testers since they may overlook their own mistakes. Independent testers are more objective. :‫رشح‬ ‫ االختبار يكون خطوة بخطوة للكشف عن األخطاء مبك ًرا وضمان‬:‫ االختبار التدريجي‬.‫عمل النظام كما هو متوقع‬ ً ‫دائما أفضل من يختربون ألنهم قد يتغاضون عن‬ ‫ المربمجني مش‬:‫ اختبار المربمجني‬.‫ المختربون المستقلون أكرث موضوعية‬.‫أخطائهم الخاصة‬ 14. Discuss the pros and cons of extending a prototype to become the actual system. Answer: Pros: Rapid Feedback: Allows the government to see and test the system early. User Engagement: Stakeholders can get involved in the process. Faster Development: Prototypes speed up the development process. Cons: Incomplete Requirements: The system might miss some critical features. Technical Debt: Prototypes might not be maintainable or scalable. Security Risks: Prototypes are often not fully tested for security. :‫رشح‬ :‫اإليجابيات‬.‫ الحكومة تشوف النظام في مرحلة مبكرة وتختربه‬:‫ رد فعل رسيع‬.‫ أصحاب المصلحة ممكن يشاركوا في عملية التطوير‬:‫ مشاركة المستخدم‬.‫ النموذج األويل يساعد في ترسيع عملية التطوير‬:‫ تطوير أرسع‬ :‫السلبيات‬.‫ النظام قد يفتقد بعض المزيات األساسية‬:‫ متطلبات غري مكتملة‬.‫ النموذج األويل قد ال يكون قاباًل للصيانة أو التوسع‬:‫ ديون تقنية‬.‫ النماذج األولية غال ًبا غري مختربة لألمان‬:‫ مخاطر األمان‬ 15. Why prototype systems should not be used as production systems Answer: 1. Lack of Robustness: Prototypes aren't designed for long-term use and may break. 2. Insufficient Testing: They often aren't tested fully for security and performance. 3. Scalability Issues: Prototypes may not handle large numbers of users or data. 4. Technical Debt: The focus on quick development may result in poor code quality. 5. User Expectations: Users might expect more than what the prototype can deliver. :‫رشح‬ ‫ النماذج األولية ليست مصممة لالستخدام طويل األمد وقد تتعرض‬:‫ عدم المتانة‬.1.‫للفشل‬.‫ غال ًبا ال يتم اختبارها بالكامل من حيث األداء واألمان‬:‫كاف‬ ٍ ‫ اختبار غري‬.2 ‫ النماذج األولية قد ال تتحمل أعداد كبرية من المستخدمني أو‬:‫ مشاكل في التوسع‬.3.‫بيانات ضخمة‬.‫ الرتكزي عىل التطوير الرسيع قد يؤدي إىل ضعف جودة الكود‬:‫ ديون تقنية‬.4 ‫ قد يتوقع المستخدمون أكرث من قدرة النموذج األويل عىل‬:‫ توقعات المستخدمني‬.5.‫تقديمه‬ 16. Two advantages and two disadvantages of the SEI's Capability Maturity Framework Answer: Advantages: 1. Structured Improvement: Provides a clear pathway for process improvement. 2. Experience-Based: Relies on the knowledge of other successful organizations. Disadvantages: 1. Costly: Implementation of the framework can be expensive. 2. Not Goal-Oriented: It may not focus on specific business outcomes. :‫رشح‬ :‫اإليجابيات‬ ً.‫واضحا لتحسني العمليات‬ ‫ يوفر مسا ًرا‬:‫ تحسني منظم‬.1.‫ يعتمد عىل تجارب منظمات أخرى ناجحة‬:‫ مبين عىل الخربة‬.2 :‫السلبيات‬ ً.‫مكلفا‬ ‫ تطبيق اإلطار قد يكون‬:‫ مكلف‬.1.‫ قد ال يركز عىل النتائج التجارية المحددة‬:‫ غري موجه لألهداف‬.2 17. How agile methods lead to accelerated software development Answer: 1. Working Software: Delivers functional software quickly. 2. Customer Feedback: Incorporates feedback regularly to improve the product. 3. Flexibility: Easily adapts to changing requirements. 4. Team Collaboration: Encourages teamwork and communication. :‫رشح‬.‫ تسليم برامج عاملة برسعة‬:‫ برامج عاملة‬.1.‫ االستفادة من رأي العمالء بشكل دوري لتحسني المنتج‬:‫ رأي العمالء‬.2.‫ التكيف بسهولة مع التغيريات في المتطلبات‬:‫ المرونة‬.3.‫ تشجيع العمل الجماعي والتواصل‬:‫ تعاون الفريق‬.4 18. Advantages and disadvantages of using stories in extreme programming Answer: Advantages: 1. Easy to Understand: Stories are clear and concise. 2. User-Centric: Focuses on actual user needs. 3. Incremental: Allows for small, manageable iterations. Disadvantages: 1. Limited Scope: May miss critical non-functional requirements. 2. No Architecture: Can’t represent the overall system structure. 3. Over-Simplification: Complex requirements might be oversimplified. :‫رشح‬ :‫اإليجابيات‬.‫ القصص واضحة ومبارشة‬:‫ سهلة الفهم‬.1.‫ تركز عىل احتياجات المستخدم الفعلية‬:‫ مركزة عىل المستخدم‬.2.‫ تسمح بتطويرات صغرية وقابلة لإلدارة‬:‫ تدريجية‬.3 :‫السلبيات‬.‫ قد تتغاىض عن المتطلبات غري الوظيفية‬:‫ نطاق محدود‬.1.‫ ال يمكنها تمثيل هيكل النظام الكامل‬:‫ بدون هيكل‬.2.‫ قد يتم تبسيط المتطلبات المعقدة بشكل مفرط‬:‫ تبسيط مفرط‬.3 19. Comparing Scrum and plan-based approaches Answer: Parameter Scrum Plan-Based Planning Flexible, adapts to changes Follows a fixed plan Team Daily stand-up meetings to Project manager ensures team Cohesion align the team cohesion Cost Based on team capacity and Based on detailed requirements Estimation delivery timelines analysis Team New members require time Easier to replace members due to Changes to catch up detailed documentation ‫رشح‬: ‫المعيار‬ Scrum Plan-Based ‫التخطيط‬ ‫مرن ويواكب التغيريات‬ ‫يتبع خطة ثابتة‬ ‫تماسك‬ ‫اجتماعات يومية لمواءمة الفريق‬ ‫مدير المرشوع يضمن تماسك الفريق‬ ‫الفريق‬ ‫تقدير‬ ‫يعتمد عىل قدرة الفريق والجداول‬ ‫يعتمد عىل تحليل متطلبات تفصييل‬ ‫التكلفة‬ ‫الزمنية للتسليم‬ ‫تغيريات‬ ‫ً‬ ‫وقتا‬ ‫األعضاء الجدد يحتاجون‬ ‫أسهل في استبدال األعضاء بفضل‬ ‫الفريق‬ ‫لاللتحاق بالفريق‬ ‫التوثيق التفصييل‬ ‫‪20. Why plan-based methods are necessary for scaling agile to large, distributed‬‬ ‫‪projects‬‬ ‫‪Answer:‬‬ ‫‪ Project Planning: Ensures teams are synchronized.‬‬ ‫‪ Requirements Documentation: Helps manage distributed work.‬‬ ‫‪ Design Documentation: Supports independent team work.‬‬ ‫‪ Risk Management: Reduces risks from different team schedules.‬‬ ‫رشح‪:‬‬ ‫ تخطيط المرشوع‪ :‬يضمن تنسيق الفرق‪.‬‬ ‫ توثيق المتطلبات‪ :‬يساعد في إدارة العمل الموزع‪.‬‬ ‫ توثيق التصميم‪ :‬يدعم العمل المستقل للفرق‪.‬‬ ‫ إدارة المخاطر‪ :‬يقلل من المخاطر الناتجة عن جداول العمل المختلفة‪.‬‬ 21. It has been suggested that one of the problems of having a user closely involved with a software development team is that they ‘go native’. That is, they adopt the outlook of the development team and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid this problem and discuss the advantages and disadvantages of each approach. Answer: 1. Involve Multiple Users: ○ Advantages: Get different perspectives from multiple users. ○ Disadvantages: Can be costly and may lead to conflicts. 2. Rotate the User Representative: ○ Advantages: Fresh perspectives from different users. ○ Disadvantages: Each new user needs time to understand the project. 3. Validate User Suggestions with Other Users: ○ Advantages: Ensures suggestions align with broader user needs. ○ Disadvantages: Slows down the development process. :‫رشح‬ :‫إرشاك عدة مستخدمني‬.1.‫ الحصول عىل وجهات نظر مختلفة من عدة مستخدمني‬:‫اإليجابيات‬ ○.‫ ممكن يكون مكلف ويؤدي لرصاعات‬:‫السلبيات‬ ○ :‫تغيري ممثل المستخدم‬.2.‫ وجهات نظر جديدة من مستخدمني مختلفني‬:‫اإليجابيات‬ ○.‫ كل مستخدم جديد محتاج وقت لفهم المرشوع‬:‫السلبيات‬ ○ :‫التحقق من اقرتاحات المستخدم مع مستخدمني آخرين‬.3.‫ التأكد من أن االقرتاحات تتناسب مع احتياجات المستخدمني بشكل عام‬:‫اإليجابيات‬ ○.‫ بيبطئ عملية التطوير‬:‫السلبيات‬ ○ 22. Explain why agile methods may not work well in organizations that have teams with a wide range of skills and abilities and well-established processes. Answer: Skill Disparity: Teams with varying skill levels may struggle to collaborate effectively. Resistance to Change: Established processes may make it hard to adopt agile methods. Communication Gaps: Different skill levels can lead to misunderstandings. Varied Adoption Rates: Some team members may adapt to agile faster than others. :‫رشح‬ ‫ الفرق ذات المستويات المختلفة من المهارات ممكن تواجه صعوبة في‬:‫ تفاوت المهارات‬.‫التعاون‬.‫ العمليات الثابتة ممكن تعيق تبين األساليب الرشيقة‬:‫ مقاومة التغيري‬.‫ اختالف مستويات المهارات ممكن يؤدي لسوء فهم‬:‫ فجوات التواصل‬ ‫ بعض أعضاء الفريق ممكن يتكيفوا مع األساليب الرشيقة أرسع من‬:‫ تفاوت معدالت التبين‬.‫اآلخرين‬ 23. Suggest four reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually. Answer: 1. Enhanced Code Quality: Two programmers can catch errors more effectively. 2. Shared Knowledge: Pair programming allows for knowledge transfer. 3. Increased Focus: Working together reduces distractions. 4. Faster Problem Solving: Two minds can solve problems quicker than one. :‫رشح‬.‫ اثنني من المربمجني ممكن يكتشفوا األخطاء بشكل أفضل‬:‫ تحسني جودة الكود‬.1.‫ الربمجة الزوجية بتسمح بنقل المعرفة‬:‫ مشاركة المعرفة‬.2 ً ‫ العمل‬:‫ زيادة الرتكزي‬.3.‫معا بيقلل من التشتت‬.‫ عقلني ممكن يحلوا المشاكل أرسع من واحد‬:‫ حل المشاكل أرسع‬.4 24. To reduce costs and the environmental impact of commuting, your company decides to close a number of offices and to provide support for staff to work from home. However, the senior management who introduce the policy are unaware that software is developed using Scrum. Explain how you could use technology to support Scrum in a distributed environment to make this possible. What problems are you likely to encounter using this approach? Answer: Technology Solutions: 1. Video Conferencing: Tools like Zoom or Microsoft Teams for daily stand-ups. 2. Collaboration Tools: Platforms like Jira or Trello for task management. 3. Version Control Systems: Git for code collaboration. 4. Chat Applications: Slack or Microsoft Teams for quick communication. Potential Problems: 1. Time Zone Differences: Distributed teams may be in different time zones. 2. Communication Barriers: Lack of face-to-face interaction can lead to misunderstandings. 3. Tool Overload: Too many tools can confuse team members. 4. Isolation: Remote work can make team members feel disconnected. :‫رشح‬ :‫حلول تكنولوجية‬.‫ لالجتماعات اليومية‬Microsoft Teams ‫ أو‬Zoom ‫ أدوات مثل‬:‫ مؤتمرات الفيديو‬.1.‫ إلدارة المهام‬Trello ‫ أو‬Jira ‫ منصات مثل‬:‫ أدوات التعاون‬.2.‫ للتعاون عىل الكود‬Git :‫ أنظمة التحكم في اإلصدارات‬.3.‫ للتواصل الرسيع‬Microsoft Teams ‫ أو‬Slack :‫ تطبيقات الدردشة‬.4 :‫المشاكل المحتملة‬.‫ الفرق الموزعة ممكن تكون في مناطق زمنية مختلفة‬:‫ اختالف التوقيت‬.1 ً.‫وجها لوجه ممكن يؤدي لسوء فهم‬ ‫ نقص التفاعل‬:‫ حواجز التواصل‬.2.‫ كرثة األدوات ممكن تربك أعضاء الفريق‬:‫ زيادة األدوات‬.3.‫ العمل عن بعد ممكن يشعر أعضاء الفريق باالنفصال‬:‫ العزلة‬.4 25. Suggest how an engineer responsible for drawing up a system requirements specification might keep track of the relationships between functional and non-functional requirements. Answer: Use a Traceability Matrix: A table that links functional requirements to related non-functional requirements. 26. Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system. Answer: Use Case 1: Withdraw Cash Actors: Customer, ATM, Bank System. Inputs: Card, PIN, Amount. Outputs: Cash, Receipt, Updated Balance. Normal Flow: Customer inserts card, enters PIN, selects withdrawal, enters amount, receives cash and receipt. Exceptions: Invalid card, incorrect PIN, insufficient balance. Use Case 2: Check Balance Actors: Customer, ATM, Bank System. Inputs: Card, PIN. Outputs: Displayed Balance. Normal Flow: Customer inserts card, enters PIN, selects balance check, sees balance. Exceptions: Invalid card, incorrect PIN. :‫رشح‬ ‫ سحب النقود‬:1 ‫حالة االستخدام‬.‫ نظام البنك‬،‫ ماكينة الرصاف اآليل‬،‫ العميل‬:‫الممثلون‬.‫ المبلغ‬،‫ الرقم الرسي‬،‫ البطاقة‬:‫المدخالت‬.‫ الرصيد المحدث‬،‫ اإليصال‬،‫ النقود‬:‫المخرجات‬.‫ يستلم النقود واإليصال‬،‫ يدخل المبلغ‬،‫ يختار السحب‬،‫ يدخل الرقم الرسي‬،‫ العميل يدخل البطاقة‬:‫التدفق الطبيعي‬.‫ رصيد غري كافي‬،‫ رقم رسي خاطئ‬،‫ بطاقة غري صالحة‬:‫االستثناءات‬ ‫ التحقق من الرصيد‬:2 ‫حالة االستخدام‬.‫ نظام البنك‬،‫ ماكينة الرصاف اآليل‬،‫ العميل‬:‫الممثلون‬.‫ الرقم الرسي‬،‫ البطاقة‬:‫المدخالت‬.‫ الرصيد المعروض‬:‫المخرجات‬.‫ يشاهد الرصيد‬،‫ يختار التحقق من الرصيد‬،‫ يدخل الرقم الرسي‬،‫ العميل يدخل البطاقة‬:‫التدفق الطبيعي‬.‫ رقم رسي خاطئ‬،‫ بطاقة غري صالحة‬:‫االستثناءات‬ 27. When emergency changes have to be made to systems, the system software may have to be modified before changes to the requirements have been approved. Suggest a model of a process for making these modifications that will ensure that the requirements document and the system implementation do not become inconsistent. Answer: Process Model: 1. Analyze Change Request: Understand the emergency change needed. 2. Change Code: Implement the change in the system. 3. Assess Requirements Impact: Determine how the change affects the requirements. 4. Update Requirements: Modify the requirements document to reflect the change. 5. Resubmit for Approval: Ensure the updated requirements are approved. :‫رشح‬ :‫نموذج العملية‬.‫ فهم التغيري الطارئ المطلوب‬:‫ تحليل طلب التغيري‬.1.‫ تنفيذ التغيري في النظام‬:‫ تغيري الكود‬.2.‫ تحديد كيف يؤثر التغيري عىل المتطلبات‬:‫ تقييم تأثري المتطلبات‬.3.‫ تعديل وثيقة المتطلبات لتعكس التغيري‬:‫ تحديث المتطلبات‬.4.‫ التأكد من موافقة المتطلبات المحدثة‬:‫ إعادة اإلرسال للموافقة‬.5 28. How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system? Answer: Uses of an Existing System Model: 1. Understanding: Helps understand how the system works. 2. Discussion: Serves as a basis for discussing potential changes. 3. Re-implementation: Guides the redevelopment of the system. Why It Doesn’t Need to Be Complete: An existing model can still be useful even if it’s incomplete or has errors, as it provides a starting point for further analysis. New System Model: For a new system, the model should be more complete and accurate to guide development effectively. :‫رشح‬ :‫استخدامات نموذج نظام موجود‬.‫ يساعد في فهم كيفية عمل النظام‬:‫ الفهم‬.1 ً.‫أساسا لمناقشة التغيريات المحتملة‬ ‫ يكون‬:‫ النقاش‬.2.‫ يوجه إعادة تطوير النظام‬:‫ إعادة التنفيذ‬.3 :‫ليه مش الزم يكون كامل‬ ‫ ألنه يوفر نقطة بداية لتحليل‬،‫نموذج النظام الموجود ممكن يكون مفيد حىت لو كان غري كامل أو فيه أخطاء‬.‫إضافي‬ :‫نموذج نظام جديد‬.‫ النموذج الزم يكون أكرث اكتمااًل ودقة ليكون دلياًل فعااًل للتطوير‬،‫في حالة نظام جديد‬ 29. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Answer: Sequence Diagram: 1. Student: Opens course catalog. 2. Course Catalog: Displays available courses. 3. Student: Selects a course. 4. Course: Checks availability. 5. Course: Confirms registration. 6. Student: Receives confirmation. :‫رشح‬ :‫رسم تتابع‬.‫ يفتح كتالوج الدورات‬:‫ الطالب‬.1.‫ يعرض الدورات المتاحة‬:‫ كتالوج الدورات‬.2.‫ يختار دورة‬:‫ الطالب‬.3.‫ تتحقق من التوفر‬:‫ الدورة‬.4.‫ تؤكد التسجيل‬:‫ الدورة‬.5.‫ يستلم التأكيد‬:‫ الطالب‬.6 30. Look carefully at how messages and mailboxes are represented in the email system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an e-mail message. Answer: Mailbox Class: Attributes: Name, Path, Creation Date, Messages. Methods: Fetch Mail, Move Message, Delete Message. Email Message Class: Attributes: Sender, Receiver, Subject, Body, Date. Methods: Read, Reply, Forward, Delete. :‫رشح‬ :‫فئة صندوق الربيد‬.‫ الرسائل‬،‫ تاريخ اإلنشاء‬،‫ المسار‬،‫ االسم‬:‫ الخصائص‬.‫ حذف الرسالة‬،‫ نقل الرسالة‬،‫ جلب الربيد‬:‫ الوظائف‬ :‫فئة رسالة الربيد اإللكرتوني‬.‫ التاريخ‬،‫ المحتوى‬،‫ الموضوع‬،‫ المستقبل‬،‫ المرسل‬:‫ الخصائص‬.‫ حذف‬،‫ إعادة توجيه‬،‫ رد‬،‫ قراءة‬:‫ الوظائف‬ 31. Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine. Answer: Activity Diagram: 1. Start: Customer inserts card. 2. Authenticate: Enter PIN. 3. Select Service: Choose withdrawal. 4. Enter Amount: Input desired amount. 5. Check Balance: Verify sufficient funds. 6. Dispense Cash: ATM gives cash. 7. Update Balance: Deduct amount from account. 8. End: Return card and receipt. :‫رشح‬ :‫رسم نشاط‬.‫ العميل يدخل البطاقة‬:‫ البداية‬.1.‫ يدخل الرقم الرسي‬:‫ المصادقة‬.2.‫ يختار السحب‬:‫ اختيار الخدمة‬.3.‫ يدخل المبلغ المطلوب‬:‫ إدخال المبلغ‬.4.‫ التأكد من وجود رصيد كافي‬:‫ التحقق من الرصيد‬.5.‫ ماكينة الرصاف اآليل ترصف النقود‬:‫ رصف النقود‬.6.‫ خصم المبلغ من الحساب‬:‫ تحديث الرصيد‬.7.‫ إرجاع البطاقة واإليصال‬:‫ النهاية‬.8 32. You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development? Answer: Factors to Consider: 1. Team Expertise: Does the team have experience with model-driven engineering? 2. Tool Costs: Are the necessary tools affordable and available? 3. System Lifetime: Will the system need long-term maintenance? 4. Performance Requirements: Does the system need high performance? 5. Long-Term Benefits: Will model-driven engineering provide long-term advantages? :‫رشح‬ :‫عوامل يجب مراعاتها‬ ‫ هل الفريق عنده خربة في الهندسة القائمة عىل النماذج؟‬:‫ خربة الفريق‬.1 ‫ هل األدوات المطلوبة متوفرة وبأسعار معقولة؟‬:‫ تكلفة األدوات‬.2 ‫ هل النظام محتاج صيانة طويلة األمد؟‬:‫ عمر النظام‬.3 ‫ هل النظام محتاج أداء عايل؟‬:‫ متطلبات األداء‬.4 ‫ هل الهندسة القائمة عىل النماذج هتوفر فوائد طويلة األمد؟‬:‫ فوائد طويلة األمد‬.5 33. What is architectural design in software systems, and what are the two scales of architecture discussed? Answer: Architectural Design: It’s the process of defining the structure of a software system, including its components and their relationships. Two Scales: 1. Application Architecture: Focuses on the structure of a single application. 2. Enterprise Architecture: Focuses on the structure of large, complex systems across multiple applications. :‫رشح‬ :‫تصميم الهيكل‬.‫ بما في ذلك مكوناته وعالقاتها‬،‫هو عملية تحديد هيكل نظام الربمجيات‬ :‫المقياسني‬.‫ يركز عىل هيكل تطبيق واحد‬:‫ هيكل التطبيق‬.1.‫ يركز عىل هيكل األنظمة الكبرية والمعقدة عرب تطبيقات متعددة‬:‫ هيكل المؤسسة‬.2 34. What is a box and line diagram used for? And what are the non-functional requirements related to architectural design? Answer: Box and Line Diagram: It’s a simple diagram that shows the components of a system and how they are connected. It’s used for communication with stakeholders and project planning. Non-Functional Requirements: 1. Performance: How fast the system should work. 2. Security: How secure the system should be. 3. Availability: How often the system should be available. 4. Maintainability: How easy it is to update and fix the system. :‫رشح‬ :‫رسم الصندوق والخط‬ ‫ بيستخدم للتواصل مع أصحاب المصلحة‬.‫هو رسم بسيط بيظهر مكونات النظام وكيفية اتصالها‬.‫وتخطيط المرشوع‬ :‫المتطلبات غري الوظيفية‬.‫ مدى رسعة عمل النظام‬:‫ األداء‬.1.‫ مدى أمان النظام‬:‫ األمان‬.2.‫ مدى توفر النظام‬:‫ التوافر‬.3.‫ مدى سهولة تحديث وإصالح النظام‬:‫ القدرة عىل الصيانة‬.4 35. What does the 4 + 1 view model of software architecture consist of? Answer: 4 + 1 View Model: 1. Logical View: Shows the system’s functionality. 2. Process View: Shows how the system processes data. 3. Development View: Shows how the system is organized for development. 4. Physical View: Shows how the system is deployed on hardware. 5. Scenarios (+1): Shows how the system works in real-life situations. :‫رشح‬ :1 + 4 ‫نموذج‬.‫ يظهر وظائف النظام‬:‫ المنظور المنطقي‬.1.‫ يظهر كيفية معالجة النظام للبيانات‬:‫ منظور العمليات‬.2.‫ يظهر كيفية تنظيم النظام للتطوير‬:‫ منظور التطوير‬.3.‫ يظهر كيفية نرش النظام عىل األجهزة‬:‫ منظور التوزيع‬.4.‫ يظهر كيفية عمل النظام في مواقف حقيقية‬:)1+( ‫ السيناريوهات‬.5 36. Describe the Model-View-Controller (MVC) pattern. Answer: MVC Pattern: 1. Model: Manages the data and business logic. 2. View: Displays the data to the user. 3. Controller: Handles user input and updates the model and view. :‫رشح‬ :MVC ‫نموذج‬.‫ يدير البيانات والمنطق التجاري‬:‫ النموذج‬.1.‫ يعرض البيانات للمستخدم‬:‫ العرض‬.2.‫ يتعامل مع مدخالت المستخدم ويحدث النموذج والعرض‬:‫ المتحكم‬.3 37. What are the advantages and disadvantages of layered architecture? Answer: Advantages: 1. Modularity: Each layer can be developed and maintained independently. 2. Reusability: Layers can be reused in different systems. Disadvantages: 1. Performance Overhead: Communication between layers can slow down the system. 2. Complexity: Managing dependencies between layers can be challenging. :‫رشح‬ :‫اإليجابيات‬.‫ كل طبقة ممكن تتطور وتصان بشكل مستقل‬:‫ التقسيم‬.1.‫ الطبقات ممكن تستخدم في أنظمة مختلفة‬:‫ إعادة االستخدام‬.2 :‫السلبيات‬.‫ التواصل بني الطبقات ممكن يبطئ النظام‬:‫ زيادة الحمل‬.1.‫ إدارة التبعيات بني الطبقات ممكن تكون صعبة‬:‫ التعقيد‬.2 38. When should the repository architectural pattern be used? Answer: Repository Pattern: It should be used when there is a large amount of data that needs to be stored and accessed by multiple components. :‫رشح‬ :‫نمط المستودع‬ ‫يستخدم عندما يكون هناك كمية كبرية من البيانات تحتاج للتخزين والوصول من قبل مكونات‬.‫متعددة‬ 39. What is a client-server architecture? Answer: Client-Server Architecture: It’s a system where the functionality is divided between clients (users) and servers (providers). Clients request services, and servers provide them. :‫رشح‬ :‫الخادم‬-‫هيكل العميل‬ ‫ العمالء‬.)‫هو نظام بيكون فيه الوظائف مقسمة بني العمالء (المستخدمني) والخوادم (المزودين‬.‫ والخوادم بتوفرها‬،‫يطلبوا الخدمات‬ 40. Mention some types of application architectures. Answer: Types of Application Architectures: 1. Transaction Processing Systems: Handle large numbers of transactions (e.g., banking systems). 2. Language Processing Systems: Process natural language (e.g., translation systems). 3. Event-Driven Architecture: Responds to events (e.g., IoT systems). 4. Microkernel Architecture: Provides core functionality with plugins (e.g., operating systems). 5. Microservices Architecture: Divides the system into small, independent services (e.g., Netflix). :‫رشح‬ :‫أنواع هياكل التطبيقات‬.)‫ تتعامل مع عدد كبري من المعامالت (مثل أنظمة البنوك‬:‫ أنظمة معالجة المعامالت‬.1.)‫ تتعامل مع اللغة الطبيعية (مثل أنظمة الرتجمة‬:‫ أنظمة معالجة اللغة‬.2.)‫ يستجيب لألحداث (مثل أنظمة إنرتنت األشياء‬:‫ الهيكل القائم عىل األحداث‬.3.)‫ يوفر الوظائف األساسية مع إضافات (مثل أنظمة التشغيل‬:‫ هيكل النواة الصغرية‬.4.)Netflix ‫ يقسم النظام إىل خدمات صغرية ومستقلة (مثل‬:‫ هيكل الخدمات الصغرية‬.5 41. When describing a system, explain why you may have to start the design of the system architecture before the requirements specification is complete. Answer: Starting the architecture design early helps identify key components and their relationships, which can guide the requirements process and ensure the system is feasible. :‫رشح‬ ‫ وده ممكن يوجه عملية‬،‫بدء تصميم الهيكل في وقت مبكر بيحدد المكونات الرئيسية وعالقاتها‬.‫تحديد المتطلبات ويضمن أن النظام قابل للتنفيذ‬ 42. You have been asked to prepare and deliver a presentation to a nontechnical manager to justify the hiring of a system architect for a new project. Write a list of bullet points setting out the key points in your presentation in which you explain the importance of software architecture. Answer: Key Points: 1. Alignment with Business Goals: Ensures the system meets business needs. 2. Scalability: Allows the system to grow as needed. 3. Performance: Ensures the system runs efficiently. 4. Security: Protects the system from threats. 5. Cost Efficiency: Reduces long-term development and maintenance costs. 6. Communication: Provides a clear structure for team collaboration. :‫رشح‬ :‫النقاط الرئيسية‬.‫ يضمن أن النظام يليب احتياجات العمل‬:‫ التوافق مع أهداف العمل‬.1.‫ يسمح للنظام بالنمو حسب الحاجة‬:‫ القدرة عىل التوسع‬.2.‫ يضمن أن النظام يعمل بكفاءة‬:‫ األداء‬.3.‫ يحمي النظام من التهديدات‬:‫ األمان‬.4.‫ يقلل تكاليف التطوير والصيانة طويلة األمد‬:‫ الكفاءة التكلفة‬.5.‫ يوفر هيكل واضح للتعاون بني الفرق‬:‫ التواصل‬.6 43. Performance and security may pose to be conflicting non-functional requirements when architecting software systems. Make an argument in support of this statement. Answer: Performance vs. Security: Performance: Requires fast processing and minimal delays. Security: Requires additional checks and encryption, which can slow down the system. Example: Adding encryption improves security but can increase processing time, reducing performance. :‫رشح‬ :‫األداء مقابل األمان‬.‫ محتاج معالجة رسيعة وتأخري قليل‬:‫ األداء‬.‫ وده ممكن يبطئ النظام‬،‫ محتاج فحوصات إضافية وتشفري‬:‫ األمان‬ :‫مثال‬.‫ لكن ممكن يزيد وقت المعالجة ويقلل األداء‬،‫إضافة التشفري بيحنس األمان‬ 44. Draw diagrams showing a conceptual view and a process view of the architectures of the following systems: (a) A ticket machine used by passengers at a railway station. (b) A computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time. (c) A robot floor-cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions. Answer: Conceptual View: Ticket Machine: User Interface, Payment Processing, Ticket Generation, Database. Video Conferencing System: Video Stream, Audio Stream, Data Channel, User Interface, Server. Robot Floor-Cleaner: Sensors, Navigation System, Cleaning Mechanism, Control Unit. Process View: Ticket Machine: User selects ticket → Payment initiated → Ticket generated → Confirmation displayed. Video Conferencing System: User joins → Streams established → Data shared → Participants interact. Robot Floor-Cleaner: Sensors detect wall → Control Unit calculates route → Cleaning Mechanism activates. :‫رشح‬ :‫المنظور المفاهيمي‬.‫ قاعدة البيانات‬،‫ توليد التذاكر‬،‫ معالجة الدفع‬،‫ واجهة المستخدم‬:‫ماكينة التذاكر‬.‫ الخادم‬،‫ واجهة المستخدم‬،‫ قناة البيانات‬،‫ تدفق الصوت‬،‫ تدفق الفيديو‬:‫نظام مؤتمرات الفيديو‬.‫ وحدة التحكم‬،‫ آلية التنظيف‬،‫ نظام المالحة‬،‫ أجهزة االستشعار‬:‫روبوت تنظيف األرضيات‬ :‫منظور العمليات‬.‫> عرض التأكيد‬- ‫> توليد التذكرة‬- ‫> بدء الدفع‬-‫ المستخدم يختار التذكرة‬:‫ماكينة التذاكر‬.‫> تفاعل المشاركني‬- ‫> مشاركة البيانات‬- ‫> إنشاء التدفقات‬- ‫ المستخدم ينضم‬:‫نظام مؤتمرات الفيديو‬ ‫> تفعيل آلية‬- ‫> وحدة التحكم تحسب المسار‬- ‫ أجهزة االستشعار تكتشف الجدار‬:‫روبوت تنظيف األرضيات‬.‫التنظيف‬ 45. A software system will be built to allow drones to autonomously herd cattle in farms. These drones can be remotely controlled by human operators. Explain how multiple architectural patterns can fit together to help build this kind of system. Answer: Architectural Patterns: 1. Microservices Architecture: Allows independent development of drone control and monitoring services. 2. Event-Driven Architecture: Enables real-time communication between drones and operators. 3. Layered Architecture: Separates concerns like user interface, control logic, and data management. :‫رشح‬ :‫أنماط الهيكل‬.‫ يسمح بتطوير مستقل لخدمات التحكم والمراقبة‬:‫ هيكل الخدمات الصغرية‬.1 ‫ يسمح بالتواصل في الوقت الحقيقي بني الطائرات‬:‫ الهيكل القائم عىل األحداث‬.2.‫والمشغلني‬.‫ وإدارة البيانات‬،‫ منطق التحكم‬،‫ يفصل بني الواجهة‬:‫ الهيكل الطبقي‬.3 46. Suggest an architecture for a system (such as iTunes) that is used to sell and distribute music on the Internet. What Architectural patterns are the basis for your proposed architecture? Answer: Proposed Architecture: 1. Client-Server Architecture: Users interact with a client app that connects to a central server. 2. Microservices Architecture: Different services for user accounts, music streaming, and payments. 3. Repository Pattern: Centralizes music metadata and user preferences. :‫رشح‬ :‫الهيكل المقرتح‬.‫ المستخدمني بيتفاعلوا مع تطبيق عميل بيتصل بخادم مركزي‬:‫الخادم‬-‫ هيكل العميل‬.1.‫ والدفع‬،‫ بث الموسيقى‬،‫ خدمات مختلفة لحسابات المستخدمني‬:‫ هيكل الخدمات الصغرية‬.2.‫ يمركز بيانات الموسيقى وتفضيالت المستخدمني‬:‫ نمط المستودع‬.3 47. An information system is to be developed to maintain information about assets owned by a utility company such as buildings, vehicles, and equipment. It is intended that this will be updatable by staff working in the field using mobile devices as new asset information becomes available. The company has several existing asset databases that should be integrated through this system. Design a layered architecture for this asset management system based on the generic information system architecture. Answer: Layered Architecture: 1. Presentation Layer: Mobile interface for field staff. 2. Application Layer: Business logic for asset management. 3. Integration Layer: Interfaces with existing asset databases. 4. Data Layer: Centralized database for asset information. :‫رشح‬ :‫الهيكل الطبقي‬.‫ واجهة محمولة لموظفي الميدان‬:‫ طبقة العرض‬.1.‫ المنطق التجاري إلدارة األصول‬:‫ طبقة التطبيق‬.2.‫ واجهات مع قواعد البيانات الحالية‬:‫ طبقة التكامل‬.3.‫ قاعدة بيانات مركزية لمعلومات األصول‬:‫ طبقة البيانات‬.4 48. Using the generic model of a language processing system presented here, design the architecture of a system that accepts natural language commands and translates these into database queries in a language such as SQL. Answer: System Architecture: 1. Input Component: Accepts natural language input. 2. Parser: Analyzes syntax and semantics. 3. Query Generator: Converts parsed commands into SQL queries. 4. Database Interface: Executes queries on the database and returns results. :‫رشح‬ :‫هيكل النظام‬.‫ يقبل مدخالت اللغة الطبيعية‬:‫ مكون اإلدخال‬.1.‫ يحلل الرتكيب والدالالت‬:‫ المحلل‬.2.SQL ‫ يحول األوامر المحللة إىل استعالمات‬:‫ مولد االستعالمات‬.3.‫ ينفذ االستعالمات ويعيد النتائج‬:‫ واجهة قاعدة البيانات‬.4 49. Using the basic model of an information system, as presented in Figure 6.18, suggest the components that might be part of an information system that allows users to view box office events, available tickets and prices, and to eventually buy tickets. Answer: System Components: 1. User Interface: Displays events, tickets, and prices. 2. Event Management Component: Manages event details. 3. Ticket Management Component: Tracks available tickets and prices. 4. Payment Processing Component: Handles transactions for ticket purchases. :‫رشح‬ :‫مكونات النظام‬.‫ واألسعار‬،‫ التذاكر‬،‫ تعرض األحداث‬:‫ واجهة المستخدم‬.1.‫ يدير تفاصيل األحداث‬:‫ مكون إدارة األحداث‬.2.‫ يتتبع التذاكر المتاحة واألسعار‬:‫ مكون إدارة التذاكر‬.3.‫ يتعامل مع معامالت رشاء التذاكر‬:‫ مكون معالجة الدفع‬.4 50. Should there be a separate profession of ‘software architect’ whose role is to work independently with a customer to design the software system architecture? A separate software company would then implement the system. What might be the difficulties of establishing such a profession? Answer: Pros: 1. Specialization: Architects can focus solely on design. 2. Clear Roles: Separation of design and implementation roles. Cons: 1. Communication Gaps: Misunderstandings between architects and developers. 2. Integration Issues: Designs may not align with implementation capabilities. 3. Responsibility Confusion: Who is accountable for architecture vs. implementation? 4. Market Acceptance: Organizations may resist separating roles. :‫رشح‬ :‫اإليجابيات‬.‫ المهندسني المعماريني ممكن يركزوا عىل التصميم فقط‬:‫ التخصص‬.1.‫ فصل بني أدوار التصميم والتنفيذ‬:‫ أدوار واضحة‬.2 :‫السلبيات‬.‫ سوء فهم بني المهندسني المعماريني والمطورين‬:‫ فجوات التواصل‬.1.‫ التصميمات ممكن ما تتناسبش مع إمكانيات التنفيذ‬:‫ مشاكل التكامل‬.2 ‫ مني المسؤول عن الهيكل مقابل التنفيذ؟‬:‫ الخلط في المسؤولية‬.3.‫ المؤسسات ممكن تقاوم فصل األدوار‬:‫ قبول السوق‬.4

Use Quizgecko on...
Browser
Browser