Ict2621 Assignment 1

Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures...

Please note this chapter is also covered in ICT2622 – Object Orientated Analysis

Objectives of Chapter 5

  • Understand why identifying use cases is the key to defining functional requirements
  • Use three techniques for identifying use cases
  • Write brief, intermediate, and fully developed use case descriptions
  • Explain how the concept of things in the problem domain also define requirements
  • Identify and analyze data entities and domain cases needed in the system
  • Read, interpret, and create an entity-relationship diagram
  • Read, interpret, and create a domain model class diagram

Key Word & Definitions

  • use case – an activity the system performs
  • user goal technique – an approach for identifying use cases in which an analyst talks to all users to get them to describe their goals in using the system
  • CRUD techniques – an approach in which an analyst looks at each type of data and includes use cases that create the data, read or report on the data, update the data, and delete the data.
  • elementary business process (EBP) – a task that is performed by one person, in one place, in response to a business event; it adds measurable business value and leaves the system and its data in a consistent state.
  • event – an occurrence at a specific time and place that can be described and is worth remembering
  • event decomposition – an analysis technique that focuses on identifying the events to which a system must respond and then determining how the system must respond.
  • external event – an event that occurs outside the system, usually by an external agent or actor.
  • temporal event – an event that occurs as a result of reaching a point in time.
  • state event – an event that occurs when something happens inside the system that triggers the need for processing
  • system controls – check or safety procedures put in place to protect the integrity of the system
  • perfect technology assumption – the assumption that events should be included during analysis only if the system would be required to respond under perfect conditions.
  • event table – a catalogue of use cases that lists events in rows and key pieces of information about each event in columns.
  • trigger – a signal that tells the system that an event has occurred, either the arrival of data needing processing or a point in time.
  • source – an external agent or actor that supplies data to the system
  • response – an output, produced by the system, that goes to a destination
  • destination – an external agent or actor that receives data from the system
  • use case description – a description that lists the processing details for a use case
  • actor – in UML diagrams, a person who uses the system
  • scenario or use case instance – a unique set of internal activities within use case that represents a unique path through the use case
  • preconditions – conditions that must be true before a use case begins
  • post conditions – conditions that must be true upon completion of the use case
  • relationship – a naturally occurring association among specific things, such as “an order is placed by a customer and an employee works in a department”
  • cardinality – the number of associations that occur among specific things, such as a customer places many orders and an employee works in one department.
  • multiplicity – a synonym for cardinality
  • binary relationships – relationships between two different types of things such as a customer and an order
  • unary relationships - a relationship among two things of the same type, such as one person being married to another person
  • ternary relationship – a relationship among three different types of things
  • n-ary relationship – a relationship among n different types of things
  • attribute – one piece of specific information about a thing
  • identifier (key) – an attribute that uniquely identifies a thing
  • compound attribute – an attribute that contains a collection of related attributes
  • data entities – the things about which the system needs to store information in the traditional approach to information systems
  • associative entity – a data entity that represents a many-to-many relationship between two other data entities
  • generalization / specialization hierarchies – hierarchies that structure or rank classes from the more general super class to the more specialized subclasses; sometimes called inheritance hierarchies.
  • inheritance – a concept that allows subclasses to share characteristics of their super classes
  • whole-part hierarchies – hierarchies that structure classes according to their associated components
  • aggregation – whole-part relationship between an object and its parts
  • composition – whole-part relationship in which the parts cannot be dissociated from the object

User Goals, Events, & Use Cases

(See Wiki on Use Cases for more info)

Use cases are used in almost all modern system analysis approaches. A use case is an activity the system performs, usually in response to a request by a user.

Several techniques are recommended for identifying use cases including…

  • User Goal Technique - This is an approach for identifying use cases in which an analyst talks to all users to get them to describe their goals in using the system.
  • CRUD Technique – This an approach in which an analyst looks at each type of data and includes use cases that create the data, read or report on the data, update the data, and delete the data
  • Event Decomposition Technique – This is the most comprehensive technique for identifying use cases and focuses on identifying the events to which a system must respond and then determining how the system must respond.

It is important with use cases to identify the appropriate level of detail, you do not want to be to broad, or to narrow. One way to do this is to define the EBP (Elementary Business Process). Basically, an EBP is a process where no major time gap occurs during the process – i.e. it may seem seamless.

Event Decomposition Technique

  • identify the events to which a system must respond
  • determine how the system must respond
  • focus on events

Types of Events

There are three main types of events in a system…

  1. External Event – an event that occurs outside the system, usually by an external agent or actor.
  2. Temporal Event – an event that occurs as a result of reaching a point in time (time based event)
  3. State Event – an event that occurs when something happens inside the system that triggers the need for processing

Identifying Events

It is not always easy to define the events that affect a system. The following need to be taken into consideration.

  • Events vs. Prior Conditions & Response is this actually an event or part of a prior condition? Try and use the EBP principle.
  • The Sequence of Events : Tracing a Transactions Life Cycle – sometimes useful to trace all events that will occur with an actor.
  • Technology Dependent Events & System Controls – assume the “perfect technology assumption”. These events should not form part of the initial use cases as they are technology dependant – i.e. logging in to a system, etc.

Event Table

An event table is a catalogue of use cases that lists events in rows and key pieces of information about each event in columns.

An event table includes row and columns representing events and their details, respectively. An example of an event table is shown below…

EventTriggerSourceUse CaseResponseDestination
Customer wants to check item availabilityItem InquiryCustomerLook up item availabilityItem Availability DetailsCustomer

Use an event table as a catalogue of information about the use cases that make up the functional requirements of the system

Each column in the event table represent a section…

  • trigger – a signal that tells the system that an event has occurred, either the arrival of data needing processing or a point in time.
  • source – an external agent or actor that supplies data to the system
  • response – an output, produced by the system, that goes to a destination
  • destination – an external agent or actor that receives data from the system

Use Case Descriptions

A list of use cases and an event table provide an overview of all the use cases for a system. Detailed information about each use case is described with a use case description.

In UML, an actor is a person. An actor is always outside the automation boundary of the system but may be part of the manual portion of the system.

There are three levels of use case descriptions…

  1. Brief Description
  2. Intermediate Description
  3. Fully Developed Description

Brief Description

  • Used for very simple use cases
  • Usually it is changed to a intermediate description or a fully developed description

Intermediate Description

Below is an example of a template layout for a intermediate description…

Title of the Use Case

Main Flow

  • Step by Step descriptions of the flow
Exception Conditions

Fully Developed Description

  • The most formal description

  • Example of description listed below…

Use Case Name
Scenario
Triggering Event
Brief Description
Actors
Related Use Cases
Preconditions
Post conditions
Flow of Activities
Exception Conditions

Preconditions and post conditions are critical to understanding the processing done for a use case.

“Things” in the Problem Domain

In the traditional approach, the “things” make up the data that is stored. The type of data that is stored is key to the system requirements.

In the object orientated approach, the “things” make up the objects that are mapped.

Whether you use the traditional or object oriented approach, identifying the “things” is a key initial step.

Types of Things

An analyst can identify the types of things by  thinking about each event in the event table and asking questions.

There are several procedures that can assist an analyst in this process. Outlined below is one such procedure…

  1. Use the event table and information about each event and identify all of the nouns.
  2. Using other information from existing systems, current procedures, and current reports or forms, add items or categories of information needed
  3. Refine the list and record assumptions or issues to explore.

Relationships Among Things

Once you have identified the “things”, you should identify the relationship between them.

A relationship is a naturally occurring association among specific things, such as “an order is placed by a customer and an employee works in a department”.

It is important to note that relationships between things apply in two directions – i.e. a customer orders a products, products have been ordered by a specific customer.

It is important to also understand the cardinality that exists between objects. Cardinality is the number of associations that occur among specific things, such as a customer places many orders and an employee works in one department. Sometimes this can be called multiplicity. (see wiki for more on cardinality)

It is important not just to understand the cardinality, but also the range of possible values. i.e. A particular customer might not ever place an order, but if he wanted to he could place many orders. (range is the minimum and maximum cardinality).

There are several different types of relationships… outlined below are some of the major ones…

  • binary relationships – relationships between two different types of things such as a customer and an order
  • unary relationships - a relationship among two things of the same type, such as one person being married to another person
  • ternary relationship – a relationship among three different types of things
  • n-ary relationship – a relationship among n different types of things

    Initially focus on identifying each “thing” in the problem domain, but also be sure to focus on associations/relationships among them, which are often just as important to the system users.

    Attributes of Things

    An attribute is one piece of specific information about a thing. In .Net we usually call these properties of objects. i.e. the Name of a Person would be an attribute.

    Some attributes are key identifiers which means that the attribute uniquely identifies the “thing”.

    You can also get compound attributes – which is an attribute that contains a collection of related attributes – i.e. Full Name is a compound attribute of First Name & Last Name.

    The Entity-Relationship Diagram

    Data entities are the things about which the system needs to store information in the traditional approach to information systems. The model used to define the data storage requirements with the traditional approach is called the entity-relationship diagram (ERD).

    (For more information on ERD diagrams see the wiki)

    An important aspect of an entity diagram is an associative entity which is a data entity that represents a many-to-many relationship between two other data entities.

    Several refinements are done to ERD during the design process. One such refinement is called normalization (see wiki for more info).

    The Domain Model Class Diagram

    The domain model class diagram (See wiki for more info) is a type of UML class diagram shows the things in the users work domain.

    The book covers the notation for this type of UML diagram however the summary will not go into any depth on this.

    The section also covers generalization/specialization of classes.

    A generalization / specialization hierarchy is one in which one can structure or rank classes from the more general super class to the more specialized subclasses; sometimes called inheritance hierarchies. i.e. A Vehicle Class can have specialization sub classes of Cars or Trucks.

    Another way that people structure information about things is by defining them in terms of their parts. This is called whole-part hierarchies.

    Whole-part hierarchies are hierarchies that structure classes according to their associated components.

    There are two types of whole part hierarchies…

    1. Aggregation
    2. Composition

    Aggregation is used to describe a form of association that specifies a whole-part relationship between the aggregate (whole) and its components (parts) where the parts can exist separately.

    Composition is used to describe a form of association that is even stronger than aggregation, where the parts once associated, can no longer exist separately.

    (See Page 191 of the book for graphical examples).

    Whole-part hierarchies serve mainly to allow the analyst to express subtle distinctions about associations among classes. As with any association relationship, multiplicity can apply such as when a computer has one or more disk storage devices.

    Composition – whole-part relationship in which the parts cannot be dissociated from the object




  • Assignment 2

    Re: Assignment 2
    March 22, 2010 06:36PM
    IP/Host: ---.umts.vodacom.co.za
    Registered: 9 years ago
    Posts: 1,625
    Rating: 0
    cbrunsdonza Wrote:
    -------------------------------------------------------
    ><snip>
    >
    > ... ok done, now I can concentrate on my
    > ICT262{1,2}

    damn, you're doing those too? damn! i though i was a loner, ah well,!
    Re: Assignment 2
    March 22, 2010 11:23PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 9 years ago
    Posts: 423
    Rating: 0
    @cbrunsdonza

    Are ICT2621/2 using the same book, or has that changed now?
    Re: Assignment 2
    March 23, 2010 05:02AM
    IP/Host: ---.umts.vodacom.co.za
    Registered: 9 years ago
    Posts: 1,625
    Rating: 0
    ^-^same book: Systems analysis and design in a changing world, 5th edition.

    how do i submit the INF assignment, screen shots of the code and of the interface, or the code itself + screen shot of the interface, or just the interface?
    Re: Assignment 2
    March 23, 2010 01:46PM
    IP/Host: 198.54.206.---
    Registered: 9 years ago
    Posts: 423
    Rating: 0
    I did a screen shotof the object tree from all three question and a also a screen shot of UI at design time for Q 1 and 2 and run time for Q3 (as asked).
    I copied and pasted the code requested and formated to courier, so nesting and indenting are shown correctly.

    In question 2, they also mentioned the randomize function must be in the forms OnShow event, but they did not ask it as a question. So how they to know you did this? So I also copied this procedure with the UI and objects screen shots.
    Re: Assignment 2
    March 23, 2010 04:07PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 8 years ago
    Posts: 3
    Rating: 0
    Question 2.7 user can only add 5 names, the constant and disabling the two buttons?
    Re: Assignment 2
    March 23, 2010 07:46PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 9 years ago
    Posts: 423
    Rating: 0
    Quote

    2.7) Just do a check after each name added to make sure you have not reached the count. If you have reached the count then disable the button.
    Umm, The buttons are disabled before adding names. When there is at least one name then you enable the buttons.

    That is the way I understand it.
    Re: Assignment 2
    March 23, 2010 08:05PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 8 years ago
    Posts: 3
    Rating: 0
    This is how far i've managed to go:-


    procedure TForm1.btnAddNamesClick(Sender: TObject);
    const maxbookings = 5;
    var
    stadium: string;
    NoOfStadiums: integer;
    begin
    stadium := InputBox('FIFA Stadium', 'Please enter the name of the stadium:', '');
    lstStadiums.Items.Add(stadium);
    end;
    end.

    (what else do you code afterwards coz anything i try raises an error. what have i done wrong in the code so far)
    Re: Assignment 2
    March 23, 2010 10:18PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 9 years ago
    Posts: 423
    Rating: 0
    @aviwe.
    There is nothing wrong with that code?

    What are you trying that raises an error?

    Also, because a max of 5 stadia must be entered, you need to check how many you have already before using the inputbox in case there are five already entered.
    Re: Assignment 2
    March 25, 2010 08:52PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 7 years ago
    Posts: 1
    Rating: 0
    Hey guys!!!

    I am stuck on the 2.7 & 2.8 parts of the assignment.

    My code works for 2.7 & everything but how am i meant to limit it to 5 inputs?

    My code also does everything its meant to for 2.8 but how are u meant to work out the total cost from the random numbers generated? It keeps telling me that it cant convert the string into integer cause its not compatable.

    Help!!
    Re: Assignment 2
    March 25, 2010 08:55PM
    IP/Host: ---.umts.vodacom.co.za
    Registered: 9 years ago
    Posts: 1,625
    Rating: 0
    gooi your code here and let us have a go at it,

    begin//make sure you gooi it like this;{so we can have a go at it};
    Re: Assignment 2
    March 28, 2010 08:30PM
    IP/Host: ---.umts.vodacom.co.za
    Registered: 9 years ago
    Posts: 1
    Rating: 0
    Hi folks...

    I'm stuck on part 2.8 of assignment 2 and don't know how to proceed...
    I'd be extremely grateful if someone could just point me in the right direction...

    Thanks...
    Rid1...
    Re: Assignment 2
    March 28, 2010 11:23PM
    IP/Host: ---.telkomadsl.co.za
    Registered: 9 years ago
    Posts: 423
    Rating: 0
    Quote
    45741549
    Hi folks...

    I'm stuck on part 2.8 of assignment 2 and don't know how to proceed... confused smiley
    I'd be extremely grateful if someone could just point me in the right direction...

    Thanks...
    Rid1...

    Ex 7.2 step 5 can be used as a basic structure for the answer.
    Yeah, ICT2621 is easy, but I'm behind on ICT2622 with the pretty pictures. Going to have to concentrate seriously on this one. As a heads up, learn how to write (and draw) stuff by hand as no computers in the exam.

    My worst exam was 2yrs back, COS111, where I had to do a basic C++ app and struggled to write the code by hand. Took me 30minutes to do a basic hello world.

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    I did a cut 'n paste of the code, and then screenshots of the UI as per their requirements.

    Not 100% sure if I supplied the correct ones (object Tree). Its seems that for Q3 you need to supply a screenshot of your actual AP in progress, where in Q1 you supply just a screenshot of the form designer.

    Guys, please correct me if you feel I'm wrong. We are here to help.

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    may I ask for help with regard to this question 2.7 & 2.8
    I have not got a grasp of the topic yet and time's hammering me down with ICT2621/2 and FAC1601 breathing down my neck.
    2.7) Just do a check after each name added to make sure you have not reached the count. If you have reached the count then disable the button.

    I also added a check to make sure the name added was not blank - habit.

    2.8) You need to randomise your rand generator!!!!!!!!!!

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    basicgerm Wrote:
    -------------------------------------------------------
    > may I ask for help with regard to this question
    > 2.7 & 2.8
    > I have not got a grasp of the topic yet and time's
    > hammering me down with ICT2621/2 and FAC1601
    > breathing down my neck.


    Personally I would just moving on with ICT262{1,2} as its more time consuming. You can always come back to Delphi next week.

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    kiolb Wrote:
    -------------------------------------------------------
    > 2.7) Just do a check after each name added to make
    > sure you have not reached the count. If you have
    > reached the count then disable the button.
    > Umm, The buttons are disabled before adding names.
    > When there is at least one name then you enable
    > the buttons.
    >
    > That is the way I understand it.


    Sorry, your right. You need to enable the button after the first entry has been added. Can see my brain has moved on to other modules

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    leandi90 Wrote:
    -------------------------------------------------------
    > Hey guys!!!
    >
    > I am stuck on the 2.7 & 2.8 parts of the
    > assignment.
    >
    > My code works for 2.7 & everything but how am i
    > meant to limit it to 5 inputs?

    Use a constant (remember) and before each input, check the count of your list. If your list has fewer than 5 items, then proceed with the input box, if its already five (or more?) then do nothing.



    > My code also does everything its meant to for 2.8
    > but how are u meant to work out the total cost
    > from the random numbers generated? It keeps
    > telling me that it cant convert the string into
    > integer cause its not compatable.

    >
    > Help!!

    IntToStr

    Remember this and type it out a hundred times. I suspect that we will get this in our exams as its use pops up too often during this module.

    --------------------------------------------------------------
    Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer
    Hi Guys

    Please help!

    Im having trouble with converting the values from sedScore1 to string in lblResult?

    ...
    begin
    Score1 := sedScore1.Value;
    Score2 := sedScore2.Value;
    if Score1 > Score2 then
    begin
    lblResult.Caption := edtTeamName1.Text + ' beat ' + edtTeamName2.Text + InToStr(sedScore1.Value) ...

    Thanks

    Krish
    ...

    0 thoughts on “Ict2621 Assignment 1

    Leave a Reply

    Your email address will not be published. Required fields are marked *