Layered Technology
Layered Technology
Layered Technology
• Objectives of CMMI :
1.Fulfilling customer needs and expectations.
2.Value creation for investors/stockholders.
3.Market growth is increased.
4.Improved quality of products and services.
5.Enhanced reputation in Industry.
Capability Maturity Model Integration (CMMI)
• Continuous Representation :
• allows selection of specific process areas.
• uses capability levels that measures improvement of an individual process
area.
• Continuous CMMI representation allows comparison between different
organizations on a process-area-by-process-area basis.
• allows organizations to select processes which require more improvement.
• In this representation, order of improvement of various processes can be
selected which allows the organizations to meet their objectives and eliminate
risks.
Capability Maturity Model Integration (CMMI)
• It is of three types :
1.Stage pattern – Problems associated with a framework activity for process
are described by stage pattern. Establishing Communication might be an
example of a staged pattern. This pattern would incorporate task pattern
Requirements Gathering and others.
2.Task-pattern – Problems associated with a software engineering action or
work task and relevant to successful software engineering practice (e.g.,
Requirements Gathering is a task pattern) are defined by task-pattern.
3.Phase pattern – Even when the overall flow of activities is iterative in
nature, it defines sequence of framework activities that occurs within
process. Spiral Model or Prototyping might be an example of a phase
pattern
Process Assessment
• Not performed: At this level, the processes are unable to accomplish the
required outcomes. Thus, no identifiable products are created.
• Performed informally: At this level, the implemented process accomplishes
the defined outcomes. It is not planned and tracked; rather it depends on
individual knowledge and identifiable products.
• Planned and tracked: At this level, the defined process delivers products
according to quality requirements within a specified time. The processes
and products are verified according to the procedures, standards, and
requirements.
• Well-defined: At this level, the processes based on software engineering
principles which are capable of achieving defined outcomes are used.
Process Assessment
• Quantitatively controlled: At this level, the performance measures,
prediction capability and objective management are evaluated
quantitatively. In addition, existing processes perform consistently
within the defined limits to accomplish the desired outputs.
• Continuously improved: At this level, the existing processes adapt to
meet future business goals. For continuous improvement, various
kinds of statistical methods are used.
Personal and Team Process Model
• The best software process is personal and team process model one that
is close to the people who will be doing the work. Watts Humphrey
proposed two process models. Models “Personal Software Process
(PSP)” and “Team Software Process (TSP).” Both require hard work,
training, and coordination, but both are achievable.
• Personal Software Process (PSP)
• The Personal Software Process (PSP) emphasizes personal
measurement of both the work product that is produced and the
resultant quality of the work product.
Personal and Team Process Model
• Functional Requirements: These are the requirements that the end user
specifically demands as basic facilities that the system should offer. It
can be a calculation, data manipulation, business process, user
interaction, or any other specific functionality which defines what
function a system is likely to perform. All these functionalities need to
be necessarily incorporated into the system as a part of the contract.
These are represented or stated in the form of input to be given to the
system, the operation performed and the output expected. They are
basically the requirements stated by the user which one can see
directly in the final product, unlike the non-functional requirements.
Software Requirements
• Introduction
• Purpose
• Intended Use
• Scope
• Definitions and Acronyms:
• Overall Description
• User Needs
Software requirements document
• 1. Introduction
• 1.1 Purpose: Set the expectations for the outcome of the product.
• 1.2 Intended Audience: Who is the software for? Who is the end-user?
Will the software be used internally at a company or externally?
• 1.3 Intended Use: What is the software for? What problem is it solving?
• 1.4 Scope: Explain the scope of the software. What are the main goals and
objectives? How do they relate to the company’s goals?
• 1.5 Definitions and Acronyms: Provide an overview of any definitions the
reader should understand before reading on.
• 2. Overall Description: Describe what you are building and for who.
• 2.1 User Needs: Explain the user needs for this software.
Software requirements document
• 2.2 Assumptions and Dependencies: What assumptions are you making
that could cause an error in your approach? Is the project reliant on any
other factors that could affect the development of the software?
• 3. System Features and Requirements
• 3.1 Functional Requirements: Take time to define the functional
requirements that are essential for the software to build.
• 3.2 External Interface Requirements: Are there any UX and UI
requirements that you must keep in mind as you build?
• 3.3 System Features: What features are required for the software to even
work.
• 3.4 Nonfunctional Requirements: Are there any non-functional
requirements that you need to address (i.e. budget, team, etc.)
Requirements Engineering Process
• Requirements engineering is the process of identifying, eliciting, analyzing,
specifying, validating, and managing the needs and expectations of
stakeholders for a software system.
• Requirement Engineering Process
• It is a four-step process, which includes -
1.Feasibility Study
2.Requirement Elicitation and Analysis
3.Software Requirement Specification
4.Software Requirement Validation
5.Software Requirement Management
Requirements Engineering Process
1. Feasibility Study:
• The objective behind the feasibility study is to create the reasons for
developing the software that is acceptable to users, flexible to change and
conformable to established standards.
• Types of Feasibility:
1.Technical Feasibility - Technical feasibility evaluates the current
technologies, which are needed to accomplish customer requirements within
the time and budget.
2.Operational Feasibility - Operational feasibility assesses the range in
which the required software performs a series of levels to solve business
problems and customer requirements.
3.Economic Feasibility - Economic feasibility decides whether the necessary
software can generate financial profits for an organization.
• 2. Requirement Elicitation and Analysis:
• This is also known as the gathering of requirements. Here, requirements
are identified with the help of customers and existing systems processes, if
available.
• Analysis of requirements starts with requirement elicitation. The
requirements are analyzed to identify inconsistencies, defects, omission, etc.
We describe requirements in terms of relationships and also resolve
conflicts if any.
• Problems of Elicitation and Analysis
•
• Getting all, and only, the right people involved.
• Stakeholders often don't know what they want
• Stakeholders express requirements in their terms.
• Stakeholders may have conflicting requirements.
• Requirement change during the analysis process.
• Organizational and political factors may influence system
requirements.
• Software Requirement Specification:
• Software requirement specification is a kind of document which is created by a software
analyst after the requirements collected from the various sources - the requirement received
by the customer written in ordinary language. It is the job of the analyst to write the
requirement in technical language so that they can be understood and beneficial by the
development team.
• The models used at this stage include ER diagrams, data flow diagrams (DFDs), function
decomposition diagrams (FDDs), data dictionaries, etc.
• Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the
requirements. DFD shows the flow of data through a system. The system may be a
company, an organization, a set of procedures, a computer hardware system, a software
system, or any combination of the preceding. The DFD is also known as a data flow graph
or bubble chart.
• Data Dictionaries: Data Dictionaries are simply repositories to store information about all
data items defined in DFDs. At the requirements stage, the data dictionary should at least
define customer data items, to ensure that the customer and developers use the same
definition and terminologies.
• Entity-Relationship Diagrams: Another tool for requirement specification is the entity-
relationship diagram, often called an "E-R diagram." It is a detailed logical representation
of the data for the organization and uses three main constructs i.e. data entities,
relationships, and their associated attributes.
• 4. Software Requirement Validation:
• After requirement specifications developed, the requirements discussed in
this document are validated. The user might demand illegal, impossible
solution or experts may misinterpret the needs. Requirements can be the
check against the following conditions -
• If they can practically implement
• If they are correct and as per the functionality and specially of software
• If there are any ambiguities
• If they are full
• If they can describe
• Requirements Validation Techniques
• Requirements reviews/inspections: systematic manual analysis of
the requirements.
• Prototyping: Using an executable model of the system to check
requirements.
• Test-case generation: Developing tests for requirements to check
testability.
• Automated consistency analysis: checking for the consistency of
structured requirements descriptions.