II Unit Notes
II Unit Notes
A system development methodology refers to the framework that is used to structure, plan, and
control the process of developing an information system. A wide variety of such frameworks
have evolved over the years, each with its own recognized strengths and weaknesses. One system
development methodology is not necessarily suitable for use by all projects. Each of the
available methodologies is best suited to specific kinds of projects, based on various technical,
organizational, project and team considerations.
Basic Principles:
Project is divided into sequential phases, with some overlap and splash back acceptable
between phases.
Emphasis is on planning, time schedules, target dates, budgets and implementation of an
entire system at one time.
Tight control is maintained over the life of the project through the use of extensive written
documentation, as well as through formal reviews and approval/signoff by the user and
information technology management occurring at the end of most phases before beginning
the next phase.
1. Waterfall Model
2. Iterative and Incremental Method
3. Spiral Method (SDM)
4. V-Shaped Model
5. Agile Model
6. Prototyping Model
ADVANTAGES DISADVANTAGES
Simple to use and understand The software is ready only after the last stage is over
Management simplicity thanks to its rigidity: every High risks and uncertainty
phase has a defined result and process review
Development stages go one by one Not the best choice for complex and object-oriented projects
Perfect for the small or mid-sized projects where Inappropriate for the long-term projects
requirements are clear and not equivocal
ADVANTAGES DISADVANTAGES
Easy to determine the key points in the development The progress of the stage is hard to measure while it is still in
cycle the development
Easy to classify and prioritize tasks Integration is done at the very end, which does not give the
option of identifying the problem in advance
Some functions can be quickly developed at the Iterative model requires more resources than the waterfall
beginning of the development lifecycle model
The progress is easy measurable Issues with architecture or design may occur because not all
the requirements are foreseen during the short planning stage
The shorter iteration is - the easier testing and Bad choice for the small projects
debugging stages are
It is easier to control the risks as high-risk tasks are The process is difficult to manage
completed first
Problems and risks defined within one iteration can be The risks may not be completely determined even at the final
prevented in the next sprints stage of the project
Flexibility and readiness to the changes in the Risks analysis requires involvement of the highly-qualified
requirements specialists
Lifecycle is divided into small parts, and if the risk Can be quite expensive
concentration is higher, the phase can be finished
earlier to address the treats
The development process is precisely documented yet The risk control demands involvement of the highly-
scalable to the changes skilled professionals
The scalability allows to make changes and add new Can be ineffective for the small projects
functionality even at the relatively late stages
The earlier working prototype is done - sooner users Big number of the intermediate stages requires
can point out the flaws excessive documentation
Every stage of V-shaped model has strict results so it’s easy to Lack of the flexibility
control
Testing and verification take place in the early stages Bad choice for the small projects
Good for the small projects, where requirements are static and clear Relatively big risks
Corrections of functional requirements are implemented into Difficulties with measuring the final cost because of
the development process to provide the competitiveness permanent changes
Project is divided by short and transparent iterations The team should be highly professional and client-
oriented
Risks are minimized thanks to the flexible change process New requirements may conflict with the existing
architecture
Fast release of the first product version With all the corrections and changes there is possibility
that the project will exceed expected time
6. Prototyping Model
It refers to the activity of creating prototypes of software applications, for example, incomplete
versions of the software program being developed. It is an activity that can occur in software
development and It used to visualize some component of the software to limit the gap of
misunderstanding the customer requirements by the development team. This also will reduce the
iterations may occur in the waterfall approach and hard to be implemented due to the inflexibility
of the waterfall approach. So, when the final prototype is developed, the requirement is
considered to be frozen.
The usage
This process can be used with any software developing life cycle model. While this shall be
chosen when you are developing a system has user interactions. So, if the system does not
have user interactions, such as a system does some calculations shall not have prototypes.
Advantages Disadvantages
Insufficient analysis. User confusion of prototype
Reduced time and costs, but this can be a and finished system.
disadvantage if the developer loses time in Developer misunderstanding of user objectives.
developing the prototypes. Excessive development time of the prototype.
Improved and increased user involvement. It is costly to implement the prototypes
Systems development is systematic process which includes phases such as planning, analysis,
design, deployment, and maintenance.
Here, we will primarily focus on −
System Design
Includes the design of application, network, databases, user interfaces, and system interfaces.
Transform the SRS document into logical structure, which contains detailed and complete set of
specifications that can be implemented in a programming language.
Create a contingency, training, maintenance, and operation plan.
Review the proposed design. Ensure that the final design must meet the requirements stated in SRS
document.
Finally, prepare a design document which will be used during next phases.
Implementation
Implement the design into source code through coding.
Combine all the modules together into training environment that detects errors and defects.
A test report which contains errors is prepared through test plan that includes test related tasks such as
test case generation, testing criteria, and resource allocation for testing.
Integrate the information system into its environment and install the new system.
Maintenance/Support
Include all the activities such as phone support or physical on-site support for users that is required
once the system is installing.
Implement the changes that software might undergo over a period of time, or implement any new
requirements after the software is deployed at the customer location.
It also includes handling the residual errors and resolve any issues that may exist in the system even
after the testing phase.
Maintenance and support may be needed for a longer time for large systems and for a short time for
smaller systems.
Technical Skills
Analytical Skills
Knowledge of computers and software.
System study and organizational Keep abreast of modern development.
knowledge Know of system design tools.
Problem identification, problem analysis, Breadth knowledge about new
and problem solving technologies.
Sound commonsense
System Flowcharts
A system flowchart is a visual representation of processes, decisions, inputs and outputs that
together form a system.
What is a system flowchart?
The flowchart shows what the outcome is if the car is going too fast or too slow. The system is
designed to add fuel, or take it away and so keep the car's speed constant. The output (the car's
new speed) is then fed back into the system via the speed sensor.
To create the decision table, the developer must follow basic four steps:
Condition Stub − It is in the upper left quadrant which lists all the condition to be
checked.
Action Stub − It is in the lower left quadrant which outlines all the action to be carried
out to meet such condition.
Condition Entry − It is in upper right quadrant which provides answers to questions
asked in condition stub quadrant.
Action Entry − It is in lower right quadrant which indicates the appropriate action
resulting from the answers to the conditions in the condition entry quadrant.
The entries in decision table are given by Decision Rules which define the relationships
between combinations of conditions and courses of action. In rules section,
Y shows the existence of a condition.
N represents the condition, which is not satisfied.
A blank - against action states it is to be ignored.
X (or a check mark will do) against action states it is to be carried out.
For example, refer the following table −
Regular Customer - Y N -
ACTIONS
Give 5% discount X X - -
Give no discount - - X X
Decision Trees
Decision trees are a method for defining complex relationships by describing decisions and
avoiding the problems in communication. A decision tree is a diagram that shows alternative
actions and conditions within horizontal tree framework. Thus, it depicts which conditions to
consider first, second, and so on.
Decision trees depict the relationship of each condition and their permissible actions. A square
node indicates an action and a circle indicates a condition. It forces analysts to consider the
sequence of decisions and identifies the actual decision that must be made.
The major limitation of a decision tree is
that it lacks information in its format to
describe what other combinations of
conditions you can take for testing. It is a
single representation of the relationships
between conditions and actions.
For example, refer the following decision
tree −
Logical DFD - This type of DFD concentrates on the system process, and flow of data in
the system.For example in a Banking software system, how data is moved between
different entities.
Physical DFD - This type of DFD shows how the data flow is actually implemented in
the system. It is more specific and close to the implementation.
The following table lists the points that differentiate a physical DFD from a logical DFD.
It provides low level details of hardware, software, It explains events of systems and data required by
files, and people. each event.
It depicts how the current system operates and how It shows how business operates; not how the system
a system will be implemented. can be implemented.
DFD Components
DFD can represent Source, destination, storage and flow of data using the following set of
components -
Entities - Entities are source and destination of information data. Entities are represented by a
rectangles with their respective names.
Process - Activities and action taken on the data are represented by Circle or Round-edged rectangles.
Data Storage - There are two variants of data storage - it can either be represented as a rectangle with
absence of both smaller sides or as an open-sided rectangle with only one side missing.
Data Flow - Movement of data is shown by pointed arrows. Data movement is shown from the base
of arrow as its source towards head of the arrow as destination.
Levels of DFD
Level 0 - Highest abstraction level DFD is
known as Level 0 DFD, which depicts the
entire information system as one diagram
concealing all the underlying details.
Level 0 DFDs are also known as context
level DFDs.
Level 2 - At this level, DFD shows how data flows inside the modules mentioned in Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper level of
understanding unless the desired level of specification is achieved.
DFD is easy to understand and quite effective when the required design is not clear and the user
wants a notational language for communication. However, it requires a large number of
iterations for obtaining the most accurate and complete solution.
The following table shows the symbols used in designing a DFD and their significance −
A context diagram helps in understanding the entire system by one DFD which gives the
overview of a system. It starts with mentioning major processes with little details and then goes
onto giving more details of the processes with the top-down approach.
The context diagram of mess management is shown below.
Entity-Relationship Model
Entity-Relationship model is a type of database model based on the notion of real world entities
and relationship among them. We can map real world scenario onto ER database model. ER
Model creates a set of entities with their attributes, a set of constraints and relation among them.
ER Model is best used for the conceptual design of database. ER Model can be represented as
follows :
Entity - An entity in ER Model is a real world being, which has some properties
called attributes. Every attribute is defined by its corresponding set of values,
called domain.
For example, Consider a school database. Here, a student is an entity. Student has
various attributes like name, id, age and class etc.
The ER model defines the conceptual view of a database. It works around real-world entities
and the associations among them. At view level, the ER model is considered a good option for
designing databases.
Entity
An entity can be a real-world object, either animate or inanimate, that can be easily identifiable.
For example, in a school database, students, teachers, classes, and courses offered can be
considered as entities. All these entities have some attributes or properties that give them their
identity.
An entity set is a collection of similar types of entities. An entity set may contain entities with
attribute sharing similar values. For example, a Students set may contain all the students of a
school; likewise a Teachers set may contain all the teachers of a school from all faculties. Entity
sets need not be disjoint.
Attributes
Entities are represented by means of their properties, called attributes. All attributes have
values. For example, a student entity may have name, class, and age as attributes.
There exists a domain or range of values that can be assigned to attributes. For example, a
student's name cannot be a numeric value. It has to be alphabetic. A student's age cannot be
negative, etc.
Relationship
The association among entities is called a relationship. For example, an employee works_at a
department, a student enrolls in a course. Here, Works_at and Enrolls are called relationships.
Relationship Set
A set of relationships of similar type is called a relationship set. Like entities, a relationship too
can have attributes. These attributes are called descriptive attributes.
Here are the geometric shapes and their meaning in an E-R Diagram. We will discuss these terms
in detail in the next section(Components of a ER Diagram) of this guide so don’t worry too much
about these terms now, just go through them once.
Components of a ER Diagram
1. Entity
An entity is an object or component of data. An entity is represented as rectangle in an ER
diagram.
For example: In the following ER diagram
we have two entities Student and College
and these two entities have many to one
relationship as many students study in a
single college. We will read more about
relationships later, for now focus on entities.
Weak Entity:
An entity that cannot be uniquely identified
by its own attributes and relies on the
relationship with other entity is called weak
entity. The weak entity is represented by a
double rectangle. For example – a bank
account cannot be uniquely identified
without knowing the bank to which the
account belongs, so bank account is a weak
entity.
2. Attribute
An attribute describes the property of an entity. An attribute is represented as Oval in an ER
diagram. There are four types of attributes:
1. Key attribute
2. Composite attribute
3. Multivalued attribute
4. Derived attribute
1. Key attribute:
A key attribute can uniquely identify an
entity from an entity set. For example,
student roll number can uniquely identify a
student from a set of students. Key attribute
is represented by oval same as other
attributes however the text of key attribute
is underlined.
2. Composite attribute:
An attribute that is a combination of other
attributes is known as composite attribute.
For example, In student entity, the student
address is a composite attribute as an
address is composed of other attributes such
as pin code, state, country.
3. Multivalued attribute:
An attribute that can hold multiple values is known as multivalued attribute. It is represented
with double ovals in an ER Diagram. For example – A person can have more than one phone
numbers so the phone number attribute is multivalued.
4. Derived attribute:
A derived attribute is one whose value is E-R diagram with multivalued and
dynamic and derived from another attribute. derived attributes:
It is represented by dashed oval in an ER
Diagram. For example – Person age is a
derived attribute as it changes over time and
can be derived from another attribute (Date
of birth).
3. Relationship
A relationship is represented by diamond shape in ER diagram, it shows the relationship among
entities. There are four types of relationships:
1. One to One 3. Many to One
2. One to Many 4. Many to Many
Generalization is a process in which the common attributes of more than one entities form a
new entity. This newly formed entity is called generalized entity.
Generalization Example
Lets say we have two entities Student and The ER diagram before generalization
Teacher. looks like this:
Attributes of Entity Student are: Name,
Address & Grade
Attributes of Entity Teacher are: Name,
Address & Salary
These two entities have two common attributes: Name and Address, we can make a generalized
entity with these common attributes. Lets have a look at the ER model after generalization.
OOAD - Object Oriented Analysis & Design
A Brief History
The object-oriented paradigm took its shape from the initial concept of a new programming
approach, while the interest in design and analysis methods came much later.
The first object–oriented language was Simula (Simulation of real systems) that was developed in
1960 by researchers at the Norwegian Computing Center.
In 1970, Alan Kay and his research group at Xerox PARK created a personal computer named
Dynabook and the first pure object-oriented programming language (OOPL) - Smalltalk, for
programming the Dynabook.
In the 1980s, Grady Booch published a paper titled Object Oriented Design that mainly presented a
design for the programming language, Ada. In the ensuing editions, he extended his ideas to a
complete object–oriented design method.
In the 1990s, Coad incorporated behavioral ideas to object-oriented methods.
The other significant innovations were Object Modelling Techniques (OMT) by James
Rumbaugh and Object-Oriented Software Engineering (OOSE) by Ivar Jacobson.
Object-Oriented Analysis
Object–Oriented Analysis (OOA) is the procedure of identifying software engineering
requirements and developing software specifications in terms of a software system’s object
model, which comprises of interacting objects.
The main difference between object-oriented analysis and other forms of analysis is that in
object-oriented approach, requirements are organized around objects, which integrate both data
and functions. They are modelled after real-world objects that the system interacts with. In
traditional analysis methodologies, the two aspects - functions and data - are considered
separately.
Grady Booch has defined OOA as, “Object-oriented analysis is a method of analysis that
examines requirements from the perspective of the classes and objects found in the vocabulary
of the problem domain”.
The primary tasks in object-oriented analysis (OOA) are −
Identifying objects
Organizing the objects by creating object model diagram
Defining the internals of the objects, or object attributes
Defining the behavior of the objects, i.e., object actions
Describing how the objects interact
The common models used in OOA are use cases and object models.
Object-Oriented Design
Object–Oriented Design (OOD) involves implementation of the conceptual model produced
during object-oriented analysis. In OOD, concepts in the analysis model, which are
technology−independent, are mapped onto implementing classes, constraints are identified and
interfaces are designed, resulting in a model for the solution domain, i.e., a detailed description
of how the system is to be built on concrete technologies.
The implementation details generally include −
Object-Oriented Programming
Object-oriented programming (OOP) is a programming paradigm based upon objects (having
both data and methods) that aims to incorporate the advantages of modularity and reusability.
Objects, which are usually instances of classes, are used to interact with one another to design
applications and computer programs.
The important features of object–oriented programming are −
Object
Class
A class represents a collection of objects having same characteristic properties that exhibit
common behavior. It gives the blueprint or description of the objects that can be created from it.
Creation of an object as a member of a class is called instantiation. Thus, object is an instance of
a class.
The constituents of a class are −
A set of attributes for the objects that are to be instantiated from the class. Generally, different objects
of a class have some difference in the values of the attributes. Attributes are often referred as class
data.
A set of operations that portray the behavior of the objects of the class. Operations are also referred as
functions or methods.
UML
UML (Unified Modeling Language) is a standard language for specifying, visualizing, constructing,
and documenting the artifacts of software systems. UML was created by the Object Management
Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997. It was
initially started to capture the behavior of complex software and non-software system and now it has
become an OMG standard.
UML is a standard language for specifying, visualizing, constructing, and documenting the
artifacts of software systems.
UML was created by the Object Management Group (OMG) and UML 1.0 specification draft
was proposed to the OMG in January 1997.
OMG is continuously making efforts to create a truly industry standard.
UML stands for Unified Modeling Language.
UML is different from the other common programming languages such as C++, Java, COBOL, etc.
UML is a pictorial language used to make software blueprints.
UML can be described as a general purpose visual modeling language to visualize, specify, construct,
and document software system.
Although UML is generally used to model software systems, it is not limited within this boundary. It
is also used to model non-software systems as well. For example, the process flow in a
manufacturing unit, etc.
UML is not a programming language but tools can be used to generate code in various
languages using UML diagrams. UML has a direct relation with object oriented analysis and
design. After some standardization, UML has become an OMG standard.
Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing UML. Object-
oriented concepts were introduced much earlier than UML. At that point of time, there were no
standard methodologies to organize and consolidate the object-oriented development. It was
then that UML came into picture.
There are a number of goals for developing UML but the most important is to define some
general purpose modeling language, which all modelers can use and it also needs to be made
simple to understand and use.
UML diagrams are not only made for developers but also for business users, common people,
and anybody interested to understand the system. The system can be a software or non-software
system. Thus it must be clear that UML is not a development method rather it accompanies with
processes to make it a successful system.
In conclusion, the goal of UML can be defined as a simple modeling mechanism to model all
possible practical systems in today’s complex environment.
UML Diagrams
UML diagrams are the ultimate output of the entire discussion. All the elements, relationships
are used to make a complete UML diagram and the diagram represents a system.
The visual effect of the UML diagram is the most important part of the entire process. All the
other elements are used to make it complete.
UML includes the following nine diagrams, the details of which are described in the subsequent
chapters.
Class diagram
Object diagram
Use case diagram
Sequence diagram
Collaboration diagram
Activity diagram
State chart diagram
Deployment diagram
Component diagram