SE Comp Software Engg Insem Notes by Imp Solution Hub
SE Comp Software Engg Insem Notes by Imp Solution Hub
18000+ STUDENT
TRUSTED
TELEGRAM
CHANNEL
Unit-1
Introduction to Software engineering
What is Software engineering?
Definition: Software engineering is a detailed study of engineering to the design, development and
maintenance of software. Software engineering was introduced to address the issues of low-quality software
projects. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. It
ensures that the application is built consistently, correctly, on time and on budget and within requirements
01. A Quality Focus: Software engineering must rest on an organizational commitment to quality. Total quality
management and similar philosophies foster a continuous process improvement culture, and this culture
ultimately leads to the development of increasingly more mature approaches to software engineering. The
bedrock that supports software engineering is a quality focus.
2. Process: The foundation for software engineering is the process layer. Process defines a framework for a set
of Key Process Areas (KPAs) that must be established for effective delivery of software engineering technology.
This establishes the context in which technical methods are applied, work products such as models, documents,
data, reports, forms, etc. are produced, milestones are established, quality is ensured, and change is properly
managed.
03. Methods: Software engineering methods provide the technical how-to's for building software. Methods will
include requirements analysis, design, program construction, testing, and support. This relies on a set of basic
principles that govern each area of the technology and include modeling activities and other descriptive
techniques.
04. Tools: Software engineering tools provide automated or semi-automated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by another, a system
for the support of software development, called computer-aided software engineering, is established.
Software Process:
Process defines a framework for a set of Key Process Areas (KPAs) that must be established for effective
delivery of software engineering technology. This establishes the context in which technical methods are
applied, work products such as models, documents, data, reports, forms, etc. are produced, milestones are
established, quality is ensured, and change is properly managed.
1. Communication: This activity involves heavy communication with customers and other stakeholders in
order to gather requirements and other related activities.
2. Planning: Here a plan to be followed will be created which will describe the technical tasks to be
conducted, risks, required resources, work schedule etc.
3. Modeling: A model will be created to better understand the requirements and design to achieve these
requirements.
4. Construction: Here the code will be generated and tested.
5. Deployment: Here, a complete or partially complete version of the software is represented to the
customers to evaluate and they give feedbacks based on the evaluation.
These above described five activities can be used in any kind of software Development. The details of the
software development process may become a little different, but the framework activities remain the same.
Umbrella activities
1. Software project tracking and control : Tracking and Control is the dual process of detecting when a
project is drifting off-plan, and taking corrective action to bring the project back on track. But a successful
project manager will also be able to tell when the plan itself is faulty, and even re-plan the project and its goals if
necessary.
2. Formal technical reviews : This includes reviewing the techniques that has been used in the project.
3. Software quality assurance : This is very important to ensure the quality measurement of each part to
ensure them.
4. Software configuration management : In software engineering, software configuration management (SCM
or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary
field of configuration management. SCM practices include revision control and the establishment of baselines.
5. Document preparation and production : All the project planning and other activities should be hardly
copied and the production get started here.
6. Reusability management : This includes the backing up of each part of the software project they can be
corrected or any kind of support can be given to them later to update or upgrade the software at user/time
demand.
7. Measurement : This will include all the measurement of every aspects of the software project.
8. Risk management : Risk management is a series of steps that help a software team to understand and
manage uncertainty. It’s a really good idea to identify it, assess its probability of occurrence, estimate its impact,
and establish a contingency plan that ‘should the problem actually occur’.
Software Myths:
The development of software requires dedication and understanding on the developers' part. Many software
problems arise due to myths that are formed during the initial stages of software development. Unlike ancient
folklore that often provides valuable lessons, software myths propagate false beliefs and confusion in the minds
of management, users and developers.
In most cases, users tend to believe myths about the software because software managers and developers do
not try to correct the false beliefs. These myths lead to false expectations and ultimately develop dissatisfaction
among the users. Common user myths are listed in Table.
In the early days of software development, programming was viewed as an art, but now software development
has gradually become an engineering discipline. However, developers still believe in some myths-. Some of the
common developer myths are listed in Table.
Software development is considered 50% to 70% of all the efforts are expended
complete when the code is delivered. after the software is delivered to the user.
The quality of programs is not the only
The success of a software project
factor that makes the project successful
depends on the quality of the
instead the documentation and software
product produced.
configuration also playa crucial role.
Software engineering is about creating
Software engineering requires quality at every level of the software project.
unnecessary documentation, which Proper documentation enhances quality
slows down the project. which results in reducing the amount of
rework.
The deliverables of a successful project
The only product that is delivered
includes not only the working program but
after the completion of a project is
also the documentation to guide the users
the working program(s).
for using the software.
The quality of software can be measured
during any phase of development process by
applying some quality assurance
Software quality can be assessed
mechanism. One such mechanism is formal
only after the program is executed.
technical review that can be effectively used
during each phase of development to
uncover certain errors.
To solve actual problems in an industry setting, a software engineer or a team of engineers must incorporate a
development strategy that encompasses the process, methods, and tools layers and the generic phases. It gives a
workflow. A Process Model describes the sequence of phases for the entire lifetime of a product. Therefore it is
sometimes also called Product Life Cycle. This covers everything from the initial commercial idea until the final
de-installation or disassembling of the product after its use
The waterfall model is a sequential approach, where each fundamental activity of a process represented as a
separate phase, arranged in linear order. In the waterfall model, you must plan and schedule all of the activities
before starting working on them (plan-driven process).Plan-driven process is a process where all the activities
are planned first, and the progress is measured against the plan. While the agile process, planning is
incremental and it’s easier to change the process to reflect requirement changes. The phases of the waterfall
model are: Requirements, Design, Implementation, Testing, and Maintenance.
In principle, the result of each phase is one or more documents that should be approved and the next phase
shouldn’t be started until the previous phase has completely been finished.
In practice, however, these phases overlap and feed information to each other. For example, during design,
problems with requirements can be identified, and during coding, some of the design problems can be found,
etc. The software process therefore is not a simple linear but involves feedback from one phase to another. So,
documents produced in each phase may then have to be modified to reflect the changes made.
2. V- model
Its Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of
execution of processes. Each phase must be completed before the next phase begins. V-Model is one of the
many software development models.Testing of the product is planned in parallel with a corresponding phase of
development in V-model.
1. Requirements like BRS and SRS begin the life cycle model just like the waterfall model. But, in this model
before development is started, a system test plan is created. The test plan focuses on meeting the
functionality specified in the requirements gathering.
2. The high-level design (HLD) phase focuses on system architecture and design. It provide overview of
solution, platform, system, product and service/process. An integration test plan is created in this phase as
well in order to test the pieces of the software systems ability to work together.
3. The low-level design (LLD) phase is where the actual software components are designed. It defines the
actual logic for each and every component of the system. Class diagram with all the methods and relation
between classes comes under LLD. Component tests are created in this phase as well.
4. The implementation phase is, again, where all coding takes place. Once coding is complete, the path of
execution continues up the right side of the V where the test plans developed earlier are now put to use.
5. Coding: This is at the bottom of the V-Shape model. Module design is converted into code by developers.
Unit Testing is performed by the developers on the code written by them.
1. Integration testing: Integration Test Plans are developed during the Architectural Design Phase. These
tests verify that units created and tested independently can coexist and communicate among themselves.
Test results are shared with customer's team.
2. Unit testing: In the V-Model, Unit Test Plans (UTPs) are developed during module design phase. These
UTPs are executed to eliminate bugs at code level or unit level. A unit is the smallest entity which can
independently exist, e.g. a program module. Unit testing verifies that the smallest entity can function
correctly when isolated from the rest of the codes/units.
Figure: V Model
3. System testing: System Tests Plans are developed during System Design Phase. Unlike Unit and Integration
Test Plans, System Test Plans are composed by client's business team. System Test ensures that
expectations from application developed are met. The whole application is tested for its functionality,
interdependency and communication. System Testing verifies that functional and non-functional
requirements have been met. Load and performance testing, stress testing, regression testing, etc., are
subsets of system testing.
4. User acceptance testing: User Acceptance Test (UAT) Plans are developed during the Requirements
Analysis phase. Test Plans are composed by business users. UAT is performed in a user environment that
resembles the production environment, using realistic data. UAT verifies that delivered system meets user's
requirement and system is ready for use in real time.
3. Incremental Model
The incremental model applies the waterfall model incrementally. The series of releases is referred to as
“increments”, with each increment providing more functionality to the customers. After the first increment, a
core product is delivered, which can already be used by the customer. Based on customer feedback, a plan is
developed for the next increments, and modifications are made accordingly. This process continues, with
increments being delivered until the complete product is delivered. The incremental philosophy is also used in
the agile process model (see agile modeling).
4. RAD Model
Rapid Application Development (RAD) is an incremental software development process model which is a “high-
speed” adaptation of the linear sequential model in which rapid development is achieved by using component-
based construction. If requirements are well understood and project scope is constrained, the RAD process
enables a development team to create a “fully functional system” within very short time periods, such as in 60 to
90 days.
1. Communication :
This step works to understand the business problems and the information characteristics that the software
must accommodate.
2. Planning : This is very important as multiple teams work on different systems.
3. Modeling : Modeling includes the major phases, like business, data, process modeling and establishes
design representation that serves as the basis for RAD’s construction activity.
4. Construction : This includes the use of preexisting software components and the application of automatic
code generation.
5. Deployment : Deployment establishes a basis for the subsequent repetitions, if required.
Problems with the RAD model : Like others, RAD approach has backwards.
1. For large but scalable projects, RAD requires sufficient human resources to create the right number of RAD
teams.
2. If developers and customers are not committed to the rapid fire activities, RAD projects will fail.
3. RAD may not be appropriate when technical risks are high.
4. If a system can not be properly modularized, building the components will be problematic.
5. If high performance is be achieved through tuning the interfaces into system components, the RAD
approach may not work.
5. Prototyping
A prototype is a version of a system or part of the system that’s developed quickly to check the customer’s
requirements or feasibility of some design decisions. So, a prototype is useful when a customer or developer is
not sure of the requirements, or of algorithms, efficiency, business rules, response time, etc. In prototyping, the
client is involved throughout the development process, which increases the likelihood of client acceptance of
the final implementation. While some prototypes are developed with the expectation that they will be
discarded, it is possible in some cases to evolve from prototype to working system.
[1] In the requirements engineering, a prototype can help with the elicitation and validation of system
requirements. It allows the users to experiment with the system, and so, refine the requirements. They may get
new ideas for requirements, and find areas of strength and weakness in the software. Furthermore, as the
prototype is developed, it may reveal errors and in the requirements. The specification maybe then modified to
reflect the changes.
[2] In the system design, a prototype can help to carry out deign experiments to check the feasibility of a
proposed design.
For example, a database design may be prototype-d and tested to check it supports efficient data access for the
most common user queries.
6. Spiral Model :
The spiral model is an evolutionary software process model that combines the iterative nature of prototyping
with the controlled and systematic aspects of the linear sequential model. Using the spiral model, software is
developed in a series of incremental releases. During early iterations, the incremental release might be a paper
model or prototype. During later iterations, increasingly more complete versions of the engineered system are
produced. A spiral model is divided into a number of framework activities, also called task regions. Typically,
there are between three and six task regions. Given figure is of a spiral model that contains five task regions
1. Customer communication — Tasks required to establish effective communication between developer and
customer.
2. Planning: Tasks required to define resources, timelines, and other project related information.
3. Modeling: Tasks required in building one or more representations of the application.
4. Construction and release: Tasks required to construct, test, install.
5. Deployment : Tasks required to deliver the software, getting feedbacks etc.
Software engineering team moves around the spiral in a clockwise direction, beginning at the center. The first
circuit around the spiral might result in the development of a product specification; subsequent passes around
the spiral might be used to develop a prototype and then progressively more sophisticated versions of the
software. Each pass through the planning region results in adjustments to the project plan. Cost and schedule
are adjusted based on feedback derived from customer evaluation. In addition, the project manager adjusts the
planned number of iterations required to complete the software.
The spiral model is a realistic approach to the development of large-scale systems and software. The spiral
model enables the developer to apply the prototyping approach at any stage in the evolution of the product. The
spiral model demands a direct consideration of technical risks at all stages of the project and, if properly
applied, should reduce risks before they become problematic. It demands considerable risk assessment
expertise and relies on this expertise for success.
For example, early in a project the communication activity (not shown in the figure) has completed its first
iteration and exists in the awaiting changes state. The modeling activity (which existed in the inactive state
while initial communication was completed, now makes a transition into the under development state. If,
however, the customer indicates that changes in requirements must be made, the modeling activity moves from
the under development state into the awaiting changes state. Concurrent modeling defines a series of events
that will trigger transitions from state to state for each of the software engineering activities, actions, or tasks
It consists of a means of monitoring the software engineering processes and methods used to ensure quality.
The methods by which this is accomplished are many and varied, and may include ensuring conformance to one
or more standards, such as ISO 9000 or a model such as CMMI. SQA encompasses the entire software
development process, which includes processes such as requirements definition, software design, coding,
source code control, code reviews, software configuration management, testing, release management, and
product integration. SQA is organized into goals, commitments, abilities, activities, measurements, and
verifications. Planned and Systematic Approach to the Evaluation of the Quality of Software Product Standards,
Processes, procedures. It also Assures that Standards and Procedures are Established and Followed throughout
the Software Development Process. Evolution is done using methods such as Continuous Monitoring, Product
Evaluation, and Auditing .
Types of Standard
1. Documentation Standard
2. Design Standard
Documentation Standard:
Specify Form and Content for Planning, Control, and Product.
Documentation Provide Consistency throughout a System
Documentation can be written in any form
Each Practice should be Documented so it can be Repeated or Changed later if needed
Design Standards
Specify the Content and Form of how Design Documents are Developed
Provide Rules and Methods to Transfer:
1. Software Requirements to Software Design
2. Software Design into Software Design Documentation
Many Major Companies have Design Development Software to aid in the Process
Code Standards
Specify what Language the Code is written in and Define any Restrictions on Language Features
Code Standards Define:
• Legal Language Structures
• Style Conventions
• Rules for Data Structures and Interfaces
• Internal Code Documentation
Using Methods such as “Peer Reviews”, “Buddy Checks”, and Code Analysis can Enforce Standards
A quality factor represents a behavioral characteristic of a system. Following are the list of quality factors:
1.Correctness:
A software system is expected to meets the explicitly specified functional requirements and the
implicitly expected non-functional requirements.
If a software system satisfies all the functional requirements, the system is said to be correct.
2.Reliability
Customers may still consider an incorrect system to be reliable if the failure rate is very small and it
does not adversely affect their mission objectives.
The ISO 9126 standard and to give a detailed description of the software quality model used by this standard.
ISO 9126 is an international standard for the evaluation of software. The standard is divided into four parts
which addresses, respectively, the following subjects: quality model; external metrics; internal metrics; and
quality in use metrics.
These characteristics are broken down into sub characteristics; a high level table is shown below. It is at the sub
characteristic level that measurement for SPI will occur. The main characteristics of the ISO9126-1 quality
model, can be defined as follows.
Prepared By: Prof V. K. Wani SNJB’s KBJ CoE Chandwad
https://t.me/SPPU_SE_COMP
1. Functionality: Functionality is the essential purpose of any product or service. For certain items this is
relatively easy to define, for example a ship's anchor has the function of holding a ship at a given location. The
more functions a product has, e.g. an ATM machine, then the more complicated it becomes to define it's
functionality. For software a list of functions can be specified, i.e. a sales order processing systems should be
able to record customer information so that it can be used to reference a sales order. A sales order system
should also provide the following functions:
Record sales order product, price and quantity.
Calculate total price.
Calculate appropriate sales tax.
Calculate date available to ship, based on inventory.
Generate purchase orders when stock falls below a given threshold.
2. Reliability : Once a software system is functioning, as specified, and delivered the reliability characteristic
defines the capability of the system to maintain its service provision under defined conditions for defined
periods of time. One aspect of this characteristic is fault tolerance that is the ability of a system to withstand
component failure. For example if the network goes down for 20 seconds then comes back the system should be
able to recover and continue functioning.
3. Usability : Usability only exists with regard to functionality and refers to the ease of use for a given function.
For example a function of an ATM machine is to dispense cash as requested. Placing common amounts on the
screen for selection, i.e. $20.00, $40.00, $100.00 etc, does not impact the function of the ATM but addresses the
Usability of the function. The ability to learn how to use a system (learn ability) is also a major sub
characteristic of usability.
4. Efficiency: This characteristic is concerned with the system resources used when providing the required
functionality. The amount of disk space, memory, network etc. provides a good indication of this characteristic.
As with a number of these characteristics, there are overlaps. For example the usability of a system is influenced
by the system's Performance, in that if a system takes 3 hours to respond the system would not be easy to use
although the essential issue is a performance or efficiency characteristic.
5. Maintainability: The ability to identify and fix a fault within a software component is what the
maintainability characteristic addresses. In other software quality models this characteristic is referenced as
supportability. Maintainability is impacted by code readability or complexity as well as modularization.
Anything that helps with identifying the cause of a fault and then fixing the fault is the concern of
maintainability. Also the ability to verify (or test) a system, i.e. testability, is one of the sub characteristics of
maintainability.
6.Portability :This characteristic refers to how well the software can adopt to changes in its environment or
with its requirements. The sub characteristics of this characteristic include adaptability. Object oriented design
and implementation practices can contribute to the extent to which this characteristic is present in a given
system.
Unit-2
Requirement Analysis
Requirements Engineering
Requirements engineering helps software engineers better understand the problems they are
trying to solve. The requirements engineering process begins with inception, moves on to elicitation,
negotiation, problem specification, and ends with review or validation of the specification
1. Inception The overriding goal of the inception phase is to achieve concurrence among all
stakeholders on the lifecycle objectives for the project. ... Establishing the project's software scope
and boundary conditions, including an operational vision, acceptance criteria and what is intended
to be in the product and what is not software engineers use context-free questions to establish a
basic understanding of the problem, the people who want a solution, the nature of the solution, and
the effectiveness of the collaboration between customers and developers
2. Elicitation Requirement elicitation is the process of collecting the requirements of a system or
requirement gathering from user, customers and stakeholders by conducting meetings, interviews,
questionnaires, brainstorming sessions, prototyping etc. It find out from customers what the
product objectives are, what is to be done, how the product fits into business needs, and how the
product is used on a day to day basis
3. Elaboration During the Elaboration phase the project team is expected to capture a healthy
majority of the system requirements. However, the primary goals of Elaboration are to address
known risk factors and to establish and validate the system architecture. It focuses on developing a
refined technical model of software function, behavior, and information
4. Negotiation It includes Discussion for to rank the requirements, to Decide Priority , Decide risk, to
decide Project cost and etc. The requirements are categorized and organized into subsets, relations
among requirements identified, requirements reviewed for correctness, requirements prioritized
based on customer needs)
5. Specification The goal of the specification phase is to produce a specification document,
graphical model , mathematical model that wil serve as the contract between the system
builder and the client. This document must be understandable by both sides. It should be precise
enough for the developer to use. It must contain acceptance criteria, It also include written work
Prioritizing Requirements
Requirement prioritization is used in Software product management for determining which candidate
requirements of a software product should be included in a certain release. Requirements are also prioritized to
minimize risk during development so that the most important or high risk requirements are implemented first.
Cost Value Approach: A good and relatively easy to use method for prioritizing software product requirements
is the cost-value approach. This approach was created by Joachim Karlsson and Kevin Ryan. The approach was
then further developed and commercialized in the company Focal Point (that was acquired by Telelogic in
2005). Their basic idea was to determine for each individual candidate requirement what the cost of
implementing the requirement would be and how much value the requirement has. The assessment of values
and costs for the requirements was performed using the Analytic Hierarchy Process (AHP). This method was
created by Thomas Saaty. Its basic idea is that for all pairs of (candidate) requirements a person assesses a
value or a cost comparing the one requirement of a pair with the other. For example, a value of 3 for (Req1,
Req2) indicates that requirement 1 is valued three times as high as requirement 2. Trivially, this indicates that
1. Requirement engineers carefully review candidate requirements for completeness and to ensure that
they are stated in an unambiguous way.
2. Customers and users (or suitable substitutes) apply AHP’s pairwise comparison method to assess the
relative value of the candidate requirements.
3. Experienced software engineers use AHP’s pairwise comparison to estimate the relative cost of
implementing each candidate requirement.
4. A software engineer uses AHP to calculate each candidate requirement’s relative value and
implementation cost, and plots these on a cost-value diagram. Value is depicted on the y axis of this
diagram and estimated cost on the x-axis.
5. The stakeholders use the cost-value diagram as a conceptual map for analyzing and discussing the
candidate requirements. Now software managers prioritize the requirements and decide which will be
implemented.
Now, the cost-value approach and the prioritizing of requirements in general can be placed in its
context of Software product management. As mentioned earlier, release planning is part of this
process. Prioritization of software requirements is a sub process of the release planning process.
1. Prioritize requirements
2. Select requirements
3. Define release requirements
4. Validate release requirements
5. Prepare launch
Kano Model: Noriaki Kano developed the Kano analysis model in the late 1980s to identify and contrast
essential customer requirements from incremental requirements. One of his goals was to initiate critical
thinking about the nature of requirements. His characterization approach can be used to drive prioritization of
software requirements.
Kano analysis allows us to prioritize requirements as a function of customer satisfaction.
Kano defined four categories into which each feature or requirement can be classified (an Apple®
iPod® is used for examples in each of the following four requirement categories):
1.Surprise and delight. Capabilities that differentiate a product from its competition (e.g. the iPod
nav-wheel).
2.More is better. Dimensions along a continuum with a clear direction of increasing utility (e.g.
battery life or song capacity).
3.Must be. Functional barriers to entry—without these capabilities, customers will not use the
product (e.g. UL approval).
4.Better not be. Represents things that dissatisfy customers (e.g. inability to increase song capacity
via upgrades).
Surprise and delight requirements: For just a moment, think about software as a user, not an accountant. We
want software that is interesting and fun to use. Affordances in the user interface that allow us to just “do what
comes naturally” and have the software do exactly what we want. New ideas that make software better. We’re
not talking about a button that pops up dancing squirrels when clicked, rather valuable features that make
software great.
• Google’s Gmail™ use of labels instead of folders for organizing email, as a good software example.
• Contextual help buttons that open to exactly the right page in a Help file.
More is better requirements: These are the most easily grasped concepts—bigger, faster, better, stronger. The
challenge in writing a more is better requirement is in knowing when enough is enough. Requirements such as
“minimize” or “maximize” are ambiguous. What is the theoretical minimum response time for a search engine?
Does it take a few hundred micro-seconds for the bits to travel from the server to the user, plus a few micro-
seconds for switch latency, plus a few nano-seconds for a CPU to find the answer? It would be completely
impractical to unambiguously request that our developers minimize search time. Specifying precise objectives
can be very difficult as well. The law of diminishing returns comes into play. There is a concept in economics
called utility which represents the tangible and intangible benefits of something. We can consider the utility of a
feature wit h respect to the target users.
Must be requirements: Must be requirements are the easiest to elicit and are the ones that most people
consider when they talk about requirements. Stakeholders can usually tell us what they must have in the
software. In the Am I hot or not? post on requirements prioritization, the company 37signals focuses on this as
its primary criterion for inclusion in a software initial release. They choose to only put essential, or must be
requirements, into the initial release of software.
Better not be requirements : This is just the opposite of surprise and delight. If dreamers think about what
makes something great, then critics complain about what holds it back. This bucket does not have a place in
Kano’s analysis. Saying, “Users don’t like confusing navigation,” does not provide any benefit relative to saying,
“Users prefer intuitive navigation.” We suggest not using this category at all.
What is UML?
UML can be described as a general purpose visual modelling language to visualize, specify, construct, and
document software system. 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
1. A structure diagram is a conceptual modeling tool used to document the different structures that
make up a system such as a database or an application. It shows the hierarchy or structure of the
different components or modules of the system and shows how they connect and interact with
each other.
2. Behavioral diagrams visualize, specify, construct, and document the dynamic aspects of a system.
The behavioral diagrams are categorized as follows: use case diagrams, interaction diagrams, state
chart diagrams, and activity diagrams.
3. Interaction diagrams illustrate how objects interact via messages. They are used for dynamic
object modeling. There are two common types: sequence and communication interaction diagrams.
Relationship in UML Diagrams : Relationship is another most important building block of UML. It shows how
the elements are associated with each other and this association describes the functionality of an application
1. Dependency
2. Association
3. Generalization
4. Realization
5. Aggregation
6. Composition
1. Aggregation: An aggregation relationship depicts a classifier as a part of, or as subordinate to, another
classifier.
2. Association : An association relationship is a structural relationship between two model elements that
shows that objects of one classifier (actor, use case, class, interface, node, or component) connect and can
navigate to objects of another classifier. Even in bidirectional relationships, an association connects two
classifiers, the primary (supplier) and secondary (client).
a. Association Role: Appears near the end of the association on the diagram top show the role of object.
b. Association Name: Identifies the association. Also appears on the diagram near the mid-point of the
association.
Swim Lane Diagram: Swim Lane Diagram are similar to Activity Diagram with some Variation. It
Allows to Show Flow of Activities described by Use cases. Also Describe Which Actor are involved in
specific functions, We can differentiate the Activities in different lane of Users
Package diagram
Package diagram is used to simplify complex class diagrams, you can group classes into packages. A
package is a collection of logically related UML elements. The diagram below is a business model in
which the classes are grouped into packages: Packages appear as rectangles with small tabs at the top.
A package in the Unified Modeling Language is used "to group elements, and to provide a namespace
for the grouped elements". A package may contain other packages, thus providing for a hierarchical
organization of packages. Pretty much all UML elements can be grouped into packages.
Sequence Diagram
Sequence diagrams are sometimes called event diagrams or event scenarios. A sequence diagram
shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and,
as horizontal arrows, the messages exchanged between them, in the order in which they occur. The
sequence diagram is a good diagram to use to document a system's requirements and to flush out a
system's design. The reason the sequence diagram is so useful is because it shows the interaction
logic between the objects in the system in the time order that the interactions take place. Sequence
diagrams can be useful references for businesses and other organizations.
Flow-Oriented Modeling Represents how data objects are transformed at they move through the
system A data flow diagram (DFD) is the diagrammatic form that is used Considered by many to be an
‘old school’ approach, flow-oriented modeling continues to provide a view of the system that is unique
it should be used to supplement other analysis model elements .
Data Flow Diagram: A data flow diagram (DFD) maps out the flow of information for any process or
system. It uses defined symbols like rectangles, circles and arrows, plus short text labels, to show data
inputs, outputs, storage points and the routes between each destination. Data flowcharts can range
from simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that dig progressively
deeper into how the data is handled. They can be used to analyze an existing system or model a new
one. Like all the best diagrams and charts, a DFD can often visually “say” things that would be hard to
explain in words, and they work for both technical and nontechnical audiences, from developer to CEO.
Using any convention’s DFD rules or guidelines, the symbols depict the four components of data flow
diagrams.
1. External entity: an outside system that sends or receives data, communicating with the system
being diagrammed. They are the sources and destinations of information entering or leaving
the system. They might be an outside organization or person, a computer system or a business
system. They are also known as terminators, sources and sinks or actors. They are typically
drawn on the edges of the diagram.
2. Process: any process that changes the data, producing an output. It might perform
computations, or sort data based on logic, or direct the data flow based on business rules. A
short label is used to describe the process, such as “Submit payment.”
3. Data store: files or repositories that hold information for later use, such as a database table or
a membership form. Each data store receives a simple label, such as “Orders.”
4. Data flow: the route that data takes between the external entities, processes and data stores. It
portrays the interface between the other components and is shown with arrows, typically
labeled with a short data name, like “Billing details.”
Control specifications may refer to the parameters of a physical production process, or to change
management and result measurement methods employed in the corporate environment to improve
business processes.
Process Specification:
The process specification is used to describe all flow model processes. The process
specification includes Program Design Language, Pseudo code or Structures English sentences
and all related information related to the Process
1. Complete: The requirements must be complete, what is the meaning of completeness? It means
that all the required information to implement (read Code) the requirement. There is no need to
assume anything in order to implement the same. One of the important aspects of completeness is
to also have measuring units, if applicable.
SRS Template: