Professional Documents
Culture Documents
5.1 Introduction
Welcome to the fifth lecture on system development. In this lecture we shall discuss the
techniques in information systems development.
Specific objectives
5.3.1 Introduction
There are various types of techniques that may be used during system development. These
techniques can be classified into different categories. Each technique uses its own notations and
presents a different view or perspective of that system.
1. Rich Pictures
2. Root Definitions
This a short textual definition of the aims and means of the system to be modelled. It can be used
to define two things that are otherwise both vague and difficult: problems and systems. A
concise verbal description of the system which captures its essential nature of Who is doing what
for whom, and to whom are they answerable, what assumptions are being made, and in what
environment is this happening? or “A system to do X, by (means of) Y, in order to Z”
We identify this description using C(lient) A(ctor) T(ransformation) W(eltanschuung) O(wner)
E(nvironment): CATWOE
Customers the victims or beneficiaries of T
Actors those who do T
Transformation process input into output
Weltanschauung the worldview that makes the T meaningful in context
Owners those with the power to stop T
Environmental constraints elements outside the system which are taken as given,but
nevertheless affect its behavior.
1. Entity Modelling
An entity-relationship diagram (ERD) is a graphical representation of an information system that
shows the relationship between people, objects, places, concepts or events within that system.
An ERD is a data modeling technique that can help define business processes and can be used as
the foundation for a relational database.
While useful for organizing data that can be represented by a relational structure, an entity-
relationship diagram can't sufficiently represent semi-structured or unstructured data, and an
ERD is unlikely to be helpful on its own in integrating data into a pre-existing information
system.
Three main components of an ERD are the entities, which are objects or concepts that can have
data stored about them, the relationship between those entities, and the cardinality, which defines
that relationship in terms of numbers. For example, an ER diagram representing the information
system for a company's sales department might start with graphical representations of entities
such as the sales representative, the customer, the customer's address, the customer's order, the
product and the warehouse. Then lines or other symbols can be used to represent the relationship
between entities, and text can be used to label the relationships.
play as
be played books
on available to
belon g to paid by
ME MB E R ’S AC CO U N T
SPO RT EN TR Y
play as
GU E ST
used for
be be
CO U RT play in OT H E R
PL A Y E R
have daily
booked by
have n om in a ted
CO U R T
be prepared for SLO T
2. Normalisation
Database Normalisation is a technique of organizing the data in the database. Normalization is a
systematic approach of decomposing tables to eliminate data redundancy and undesirable
characteristics like Insertion, Update and Deletion. It is a multi-step process that puts data into
tabular form by removing duplicated data from the relation tables. Normalization is used for
mainly two purpose.
1. Eliminating redundant data.
2. Ensuring data dependencies make sense i.e data is logically stored.
Normalization rule are divided into following normal form.
1. First Normal Form
2. Second Normal Form
3. Third Normal Form
First Normal Form, no two Rows of data must contain repeating group of information i.e each
set of column must have a unique value, such that multiple columns cannot be used to fetch the
same row. Each table should be organized into rows, and each row should have a primary key
that distinguishes it as unique.
The Primary key is usually a single column, but sometimes more than one column can be
combined to create a single primary key. For example consider a table which is not in First
normal form
Second Normal Form there must not be any partial dependency of any column on primary key.
It means that for a table that has concatenated primary key, each column in the table that is not
part of the primary key must depend upon the entire concatenated key for its existence. If any
column depends only on one part of the concatenated key, then the table fails Second normal
form.
Third Normal form applies that every non-prime attribute of table must be dependent on
primary key, or we can say that, there should not be the case that a non-prime attribute is
determined by another non-prime attribute. So this transitive functional dependency should be
removed from the table and also the table must be in Second Normal form
5.3.4 Process Techniques
Process models reveal how the system being developed is used in broader business processes.
Data flow models may be used to show the processes and the flow of information from one
process to another.
Tracking and documenting how the data associated with a particular process moves
through the system
Possible to explain them to potential system users who can then participate in validating
the model
Do not recognize system objects (therefore, data flow models not included in UML)
Similar to activity diagrams in UML 2.0 (data-driven systems are common in business)
2. Elementary process description
Once a DFD is obtained the next step is to precisely specify the process. The methods available
for documenting and analyzing the logic of structured decisions include structured English,
decision tables, and decision trees. Process specifications are created for primitive processes and
some higher level processes on a data flow diagram. They are also are called elementary process
diagrams. Structured English, Decision tables and Decision Trees are used to describe processes.
Decision tables are used when the process is logically complex involving large number of
conditions and alternate solutions. Decision trees are used when conditions to be tested must
follow a strict time sequence.
ii) Decision Table: Decision tables provide a way to examine, describe, and document
decisions using a table. They are used to:
1. Describe the conditions
2. Identify possible decision alternatives
3. Indicate actions should be performed, and describe actions
Decision tables help analysts ensure completeness and accuracy. The four main problems
that can occur in developing decision tables are: Incompleteness, Impossible situations,
Contradictions and Redundancy
iii) Decision trees: Decision trees are used when complex branching occurs in a
structured decision process. Trees are also useful when it is essential to keep a string of
decisions in a particular sequence. To draw decision trees:
First, identify all conditions and actions and the order and timing of these (if they
are critical)
Second, begin building the tree from left to right while making sure you are
complete in listing all possible alternatives before moving over to the right.
2 Sequence diagrams
Sequence diagrams are part of the UML and are used to model the interactions between
the actors and the objects within a system. A sequence diagram shows the sequence of
interactions that take place during a particular use case or use case instance.
Objects and actors involved are listed along the top of the diagram
Interactions between objects are indicated by annotated arrows
Rectangle on the dotted lines indicates the lifeline of the object concerned
Read the sequence of interactions from top to bottom
Annotations on the arrows indicate the calls to the objects, their parameters and
the return values
Include every interaction in sequence diagrams for code generation or detailed
documentation
3. Structural models
Structural models of software display the organization of a system in terms of the
components that make up that system and their relationships. The models may be static
models, which show the structure of the system design, or dynamic models, which show
the organization of the system when it is executing. You create structural models of a
system when you are discussing and designing the system architecture.
4. Class diagrams
Class diagrams are used when developing an object-oriented system model to show the
classes in a system and the associations between these classes. An object class can be
thought of as a general definition of one kind of system object. An association is a link
between classes that indicates that there is some relationship between these classes. Each
class may have some knowledge of its associated class. They are expressed at different
levels of detail. The types of relationship: 1 to 1, m to 1, m to n.
5. State diagrams (UML):
They show system states and events that cause transitions from one state to another
and o not show the flow of data within the system. It may include additional
information on the computations carried out in each state .
Rounded rectangles: represent system states (may include a brief description
of the actions taken in that state).
Labeled arrows: represent stimuli that force a transition
Optional: start and end states using filled circles (see activity diagrams)
6. UML activity diagrams: They show the activities that make up a system process and the
flow of control from one activity to another .
Start of process: indicated by a filled circle
End of process: filled circle inside another circle
Activities: rectangles with round corners
Arrows represent the flow of work from one activity to another
Arrows annotated with guards: indicate the condition when that flow is taken
Solid bar: indicate activity coordination
1. Scheduling Techniques
Project scheduling is concerned with attaching a timescale and sequence to the activities to be
conducted within the project. Materials and people needed at each stage of the project are
determined and the time each is to take will be set. Project managers have a variety of techniques
to develop a project schedule - from the relatively simple process of action planning for small
projects, to use of Gantt Charts and Network
2. Gantt Chart
A Gantt chart, commonly used in project management, is one of the most popular and useful
ways of showing activities (tasks or events) displayed against time. On the left of the chart is a
list of the activities and along the top is a suitable time scale. Each activity is represented by a
bar; the position and length of the bar reflects the start date, duration and end date of the activity.
DURATION (weeks)
ACTIVITY 1 2 3 4 5 6 7 8 9 10 11 12 13
A
B
C
D
E
F
G
H
3. Resource Allocation
This is used to allocate resources in the project. The bar chart shows the resource allocation
over time.
4. PERT Diagram
A PERT chart is a project management tool used to schedule, organize, and coordinate tasks
within a project. PERT stands for Program Evaluation Review Technique, A PERT chart
presents a graphic illustration of a project as a network diagram consisting of numbered
nodes (either circles or rectangles) representing events, or milestones in the project linked by
labelled vectors (directional lines) representing tasks in the project. The direction of the
arrows on the lines indicates the sequence of tasks.
5.4 Activities
Read the following topics from the book Information Systems Development:
Methodologies, Techniques and Tools by Avison and Fitzgerald and answer the
questions below
Topics
1. Organisational Techniques
2. People Techniques
3. Techniques in context
Questions
1. Describe the term lateral thinking
2. Distinguish between JAD and Stakeholder analysis
3. Describe the potential benefits and the potential blocks to problem cognition when
using techniques in system development
.
5.5 Summary
There are various types of techniques that may be used during system development.
These techniques can be classified into different categories. Each technique uses its
own notations and presents a different view or perspective of that system.
Holistic techniques are based upon systems theory, which provides an antidote to
conventional, 'reductionist' scientific enquiry – with its tendency to 'reduce'
phenomena into smaller and smaller components in order to study and understand
them.
Data-driven models show the sequence of actions involved in processing input data
and generating an associated output. They are particularly useful during the analysis of
requirements as they can be used to show end-to-end processing in a system
Process models reveal how the system being developed is used in broader business
processes. Data flow models may be used to show the processes and the flow of
information from one process to another
In the object-oriented design approach, the system is viewed as collection of objects.
The state is decentralized among the objects and each object manages its own state
information.
Project Management techniques describe the ways that we gather information,
communicate, and generally get things done in the most efficient and effective way.
http://www.studytonight.com/dbms/database-normalization.php
Lecture Six
6.1 Introduction
Welcome to the sixth lecture on system development. In this lecture we shall discuss the system
development methodologies.
Specific objectives
The aim of the requirements analysis and specification phase is to understand the exact
requirements of the customer and to document them properly. This phase consists of two distinct
activities, namely
Requirements gathering and analysis
Requirements specification
The goal of the requirements gathering activity is to collect all relevant information from the
customer regarding the product to be developed. This is done so as to clearly understand the
customer requirements so that incompleteness and inconsistencies are removed.
The requirements analysis activity is begins with collecting all relevant data regarding the product t
be developed from the users of the product and from the customer .For example, to perform the
requirements analysis of a business accounting software required by an organization, the analyst
might interview all the accountants of the organization to ascertain their requirements. The data
collected from such a group of users usually contains several contradictions and ambiguities, since
each user has only a partial and incomplete view of the system. It is therefore necessary to identify
all ambiguities and contradictions in the requirements and resolve them through further discussions
with the customer. After all ambiguities, inconsistencies, and incompleteness have been resolved
and the requirements properly understood, the requirements specification activity can begin.
During specification, the user requirements are systematically organized into a Software
Requirements Specification (SRS) document. The customer requirements identified during the
requirements gathering and analysis activity are organized into a SRS document. The important
components of this document are functional requirements, the nonfunctional requirements, and the
goals of implementation.
3. System design
The design phase is to transform the requirements specified from the SRS document into a design
that is suitable for implementation in some programming language. During the design phase the
software architecture is derived from the SRS document. Two distinctly different approaches are
available: the traditional design approach and the object-oriented design approach.
System testing is normally carried out in a planned manner according to the system test plan
document. The system test plan identifies all testing related activities that must be performed,
specifies the schedule of testing and allocates required resources. It also lists all the test cases and
the expected outputs for each test case.
6. Maintenance
Maintenance of software products requires a lot more effort than to develop the product itself.
Many studies carried out in the past confirm this and indicate that the relative effort of development
of a typical software product to its maintenance effort is roughly in the 40:60 ratio. Maintenance
involves performing any one or more of the following three kinds of activities:
i. Corrective Maintenance: correcting errors that were not discovered during the product
development phase.
ii. Perfective maintenance: Improving the implementation of the system, and enhancing the
functionalities of the system according to the customer’s requirements.
iii. Adaptive maintenance: migrating the software to work in a new environment. For example,
moving the software to work with a new operating system.
.
Advantages of waterfall model:
i. Simple and easy to understand and use.
ii. Easy to manage due to the rigidity of the model – each phase has specific deliverables and a
review process.
iii. Phases are processed and completed one at a time.
iv. Works well for smaller projects where requirements are very well understood.
Many projects are risk driven. The process model proposed by Professor Barry Boehm aims to
control and manage project risks during the course of development and provide opportunities for
understanding the problem domain throughout the development and for building the system
incrementally. The spiral model begins with an initial plan for development, evaluate risks, perhaps
do some prototyping to evaluate alternatives at the system level, and produces a concept of
operations document which describes how the system should work at a high level. From the
concept of operations, a set of requirements for the system is extracted and this should be as
complete as possible. The spiral model then uses to iteration to complete the development. Each
iteration typically involves risk analysis, prototyping to determine the feasibility and desirability of
various alternatives and then design, coding and testing.
It allows for a complete re-evaluation of the project direction after each spiral, and the requirements
can be re-evaluated. However we need to ensure that new insights, which lead to new requirements
are consistent with prior requirements and with the what has been built thus far
The Spiral model of software development is shown above .The diagrammatic representation of this
model appears like a spiral with many loops. The exact number of loops in the spiral is not fixed.
Each loop of the spiral represents a phase of the software process. For example, the innermost loop
might be concerned with feasibility study the next loop with requirements specification and so on.
Each phase in this model is split into four sectors (or quadrants). The following activities are carried
out during each phase of a spiral model.
1. First quadrant (Objective Setting)
• During the first quadrant, it is needed to identify the objectives of the phase.
• Examine the risks associated with these objectives.
2. Second Quadrant (Risk Assessment and Reduction)
• A detailed analysis is carried out for each identified project risk.
• Steps are taken to reduce the risks. For example, if there is a risk that the requirements are
inappropriate, a prototype system may be developed.
3. Third Quadrant (Development and Validation)
• Develop and validate the next level of the product after resolving the identified risks.
4. Fourth Quadrant (Review and Planning)
• Review the results achieved so far with the customer and plan the next iteration around the spiral.
• Progressively more complete version of the software gets built with each iteration around the
spiral.
6.3.3 Prototype
A prototype is a model implementation of the system. It usually exhibits limited functional
capabilities, low reliability, and inefficient performance compared to the actual software. A
prototype is usually built using several shortcuts. The shortcuts might involve using inefficient,
inaccurate, or dummy functions. The shortcut implementation of a function, for example, may
produce the desired results by using a table look-up instead of performing the actual computations.
There are several uses of a prototype. An important purpose is to illustrate the input data formats,
messages, reports, and the interactive dialogues to the customer. This is a valuable mechanism for
gaining better understanding of the customer’s needs:
• how the screens might look
• how the user interface would behave
• how the system would produce outputs
This is something similar to what the architectural designers of a building do; they show a prototype
of the building to their customer. The customer can evaluate whether he likes it or not and the
changes that he would need in the actual product. A similar thing happens in the case of a software
product and its prototyping model.
Another reason for developing a prototype is that it is impossible to get the perfect product in the
first attempt. Many researchers and engineers advocate that if you want to develop a good product
you must plan to throw away the first version. The experience gained in developing the prototype
can be used to develop the final product.
A prototyping model can be used when technical solutions are unclear to the development team. A
developed prototype can help engineers to critically examine the technical issues associated with
the product development. Often, major design decisions depend on issues like the response time of
a hardware controller, or the efficiency of a sorting algorithm, etc. In such circumstances, a
prototype may be the best or the only way to resolve the technical issues.
i. Basic Requirement Identification: This step involves understanding the very basics
product requirements especially in terms of user interface. The more intricate details
of the internal design and external aspects like performance and security can be
ignored at this stage.
ii. Developing the initial Prototype: The initial Prototype is developed in this stage,
where the very basic requirements are showcased and user interfaces are provided.
These features may not exactly work in the same manner internally in the actual
software developed and the workarounds are used to give the same look and feel to
the customer in the prototype developed.
iii. Review of the Prototype: The prototype developed is then presented to the customer
and the other important stakeholders in the project. The feedback is collected in an
organized manner and used for further enhancements in the product under
development.
iv. Revise and enhance the Prototype: The feedback and the review comments are
discussed during this stage and some negotiations happen with the customer based
on factors like, time and budget constraints and technical feasibility of actual
implementation. The changes accepted are again incorporated in the new Prototype
developed and the cycle repeats until customer expectations are met.
Prototypes can have horizontal or vertical dimensions. Horizontal prototype displays the user
interface for the product and gives a broader view of the entire system, without concentrating on
internal functions. A vertical prototype on the other side is a detailed elaboration of a specific
function or a sub system in the product.
The purpose of both horizontal and vertical prototype is different. Horizontal prototypes are used to
get more information on the user interface level and the business requirements. It can even be
presented in the sales demos to get business in the market. Vertical prototypes are technical in
nature and are used to get details of the exact functioning of the sub systems. For example, database
requirements, interaction and data processing loads in a given sub system.
There are different types of software prototypes used in the industry. Following are the major
software prototyping types used widely:
The incremental model the whole requirement is divided into various builds. Multiple development
cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into
smaller, more easily managed modules. Each module passes through the requirements, design,
implementation and testing phases. A working version of software is produced during the first
module, so you have working software early on during the software life cycle. Each subsequent
release of the module adds function to the previous release. The process continues till the complete
system is achieved.
Discuss at least six software process models. Identify their advantages and disadvantages
phase. Such models are suitable for projects with very clear product requirements and where the
Software Prototype and evolutionary are modern techniques to understand the requirements in a
Ian Sommerville (2011) Software Engineering (11th Edition) Addison Wesley