0% found this document useful (0 votes)
11 views15 pages

Unit I

The document provides an overview of software engineering concepts, including software processes, project management methodologies, and agile practices such as Extreme Programming and Scrum. It outlines various software development life cycle models, their characteristics, and principles of agile software development. Additionally, it discusses business process engineering and product engineering, emphasizing the importance of adaptability and customer collaboration in software development.

Uploaded by

003 S GOKUL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views15 pages

Unit I

The document provides an overview of software engineering concepts, including software processes, project management methodologies, and agile practices such as Extreme Programming and Scrum. It outlines various software development life cycle models, their characteristics, and principles of agile software development. Additionally, it discusses business process engineering and product engineering, emphasizing the importance of adaptability and customer collaboration in software development.

Uploaded by

003 S GOKUL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

UNIT I- SOFTWARE PROCESS AND PROJECT MANAGEMENT

Introduction to Software Engineering, Software Process, Perspective and Specialized Process


Models .Introduction to Agility-Agile process-Extreme programming-XP Process.

PART-A
1.Write down the generic process framework that is applicable to any
software project / relationship between work product, task, activity and
system
Common process frame work
Process frame work activities
Umbrella activities
Frame work activities
Task sets

2. What is the difference between verification and validation


 Verification refers to the set of activities that ensure that software correctly
implements a specific function. Verification: "Are we building the product right?"
 Validation refers to a different set of activities that ensure that the software that
has been built is traceable to customer requirements. Validation: "Are we building
the right product?"
3. What are the two types of software products
1. Generic products: these are stand-alone systems that are produced by a
development Organization and sold in the open market to any customer who
wants to buy it.
2. Customized products: these are systems that are commissioned by a specific
customer and developed specially by some contractor to meet a special need.
4.What is software process? List its activities.
Software process is defined as the structured set of activities that are required to
develop the software system.
Activities – Specification, design & implementation, validation & evolution.
5.What are the various categories of software
 System software
 Application software
 Engineering/Scientific software
 Embedded software
 Web Applications
 Artificial Intelligence software
6. What are the umbrella activities of a software process
 Software project tracking and control.
 Risk management.
 Software Quality Assurance.
 Formal Technical Reviews.
 Software Configuration Management.
 Work product preparation and production.
 Reusability management.
 Measurement
7.What is Agile?
The word ‘agile’ means –
 Able to move your body quickly and easily.
 Able to think quickly and clearly.
In business, ‘agile’ is used for describing ways of planning and doing work
wherein it is understood that making changes as needed is an important part of the
job.
Business‘agililty’ means that a company is always in a position to take account
of the market changes.

8.What is Agile Manifesto?


The Agile Manifesto states that –
We are uncovering better ways of developing software by doing it and helping
others do it.
Through this work, we have come to value –
 Individuals and interactions over processes and tools.
 Working software over comprehensive documentation.
 Customer collaboration over contract negotiation.
 Responding to change over following a plan.
9.What is meant by Software engineering paradigm
The development strategy that encompasses the process, methods and tools and
generic phases is often referred to as a process model or software engineering
paradigm.
9 Define agility and agile team.
 Agility-Effective (rapid and adaptive) response to change (team members,
new technology, requirements)
 Effective communication in structure and attitudes among all team
members, technological and business people, software engineers and
managers。
 Drawing the customer into the team. Eliminate “us and them” attitude.
Planning in an uncertain world has its limits and plan must be flexible.

10.What are the Characteristics of Agility?


following are the characteristics of Agility –
Agility in Agile Software Development focuses on the culture of the whole team
with multi-discipline, cross-functional teams that are empowered and
selforganizing.
 It fosters shared responsibility and accountability.
 Facilitates effective communication and continuous collaboration.
 The whole-team approach avoids delays and wait times.

11.What is Extreme Programming


XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun
way to develop a software.
eXtreme Programming (XP) was conceived and developed to address the specific
needs of software development by small teams in the face of vague and changing
requirements.
12.Why is it called “Extreme
Extreme Programming takes the effective principles and practices to extreme
levels.
 Code reviews are effective as the code is reviewed all the time.
 Testing is effective as there is continuous regression and testing.
 Design is effective as everybody needs to do refactoring daily.
 Integration testing is important as integrate and test several times a day.  Short
iterations are effective as the planning game for release planning and iteration
planning..
13.What is Scrum
The Scrum approach is a general agile method but its focus is on managing
iterative development rather than specific agile practices. There are three phases
in Scrum:
1. The initial phase is an outline planning phase where you establish the general
objectives for the project and design the software architecture.
2. This is followed by a series of sprint cycles, where each cycle develops an
increment of the system.
14. What is Scaling out.
How agile methods can be introduced across a large organization with many years
of software development experience.
Project managers who do not have experience of agile methods may be reluctant
to accept the risk of a new approach.
Large organizations often have quality procedures and standards that all projects
are expected to follow and, because of their bureaucratic nature, these are likely
to be incompatible with agile methods.

15. What is Scrum master


The role of the Scrum Master is to protect the development team from external
distractions. At the end of the sprint the work done is reviewed and presented to
stakeholders (including the product owner).

PART-B
Explain the following:
(i) waterfall model
(ii) Spiral model
(iii)RAD mode
(iv) Prototyping model,

A Project management methodology based on asequential design process


Finishes one phase before another phase can begin
 SDLC Model
 Linear Sequential Model
 Simple to understand and easy to implement
(i) waterfall model
There are separate identified phases in the waterfall model:
1. Requirements analysis and definition
2. System and software design
3. Implementation and unittesting
4. Integration and system testing
5. Operation and maintenance
The main drawback of the waterfall model is the difficulty of accommodating
change after the process is underway. In principle, a phase has to be complete
before moving onto the next phase.

(ii)SPIRAL MODEL
The spiral model is divided into number of frame works. These frameworks
are
denoted by task regions.
Usually there are six task regions.
In spiral model project entry point axis is defined.
The task regions are:
Customer communication ,Planning Risk analysis., Engineering, Construct
and release and Customer evaluation.
Drawbacks
1. It is based on customer communication.
2. It demands considerable risk assessment.
It provides the potential for rapid development of increasingly more complete
versions of the software.
The spiral model can be adopted to apply throughout the entire lifecycle of the
application from concept development tomaintenance.
Advantages
 In this approach, the project monitoring is easy and more effective compared to
other models.
 It reduces the number of risk in softwaredevelopment before they become
serious problem.
 Suitable for very high risk.
 Schedule and cost is more realistic
(ii) RAD Model
RAD or Rapid Application Development process is an adoption of the
waterfall model; it targets at developing software in a short span of time.
RAD follows the iterative SDLC RAD model has following phases
Business Modeling
Data Modeling
Process Modeling
Application Generation
IBM first proposed the Rapid Application Development or RAD Model in the
1980s.
The RAD model is a type of incremental process model in which there is a
concise development cycle. The RAD model is used when the requirements are
fully understood and the component-based construction approach is adopted.
iv) Prototyping Model
Prototype methodology is defined as a Software Development model in which a
prototype is built, test, and then reworked when needed until an acceptable
prototype is achieved. It also creates a base to produce the final system.
Software prototyping model works best in scenarios where the project's
requirements are not known. It is an iterative, trial, and error method which take
place between the developer and the client
Often, a customer defines a set of general objectives for software, but does not
identify detailed requirements for functions and features.
 In this case Prototyping is best suited
 Prototyping can be used together with other models for elicitation
requirements
 The prototype can serve as “the first system.”
2. Discuss the various life cycle models in software development?
 SDLC is a process followed for a software project, within a software
organization.
 It consists of a detailed plan describing how to develop, maintain, replace
and alter or enhance specific software.
The life cycle defines a methodology for improving the quality of software
and the overall development process.
A typical Software Development Life Cycle consists of the following stages −

PLANNING
Requirement analysis is the most important and fundamental stage in SDLC. It
is performed by the senior members of the team with inputs from the customer,
the sales department, market surveys and domain experts in the industry.
This information is then used to plan the basic project approach and to conduct
product feasibility study in the economical, operational and technical areas.
Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage.
DEFINING
Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer
or the market analysts.
This is done through an SRS (Software Requirement Specification)
document which consists of all the product requirements to be designed and
developed during the project life cycle.
DESIGNING
SRS is the reference for product architects to come out with the best
architecture for the product to be developed. Based on the requirements
specified in SRS, usually more than one design approach for the product
architecture is proposed and documented in a DDS - Design Document
Specification.

A design approach clearly defines all the architectural modules of the product
along with its communication and data flow representation with the external
and third party modules (if any). The internal design of all the modules of the
proposed architecture should be clearly defined with the minutest of the details
in DDS.

BUILDING
In this stage of SDLC the actual development starts and the product is built.
The programming code is generated as per DDS during this stage.
If the design is performed in a detailed and organized manner, code generation
can be accomplished without much hassle.

Developers must follow the coding guidelines defined by their organization


and programming tools like compilers, interpreters, debuggers, etc. are used to
generate the code

. Different high level programming languages such as C, C++, Pascal, Java and
PHP are used for coding.

The programming language is chosen with respect to the type of software being
developed.
TESTING
This stage is usually a subset of all the stages as in the modern SDLC models,
thetesting activities are mostly involved in all the stages of SDLC.
However, this stage refers to the testing only stage of the product where
product defects are reported, tracked, fixed and retested, until the product reaches
the quality standards defined in the SRS.

DEPLOYMENT
Once the product is tested and ready to be deployed it is released formally in
the appropriate market. Sometimes product deployment happens in stages as
per the business strategy of that organization.
The product may first be released in a limited segment and tested in the real
business environment (UAT- User acceptance testing).

Then based on the feedback, the product may be released as it is or with


suggested enhancements in the targeting market segment.
2. List the principles of agile software development

 There are 12 agile principles mentioned in the agile.


 Agile principles are guidelines for flexible and efficient software
development. They emphasize frequent delivery, embracing change,
collaboration, and continuous improvement.
 The focus is on delivering value, maintaining a sustainable work pace, and
ensuring technical excellence.
These principles include:
1. Ensuring customer satisfaction through the early delivery of software.
2. Being open to changing requirements in the stages of the development.
3. Frequently delivering working software with a main focus on preference
for timeframes.
4. Promoting collaboration between business stakeholders and developers as
an element.
5. Structuring the projects around individuals. Providing them with the
necessary environment and support.
6. Prioritizing face to face communication whenever needed.
7. Considering working software as the measure of the progress.
8. Fostering development by allowing teams to maintain a pace indefinitely.
9. Placing attention on excellence and good design practices.
10.Recognizing the simplicity as crucial factor aiming to maximize
productivity by minimizing the work.
11.Encouraging self organizing teams as the approach to design and build
systems.
12.Regularly reflecting on how to enhance effectiveness and to make
adjustments accordingly.
3.Write note on business process engineering and product engineering
Business Engineering
 Business process engineering is a way in which organizations study their
current business processes and develop new methods to improve
productivity, efficiency, and operational costs.
 As a business process engineer, you will examine the way an organization
operates, its long-term performance goals, and recommend ways it can
work more seamlessly to achieve overall improvement.
 Many business process engineers work as consultants contracted by
companies seeking improvements to their methodology and infrastructure.
 It refers to the process of designing and developing a device, assembly, or
system such that it is produced as an item for sale through some production
manufacturing process.
 Business engineering usually entails activity dealing with issues of cost,
reducibility, quality, performance, reliability, serviceability, intended
lifespan and user features.

Product engineering
 These product characteristics are generally all sought in the attempt to
make the resulting product attractive to its intended market and a
successful contributor to the business of the organization that intends to
offer the product to that market.
 It includes design, development and transitioning to manufacturing of the
product. The term encompasses developing the concept of the product and
the design and development of its mechanical, electronics and software
components.
 After the initial design and development is done, transitioning the product
to manufacture it in volumes is considered part of product engineering.
 Product engineers are the technical interface between the component
development team and the production side (Front End and Back End),
especially after the development phase and qualifications when the high
volume production is running.
 Product engineers improve the product quality and secure the product
reliability by balancing the cost of tests and tests coverage that could
impact the production fall-off. They support failure analysis request from
customers.
4. Describe in detail about Extreme programming ?
XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun
way to develop a software.

eXtreme Programming (XP) was conceived and developed to address the


specific needs of software development by small teams in the face of vague
and changing requirements.

Extreme Programming is one of the Agile software development


methodologies. It provides values and principles to guide the team behavior.
The team is expected to self-organize. Extreme Programming provides specific
core practices where −

 Each practice is simple and self-complete.


 Combination of practices produces more complex and emergent behavior.

Embrace Change
A key assumption of Extreme Programming is that the cost of changing a
program can be held mostly constant over time.

This can be achieved with −

 Emphasis on continuous feedback from the customer


 Short iterations
 Design and redesign
 Coding and testing frequently
 Eliminating defects early, thus reducing costs
 Keeping the customer involved throughout the development
 Delivering working product to the customer

Extreme Programming in a Nutshell


Extreme Programming involves −
 Writing unit tests before programming and keeping all of the tests
running at all times. The unit tests are automated and eliminates defects
early, thus reducing the costs.

 Starting with a simple design just enough to code the features at hand and
redesigning when required.

 Programming in pairs (called pair programming), with two programmers


at one screen, taking turns to use the keyboard. While one of them is at
the keyboard, the other constantly reviews and provides inputs.

 Integrating and testing the whole system several times a day.

 Putting a minimal working system into the production quickly and


upgrading it whenever required.

 Keeping the customer involved all the time and obtaining constant
feedback.
Iterating facilitates the accommodating changes as the software evolves with
the changing requirements.

You might also like