Professional Documents
Culture Documents
Chapter 1 QB Sen
Chapter 1 QB Sen
Date: 24/03/2022
Chapter 1:
3. Although the industry is moving toward component-based construction, most software continues to be
custom built.
• The reusable components have been created so that the engineer can concentrate on the truly
innovative elements of a design, that is, the parts of the design that represent something new.
• In the software world, it is something that has only begun to be achieved on a broad scale.
• A software component should be designed and implemented so that it can be reused in many
different programs.
• Modern reusable components encapsulate both data and the processing that is applied to the
data, enabling the software engineer to create new applications from reusable parts.
• For example, today’s interactive user interfaces are built with reusable components that enable the
creation of graphics windows, pull-down menus, and a wide variety of interaction mechanisms.
• Quality Focus ⎯
• Software engineering is a layered technology. Referring to Figure, any engineering approach must rest
on an organizational commitment to quality. ⎯
• Total quality management, Six Sigma and similar principles help a continuous software process
improvement, and this ultimately leads to the development of increasingly more mature approaches to
software engineering.
• The bedrock that supports software engineering is a quality focus.
• Process Layer ⎯
• The foundation for software engineering is the process layer.
• Software engineering process is the glue that holds the technology layers together and enables
balanced and timely development of computer software.
• Process defines a framework for a set of key process areas that must be established for effective
delivery of software engineering technology.
• Process defines the context in which technical methods can be applied, work products are produced,
milestones are established, quality is ensured etc.
• Method Layer ⎯
• Software engineering methods provide the technical how-to's for building software.
• Methods encompass a broad array of tasks that include communication, requirements analysis, design,
program construction, testing, and support.
• Tools Layer ⎯
• Software engineering tools provide automated or semi-automated support for the process and the
methods.
• Tools are combines so that information created by one tool can be used by another, a system that is
developed for the support of software development, is called as computer-aided software engineering
(CASE). CASE combines software, hardware, and a software engineering database.
6) Explain waterfall model with neat diagram and its advantages and disadvantages.
Answer: - ) Waterfall Mode: ⎯
• Waterfall model is also known as the “Classic Life Cycle” model.
• Waterfall model follows the “Systematic, Sequential “approach of software development that begins with
customer specification and follows planning, modeling, construction and deployment.
Situation Where Waterfall Model is Useful: ⎯
• When customer wants enhancement or adaptation in already existing software which is well developed then
we can use waterfall model. For e.g Changes in the Accounting software because of the changes in the rules by
government. ⎯
• Waterfall Model is also used to develop new software when requirements are completely understood and
stable (will not change in the future).
Phases of waterfall model:
Communication: ⎯ Communication with the customer to gather the requirements of the software.
• So that software team can define the features and functions of the software to be developed. Planning:
• Any software can be developed effectively with good plan.
• Plan acts as a “map” that is followed by the project development team while developing software.
• A software project plan defines – schedule of the project, role of each team member, estimation of cost,
deadlines or delivery dates of the working modules, what technical task to be performed, risk that can be
occurred.
Modeling: ⎯
• In Modeling phase software team creates a design model of software to be developed so that they can better
understand the requirements, features and functions of the software.
Construction: ⎯
• This phase is the combination of code generation and testing.
• The design model is converted into code by software developer.
• Testing is done to find out the bugs if any in the code generated.
Deployment: ⎯
• The software is delivered to the customer.
• Customer provides the feedback to the team after using software.
Waterfall Model Advantages: ⎯
• Systematic and Organized approach provides clear separation between different phases of software
development.
• This model is simple and easy to understand and use.
• It is easy to manage due to the rigidity of the model – each phase has specific deliverable and a review
process.
• In this model phases are processed and completed one at a time. Phases do not overlap.
Disadvantages: ⎯
• Real projects rarely follows the sequential flow that waterfall model suggests.
• All real projects follow iterative approach indirectly. As a result of this, it causes the confusion among team
members when the proceeds.
• It is difficult for the customer to state all the requirements at the beginning of the project.
• A working version of the product is available only late.
• So if there any bug in the software it becomes visible at late which is very dangerous.
• Waterfall Model has a problem of “Blocking States” means some team members has to wait for other team
members to complete their dependent work.
2. All phases are clearly defined. 2. Few of the steps are defined
3. One of the most systematic methods fo 3. It is iterative in nature.
r software development.
4. This is oldest method for development 4. This is new model for development
5. Real projects rarely follow sequential model. 5. Real projects are developed using iterative
model..
6. This model is used when requirements are fixed 6. This model is used when requirements are
and stable flexible and varrying.
7. The working model is available only in the latter 7. The working model is available after each
part of the development. increment
8. Draw diagram of Waterfall 8. Draw diagram of Waterfall
4. Construction: ⎯
• RAD process model reuses the existing program components (when possible) or create reusable
components (when necessary).
• In all cases, automated tools are used to generate the code. After generation of code testing is
performed to check quality of the software.
5. Deployment: ⎯
• Modules developed by different RAD teams are integrated to develop final complete product.
• Then software is deployed to the customer and feedback is taken from customer for further
improvement in the software.
Advantages: ⎯
• Faster implementation of Project
• Parallel implementation
• Increases re usability of components
• Encourages customer feedback
• Projects divided into small teams results into better implementation
Disadvantage
• Limited Time for system implementation results into inadequate analysis of project.
• Less time for testing.
• If user is unclear with the system project may fail. RAD needs enough human resources to create the
required number of RAD teams.
• If developers and customers are not committed to the rapid model, the RAD project fails.
• Rapid-fire activities need to be completed in very short or small time frame.
• Time is the major constraint in RAD.
• RAD has to be modularized in a proper way otherwise creates a lots of confusions and problems.
• In case of high performance requirement, RAD cannot be ideal model.
9) List and explain five framework activities defined in PSP.
Answer: -
1. Planning: This activity isolates requirements and specifications to be decided prior to the development
and estimates the size and the cost of the project. Defect estimation is also made. Development tasks are
identified and scheduled is created.
2. High-Level Design: External specifications and requirements for each component to be constructed and
developed. Component design is also created. Prototypes are developed if requirements are complex.
3. High Level Design Review: Formal verification methods are applied to uncover errors in the design.
4. Development: The component level design is reviewed and refined. The code is generated, reviewed,
compiled and tested.
5. Postmortem: Using Metrics and measures the effectiveness of the process is determined. It provides
guidance for modification of process and its improvement.
10) Differentiate between Prescriptive process model and agile process model.
Answer: -
Prescriptive process model Agile process mode
Prescriptive process modelsstress detailed Agile process modelsemphasize project “agility” and
definition,identification, and applicationof process follow a set of principlesthat lead to a more
activates and tasks. informalapproach to software process.
A prescriptive model alsodescribes how each of Agile methods note that notonly do the software
theseelements are related to oneanother. requirements change, but so doteam members, the
technologybeing used.
It is Process oriented. It is people oriented.
It follows Life cycle model(waterfall, spiral) It follows Iterative andIncremental development
developmentmodel. model.
Documentation required is tobe comprehensive and Documentation required is tobe minimal and
constant. evolving.Predictive planning is required Adaptive
planning is required.
Customer’s role is important. Customer’s role is critical.
Formal communication isrequired. Informal communication isrequired.
To maintain quality heavyplanning and strict control To maintain quality continuouscontrol of requirements
withlate heavy testing is required. and development with continuoustesting is required.