Csc301lesson 2 and 3
Csc301lesson 2 and 3
In this lesson, we are going to study further the Analysis steps which include concept of
structured analysis, Fact gathering techniques, data flow diagrams, process description data
modeling.
We have already discussed in Lesson the three steps of Analysis phase which are:
• Analysis Strategy
• Requirements gathering
• System Proposal
Analysis strategy is concerned with analysis the existing/current system (called the as-is
system) and its problems, and then ways to design a new system (called the to-be system).
And information gathering is gathering of fact about the existing system and users/system
requirements with which the proposed or will-be system will be modelled.
Requirements Determination
A requirement is a vital feature of a new system which may include processing or capturing
of data, controlling the activities of business, producing information and supporting the
management.
Requirements determination involves studying the existing system and gathering details to
find out what are the requirements, how it works, and where improvements should be made.
ii.Requirements Investigation
o It is studying the current system and documenting its features for further analysis.
o It is at the heart of system analysis where analyst documenting and describing
system features using fact-finding techniques, prototyping, and computer assisted
tools.
iii.Requirements Specifications
o It includes the analysis of data which determine the requirement specification,
description of features for new system, and specifying what information
requirements will be provided.
o It includes analysis of factual data, identification of essential requirements, and
selection of Requirement-fulfillment strategies.
Advantages of Interviewing:
o This method is frequently the best source of gathering qualitative information.
o It is useful for them, who do not communicate effectively in writing or who may
not have the time to complete questionnaire.
o Information can easily be validated and cross checked immediately.
o It can handle the complex subjects.
o It is easy to discover key problem by seeking opinions.
o It bridges the gaps in the areas of misunderstandings and minimizes future
problems.
Questionnaires: This method is used by analyst to gather information about various issues
of system from large number of persons.
There are two types of questionnaires:
Open-ended Questionnaires − It consists of questions that can be easily and correctly
interpreted. They can explore a problem and lead to a specific direction of answer.
Closed-ended Questionnaires − It consists of questions that are used when the systems
analyst effectively lists all possible responses, which are mutually exclusive.
Female students do better than their male counterpart. Are Female students better than
a. Agree b. Strongly Agree c. Disagree their Male counterpart?
Starting school at earlier age makes a child more What is the effect of early
intelligent. enrolment in school in a child.
a. Agree b. Strongly Agree c. Disagree
Working mothers takes care of home better than house Are working mothers preferred
wives. to house wives?
Agree b. Strongly Agree c. Disagree
Advantages of questionnaires :
• It is very effective in surveying interests, attitudes, feelings, and beliefs of users which
are not co-located.
• It is useful in situation to know what proportion of a given group approves or
disapproves of a particular feature of the proposed system.
• It is useful to determine the overall opinion before giving any specific direction to the
system project.
• It is more reliable and provides high confidentiality of honest responses.
• It is appropriate for electing factual information and for statistical data collection which
can be emailed and sent by post.
This method is widely used for information gathering by accessing the gleaned information.
It includes any previously gathered information used by the marketer from any internal or
external source.
Advantages :
• It is more openly accessed with the availability of internet.
• It provides valuable information with low cost and time.
• It act as forerunner to primary research and aligns the focus of primary research.
• It is used by the researcher to conclude if the research is worth it as it is available with
procedures used and issues in collecting them.
Structured Analysis
Structured Analysis is a development method that allows the analyst to understand the system
and its activities in a logical way. It is a systematic approach, which uses graphical tools that
analyze and refine the objectives of an existing system and develop a new system
specification which can be easily understandable by user.
Attributes of Structured Analysis
• It is graphic which specifies the presentation of application.
• It divides the processes so that it gives a clear picture of system flow.
• It is logical rather than physical i.e., the elements of system do not depend on vendor or
hardware.
• It is an approach that works from high-level overviews to lower-level details.
Physical DFD :
o It is implementation dependent. It shows which functions are performed.
o It provides low level details of hardware, software, files, and people.
o It depicts how the current system operates and how a system will be implemented.
Logical DFD :
o It is implementation independent. It focuses only on the flow of data between
processes.
o It explains events of systems and data required by each event.
o It shows how business operates; not how the system can be implemented.
How to Draw DFD:
We should learn how DFD is drawn. First of all, let us see different drawing notations.
External Entity:
This can represent a human, system or subsystem where certain data comes from or goes to.
It is external to the system being studied, thus people used to draw external entities on the
edge of a diagram. Using Business process for exam, customer can be an external entity and
Process
A process is a business activity or function where data manipulation and transformation take
place. A process can further be decomposed to a better level of details, for representing how
data is being
processed within the process
Data Flow
A data flow represents the flow of information, with its direction represented by an arrowhead
that
shows at the end(s) of flow connector
i. Create three processes (Process Order, Ship Good, Issue Receipt) in the center as
shown below. That is the old spot for the System process and we place them there to
elaborate System.
ii. Wiring with connection lines for data flows: The remaining steps in this section are
about connecting the model elements in the diagram. For example, Customer provides
order information when placing an order for processing.
iii. The Process Order process also receives customer information from the
database to process the order. Represent it as shown below:
iv. By combining the order information from Customer (external entity) and the
customer information from Customer (data store), Process Order (process) then
creates a transaction record in the database. Create a data flow from Process Order to
Transaction.
v. Once a transaction is stored, the shipping process follows. Therefore, create a data
flow from Process Order (process) to Ship Good (process).
vi. Ship Good (process) needs to read the transaction information (i.e. The order number
to pack the right product for delivery. Create a data flow from Transaction (data store)
to Ship Good (process).
(Note: The shapes can be moved around to make rooms if there is no space)
vii. Ship Good also needs to read the customer information for his/her shipping address.
Create a data flow from Customer (data store) to Ship Good (process).
viii. Ship Good then updates the Inventory database to reflect the goods shipped. Create a
data flow from Ship Good (process) to Inventory (data store). Name it updated
product record.
ix. Once the order arrives in the customer's hands, the Issue Receipt process begins. In
it, a receipt is prepared based on the transaction record stored in the database. So
create a data flow from Transaction (data store) to Issue Receipt (process).
x. Then a receipt is issued to the customer. Let's create a data flow from Issue Receipt
(process) to Customer (external entity). Name the data flow receipt.
This brings to completion the Level 1 DFD of the system, so the complete system diagram
should be as shown below:
1. Process labels should be verb phrases; data stores are represented by nouns
2. A data store must be associated with at least a process
3. An external entity must be associated with at least a process
4. Don't let it get too complex; normally 5 - 7 average people can manage processes
5. DFD is non-deterministic - The numbering does not necessarily indicate sequence, it's
useful in
identifying the processes when discussing with users
6. Datastores should not be connected to an external entity, otherwise, it would mean that
you're
giving an external entity direct access to your data files
7. Data flows should not exist between 2 external entities without going through a process
SYSTEM DESIGN: STRUCTURE CHARTS, FORM DESIGNS, SECURITY,
AUTOMATED TOOLS FOR DESIGN.
System Design
System Design as have been earlier mentioned focuses on building the proposed system using
the result from the analysis carried out.
It is the process of defining the architecture, components, modules, interfaces, and data for a
system to satisfy specified requirements. Systems design could be seen as the application of
systems theory to product development.
The Inputs and Outputs of System Design
Flowcharts:
A flowchart is simply a graphical representation of steps which depicts the steps in sequential
order and is widely used in presenting the flow of algorithms, workflow or processes.
Typically, a flowchart shows the steps as boxes of various kinds, and their order by connecting
them with arrows.
Advantages of ER diagrams
• ER model allows you to draw Database Design
• It is an easy to use graphical tool for modeling data
• Widely used in Database Design
• It is a GUI representation of the logical structure of a Database
• It helps you to identifies the entities which exist in a system and the relationships
between those entities
Symbols in ER diagram
Entity Notations
Entity Set
An entity set is a group of similar kind of entities. It may contain entities with attribute sharing
similar values. Entities are represented by their properties, which also called attributes. All
attributes have their separate values. For instance, in a University database, we might have
entities for Students, Courses, and Lecturers. Students entity can have attributes like
MatricNo, Name, DeptID and Level. They might have relationships with Courses and
Lecturers.
A university may have some departments. All these departments employ various lecturers and
offer several programs. Some courses make up each program. Students enroll in a particular
program and register various courses. A lecturer from the specific department takes each
course, and each lecturer teaches a various group of students.
SEMESTER
CUNIT REGID
CTITL
Weak Registration
C ID COURSE
Relation
Attributes
It is a single-valued property of either an entity-type or a relationship-type.
For example, a course might have attributes: code, title, unit, etc.
An attribute in ER Diagram is represented by an Ellipse
Attributes
Course code
Course
Entity
Figure 2. 4: Attributes
Types of Attributes Description
Derived attribute This type of attribute are not included in the physical
database. However, their values are derived from other
attributes. For example age should not be stored, instead
it can be derived from date of birth.
Multivalued attribute can have more than one values. For example, a student
can have more than one mobile number, email address,
etc.
Relationship
A relationship describes how entities interact. For example, the entity “Lecturer” may be
related to the entity “course” by the relationship “teaches” or “examines”. Relationships are
represented by diamond shapes and are labeled using verbs.
Relationships in ER diagrams
Recursive Relationship
If the same entity participates more than once in a relationship it is known as a recursive
relationship. In the below example an employee can be a supervisor and be supervised, so
there is a recursive relationship.
Cardinality
Cardinality defines the numerical attributes of the relationship between two entities or entity
sets.
One-to-Many Relationships
One entity from entity set X can be associated with multiple entities of entity set Y, but an
entity from entity set Y can be associated with at least one entity.
For example, one class is consisting of multiple students.
Many to One
More than one entity from entity set X can be associated with at most one entity of entity set
Y. However, an entity from entity set Y may or may not be associated with more than one
entity from entity set X.
For example, many students belong to the same class.
Many to Many:
One entity from X can be associated with more than one entity from Y and vice versa.
For example, Students as a group are associated with multiple faculty members, and faculty
members can be associated with multiple students.
Figure 2.5: Use case diagram for Course Registration System (CRS)
Sequence diagram
Sequence diagram is used to depict the operational sequence of a to be system graphically.
sd AttressSequence Diagram
user Attress Website Attress WebApp Atress Database
Autenticate ID
Search for ID
Alt
[Authentication = True
]
Allow Access
[Else]
Return Error Message
<<Create Account
>>
Save Account
Update
Class diagram
Class diagrams present the objects, showing their attributes and relationship between the
objects.
User Documentation: It includes instructions and information to the users who will interact
with the system. For example, user manuals, help guides, and tutorials. User documentation
is valuable in training users and for reference purpose. It must be clear, understandable, and
readily accessible to users at all levels.
The users, system owners, analysts, and programmers, all put combined efforts to develop a
user’s guide.
Program Documentation :
• It describes inputs, outputs, and processing logic for all the program modules.
• The program documentation process starts in the system analysis phase and continues
during implementation.
• This documentation guides programmers, who construct modules that are well
supported by internal and external comments and descriptions that can be understood
and maintained easily.
Operations Documentation : Operations documentation contains all the information
needed for processing and distributing online and printed output. Operations documentation
should be clear, concise, and available online if possible.
Documentation Control :
Documentation is a process of recording the information for any reference or operational
purpose. It helps users, managers, and IT staff, who require it. It is important that prepared
document must be updated on regular basis to trace the progress of the system easily.
After the implementation of system if the system is working improperly, then documentation
helps the administrator to understand the flow of data in the system to correct the flaws and
get the system working.
Programmers or systems analysts usually create program and system documentation.
Systems analysts usually are responsible for preparing documentation to help users learn the
system. In large companies, a technical support team that includes technical writers might
assist in the preparation of user documentation and training materials.
Advantages :
• It can reduce system downtime, cut costs, and speed up maintenance tasks.
• It provides the clear description of formal flow of present system and helps to
understand the type of input data and how the output can be produced.
• It provides effective and efficient way of communication between technical and
nontechnical users about system.
• It facilitates the training of new user so that he can easily understand the flow of
system.
• It helps the user to solve the problems such as troubleshooting and helps the manager
to take better final decisions of the organization system.
• It provides better control to the internal or external working of the system.
LESSON THREE: SYSTEMS DEVELOPMENT METHODOLOGIES
A methodology is a formalized approach to implementing the SDLC (i.e., it is a list of steps
and deliverables). There are many different systems development methodologies, and each
one is unique, based on the order and focus it places on each SDLC phase. Some
methodologies are formal standards used by government agencies, whereas others have been
developed by consulting firms to sell to clients. Many organizations have internal
methodologies that have been honed over the years, and they explain exactly how each phase
of the SDLC is to be performed in that company.
There are many ways to categorize methodologies. One way is by looking at whether they
focus on business processes or the data that support the business. A process-centered
methodology emphasizes process models as the core of the system concept. In Figure 1, for
example, process-centered methodologies would focus first on defining the processes (e.g.,
assemble sandwich ingredients). Data-centered methodologies emphasize data models as the
core of the system concept. In Figure 1 data-centered methodologies would focus first on
defining the contents of the storage areas (e.g., refrigerator) and how the contents were
organized. By contrast, object-oriented methodologies attempt to balance the focus between
process and data by incorporating both into one model. In Figure1, these methodologies would
focus first on defining the major elements of the system (e.g., sandwiches, lunches) and look
at the processes and data involved with each element.
Waterfall Development The original structured design methodology (still used today) is
waterfall development. With waterfall development–based methodologies, the analysts and
users proceed in sequence from one phase to the next (see Figure 2). The key deliverables for
each phase are typically very long (often hundreds of pages in length) and are presented to the
project sponsor for approval as the project moves from phase to phase.
This methodology is referred to as waterfall development because it moves forward from phase
to phase in the same manner as a waterfall. Although it is possible to go backward in the SDLC
(e.g., from design back to analysis), it is extremely difficult (imagine yourself as a salmon
trying to swim upstream against a waterfall, as shown in Figure 2).
Structured design also introduced the use of formal modeling or diagramming techniques to
describe the basic business processes and the data that support them. Traditional structured
design uses one set of diagrams to represent the processes and a separate set of diagrams to
represent data. Because two sets of diagrams are used, the systems analyst must decide which
set to develop first and use as the core of the system—process-model diagrams or data-model
diagrams. There is much debate over which should come first, the processes or the data,
because both are important to the system. As a result, several different structured design
methodologies have evolved that follow the basic steps of the waterfall model but use different
modeling approaches at different times. Those that attempt to emphasize process-model
diagrams as the core of the system are process centered, whereas those that emphasize data-
model diagrams as the core of the system concept are data centered.
The two key advantages of the structured design waterfall approach are that it identifies
system requirements long before programming begins and it minimizes changes to the
requirements as the project proceeds. The two key disadvantages are that the design must be
completely specified before programming begins and that a long time elapses between the
completion of the system proposal in the analysis phase and the delivery of the system
(usually many months or years). Lengthy deliverables often result in poor communication;
the result is that important requirements can be overlooked in the voluminous documentation.
Users are rarely prepared for their introduction to the new system, which occurs long after
the initial idea for the system was introduced. If the project team misses important
requirements, expensive post-implementation programming may be needed (imagine
yourself trying to design a car on paper; how likely would you be to remember interior lights
that come on when the doors open or to specify the right number of valves on the engine?).
A system may also require significant rework because the business environment has changed
from the time that the analysis phase occurred. When changes do occur, it means going back
to the initial phases and following the change through each of the subsequent phases in turn.
Parallel Development
Parallel development methodology attempts to address the problem of long delays between
the analysis phase and the delivery of the system. Instead of doing design and implementation
in sequence, it performs a general design for the whole system and then divides the project
into a series of distinct subprojects that can be designed and implemented in parallel. Once
all subprojects are complete, there is a final integration of the separate pieces, and the system
is delivered (see Figure 3).
The primary advantage of this methodology is that it can reduce the schedule time to deliver
a system; thus, there is less chance of changes in the business environment causing rework.
However, the approach still suffers from problems caused by paper documents. It also adds
a new problem: Sometimes the subprojects are not completely independent; design decisions
made in one subproject may
Most RAD-based methodologies recommend that analysts use special techniques and
computer tools to speed up the analysis, design, and implementation phases, such as CASE
tools, joint application design (JAD) sessions, fourth-generation/visual programming
languages that simplify and speed up programming (e.g., Visual Basic), and code generators
that automatically produce programs from design specifications. The combination of the
changed SDLC phases and the use of these tools and techniques improves the speed and
quality of systems development. However, there is one possible subtle problem with RAD-
based methodologies: managing user expectations. Due to the use of the tools and techniques
that can improve the speed and quality of systems development, user expectations of what is
possible may dramatically change.
As a user better understands the information technology, the systems requirements tend to
expand. Process-centered, data-centered, and object-oriented methodologies that follow the
basic approaches of the three RAD categories are described in the following sections.
Agile Development
Agile is a third category of systems development methodologies. These programming-centric
methodologies have few rules and practices, all of which are fairly easy to follow. They focus
on streamlining the SDLC by eliminating much of the modeling and documentation overhead
and the time spent on those tasks. Instead, projects emphasize simple, iterative application
development. Examples of agile development methodologies include extreme programming,
Scrum, and the Dynamic Systems Development Method (DSDM). The agile development
approach typically is used in conjunction with object-oriented methodologies.
Testing and efficient coding practices are core to XP. In fact, code is tested each day and is
placed into an integrative testing environment. If bugs exist, the code is backed out until it is
completely free of errors. XP relies heavily on refactoring, which is a disciplined way to
restructure code to keep it simple.
An XP project begins with user stories that describe what the system needs to do.
Then, programmers code in small, simple modules and test to meet those needs. Users are
required to be available to clear up questions and issues as they arise. Standards are very
important to minimize confusion, so XP teams use a common set of names, descriptions, and
coding practices. XP projects deliver results sooner than even the RAD approaches, and they
rarely get bogged down in gathering requirements for the system.
For small projects with highly motivated, cohesive, stable, and experienced teams, XP should
work just fine. However, if the project is not small then the success of an XP development
effort is doubtful. This tends to throw the whole idea of bringing outside contractors into an
existing team environment using XP into doubt. Furthermore, it is recommended only for
small groups of developers—no more than ten developers, and it is not advised for large
mission-critical applications. Due to the lack of analysis and design documentation, there is
only code documentation associated with XP, so maintaining large systems built with XP
may be impossible. And because mission-critical business information systems tend to exist
for a long time, the utility of XP as a business information system development methodology
is in doubt. Finally, the methodology needs a lot of on-site user input, something to which
many business units cannot commit.
Advantages of JAD
o It saves time and cost by replacing months of traditional interviews and follow-up
meetings.
o It is useful in organizational culture which supports joint problem solving.
o Fosters formal relationships among multiple levels of employees.
o It can lead to development of design creatively.
o It Allows rapid development and improves ownership of information system.
Selecting the Appropriate Development Methodology
Because there are many methodologies, the first challenge faced by analysts is to select which
methodology to use. Choosing a methodology is not simple, because no one methodology is
always best. Many organizations have standards and policies to guide the choice of
methodology. You will find that organizations range from having one “approved”
methodology to having several methodology options to having no formal policies at all.
Figure 8 summarizes some important methodology selection criteria. One important item not
discussed in this figure is the degree of experience of the analyst team. Many of the RAD-
based methodologies require the use of “new” tools and techniques that have a significant
learning curve. Often these tools and techniques increase the complexity of the project and
require extra time for learning. However, once they are adopted and the team becomes
experienced, the tools and techniques can significantly increase the speed in which the
methodology can deliver a final system.
Clarity of User Requirements: When the user requirements for a system are unclear, it is
difficult to understand them by talking about them and explaining them with written reports.
Users normally need to interact with technology to really understand what a new system can
do and how to best apply it to their needs. Prototyping- and throwaway prototyping–based
RAD methodologies are usually more appropriate when user requirements are unclear
because they provide prototypes for users to interact with early in the SDLC.
Familiarity with Technology: When the system will use new technology with which the
analysts and programmers are not familiar (e.g., the first Web development project with
Java), early application of the new technology in the methodology will improve the chance
of success. If the system is designed without some familiarity with the base technology, risks
increase because the tools might not be capable of doing what is needed. Throwaway
prototyping–based methodologies are particularly appropriate if users lack familiarity with
technology because they explicitly encourage the developers to develop design prototypes
for areas with high risks. Phased development–based methodologies are good as well,
because they create opportunities to investigate the technology in some depth before the
design is complete. Although you might think prototyping-based methodologies are also
appropriate, they are much less so because the early prototypes that are built usually only
scratch the surface of the new technology. It is generally only after several prototypes and
several months that the developers discover weaknesses or problems in the new technology.
System Complexity: Complex systems require careful and detailed analysis and design.
Throwaway prototyping–based methodologies are particularly well suited to such detailed
analysis and design, as opposed to prototyping-based methodologies, which are not. The
traditional structured design–based methodologies can handle complex systems, but without
the ability to get the system or prototypes into the users’ hands early on, some key issues may
be overlooked. Although phased development–based methodologies enable users to interact
with the system early in the process, we have observed that project teams who follow these
tend to devote less attention to the analysis of the complete problem domain than they might
using other methodologies.
Short Time Schedules: Projects that have short time schedules are well suited for RAD
based methodologies. This is due to them being designed to increase the speed of
development. Prototyping and phased development–based methodologies are excellent
choices when timelines are short because they best enable the project team to adjust the
functionality in the system based on a specific delivery date, and if the project schedule starts
to slip, it can be readjusted by removing functionality from the version or prototype under
development.
Waterfall-based methodologies are the worst choice when time is at a premium because they
do not allow for easy schedule changes.