This document represents information from Griffith Uni's "Systems Analysis & Design" course (created by A.Pr P. Deer): the text below contains and structures the content of about 350 of the 437 slides of the course (e.g., the content of examples via figures and tables has not been represented and the redundancies which were necessary for presenting the content via slides have been eliminated and so was the content refering to tutorials and examinations). The FL notation is used. (Information/relations that are not of direct interest to students have been hidden using HTML comments below but these relations are displayed when querying/navigation is done).
These representations have been loaded into the WebKB-2 knowledge base.
Statements are in the courier font. They are enclosed within
the XHTML marks <KR> and </KR> to permit WebKB-2 to distinguish them
from regular text.
To navigate from one of the categories below, copy-paste its identifier (term with '#'
inside) into the following textbox or use the
provided hyperlinks. Then, use the search options at the end of each displayed page.
Reminder: statements of the form "CONCEPT1 subtype: CONCEPT2 CONCEPT3"
should be read:
"CONCEPT1 has for subtype CONCEPT2 and CONCEPT3" (in other words, any
instance of CONCEPT1 is also an instance of CONCEPT2 and CONCEPT3).
For relations other than "subtype" and "supertype",
"CONCEPT1 RELATION1: CONCEPT2 CONCEPT3, RELATION2: CONCEPT4;"
should be read: "any CONCEPT1 may have for RELATION1 one or many CONCEPT2" and
"any CONCEPT1 may have for RELATION1 one or many CONCEPT3" and
"any CONCEPT1 may have for RELATION2 one or many CONCEPT4".
is#systems_analysis_and_design_domain subdomain of: #information_science, object: is#course_of_system_analysis_and_design is#system_analysis_and_design_related_process is#system_analysis_and_design_agent is#document_or_structure_for_system_analysis_and_design is#system_analysis_and_design_tool; is#course_of_systems_analysis_and_design supertype: #course, subtype: gu#1015INT gu#7007INT; is#project_requirement definition: "business objectives that drive the work" "policies describing the nature of the business, the market, and the environment it operates in" "rules and processes governing business practice" "data storage and processing requirements" "order, timing and impact of key events", subtype: is#project_outcome_requirement; is#project_outcome_requirement subtype: is#project_deliverable, definition: "what we want to achieve/produce" "what does the business do (and why, and how)?" "what does it want to do (and why, and how)?" "what will our information systems need to do to address these?"; is#project_deliverable definition: "information from interviews, questionnaires, notes, minutes ..." "various existing information documents - business objectives, procedures, forms, reports, requirements collected during operation of existing systems ..." "computer-based information - screenshots, prototyped forms, design of existing database or process applications ..." "requirements documentation!";
is#project_cost subtype: {is#tangible_cost is#intangible_cost} {is#startup_cost is#recurring_cost} {is#project_development_cost is#project_operational_cost}; is#recurring_cost annotation: "time dependency of recurring benefits and costs: a dollar today is worth more than a dollar tomorrow, costs change e.g. interest rates, inflation, Moores Law, currency fluctuations, benefits can decay or increase over time"; is#project_development_cost annotation: "staff salaries, equipment and installation, software and licenses, consulting and other third party fees, training, facilities, utilities and tools, support staff, travel and misc expenses"; is#project_operational_cost annotation: "hardware and software maintenance and upgrades, connectivity costs, programming, 'Management' overhead (including change requests, configuration control, documentation), sysadmin and 'helpdesk' support, training, consumables";
is#system_analysis_and_design_related_process subtype: is#system_analysis_and_design_task is#planning_and_managing_an_information_system_project, agent: is#system_analysis_and_design_agent; is#system_analysis_and_design_task subtype: is#task_of_traditional_system_development_life_cycle is#rapid_application_development //prototyping approach is#object_oriented_method_of_system_analysis_and_design is#end-user_project_development is#evolutionary_project_development, annotation: "there is no 'best way'; choose the 'most appropriate way', being mindful of the strengths and weaknesses of each";
is#planning_and_managing_an_information_system_project annotation: "why, what, when, where, who and how", part: is#project_initiation_and_planning is#project_execution is#project_close_down, input: is#project_requirement, object: #project; is#project_initiation_and_planning successor: is#project_identification_and_selection is#project_analysis, definition: "establishment of scope, feasibility and resources", output: "statement of work (an overview for the 'customer')", subtype: is#project_initiation is#project_planning; is#project_initiation part: "addressing the most important 'why'" "establishing of initial resources, team, resources, ..." "creating plans (initiation, scoping and/or feasibility studies, ...)" "management procedures, customer relationships, project workbook, environment (influenced by development model options), ..."; is#project_planning part: is#project_feasibility_assessment is#project_resource_usage_estimation is#manage_risk, annotation: "defining scope, feasibility, alternatives" "project schedule, detailed resource estimating and planning" "various plans (communications, test, ... )" "standards and procedures, risk assessment" "detail of agreed development models, management procedures and environment", output: "statement of Work (an overview for the customer)" is#baseline_project_plan "project review and decision on whether or not to proceed, and how"; is#project_execution definition: "execute and manage your plan, with all the attendant resource, personnel, monitoring, organisational and technical change management, communication, QA and documentation issues"; is#project_close_down definition: "transition to either: operation, oblivion, reviews of project management or the project itself, people, resource, contractual and numerous other issues";
is#project_feasibility_assessment annotation: "criteria: economic, technical, operational, schedule, legal and contractual, political (organisational and cultural)", subtype: is#project_economic_feasibility_assessment is#project_technical_feasibility_assessment is#project_operational_feasibility_assessment is#project_schedule_feasibility_assessment is#project_legal_and_contractual_feasibility_assessment is#project_political/organisational/cultural_feasibility_assessment; is#project_economic_feasibility_assessment annotation: "an assessment of financial benefits and costs associated with the project" "must identify and quantify benefits and costs at least to the point where meaningful comparisons between projects can be made", part: is#cost/benefit_analysis is#cash_flow_analysis, method: is#project_economic_feasibility_assessment_technique; is#cash_flow_analysis annotation: "usually needs to consider the cash flow issues of economic feasibility i.e. when is money needed, or when does it become available"; is#project_economic_feasibility_assessment_technique subtype: is#net_present_value_analysis is#net_present_value_analysis is#break-even_analysis; is#net_present_value_analysis__NPV_analysis //the "__" means "synonym:" definition: "converting the future dollar amounts of costs and benefits into their current value, and compare the current values"; is#net_present_value_analysis__ROI_analysis definition: "analysing the benefit achieved per dollar of cost"; is#break-even_analysis__BEA_analysis definition: "analysing the amount of time required for the cumulative value of benefits to equal or exceed the cumulative costs"; is#project_technical_feasibility_assessment issue: "Does it require a research breakthrough?" "Does it introduce new development technology?" "Does it introduce new application technology?" "Is it a large and complex project?" "Are we likely to be short of the people we need (skills and numbers)?" "Is there a low level of structure and understanding of the business processes and requirements?"; is#project_operational_feasibility_assessment annotation: "related to technical and organisational feasibility in many models" "concerned with extent to which proposed system will meet organisational goals and its effect on structures and processes"; is#project_schedule_feasibility_assessment annotation: "can we meet the development milestones? A simple test is: Did you developed the schedule without regard to externally imposed constraints and deadlines? If NO, you must consider the schedule to be a high risk component of your project"; is#project_legal_and_contractual_feasibility_assessment annotation: "legal E.g. copyright, nondisclosure, financial reporting, misc minor legislation" "contractual E.g. development/testing/documentation requirements"; is#project_political/organisational/cultural_feasibility_assessment annotation: "how do various stakeholders (both within and without the organisation) view the proposed system?" "Issues: computer competency, perceived shifts in control and power, concerns about job security and prospects, changes to established procedures and responsibilities";
is#project_resource_usage_estimation annotation: "gather a consensus: a mean or median of estimates from a number of people will usually prove more accurate than a single estimate, e.g. the DELPHI method", trap: "optimistic estimation" "the 'Mythical Man Month' problem" "the bill for documentation, testing and training" "pressures to estimate in conformance with desires and the 'can do' problem" "allowing your estimate to be treated as an opening position in a negotiation process" "the idea that 'we will make up this phase' slippage in subsequent phases" "the effect of changes in scope or requirements", subtype: is#project_cost/benefit_estimation is#project_amount_of_work_estimation is#project_resource/constraint_estimation; is#project_amount_of_work_estimation method: is#project_amount_of_work_estimation_technique; is#project_amount_of_work_estimation_technique subtype: is#project_decomposition is#project_estimation_via_an_estimation_model is#project_estimation_via_function_point_analysis; is#project_decomposition definition: "breaking the task into smaller subtasks, and estimate each individually"; is#project_estimation_via_an_estimation_model annotation: "various modeling environments to help predict work requirements" "tend to be highly proprietary and somewhat secretive" "uses numerous different input parameters" "from input parameters, predict resource usage and development effort" "Eg. Constructive Cost Model: COCOMO, Boehm 1981"; is#project_estimation_via_function_point_analysis annotation: "essentially, a modeling technique" "determine number of function points: inputs, outputs, internal files, external files, system query environments" "look up history of prior projects with comparable function points";
is#task_of_traditional_system_development_life_cycle__SDLC_task annotation: "the SDLC is more aligned with corporate management models than other system development methods are" "there are many Standard Model for Traditional SDLC but when we look closely into these, there are far fewer differences than similarities", subtype: is#project_identification_and_selection is#project_initiation_and_planning //detailed in a previous sub-section is#project_analysis is#project_analysis_subtask is#project_design is#project_implementation_and_maintenance, output: "a functional system (software, hardware, procedures, trained users)" "documentation about the system itself (specifications), about the development process, about the use of the system (procedural manuals, user guides and training manuals)"; is#project_identification_and_selection successor: is#project_initiation_and_planning, successor of: is#project_maintenance, output: "mandate to continue to the NEXT PHASE" "commitment of the resources necessary for the next phase only!" "identification and selection of needs (ideally, a whole-of-enterprise analysis e.g. SWOT), priorities, resources" "decision on what to proceed with", subtype: is#project_identification is#project_selection; is#project_identification annotation: "how do potential development projects arise?" "top down (usually focuses on supporting what we want to do)" "bottom up (usually focuses on supporting what we currently do, and how we currently do it)" "from the IS Department (usually focuses on improving efficiency of IS support)"; is#project_selection annotation: "to select, we must assess/classify/compare/rank projects via criterias: value chain analysis, strategic alignment, preliminary assessment of various aspects of feasibility, ..."; is#project_analysis successor: is#project_initiation_and_planning is#project_logical_design, annotation: "detailed study of needs, current procedures and information systems", requirement: "the organisation has identified a number of potential projects and selected one" "some work effort has already gone into identifying the project, scope, feasibility, budget and broad total work effort i.e. Planning" "the Senior Management has reviewed the project, and given approval to proceed", part: is#project_analysis_subtask; is#project_analysis_subtask subtype: is#determining_project_requirements is#structuring_project_requirements is#generating_and_selecting_project_design_strategies is#updating_the_baseline_project_plan; is#project_design part: "addressing how we intend to do and represent it" "addressing: system interfaces and interactions, database design, program and module design and specification, system architecture", subtype: is#project_logical_design is#project_physical_design, output: "detailed system specifications";
is#determining_project_requirements output: is#project_requirement, //detailed in the first section of this document method: is#traditional_method_of_requirements_determination is#new_method_of_requirements_determination; is#traditional_method_of_requirements_determination subtype: is#interviewing is#using_questionnaires is#direct_observation is#analysing_procedures_and_documents; is#interviewing guideline: "plan the interview - individual or group, who, consider desired outcomes, recording/documentation, followup and feedback processes, ..." "prepare! - both yourself and the interviewee: when, where, for how long, what you will be asking, design interview form ..." "listen and 'record' (you are there to find out their views, not express your own!), and document as soon as possible" "take care about raising expectations (and the problem of 'active listening')" "allow adequate time between interviews for documenting, redesigning interview etc" "'close the loop'", object: is#interview; //see details below in the data/document structure section is#using_questionnaires object: #questionnaire, annotation: "generally more 'efficient' than interviews but less rich in information response" "generally tend towards more closed questions", requirement: "need greater care to avoid ambiguity or biased sampling"; is#direct_observation rationale: "there is often a significant disparity between what people think they do (or would like you to believe that they do) and what they actually do (and how they do it); direct observation can detect this and other inadvertent omissions", requirement: "for direct observation to work effectively, you will need to be more than a passive observer (but beware of the observer influencing the observed!)" "plan observation to avoid bias (e.g. different people, different levels, different times)"; is#analysing_procedures_and_documents subtype: is#analysing_existing_business_documentation; is#analysing_existing_business_documentation definition: "analysing mission statements, organisational objectives, business plans, organisational charts, duty statements and job descriptions, procedural manuals, training manuals, business forms, current system design documentation, ...", requirement: "beware of the difference between formal/informal systems and processes!"; is#new_method_of_requirements_determination annotation: "generally, we embark on these when entering new and/complex areas, when we think the processes and requirements are not well understood, when we need to re-think not only how we do things, but what we do, and why", subtype: is#Joint_Application_Design is#requirements_determination_via_prototyping; is#Joint_Application_Design__JAD annotation: "structured meeting involving representatives of all stakeholders" "objective - to collect requirements" "supported by some computer tools, such as CASE groupware products (but can use variety of general support software)"; is#requirements_determination_via_prototyping annotation: "various types ranging from simple forms to full functional prototypes" "even with simple prototypes, we want to investigate process, not just appearance!";
is#structuring_project_requirements subtype: is#process_modeling is#data_modeling is#logic_and_timing_modeling, object: is#project_model, input: "information from Requirements Determination"; is#process_modeling annotation: "what processes exist (i.e. what does this system actually do, and how does it do it)? what information do these processes use or produce?", object: is#process_model; is#data_modeling annotation: "detail the data definitions, structure or relationships" "needed for the design of programs, data bases, forms, reports etc" "starts with a data model of the existing system (not information system!) and supplement with other information from Requirements Determination"; is#logic_and_timing_modeling annotation: "represents the internal structure and functionality of a process", requirement: "must be complete and detailed" "must be generic, i.e. not represent specific syntax of a product/environment", instrument: is#logic_and_timing_model;
is#generating_and_selecting_project_design_strategies subtype: is#generating_project_design_strategies is#selecting_project_design_strategies, output: is#project_design_strategy; is#project_design_strategy subtype: is#minimalist_design_strategy is#maximalist_design_strategy is#realistic_compromise_design_strategy, definition: "high level statement about our approach to developing a system", annotation: "deals primarily with: scope and functionality, method of acquisition, and implementation environment"; is#generating_project_design_strategies definition: "identifying strategy alternatives is needed to investigate what is 'best' for the organisation, what can it manage at this time, what does it want to do in the future, ..." "identifying strategy alternatives is needed to avoid re-design efforts later, misunderstanding about the goal of the project, ...", requirement: "must consider: system features, information needs, functionality, modes of output, timeliness, development constraints, timeframe, organisational commitment, resources, business environment issues"; is#selecting_project_design_strategies annotation: "focus on a small number of feasible alternatives (because we need to analyse and describe these in detail)" "the 3 most common alternatives will represent (at least in terms of scope and functionality, and usually environment): 1) minimum, 2) maximum, 3) realistic compromise", subtype: is#selecting_the_best_project_design_strategy; is#selecting_the_best_project_design_strategy requirement: "any alternative selected to be the best must: (i) adequately address at least the minimum requirements, (ii) be technically and financially feasible with attractive total cost of ownership, (iii) meet the organisation's timeframe requirements", method: is#cost/benefit_analysis is#weighted_assessment_criteria_method is#constraint_satisfaction/optimisation_approach, agent: "the organisation/business with advice from PM, Analysts and/or IT Management", successor: is#updating_the_baseline_project_plan; is#updating_the_baseline_project_plan object: is#baseline_project_plan;
is#project_logical_design successor: is#project_analysis is#project_physical_design, successor of: is#project_physical_design, part: is#designing_forms_reports_and_interfaces is#logical_database_design, annotation: "what is this system going to do: system functionality, process support, ...?" "describing a solution without regard to physical implementation issues, limits and constraints (business level representation of how requirements will be met with a solution)", rationale: "those who build it probably won't have been involved in designing it (and those who maintain it will be different again, and those who design and build its replacement will be different again)", output: "justification or explanation" "a narrative overview (essentially the who, what, when, where, why, how etc)" "design itself (sample?)" "information testing and assessment"; is#designing_forms_reports_and_interfaces requirement: "based on user and task requirements" "needs to address: who, what, when, where, why, how etc" "feedback on design from users (prototype?)", object: is#form_created_by_project_design #report #user_interface, guideline: is#report/interface_general_formatting_guideline; is#form_created_by_project_design annotation: "the data elements of the form or report relate to components of data stores and E-R data models"; is#report/interface_general_formatting_guideline subtype: is#user_interface_design_principle, purpose: "for achieving consistency, efficiency, speed, accuracy, satisfaction, ease of use, ...", #measure: "time to learn, speed of performance, error rate, retention, satisfaction", instance: "highlighting, colour, use of text, table or graphical presentation" "do not undervalue 'common look and feel'" "be careful of inducing or reinforcing bias (both theirs and your!)" "provide assistance to users (error and valid response checking, selection menus, 'default' responses, help files, maybe speech recognition, dictionary and thesaurus services)"; is#user_interface_design_principle object: #user_interface, subtype: is#consistency_oriented_user_interface_design_principle is#forgiveness_oriented_user_interface_design_principle is#feedback_oriented_user_interface_design_principle; is#consistency_oriented_user_interface_design_principle example: "present common functions using the same interface"; is#forgiveness_oriented_user_interface_design_principle example: "allow for interactive discovery" "allow for trial and error" "allow user to undo what has just been done"; is#feedback_oriented_user_interface_design_principle example: "confirm the system is responding to input" "a user interface should be timely and near the point of activity"; is#logical_database_design part: is#relational_database_normalisation "represent entities (identifier becomes primary key, other attributes become non-key attributes of the relation)" "represent relationships (e.g. the primary key of one relation becomes a foreign key of another)" "normalise relations" "merge (and re-normalise) relations (if appropriate)", object: is#logical_data_model, output: "a normalised data model of our system that conforms to our chosen database technology (commonly, relational)"; is#relational_database_normalisation subtype: is#relational_database_normalisation_in_3NF; is#relational_database_normalisation_in_3NF object: is#relational_database_third_normal_form__3NF, output: "every nonprimary key attribute depends upon the whole primary key, and nothing but the primary key";
is#project_physical_design successor: is#project_analysis is#project_physical_design, annotation: "how the system is going to meet the requirements (choice of language and development environment, physical infrastructure choices, ...)?" "maps the Logical Design to the implementation environment", output: "technical specification of how solution will actually be physically implemented", subtype: is#physical_file/database_design is#system_and_program_structure_design is#distributed_system_design, object: is#system_structure is#program_structure is#system_architecture; is#physical_file/database_design purpose: "translate the logical database design into technical specifications for implementation", part: "defining attribute data types (fields)" "determining the physical record structure" "organising files for secondary storage devices" "selecting and allocating the storage databases and devices", object: is#physical_file is#system_structure is#data_schema is#physical_data_base is#file_organisation/index; is#system_and_program_structure_design definition: "group the system processes (modeled by Data Flow Diagrams) into modules (a module is a relatively small functional unit of a system, with high cohesion and low coupling; commonly represent using Structure Charts)", guideline: "modular and hierarchical" "each module should control a small number of subordinate modules" "each module should be relatively independent (low coupling)" "relatively cohesive (one function)" "relatively small in size" "as generic as possible", output: is#output_document_of_program_design; is#distributed_system_design part: "choosing a network architecture (homogeneous/heterogeneous networks; applications - distributed, client/server, central server etc)" "managing data (file servers, distributed or replicated databases, how to ensure integrity and security)" "separating application and data through middleware technology?";
is#project_implementation_and_maintenance part: is#project_implementation is#project_maintenance is#security_management, annotation: "implementation and maintenance are the two largest, longest and most expensive phases"; is#project_implementation successor: is#project_physical_design is#project_maintenance, purpose: "to convert system specs into functioning and reliable system, with documentation and adequate support services", annotation: "second largest and most expensive phase" "largest number and widest variety of personnel involved", subtype: is#coding is#testing is#documenting_the_project_implementation is#training_related_to_an_IS_implementation is#design_support_related_to_an_IS_implementation is#installation_related_to_an_IS_implementation is#close_down_of_project_installation; is#coding definition: "coding turns the physical design specs into functional computer code", part: "documenting while coding" "many programmers, many modules, many changes -> how to keep track? importance of module libraries and revision control"; is#testing annotation: "testing approach and procedures are formulated before implementation starts", output: is#master_test_plan, part: is#quality_assurance; is#quality_assurance part: is#unit_testing is#integration_testing is#system_testing is#testing_user_acceptance; is#unit_testing agent: is#programmer, part: "testing a module or subportions as the coding progress" "checking at completion that it meets the specification requirements" "technical walkthroughs"; is#integration_testing agent: "the IT section", object: "all the modules together (do they co-operate correctly as a system?)", requirement: "usually requires separate environment and data" "migration procedures"; is#testing_user_acceptance agent: is#user, definition: "tests the system is acceptable as far as the users are concerned: Does it do what the users want (functionally)? Does it fail-safe and recover? Is it robust and tolerant of user errors? Is it secure? Does it meet performance requirements?", annotation: "separate acceptance test environment and data"; is#documenting_the_project_implementation definition: "review and update business documentation made during the analysis and design phases", object: is#documentation_of_the_project_implementation; //details in a section below is#training_related_to_an_IS_implementation part: is#user_training_related_to_an_IS_implementation is#technical_staff_training_related_to_an_IS_implementation "notify customers of changes and help them adapt"; is#technical_staff_training_related_to_an_IS_implementation part: is#file_back-up_and_recovery is#data_file_maintenance; is#design_support_related_to_an_IS_implementation part: is#technical_support_related_to_an_IS_implementation is#help_desk_related_to_an_IS_implementation; is#technical_support_related_to_an_IS_implementation part: "help with machine usage" "assist with operating system problems"; is#help_desk_related_to_an_IS_implementation part: "assist with system usage" "can also act as job initiation point for tech support"; is#installation_related_to_an_IS_implementation part: "transferring from the 'old' system to the new" "hardware and network rollout" is#data-conversion_related_to_an_IS_implementation "software rollout or migration", method: is#direct_installation_of_an_IS is#parallel_installation_of_an_IS is#phased_installation_of_an_IS is#pilot_installation_of_an_IS; is#data-conversion_related_to_an_IS_implementation part: is#data_conversion is#data_mapping is#data_cleansing is#data_transfer is#audit; is#direct_installation_of_an_IS part: "complete old to new system transfer", characteristic: "highest risk" "one time for whole of organization" "minimum transfer effort"; is#parallel_installation_of_an_IS part: "run old and new together until management deems old can be eliminated", characteristic: "minimizes risk" "requires greater effort and resources"; is#phased_installation_of_an_IS part: "change from old to new incrementally" "start with some functionality" "continue in portions until all functionality 'transferred' to new system"; is#pilot_installation_of_an_IS part: "try out the new system at one location" "evaluate system readiness"; is#close_down_of_project_installation requirement: "successful implementation", part: "obtaining customer satisfaction" "post-project review" "project staff re-allocation"; is#project_maintenance part: "keeping the system running as intended" "correct/prevent faults" "adding new and/or improved functions" "adapt to changing environment" "improve function or performance" "help users" "documenting! " "never losing sight of the meaning of 'System'" is#configuration_management_and_control, method: "change requests" "approve or reject changes" "re-cycle through SDLC" "plan, analyze, design, implement" "this requires configuration management", characteristic: "the most expensive component of system life cycle cost (Pressman suggests 70-80% of system lifecycle cost!)", annotation: "good analysis and design and documentation is paid for many times over by subsequent reduction in maintenance costs" "currently more programmers involved in maintenance than development!" "current and future trend: decrease in on-site maintenance"; is#configuration_management_and_control part: "keeping current system documentation up to date (part of configuration management and control)" "planning ahead, and capture new requirements" "ensures only authorized changes are made to a system" "tracks state of current changes" "traces history of changes" "authorizes programmers to have modification rights to certain modules", annotation: "system librarian oversees 'check-ins / outs'" "some case tools have their own library control systems e.g. Cool-Gen"; is#security_management part: "control access" "backup and recovery - data and software", characteristic: "highly valuable for corporate information and corporate information systems";
is#rapid_application_development definition: "normally used for referring to approaches which use the 'prototype' as the final operational system" "a collection of approaches, techniques and tools aimed at reduced development times, rather than a specific methodology", purpose: "rapid identification of business problem and development and deployment of solution" "close cooperation between developers and users" "availability of prototyping and development tools", advantage: "extensive end-user involvement, leading to better end-solutions" "powerful development and prototyping tools (e.g. CASE code generators, 4GLs), allowing short development cycles" "can result in significant cost savings", drawback: "nothing can be cheap, quick and good (and RAD isn't always necessarily cheap anyway!)" "the almost complete focus on what the user wants will reduce opportunities for BPR" "often fails to address important system requirements (e.g. standards, documentation, consistency, scalability, security, maintenance etc)" "can be very difficult to process, manage and forecast"; is#object_oriented_method_of_system_analysis_and_design annotation: "approach has been likened to more like an onion (contrast to the waterfall SDLC model)" "progressive layers of system detail, starting with external qualities of the system, and continuing through to how the system will function and how it will be built" "models objects, encapsulating both data and behaviour", method: is#UMLS is#Use_Cases_method; is#Use_Cases_method annotation: "represent functional requirements, what the system should do" "the Use Case represents a specific way of using the system: usually as a sequence of related actions to achieve some outcome or goal", support: is#object-oriented_diagram;
is#system_analysis_and_design_agent subtype: is#system_analysis_and_design_project_manager is#system_analysis_and_design_content_expert is#system_analysis_and_design_programmer is#instructional_designer is#system_analyst; is#system_analyst requirement: "must understand the entire process of systems development, as well as the specific methodologies of structured analysis and design" "must have a knowledge of the business domain" "must have analytical skills to identify how that business domain might benefit from IS Development" "must have management skills - to manage the development of the IS" "must have technical IT/IS skills" "must have teamwork and interpersonal skills";
is#document_or_structure_for_system_analysis_and_design subtype: is#interview is#object-oriented_diagram is#project_plan is#data_structure_for_project_plan is#project_model is#data_flow_diagram is#output_document_of_program_design is#data_structure_for_program_design is#test_plan is#documention_of_the_project_implementation; is#interview //Week 5 subtype: is#interview_with_open-ended_questions is#interview_with_closed-ended_questions is#individual_interview is#group_interview; is#interview_with_open-ended_questions annotation: "does not suggest answers; e.g. 'What do you consider are the best aspects of the current system?' or 'What do you think the main features of the new system should be?'"; is#interview_with_closed-ended_questions annotation: "suggests YES/NO answers, or constrains respondees to YES/NO answers, or constrains respondees to choose from (or rating) your suggestions" "particular care needs to be taken with Closed questions to not 'pre-condition' the response'", example: "Is the current system good?" "Which of the following features do you think the new system should have (then list the options)?" "Rate each of the following features on a scale of 1 (must have) to 5 (don't need) ..."; is#individual_interview annotation: "in general better than group interviews because not dominated by the loudest voice, the strongest personality or the highest position, but Harder to schedule and 'keep on track' and less 'efficient'" "do not allow interaction and discussion between interviewees"; is#object-oriented_diagram subtype: is#object-oriented_class_diagram is#object-oriented_state_diagram is#object-oriented_sequence_diagram; is#object-oriented_class_diagram annotation: "represents static structure of the OO model: the object classes themselves and their relationships"; is#object-oriented_state_diagram definition: "dynamic models of how objects change over time"; is#object-oriented_sequence_diagram definition: "dynamic models of interaction between object"; is#project_plan //Week 2 use: "representation and scheduling" "'Work Breakdown', or activities, or tasks, ...", annotation: "some terms: Critical Path, Slack time, Completion times (earliest and latest expected), Estimated (completion) times - optimistic, realistic, pessimistic", subtype: is#baseline_project_plan, support: is#data_structure_for_project_plan; is#baseline_project_plan annotation: "addresses various elements of this phase in detail" "formats vary between organisations, but a suggested structure is Introduction, Description, Feasibility Assessment, Management Issues"; is#data_structure_for_project_plan subtype: is#Gantt_chart is#PERT_chart; is#Gantt_chart annotation: "task activities and durations, set against a timeline", use: "shows task chronological, not logical, sequence" "shows duration, set against a timeline, but not logical sequence"; is#PERT_chart annotation: "task activities and their relationships" "reveals the 'critical path'", use: "shows logical sequence but does not visually represent durations/timelines"; is#project_model subtype: is#process_model is#data_model is#logic_and_timing_model; is#process_model //Week 6 support: is#data_flow_diagram; is#data_flow_diagram__DFD annotation: "most common form of Process Models" "despite the name, DFDs have a process focus rather than a data focus" "representation of all processes and all information stores, irrespective of whether or not they are computerised", subtype: is#current_physical_DFD is#current_logical_DFD is#new_physical_DFD is#new_logical_DFD, part: is#DFD_process__DFD_activity__DFD_function is#DFD_data_store is#DFD_external_entity is#DFD_data_flow 1 is#DFD_context, object of: is#CASE_tool; is#data_model //Week 7 subtype: is#logical_data_model, annotation: "describes the data that support the business processes" "shows the entities/attributes corresponding to the data stores in DFDs" "during Analysis, the data model presents the logical organisation of data, without regard to how these data are stored, created or manipulated; during Design, these data models are changed to reflect these details", part: is#data_model_entity is#data_model_attribute is#data_model_relationship is#attribute_of_data_model_element is#data_model_triggering_operation; is#data_model_entity definition: "a meaningful business object or concept about which data is stored e.g. a person, place, event or an object", annotation: "an Entity will have multiple instances or occurrences - e.g. for the entity patient, instances might be John Smith and Jill Jones", subtype: is#associative_entity, attribute: is#data_model_attribute 1..* is#data_model_candidate_key; is#associative_entity__Gerund definition: "relationship modelled as entity"; is#data_model_attribute definition: "some type of information about entities, e.g. patient last_name, patient telephone_number", subtype: is#data_model_candidate_key, attribute: is#data_model_attribute_domain, object of: is#data_model_triggering_operation; is#data_model_candidate_key definition: "an attribute serving to uniquely identify an instance of an entity"; is#data_model_attribute_domain definition: "data type or value that an attribute can assume (e.g. type, length, format, range, uniqueness, allowable values, etc)"; is#data_model_triggering_operation annotation: "a condition of a rule on an event such as for example 'insert'"; is#data_model_relationship definition: "association between entities, e.g.: patient 'schedules' appointment", attribute: is#data_model_relationship_degree is#data_model_relationship_cardinality is#data_model_relationship_modality, subtype: {is#data_model_unary_relationship is#data_model_binary_relationship is#data_model_ternary_relationship}; is#data_model_relationship_cardinality__data_model_relationship_maximum_cardinality definition: "the (maximum) number of times an instance of one entity can be related to instances of another entity", example: "a patient should have one and only one medical_history (1:1)" "a patient may schedule many appointments but a particular appointment is only scheduled by one patient (1:M)" "diseases can have many symptoms but symptoms can be associated with many diseases (M:M)"; is#data_model_relationship_modality__data_model_relationship_minimum_cardinality definition: "the minimum number of times an instance of one entity can be related to instances of another entity, e.g. a person would only be entered as a patient when they made an appointment (thereby signifying a modality or minimum cardinality of one)"; is#logic_and_timing_model //Week 8 subtype: is#structured_English__pseudocode is#decision_table is#decision_tree; is#structured_English annotation: "this is a communication technique for Analysts and Users, while pseudocode is a communication between Analysts and Programmers" "must represent control features of structured programming: sequence, conditional statements, repetition" "no standard"; is#decision_table definition: "a diagram of process logic" "a matrix representation of a logic decision", use: "used when the logic is complicated, and/or we need to ensure all case/outcomes are considered" "specifying possible conditions and their resulting actions", subtype: is#nested_decision_table; is#output_document_of_program_design subtype: is#structure_chart is#module_or_program_specification, support: is#data_structure_for_program_design; is#module_or_program_specification definition: "detailed description of module" "enough detail so programmer can code", support: is#pseudocode is#flow_chart, part: "module common and technical name" "analyst and programmer name" "date received and due" "some business area context" "list of requirements" "details of each requirement" "unit test procedures" "references to site technical standards"; is#data_structure_for_program_design subtype: is#pseudocode__pseudo-code is#flow_chart is#structure_chart_structure; is#flow_chart__flowchart definition: "a graphical Representation of structure of code", part: "symbols for sequence, condition/decision, repetition/recursion", subtype: is#Nassi-Shneiderman_flowchart; is#structure_chart_structure definition: "hierarchical diagram displaying organization of an information system (each box is a module)" "each process on levelled DFD loosely corresponds to a module on a structure chart BUT, it is NOT NECCESSARILY a one to one correlation: may need to add controlling modules, may split a process into more than one module", support of: is#structure_chart; is#test_plan subtype: is#master_test_plan; is#documention_of_the_project_implementation subtype: is#technical_documentation is#user_documentation is#training_documentation; is#technical_documentation subtype: is#internal_code_documentation is#data_dictionary is#module_library_index; is#user_documentation subtype: is#user_manual is#template is#online_help_text; is#training_documentation subtype: is#trainer_manual is#course_note;
is#system_analysis_and_design_tool subtype: is#automated_project_management_tool is#CASE_tool; is#automated_project_management_tool annotation: "provides representational forms (e.g. Gantt, PERT) and much more", object: is#project_plan; is#CASE_tool annotation: "can help data modeling by (i) including names, descriptions, definitions, business rules etc in CASE repository and (ii) providing diagramming tools, with 'links' between diagrams and CASE repository";