Professional Documents
Culture Documents
SYED AMAN
BUSHRA KHAN
IT(21-25)
1. Quality Focus.
2. Process.
3. Methods.
4. Tools
QUALITY FOCUS:
● Every organization rests on its commitment to quality.
● Total quality management, Six Sigma, or similar continuous improvement culture and it is this
culture ultimately leads to development of increasingly more effective approaches to software
engineering.
● The bedrock that supports software engineering is a quality focus.
PROCESS:
● It’s a foundation layer for software engineering.
● Processes define a framework that must be established for effective delivery of software
engineering technology.
● The processes define the tasks to be performed and in which order they are to be performed.
METHODS:
● It provides the technical how-to's for building software.
● Among the tasks covered by methods are requirements analysis, design, program construction,
testing, and support.
● There could be more than one method to perform a task and different techniques could be used in
different situations.
TOOLS:
● Provide automated or semi-automated support for the process, methods and quality control.
● 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
(CASE)
WHAT ARE THE 5 GENERIC FRAMEWORK ACTIVITIES?
COMMUNICATION:
By communication, customer requirement gathering is done. Communication with consumers
and stakeholders to determine the system’s objectives and the software’s requirements.
PLANNING:
Establish an engineering work plan, describe technical risk, list resources requirements, work
produced, & define work schedule.
MODELING:
Modeling consists of complete requirement analysis and the design of the software like
algorithm, flowchart, etc
Help developers and customers to understand requirements (Analysis of requirements) & Design of
software.
CONSTRUCTION:
combines code generation (either manual or automated) and the testing that is required to fix
errors in the code.
DEPLOYMENT:
Once testing is done; deliver the product to the customer & take feedback from them.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC):
A software life cycle model is a diagrammatic representation of the software life cycle.
A life cycle model represents all the methods required to make a software product.
The SDLC aims to produce high-quality software that meets customer expectations and completes
within time and cost estimates.
REQUIREMENT ANALYSIS:
In the Requirement Analysis Phase, understand the exact requirements of the customer,
analyze the product, and identify the risk, & system's functional requirements are to be understood.
SPECIFICATIONS:
Once the requirement analysis is done, a Software Requirement Specification (SRS)
document is made, it contains all the software requirements to be developed during the project life
cycle, & get them accepted from the project stakeholders.
DESIGN:
On the basis that the customer gives us requirements, the system design is prepared. It
includes high-level and detailed design as well as the overall software architecture. All this effort is
documented in a software design document (SDD).
CODING:
In this stage of SDLC, the actual development starts, and the product is built.
The implementation of design begins, writing code in a language. Developers must follow the
coding guidelines defined by their organization. Different high-level programming languages such
as, C++, Java, and PHP are used for coding. Programming languages are selected based on the type
of software being developed.
DEPLOYMENT:
When Testing is done, no bugs or errors remain. then it is deployed in a customer
environment.
The waterfall model, sometimes called the classic life cycle, suggests a systematic sequential
approach to software development that begins with customer specification of requirements and
progresses through planning, modeling, construction, and deployment, providing maintenance &
support of the completed software.
COMMUNICATION:
The aim of this phase is to understand the exact requirements of the customer, analyze the
product, and identify the risk, & system's functional requirements are to be understood.
PLANNING:
Establish an engineering work plan, describe technical risk, & define work schedule.
Software Requirement Specification (SRS) document is made, it contains all the software requirements
to be developed during the project life cycle, & get them accepted from the project stakeholders.
MODELING:
On the basis that the customer gives us requirements, the system design is prepared. It includes
high-level and detailed design as well as the overall software architecture. All this effort is documented
in a software design document (SDD).
CONSTRUCTION:
Convert the requirement of software gathered from customers that can be coded in a
programming language and features are developed and verified through testing. As each feature is
tested, it is integrated into the system. The modules are tested for their interactions with each other and
with the system. The entire system is tested for errors and failures.
DEPLOYMENT OF SYSTEM:
When Testing is done, no bugs or errors are remaining, functional and non-functional testing is
done; the product is deployed in the customer environment or released into the market.
There are some issues that come up in the client environment. To provide maintenance to
software, patches are released. Also to enhance the product, some better versions are released.
LIMITATIONS OF WATERFALL:
ADVANTAGES OF WATERFALL:
● The requirements are simple and completely declared; they remain unchanged during the entire
project development.
● It gives customer control and clarity.
● One Phase is completed at a time.
● Simple and easy to understand and use.
● Release date of the software and final cost can be determined before development.
● Real projects rarely follow the sequential model. To increase efficiency and reduce cost, phases
may overlap.
● Difficult for the customer to explain all the requirements completely.
● Assuming patience from the customer, a working version of the program will not be available
until the program is not getting developed fully.
● Clients feedback cannot be included in on-going development phase.
● Waterfall models fail because once requirements are declared they cannot be changed during
entire project development.
● Error can be fixed only during the phase.
● Once the phase is completed the mistakes are improved in maintenance.
● The risk factor is higher, so this model is not suitable for complex and object-oriented projects
where customer feedback is necessary and requirements are changed frequently.
INCREMENTAL PROCESS MODEL:
Incremental Model is a process of software development where requirements are divided into
multiple standalone modules of the software development cycle. In this model, each module goes
through the requirements, design, testing phases, & implementation.
In every new release of the module, new functionality is added. The process continues until the
complete product is produced.
CHARACTERISTICS:
● The first increment is often a core product that includes basic requirements, and further essential
features are added in the next increments.
● User requirements are prioritized.
● The highest priority requirements are included in early increments.
● Once the core product is analyzed by the client, A plan for the next increment is prepared.
❖ Modifications of the first increment.
❖ Additional features will also be provided in the next increment.
● Early increments act as a prototype to help obtain requirements for later increments.
PHASES:
COMMUNICATION:
Requirements are gathered from the customer and analyze the product and identify the
requirement, & system's functional requirements are to be understood.
PLANNING:
Establish an engineering work plan, describe technical risk, & define work schedule.
Software Requirement Specification (SRS) document is made, it contains all the software requirements
to be developed during the project life cycle, & get them accepted from the project stakeholders.
MODELING:
The requirement specifications from the first phase are re-studied in this phase and the system
design is prepared. It includes high-level and detailed design as well as the overall software architecture.
All this effort is documented in a software design document (SDD).
CONSTRUCTION:
Convert the requirement of software gathered from customers that can be coded in a
programming language and features are developed and verified through testing. As each feature is
tested, it is integrated into the system. The modules are tested for their interactions with each other and
with the system. The entire system is tested for errors and failures.
DEPLOYMENT:
When Testing is done, no bugs or errors are remaining, functional and non-functional testing is
done; the product is deployed in the customer environment or released into the market.
There are some issues that come up in the client environment. To provide maintenance to
software, patches are released. Also to enhance the product, some better versions are released.
CHARACTERISTICS:
PHASES:
COMMUNICATION:
Requirements are gathered from the customer to understand the business problem & system's
functional requirements are to be understood.
PLANNING:
Multiple software teams working in parallel on different systems. Establish an engineering work
plan, & define work schedule.
MODELING:
Modeling phase is further divided into 3 parts:
BUSINESS MODELING:
A product is developed based on the flow of information between various channels of business.
DATA MODELING:
Information is refined into a set of data objects that are needed to support business.
PROCESS MODELING:
In the process modeling phase, data objects are transformed into information flows so that
business functions can be implemented.
CONSTRUCTION:
It highlights the use of pre-existing software components. Automated code is used for the
construction of the software, to convert process & data models. The modules are tested for their
interactions with each other and with the system. The entire system is tested for errors and failures.
DEPLOYMENT:
Deliver to customer basis for subsequent iteration.
DISADVANTAGES OF RAD:
● Dependency on technically highly skilled members for identifying business requirements.
● Suitable for projects that are component-based and scalable, & requiring shorter development
times.
● The system that can be modularized can be built using RAD.
● Requires highly skilled developers/designers.
● Requires customer involvement throughout the software development life cycle.
EVOLUTIONARY PROCESS MODELS:
● Evolutionary models are iterative-type models.
● They allow developers to develop more complete versions of the software.
PROTOTYPING MODEL:
A Prototyping Model is a software development model in which a prototype is developed, tested,
and refined based on customer feedback until an acceptable prototype is achieved, from which the final
product can be developed.
COMMUNICATION:
Prototyping starts with communication between a customer and software engineer to define the
overall objective, identify requirements and make a boundary.
QUICK DESIGN:
A quick design focuses on a representation of those aspects of the software that will be visible to
end users (e.g., human interface layout or output display formats).
It gives a brief idea of the system to the user. The quick design helps in developing the prototype
BUILD A PROTOTYPE:
In this phase, an actual prototype is developed based on the information gathered from quick
design. It is a small working model of the required system.
THROWAWAY PROTOTYPE:
With 'throw-away' prototyping a small part of the system is developed and then given to the end
user to try out and evaluate.
The client provides feedback which can quickly be added to the development of the main system.
The prototype is then discarded or thrown away.
The throw-away prototype is NOT considered part of the final system. The purpose of it is to understand
and reduce the risk of poorly defined requirements.
CHARACTERISTICS:
❖ Each loop in the spiral represents a phase in the process.
❖ No fixed phases such as specification or design - loops in the spiral are chosen depending on
what is required.
❖ Risks are explicitly assessed and resolved throughout the process.
❖ Divided into framework activities(communication, planning, modeling, construction,
deployment). Each activity represents one segment.
❖ The evolutionary process begins in a clockwise direction, beginning at the center of risk.
❖ First circuit around the spiral might result in the development of a product specification.
Subsequently, develop a prototype and then a progressively more sophisticated version of
software.
❖ Unlike other process models that end when software is delivered. It can be adapted to apply
throughout the life of the software.
Spiral Model is divided into 4 phases:
OBJECTIVES DETERMINATION:
Requirements are gathered from the customers and the objectives are identified, and analyzed, the
identification of system requirements.