Case Study: Agate’s Information System A1: AGATE Ltd Case Study: Introduction Requirements • To record details of Agate’s clients and advertising campaigns for those clients. – To record names, address, contact details for each client. – To record details of each campaign for each client (title of campaign, planned start & finish dates, estimated costs, budgets, actual costs & dates, current state of completion). – To provide information that can be used in separate accounts system for invoicing clients for campaigns. – To record payments for campaigns that are also recorded in separate accounts system. – To record which staff are working on which campaigns, including campaign manager for each campaign. – To record which staff are assigned as staff contacts to clients. – To check on status of campaigns and whether they are within budget. Requirements (cont’) • To provide creative staff with recording details of adverts and products of creative process that leads to development of concepts for campaigns and adverts. – To allow creative staff to record notes of ideas for campaigns and adverts. – To provide other staff with access to those concept notes. – To record details of adverts, including progress on their production. – To schedule dates when adverts will be run. • To record details of all staff in company. – – – – To maintain staff records for creative and administrative staff. To maintain details of staff grades and the pay for those grades. To record which staff are on which grade. To calculate annual bonus for all staff. Requirements (cont’) • Non-functional requirements. – To enable data about clients, campaigns, adverts, staff to be shared between offices. – To allow system to be modified to work in different languages. A2: AGATE Ltd Case Study: Requirements Model Requirement list Use case for Staff Management Use case for Staff Manage -ment (cont’) Use case for Campaign Management Use case for Campaign Management (cont’) Use case for Advert Preparation Incursion & Prototype interface for Find campaign use case Initial Package Architecture Initial Package Architecture (cont’) • Use cases have been grouped into 3 subsystem packages: Campaign Management, Staff Management, and Advert Preparation. • Distribution Package is necessary to meet Requirement # 16 Activity diagram for Requirements capture and modeling Activity diagram for Capturing requirements Activity diagram for Developing prototype Activity diagram for Developing an initial architecture A3: AGATE Ltd Case Study: Requirements Analysis Use case collaboration: Add a new campaign Collaboration diagram for Add a new campaign Class diagram for Add a new campaign Use case collaboration: Assign staff contact Collaboration diagram for Assign staff contact Class diagram for Assign staff contact Use case collaboration: Check campaign budget Collaboration diagram for Check campaign budget Class diagram for Check campaign budget Use case collaboration: Record completion of campaign Collaboration diagram for Record completion of campaign Class diagram for Record completion of campaign Class diagram after further requirement analysis Activity diagram for Requirement analysis Activity diagram for Analysis use case realization A4: AGATE Ltd Case Study: Requirements Model (Cont.) Sequence diagram for Add a new advert to a campaign Sequence diagram for Check campaign budget Statechart for Campaign Statechart for Staff Member Operational specification for Campaign Operational specification for Client & Advert Revised analysis class diagram with generalization and aggregation Activity diagram for Iteration analysis Activity diagram for Iteration analysis (cont’) A5: AGATE Ltd Case Study: Design Package diagram for Software architecture Package diagram showing classes Prototype UI for Check campaign budget Classes in package Agate::Boundary Classes in package Agate::Control::Client::CheckCampaignBudget Classes in package Agate::Control::Server Classes in package Agate::Entity::Domain Broker classes in package Agate::Entity::DataManagement Factory class in package Agate::Control::Server Sequence diagram for Check campaign budget Sequence diagram for Check campaign budget (cont’) Sequence diagram for Check campaign budget (cont’) Sequence diagram for Check campaign budget (cont’) Statechart for control of UI in Check campaign budget Event-action for Statechart for control of UI in Check campaign budget Activity diagram for Design workflow Activity diagram for Design workflow (cont’)