ASSIGNMENT 6 · CHAPTER 15

Choose a reuse strategy with evidence

Read the named source pages, check the five objectives, apply the concepts, then reassess your decision when new evidence appears. The total-time estimate includes preparation; report your actual time.

Practical hour. This build is this chapter’s practical hour. The assignment is not submitted without it. Running the tests is a separate row in the rubric; longer writing does not make up for it.

الساعة التطبيقية. هذا البناء هو الساعة التطبيقية لهذا الفصل. لا يُسلَّم الواجب بدونه. تشغيل الاختبارات صف مستقل في السلّم، لا يُعوَّض بطول الكتابة.

Course learning outcome 7: Identify reuse elements and approaches, practised by building and testing the evidence-only fit check. The tests and the coverage step practise outcome 11: design and implement test cases across testing strategies.

مخرج التعلم 7: تحديد عناصر إعادة الاستخدام وأساليبها، ويُمارَس ببناء فحص الملاءمة المبني على الأدلة واختباره. والاختبارات وخطوة التغطية تمارس المخرج 11: تصميم حالات الاختبار وتنفيذها.

35–55 min total5 points totalDeadline: course LMSIndividual response
  1. Warm-up
  2. FIT → COMPARE → BOUND → ACT + EVIDENCE
  3. Commit Part A
  4. STRESS → REFIT
  5. AI declaration + human review
  6. Export and submit in LMS
Checking storage…Not yet saved

1 · WARM-UP · 5 MINUTES · NOT GRADED

Ready-made software costs less to buy than building your own. Must it also cost less over the years you use it?

Show / hide warm-up answer

No. Include the work of connecting it, changing settings, support, upgrades, moving data and leaving the product later. Keep unknown costs marked as unknown.

Lecture guide

X02, D15, X03, X06 and R09; original slides 5–15 and 41–56.

FIT identifies the relevant problem. COMPARE builds this chapter’s artifact. BOUND states the limits. ACT + EVIDENCE records the action, owner and verification. STRESS then tests your reasoning before REFIT.

Chapter map · Relevant mechanism · 20-rule map · Practice card. Source and chapter-unit identifiers are not canonical rule numbers.

CURRENT EDITION · MASTERY V2

Required preparation and assessment scope

Read: Reuse approaches and planning: slides 12–15; Frameworks and inversion of control: slides 16–21.

Complete the five-objective preparation check after the assigned reading before you start.

Scope notes and earlier editions

Blackboard supplies the calendar deadline. All five chapter objectives, the classroom concepts and named reading are in assessment scope. Optional toolkit activities are enrichment unless assigned.

One assigned source application and one short transfer answer are included below, within the existing 5-point rubric. A reading click or a practice score is not proof of mastery.

Already started the previous edition? Resume or export your previous work using the same ID and browser. Previous drafts stay separate. Completed submissions do not need repeating unless the instructor requests it.

READ BEFORE ANSWERING

How your work is assessed · 5 points

CriterionScoring
FIT · 1 point1: Defines the problem using the chapter ideas accurately, distinguishes facts from assumptions and connects it to the proposed action. The short answer applying a second chapter idea must correctly apply the second concept; FIT and that answer together earn this single point.
Partial credit: 0.75 · 0.5 · 00.75: The right concept and mechanism, but one link is thin: a fact and an assumption are not separated, or the transfer answer applies the second concept only partly.
0.5: A relevant concept is named but applied generically or to the wrong mechanism, or the transfer answer is missing or incorrect.
0: No chapter concept is applied, the case is misread, or the answer depends on invented facts. A generic “hold and test” statement does not satisfy this criterion.
COMPARE · 1 point1: A comparison using relevant planning factors, traceable facts and visible unknowns, leading to a defensible conditional choice. Apply one idea from the assigned reading to your technical work and explain the connection. Build: every course check passes, your own tests catch every known bug (mutation test), and you can make your code change for the short discussion (micro-viva) and explain which tests change; the text uses what the build showed.
Partial credit: 0.75 · 0.5 · 00.75: Relevant planning factors and a conditional choice, but one fact is not traced to the brief or one unknown is not made visible.
0.5: The comparison uses generic advantages instead of the planning factors, or the choice ignores a stated constraint. Or the build fails course checks that the written record does not explain.
0: No comparison, or a choice based on invented vendor facts or measurements.
TESTS RUN · requiredRequired for submission: a recorded run of your own tests and the course checks on your final code, a second run after you change one test input, and the coverage sentence. Part A cannot be committed without them. Not replaceable: longer writing does not make up for a missing run. A run with failing checks is accepted when your text explains it. The build itself is marked in COMPARE.
THEIR CHANGE · requiredRequired for submission: run 3, their change, with your code and tests unchanged, and your answer to two questions: did your tests stay green, and is the result still correct? Not met when your answer does not match what the run shows, for example “the result is still correct” when it is not. This row adds no points and takes none; the instructor reviews a row that is not met.
IN-CLASS CHECK · requiredTwo questions on paper in the lecture after the deadline, with no devices, about your own submission: a small change to your code and one new fact. Both correct: the mark stands. One correct: the mark is halved. Neither: a two-minute conversation with the instructor decides. This row adds no points. See AI rules and the in-class check.
BOUND · 1 point1: States relevant assumptions, the situations covered, and a result you can observe that would make you review the decision.
Partial credit: 0.75 · 0.5 · 00.75: A relevant boundary and trigger, but one is imprecise—for example, a trigger that cannot be observed as written.
0.5: The boundary is generic (“if problems occur”) or does not match the claim and the plan.
0: No boundary, or a boundary that contradicts the case facts.
ACT + EVIDENCE · 1 point1: Gives a workable action with clear limits, who is responsible, and evidence someone else can check, while distinguishing checks already completed from checks you plan to do.
Partial credit: 0.75 · 0.5 · 00.75: A feasible action and useful evidence, but one element is missing—for example, the responsible role, or whether the evidence is completed or proposed.
0.5: The action is vague or not feasible in the case, or the evidence cannot be inspected by someone else.
0: No action, or evidence that is invented or reported as completed when it is only proposed.
REFIT · 1 point1: Explains how the new evidence affects the initial claim and justifies RETAIN, REVISE or REPLACE with a consistent final answer.
Partial credit: 0.75 · 0.5 · 00.75: The effect of the new evidence and the RETAIN / REVISE / REPLACE choice are justified, but the final record leaves one inconsistency with the new boundary.
0.5: A choice is stated but not justified from the new evidence, or the final record repeats Part A without addressing the change.
0: No REFIT, or a response that ignores or contradicts the new evidence.

Five points use the same familiar structure. The chapter artifact changes; the LMS determines how assignment points contribute to the course grade.

Learning-outcome alignment

This task supports CLO 7 of the course specification (section B). The Python build, its tests and the coverage step also support CLO 11. It is course-written practice, not an official national readiness assessment or an approved item-weight mapping.

Strong and weak answers for each criterion · how other answers are accepted
CriterionStrong exampleWeak example
FITStrong: The planning factor that decides is lifetime: captions must run for years. Given: a five-lecture English demo; no Arabic evaluation; a volunteer-maintained model. Assumption, marked: the licence stays unchanged.
Why: Names the chapter factor, keeps to the given facts and marks the assumption.
Weak: Open source is free, so reuse it.
Why: Price is not fit; no case fact and no factor.
COMPAREStrong: Reuse the open model: fast, no data leaves campus, but support depends on volunteers. Buy: supported versions, data leaves campus. Build: full control, longest schedule.
Why: Compares the three routes on the same factors.
Weak: Buying is always safer.
Why: One route, no factor, no evidence.
BOUNDStrong: The reuse decision holds while the project is maintained and the Arabic evaluation passes the agreed error rate. An archived repository or a failed Arabic run reopens it.
Why: Names the dependency and an observable trigger.
Weak: It works unless something goes wrong.
Why: No dependency and no observable trigger.
ACT + EVIDENCEStrong: Action: run an Arabic evaluation set of ten lectures with regional accents before any release, owned by the accessibility lead. Evidence: the scored transcript comparison, proposed.
Why: Feasible action, a named role, evidence with its status.
Weak: Test it more.
Why: No specific action, owner or inspectable evidence.
REFITStrong: The archived project and the advisory break my support assumption. I replace the route: buy a supported service for Arabic now, keep the open model for English until a maintained fork exists. My first plan assumed volunteers would stay.
Why: Names what changed, chooses REPLACE with a reason, admits the first assumption.
Weak: I keep the open model; the advisory is probably minor.
Why: Ignores the lost maintenance and the wrong captions.

Other answers are accepted when: the answer names the planning factor that decides, uses only the facts given in the task, compares at least two routes on the same factor, and names evidence from an evaluation or record that someone else can check. A different route that meets these conditions earns the same marks as the model answer.

The examples are about a different practice case. They show the kind of reasoning that earns the mark, not the answer to this task.

What distinguishes an unsupported answer from a stronger one?

Different practice example · weak: “Choose the product with more features.”

Stronger: For a different configurable package, required lifetime exceeds documented support. Record that mismatch and the exit-data unknown; compare a bounded evaluation with the alternative rather than inventing costs.

The stronger answer names a mechanism, its scope and inspectable evidence. It does not certify a real system. Your assessed answer must address this task’s own facts.

The assignment in nine steps الواجب في تسع خطوات

  1. 115 minPrepareLecture, the two readings, the five practice questionsاحضر المحاضرة، اقرأ المصدرين، وحلّ الأسئلة الخمسة
  2. 21 minOpenOpen it with your Student ID, in the same browser every timeافتح الواجب برقمك الجامعي، ومن نفس المتصفح دائماً
  3. 320 minPart AFIT · artifact · BOUND · ACT + EVIDENCE, 120–180 wordsاكتب حكمك الأول: المشكلة، المهمة، الحدود، القرار والدليل
  4. 430 minBuildPlan, complete the code, write 3+ tests, Runاكتب الخطة، أكمل الكود، 3 اختبارات على الأقل، ثم Run
  5. 51 minCommitReview & commit Part A: it becomes read-onlyثبّت الجزء A: يصبح للقراءة فقط
  6. 62 minNew evidenceIt opens on the page right after you commit. Read itيظهر الدليل الجديد في الصفحة مباشرة بعد التثبيت: اقرأه
  7. 710 minPart BBoundary status, then RETAIN / REVISE / REPLACE and whyهل تغيّر قرارك؟ اختر وبرّر، ثم اكتب القرار النهائي
  8. 82 minSignDeclare AI use, type your name, tick the boxصرّح بالذكاء الاصطناعي، اكتب اسمك، وضع العلامة
  9. 93 minSubmitPrint / PDF, then upload the PDF in Blackboardصدّر PDF وارفعه في Blackboard

Select a step to see it on a picture of this page. Online guide: How to do an assignment.

Before you start

  • Save often. Use Save draft while working and download a backup before leaving a shared device.
  • Commit, then the new evidence. Part A becomes read-only when you commit, and the new evidence opens on this page straight away. Complete Part B, export the PDF and upload it in Blackboard.
  • AI rules and the in-class check. Part A is written without AI. After the deadline, a 10-minute paper check on your own submission decides whether your mark stands. Read the rules for each step before you start.

New to this format? Read the step-by-step guide. The sequence preserves your first judgment; it is not a secure examination system.

AI rules and the in-class check

قواعد الذكاء الاصطناعي والتحقق في المحاضرة

FCIT Generative AI Policy, Option C (Mixed Approach). Each step below has its own permitted AI level. You remain responsible for showing your own understanding, and using AI beyond the permitted level may be treated as academic misconduct. The level of every assessment is listed in the course specification.

سياسة الذكاء الاصطناعي التوليدي في كلية الحاسبات وتقنية المعلومات، الخيار C (النهج المختلط). لكل خطوة أدناه مستوى مسموح لاستخدام الذكاء الاصطناعي. وتبقى مسؤولًا عن إثبات فهمك بنفسك، واستخدام الذكاء الاصطناعي بما يتجاوز المستوى المسموح قد يُعامل مخالفةً أكاديمية. ومستوى كل تقييم في المقرر مذكور في توصيف المقرر.

  • Studying the lecture before you start. AI-Assisted · for learning: AI may explain an idea and ask you to restate it in your own words. It may not answer this case.

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

  • Part A answers (FIT, COMPARE, BOUND, ACT + EVIDENCE, reading, second idea). AI-Free: No AI. Write them yourself.

    إجابات الجزء A: بدون ذكاء اصطناعي: بدون ذكاء اصطناعي. اكتبها بنفسك.

  • The AI draft in the scenario. AI-Free: It is the material you critique. Find the claims the supplied facts do not support.

    مسودة الذكاء الاصطناعي في الحالة: بدون ذكاء اصطناعي: هي المادة التي تنقدها: حدّد الادعاءات التي لا تدعمها الحقائق المعطاة.

  • Python build. AI-Assisted: AI may explain an error message. It may not write your functions or your tests.

    البناء في بايثون: بمساعدة الذكاء الاصطناعي: يمكن للذكاء الاصطناعي أن يشرح رسالة الخطأ، ولا يكتب دوالك ولا اختباراتك.

  • After you commit (STRESS and REFIT). AI-Assisted: AI may question your reasoning. The final decision and the words are yours.

    بعد تثبيت الجزء A: بمساعدة الذكاء الاصطناعي: يمكن للذكاء الاصطناعي أن يسألك عن تفكيرك، والقرار الأخير وصياغته لك.

  • AI-use declaration. Required: Name the tool and the steps where you used it, what you changed because of it, and what you chose not to take, and why.

    تصريح استخدام الذكاء الاصطناعي: مطلوب: اذكر الأداة والخطوات التي استخدمتها فيها، وما غيّرته بسببها، وما رفضت أخذه ولماذا.

In-class check · AI-Free. In the lecture after the deadline you answer two short questions on paper, with no devices, about your own submission: a small change to your code (which test fails, and why) and one new fact (does your decision change?). It takes about 10 minutes. Both answers correct: your assignment mark stands. One correct: your mark is halved. Neither: a two-minute conversation with the instructor decides the mark. If you miss that lecture with an accepted excuse, the check is done in office hours. This applies the ownership rule on every assignment: your written work and your own explanation must agree.

التحقق في المحاضرة · بدون ذكاء اصطناعي. في المحاضرة التي تلي موعد التسليم تجيب على ورق، وبدون أي جهاز، عن سؤالين قصيرين حول واجبك أنت: تغيير صغير في الكود (أي اختبار سيفشل ولماذا)، ومعلومة جديدة (هل يتغير قرارك؟). يستغرق نحو 10 دقائق. إذا كانت الإجابتان صحيحتين تبقى درجة الواجب كما هي، وإذا كانت إجابة واحدة صحيحة تصبح نصف الدرجة، وإذا لم تصح أي منهما تُحدَّد الدرجة بعد نقاش قصير مع الأستاذ مدته دقيقتان. ومن غاب عن تلك المحاضرة بعذر مقبول يُجري التحقق في الساعات المكتبية. هذا تطبيق لقاعدة الملكية الموجودة في كل واجب: يجب أن يتفق ما كتبته مع شرحك له.

How to do it, with an example · كيف تحلها، مع مثال

Identity

Loaded from the entry page. Drafts are separated by Student ID in this browser.

Submission details

Check the current deadline and submission instructions in the LMS.

How this assignment connects to the lecture and the five objectives

ONE METHOD · TWO DIFFERENT CASES

From the classroom card to this assignment

The lecture has 20 slides and three short practice stations: claim + evidence; mechanism + limits; changed condition + revised decision. Here you transfer that reasoning to the separate assessed scenario below. Do not copy the practice answer or submit another full classroom report.

Unchanged: 5 raw points, existing deadline, local draft identity, confirmed Part A commitment, STRESS then REFIT, AI declaration and Blackboard submission. Already completed work does not need repeating merely because the lecture was updated.

Five chapter objectives → existing evidence opportunities

These are local chapter objectives. They do not renumber the approved syllabus outcomes or establish an official national mapping. The lecturer judges correctness and sufficiency; a field being filled is not attainment.

Chapter objectiveWhere it is practised / evidenced within this task
Objective 15.1 Compare benefits and costs of reuse.COMPARE
Objective 15.2 Select an approach using planning factors.FIT + BOUND
Objective 15.3 Explain MVC and inversion of control.transfer question + source application
Objective 15.4 Distinguish product-line specialization and configuration.COMPARE + ACT
Objective 15.5 Compare COTS solution, COTS integration and ERP.REFIT + EVIDENCE

2 · PART A · 20 MINUTES

Assessed scenario · fictional teaching case

Task format: Critique an AI assistant’s recommendation. The same five criteria apply.

A fictional faculty needs a room-booking service for a three-year trial (pilot), starting next term.

  • Option A is a ready-made commercial product that the team can configure. It has the required booking features and an export API (a way for another program to retrieve data). The supplier promises support for two years.
  • Option B is an existing university application. The university owns its source code, and the team knows that code. It cannot yet create repeating bookings. There are no measurements of how it performs at the busiest times.
  • Neither option has a reliable estimate of the full cost over its use, including support and later changes.

The goal is a trial next term, not replacing the faculty's whole system. Recommend an option, a limited evaluation, or a hold.

An AI assistant's draft recommendation — review it; do not copy it: “Choose Option A for the whole faculty next term. It already has all the booking features, so changing its settings will be enough. Two years of support is fine for a three-year trial: we can simply renew it. Finishing Option B would take too long; the team's knowledge of its code makes no difference. Option A clearly costs less overall because it is ready-made.”

Teaching simulation. Use only the supplied facts. You may calculate from them. Do not invent additional test results, thresholds or completed audits. If you propose extra evidence or a new threshold, label it proposed.
Quick word help · معاني المصطلحات

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

Words in this case

Software reuse
Using existing software instead of writing every part again.
استخدام برنامج أو جزء برمجي موجود بدل كتابة كل شيء من البداية.
Configuration
Changing supported settings to fit the task.
ضبط الإعدادات التي يدعمها البرنامج لتناسب المهمة.
Lifecycle
The period of using, supporting, changing and eventually replacing software.
فترة استخدام البرنامج ودعمه وتعديله ثم استبداله عند الحاجة.
Recurring booking
A booking repeated on a schedule, such as every week.
حجز يتكرر وفق جدول، مثل كل أسبوع.
Peak load
The busiest expected level of use.
أعلى مستوى استخدام متوقع في وقت الازدحام.
Shortlist
The options that meet the stated selection conditions.
قائمة الخيارات التي تستوفي شروط الاختيار المحددة.

Words used in every assignment

FIT
What problem matters, and why?
ما المشكلة المهمة؟ ولماذا؟
BOUND
When does your recommendation apply? What would make you review it?
متى يصلح قرارك؟ وما الذي يستدعي مراجعته؟
ACT + EVIDENCE
What will you do, who is responsible, and what supports it?
ما الإجراء؟ ومن المسؤول؟ وما الدليل؟
STRESS
New information shown after you lock Part A.
معلومات جديدة تظهر بعد تثبيت الجزء A.
REFIT
Review your decision using the new information.
راجع قرارك في ضوء المعلومات الجديدة.
RETAIN / REVISE / REPLACE
Keep the decision / adjust it / choose a different decision.
أبقِ القرار / عدّله / استبدله بقرار آخر.
Fact / assumption / proposed
Given evidence / something you assume / something you suggest doing or testing.
حقيقة معطاة / افتراض يحتاج تحققًا / إجراء أو اختبار تقترحه.
Artifact
The work you produce: for example a test plan, comparison or set of rules.
المخرج الذي تعدّه، مثل خطة اختبار أو مقارنة أو مجموعة قواعد.
Transfer answer
Apply a second chapter idea to the question, using your own explanation.
طبّق فكرة ثانية من الفصل على السؤال، واشرحها بأسلوبك.
Mutation test / micro-viva
Your tests try code with known bugs / a short discussion where you explain and change your code.
اختباراتك تكشف أخطاء مقصودة في الكود / مناقشة قصيرة تشرح فيها كودك وتعدله.

Keep the written response to about 120–180 focused words; use compact tables or notation. Include the source application and transfer answer in that budget. Your Python code, tests and build record are not counted in it. State facts, assumptions and proposed evidence separately. Quote or cite the assigned source precisely; explain its role. Report actual study time at the end.

A1 · FIT · 1 POINT

Name the type of software reuse in each option. List the features needed and the limits the choice must meet. Point out where the AI draft misstates the intended size of the trial, needs over its lifetime, or requirements.

PYTHON BUILD · ASSESSED IN COMPARE

Build the check against known facts

Write fit, shortlist and evidence_needed. Use only the supplied facts. A requirement with no evidence must stay unknown, not be marked met. Use the output to check the claims in the AI draft.

First time? Try the not-assessed practice build and a complete worked example on How to do an assignment.

Budget about 30 minutes. Python runs in your browser: nothing to install, and nothing is uploaded. The first run downloads Python once (about 10 MB, internet needed). Passing every check is necessary, not sufficient: your written record must use what the build shows.

Your tests also run against versions of the code with known bugs. Each bug must make at least one of your tests fail. This is called mutation testing. Your build record gives you a small code change to explain in a short discussion (micro-viva), selected using your Student ID. Be ready to make it and explain which tests change and why.

Primary source · about 15 minutes: D. Garlan, R. Allen and J. Ockerbloom, “Architectural Mismatch: Why Reuse Is So Hard,” IEEE Software 12(6), 1995. Read about assumptions a reused software component relies on but does not state in its description. Which unknown result in your comparison represents such an assumption? Use the answer in your build plan.

The course checks your build must pass
  • supplied facts are reported as given
  • unsettled requirements are unknown, never met
  • the shortlist needs evidence for every requirement
  • evidence_needed lists exactly the unknowns
  • your own tests: at least three, all passing
  • your tests catch every known bug (mutation test)

Keep the given names. Write at least three functions whose names start with test_. Tab inserts four spaces.

Write your plan, then run.

COVERAGE STEP · COURSE OUTCOME 11 · DESIGN AND IMPLEMENT TEST CASES ACROSS TESTING STRATEGIES

The build record measures which lines and branches of your code your own tests run. The course checks are not counted.

  1. Make your three tests pass and read the coverage lines in the build record.
  2. Change one input in one of your tests. Run again: the record shows Run 2.
  3. Write one sentence: which branch is still not tested, and which input would test it.

RUN 3 · THEIR CHANGE · A PART YOU DID NOT WRITE CHANGES

The supplier ships version 2 of its product facts. The names are the same, but the promise of an export API for option A is no longer stated.

- ("A", "export-api"): "met",
+ (removed in version 2: the supplier no longer states this promise)

After your tests pass (Run 2), run their change. Do not edit your code or your tests first.

A2 · COMPARE · 1 POINT

Make the comparison missing from the draft. Use four relevant factors for choosing software to reuse. For each entry, mark it supported by a supplied fact, unknown, or dependent on a condition. Identify claims in the draft that the facts do not support. Do not invent scores, prices or performance results.

A3 · BOUND · 1 POINT

Name an assumption about support or use over time that the draft treats as certain without evidence. State one specific change that would make you change your own recommendation.

A4 · ACT + EVIDENCE · 1 POINT

Write the recommendation you would sign: choose an option or propose an evaluation, and state its limits. Name who is responsible and what evidence is needed to answer one important unknown.

Name the test, activity record or review that supports your decision. State the conditions it covers, who checks it, and what evidence is missing. Clearly separate results already available from checks you are only proposing.

ASSIGNED SOURCE APPLICATION · INCLUDED IN THE EXISTING RUBRIC

Give a slide number from the assigned reading. Explain its idea in your own words, then point to the part of your answer it supports or challenges. A slide number alone is not enough.

TRANSFER CHECK · SCORED WITH FIT

A framework calls the extra code you add to it; your program calls a library when it needs one of its functions. Explain who controls the order of work in each case. Give one effect this difference has when connecting an existing software component.

Commit is not LMS submission. Confirmation freezes FIT, COMPARE, BOUND, ACT and EVIDENCE before the new information appears.

Privacy: responses are stored locally in this browser under Chapter + Student ID. They are not sent to the instructor by this page. Submit the checked PDF through the LMS.