0% found this document useful (0 votes)
20 views16 pages

Ase 1 2 3 Notes

The document covers various software engineering concepts including the Waterfall model, prototyping, class diagrams, unit testing, test-driven development, user testing types, architectural patterns, and emergent system properties. It discusses the components of the software process, principles of agile methods, critical systems, context and object models, and architectural design decisions. Each section provides detailed explanations and examples to illustrate the concepts.

Uploaded by

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

Ase 1 2 3 Notes

The document covers various software engineering concepts including the Waterfall model, prototyping, class diagrams, unit testing, test-driven development, user testing types, architectural patterns, and emergent system properties. It discusses the components of the software process, principles of agile methods, critical systems, context and object models, and architectural design decisions. Each section provides detailed explanations and examples to illustrate the concepts.

Uploaded by

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

AGILE SOFTWARE ENGINEERING

UNIT 1,2
1.​ What is waterfall in software development ? (PDF pg.30) (diagram
compulsory)
a.​ Requirements analysis and definition :
The system’s services, constraints, and goals are established by consultation
with system users. They are then defined in detail and serve as a system
specification.
b.​ System and software design The systems design process allocates the
requirements to either hardware or software systems by establishing an
overall system architecture. Software design involves identifying and
describing the fundamental software system abstractions and their
relationships.
c.​ C. Implementation and unit testing During this stage, the software design
is realized as a set of programs or program units. Unit testing involves
verifying that each unit meets its specification.
d.​ Integration and system testing The individual program units or programs
are integrated and tested as a complete system to ensure that the software
requirements have been met. After testing, the software system is
delivered to the customer.
e.​ Operation and maintenance Normally (although not necessarily), this is
the longest life cycle phase. The system is installed and put into practical
use.

2.​ What is the key feature prototyping model. (PDF pg 46 and diagram
compulsory)
●​ A software prototype can be used in a software development process
to help anticipate changes that may be required:
a.​ In the requirements engineering process, a prototype can help with the
elicita tion and validation of system requirements.
b.​ In the system design process, a prototype can be used to explore
particular soft ware solutions and to support user interface design.
●​ System prototypes allow users to see how well the system supports
their work.
●​ Developers are sometimes pressured by managers to deliver
throwaway proto types, particularly when there are delays in
delivering the final version of the software.
●​ However, this is usually unwise:
a.​ It may be impossible to tune the prototype to meet non-functional
requirements, such as performance, security, robustness, and reliability
requirements, which were ignored during prototype development.
b.​ Rapid change during development inevitably means that the prototype is
undocumented. The only design specification is the prototype code. This
is not good enough for long-term maintenance.
c.​ The changes made during prototype development will probably have
degraded the system structure. The system will be difficult and expensive
to maintain.
d.​ Organizational quality standards are normally relaxed for prototype
development. Prototypes do not have to be executable to be useful.

3.​ Explain the role of class diagrams in structural modeling. (PDF pf


130)
●​ Class diagrams are used when developing an object-oriented system
model to show the classes in a system and the associations between
these classes.
●​ When you are developing models during the early stages of the
software engineering process, objects represent something in the real
world, such as a patient, a prescription, a doctor, etc.
●​ Class diagrams in the UML can be expressed at different levels of
detail.
●​ When you are developing a model, the first stage is usually to look at
the world, identify the essential objects, and represent these as classes.
●​ The simplest way of writing these is to write the class name in a box.
●​ Class diagrams look like semantic data models.
●​ Semantic data models are used in database design. They show the data
entities, their associated attributes, and the relations between these
entities.
●​ The UML does not include a specific notation for this database
modeling as it assumes an object-oriented development process and
models data using objects and their relationships.

4.​ How does unit test help developer ? provide an example. (PDF pg
211)
●​ Unit testing is the process of testing program components, such as
methods or object classes.
​ This means that you should:
• test all operations associated with the object;
• set and check the value of all attributes associated with the object;
• put the object into all possible states. This means that you should simulate
all events that cause a state change.
​ Example of unit testing :
●​ The weather station object from the example, it has a single attribute,
which is its identifier.
●​ This is a constant that is set when the weather station is installed.
●​ You therefore only need a test that checks if it has been properly set
up.
●​ You need to define test cases for all of the methods associated with the
object such as reportWeather, reportStatus, etc.
●​ Ideally, you should test methods in isolation but, in some cases, some
test sequences are necessary.
●​ For example, to test the method that shuts down the weather station
instruments (shutdown), you need to have executed the restart method.

5.​ Explain test-driven development ? (PDF pg 221 and diagram


compulsory)
●​ Test-driven development (TDD) is an approach to program
development in which you interleave testing and code development.
●​ Test-driven development was introduced as part of agile methods such
as Extreme Programming.
​ The steps in the process are as follows:
1. You start by identifying the increment of functionality that is required.
This should normally be small and implementable in a few lines of code.
2. You write a test for this functionality and implement this as an automated
test. This means that the test can be executed and will report whether or not
it has passed or failed.
3. You then run the test, along with all other tests that have been
implemented. Initially, you have not implemented the functionality so the
new test will fail. This is deliberate as it shows that the test adds something
to the test set.
4. You then implement the functionality and re-run the test. This may involve
refactoring existing code to improve it and add new code to what’s already
there.
5. Once all tests run successfully, you move on to implementing the next
chunk of functionality.

6.​ Explain different type of user testing.(PDF pg no 228)


There are three different types of user testing :
a.​ In alpha testing, users and developers work together to test a system as it
is being developed. This means that the users can identify problems and
issues that are not readily apparent to the development testing team.
Developers can only really work from the requirements but these often do
not reflect other factors that affect the prac tical use of the software.
Alpha testing is often used when developing software products that are
sold as shrink-wrapped systems.
b.​ Beta testing takes place when an early, sometimes unfinished, release of a
soft ware system is made available to customers and users for evaluation.
Beta testers may be a selected group of customers who are early adopters
of the system.
Beta testing is therefore essential to discover interaction problems between
the software and fea tures of the environment where it is used.
Beta testing is also a form of marketing— customers learn about their system
and what it can do for them.
c.​ Acceptance testing is an inherent part of custom systems development.
It takes place after release testing.
It involves a customer formally testing a system to decide whether or not
it should be accepted from the system developer.
Acceptance implies that payment should be made for the system.

7.​ Explain in detail about architectural patterns. (PDF pg 155 and


diagram)
a.​ Layered architecture :
Organizes the system into layers with related functionality associated
with each layer. A layer provides services to the layer above it so the
lowest-level layers represent core services that are likely to be used
throughout the system.
A layered model of a system for sharing copyright documents held in
different libraries, as shown in Figure 6.7

b.​ Repository :
All data in a system is managed in a central repository that is accessible
to all system components. Components do not interact directly, only
through the repository.
Figure 6.9 is an example of an IDE where the components use.

c.​ Client–server :
In a client–server architecture, the functionality of the system is organized
into services, with each service delivered from a separate server.
Clients are users of these services and access servers to make use of them.
Example Figure 6.11 is an example of a film and video/DVD library
organized as a client–server system.

8.​ Name and briefly explain two types of UML Diagram.


1.​ Explain Class diagram (Q.No.3)
2.​ Sequence diagrams : (PDF pf 126) and diagram compulsory)
●​ Sequence diagrams in the UML are primarily used to model the
interactions between the actors and the objects in a system and the
interactions between the objects them selves.
●​ The UML has a rich syntax for sequence diagrams, which allows
many different kinds of interaction to be modeled.
●​ A sequence diagram shows the sequence of interactions that take
place during a particular use case or use case instance.
●​ This diagram models the interactions involved in the View patient
information use case, where a medical receptionist can see some
patient information.
●​ The objects and actors involved are listed along the top of the
diagram, with a dot ted line drawn vertically from these.
●​ Interactions between objects are indicated by annotated arrows.
●​ The annotations on the arrows indicate the calls to the objects, their
parameters, and the return values.

NOTE : Dear students, I have given you as many questions as I could find;
the rest you figure out on your own. Thank you.
UNIT 3
1.​ What are the components of software process? Explain.
Components of Software Process:
The processes that deal with the technical and management issues of software
development are collectively called the software process.
The relationship between these major component processes is shown in
Figure
There are clearly two major components in a software process:-
A development process: The development process specifies all the
engineering activities that need to be performed.
A project management process: The management process specifies how to
plan and control these activities so that cost, schedule, quality, and other
objectives are met.
Development and project management processes are the key to achieving the
objectives of delivering the desired software satisfying the user needs,
while ensuring high productivity and quality. During the project many
products are produced which are typically composed of many items. These
items keep evolving as the project proceeds, creating many versions on
the way. As development processes generally do not focus on evolution
and changes, to handle them another process called software
configuration control process is often used.
The objective of this component process is to primarily deal with managing
change, so that the integrity of the products is not violated despite
changes.
These component processes are distinct not only in the type of activities
performed in them, but typically also in the people who perform the
activities specified by the process. In a typical project, development
activities are performed by programmers, designers, testers, etc.; The
project management process activities are performed by the project
management; configuration control process activities are performed by a
group generally called the configuration controller and The process
management process activities are performed by the software engineering
process group (SEPG).
2.​ Write short note on spiral model.
Ans: The spiral model, originally proposed by Boehm, it is an
evolutionary software process model that couples the iterative nature
of prototyping with the controlled and systematic aspects of the linear
sequential model. It provides the potential for rapid development of
incremental versions of the software. 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.
spiral model that contains six task regions:
•Customer communication—tasks required to establish effective
communication between developer and customer.
• Planning—tasks required to define resources, timelines, and other
project related information. • Risk analysis—tasks required to assess
both technical and management risks. • Engineering—tasks required
to build one or more representations of the application. •Construction
and release—tasks required to construct, test, install, and provide user
support •Customer evaluation—tasks required to obtain customer
feedback based on evaluation of the software representations created
during the engineering stage and implemented during the installation
stage.
Each of the regions is populated by a set of work tasks, called a task
set.
3.​ What are the principles of agile method?
Ans: The principles of agile method are as follows:
4.​ State and explain the emergent systems properties with example.
Ans: Emergent System Properties: It has properties that are properties of
the system as a whole. The emergent properties cannot be attributed to
any specific part of the system. Rather, they only emerge once the system
components have been integrated.
There are two types of emergent properties:
1. Functional emergent properties when the purpose of a system only
emerges after its components are integrated. For example, a bicycle has
the functional property of being a transportation device once it has been
assembled from its components.
2. Non-functional emergent properties, which relate to the behavior of the
system in its operational environment. Reliability, performance, safety,
and security are examples of emergent properties. These are critical for
computer based systems, as failure to achieve a minimum defined level in
these properties usually makes the system unusable. Some users may not
need some of the system functions so the system may be acceptable
without them. However, a system that is unreliable or too slow is likely to
be rejected by all its users.
5.​ Explain the simple critical system with example.
Critical Systems: • Systems failure that can result insignificant economic losses,
physical damage or threats to human life. • They are technical or socio technical
systems that people depend on • If these systems fail to deliver their services as
expected then serious problems and significant loses may result critical systems
Safety-critical system – System whose failure may result in injury, loss of life or
serious environmental damage. Example Control system for a chemical
manufacturing plant • Mission-critical system – System whose failure may result in
the failure of some goal directed activity. Example Navigational system for a
spacecraft
Business-critical system – System whose failure may result in very high costs for the
business using that system. Example Customer accounting system in a bank.
EXAMPLE : The system is an insulin system as a safety-critical system. A software
controlled insulin pump is used by diabetics to simulate the function of the pancreas
which manufactures insulin , an essential hormone that metabolises blood glucose. It
measures blood glucose(sugar) using a micro-sensor and computes the insulin dose
required to metabolize the glucose. A common condition where the human pancreas
is unable to produce sufficient quantities of a harmone is called insulin.
6.​ Write short note on i) Context model, ii) Object model.
A.​Context Model: • At an early stage in the requirements elicitation and
analysis process boundaries of the system must be decided involving
system stakeholders In some cases the boundary between a system and
environment is relatively clear.
For example where an automated system is replacing an existing manual or
computerized system the environment of the new system is usually the same
as the existing system where as in other cases the stakeholders decide the
boundary.
For example in the library system the user decides the boundary whether to
include library catalogues for accessing or not. Once some decisions on the
boundaries of the system has been made part of the activity is definition of
that context.

B.​ Object Model: • Expressing the system requirements using object model,
designing using objects and developing using languages like C++ and
Java.
Object models developed during requirements analysis are used to represent
both data and its process.
They combine some uses of dataflow and semantic models.
They are also useful for showing how entities in the system may be classified
and composed of other entities.
Objects are executable entities with attributes and services of the object class
and many objects can be created from a class.
The following diagram shows an object class in UML as a vertically oriented
rectangle with three sections – name of the object, class attributes, operations
associated with the object.
7.​ Write short note on architectural design decisions.
Architectural design is a creative process where you design a system organization that will
satisfy the functional and non-functional requirements of a system. Because it is a creative
process, the activities within the process depend on the type of system being developed, the
background and experience of the system architect, and the specific requirements for the
system. It is therefore useful to think of architectural design as a series of decisions to be
made rather than a sequence of activities. During the architectural design process, system
architects have to make a number of structural decisions that profoundly affect the system
and its development process.
Based on their knowledge and experience, they have to consider the following fundamental
questions about the system:
1. Is there a generic application architecture that can act as a template for the system that is
being designed?
2. How will the system be distributed across a number of cores or processors?
3. What architectural patterns or styles might be used?
4. What will be the fundamental approach used to structure the system?
5. How will the structural components in the system be decomposed into subcomponents?
6. What strategy will be used to control the operation of the components in the system? 7.
What architectural organization is best for delivering the non-functional requirements of
the system? 8. How will the architectural design be evaluated?
9. How should the architecture of the system be documented?
Although each software system is unique, systems in the same application domain often have
similar architectures that reflect the fundamental concepts of the domain. For example,
application product lines are applications that are built around a core architecture with
variants that satisfy specific customer requirements. When designing a system
architecture, you have to decide what your system and broader application classes have
in common, and decide how much knowledge from these application architectures you
can reuse.
8.​ Difference between Traditional versus Modern Project Management
Aspect Traditional Project Modern Project Management
Management
1 Approach Linear and sequential Agile, iterative, and flexible.
(Waterfall approach).
2 Focus Focuses on completing Emphasizes delivering value and
predefined tasks and adapting to changes.
phases.
3 Flexibility Low flexibility; changes High flexibility; changes are
are difficult to welcomed and incorporated as
accommodate. needed.
4 Delivery Delivered at the end of Delivered incrementally in
the project after all smaller, usable increments.
phases are completed.
5 Risk Risks are identified and Risks are continuously assessed
Management mitigated at the start. and managed.
6 Customer Limited feedback after Continuous feedback throughout
Feedback project completion. the project.
7 Examples Construction projects, Software development, digital
manufacturing. transformation projects.

9.​ How does open-source development contribute to advancements in


software engineering? (PDF pg no 198 and 7.4)

10.​What is project scheduling in software engineering, why is it


important, and what are the techniques and tools used for it?
Project schedule simply means a mechanism that is used to communicate
and know about that tasks are needed and has to be done or performed and
which organizational resources will be given or allocated to these tasks and
in what time duration or time frame work is needed to be performed.
Effective project scheduling leads to success of project, reduced cost, and
increased customer satisfaction.
Scheduling in project management means to list out activities, deliverables,
and milestones within a project that are delivered.
It contains more notes than your average weekly planner notes.
The most common and important form of project schedule is Gantt chart.
Techniques and Tools :
●​ Time management: The project scheduling tools keep projects running
the way it is planned. There will be proper time management and better
scheduling of the tasks.
●​ Resource allocation: It provides the resources required for project
development. There will be proper resource allocation and it helps to
make sure that proper permissions are given to different individuals
involved in the project. It helps to monitor and control all resources in the
project.
●​ Team collaboration: The project scheduling tool improves team
collaboration and communication. It helps to make it easy to comment
and chat within the platform without relying on external software.
●​ User-friendly interface: Good project scheduling tools are designed to
be more user-friendly to enable teams to complete projects in a better and
more efficient way.

11.​What is the difference between Project Portfolio Management and


Project Management?
Aspect Project Portfolio Management Project Management

Project
Project Portfolio Management looks
Management focuses
at all the projects together as a whole
on handling one
to manage them.
Focus project at a time.

Project Portfolio Management Project Management


considers the overall picture of all deals with the specific
Scope projects in the portfolio. details of each project.

In Project
In Project Portfolio Management, Management,
decisions are made about which decisions are made
projects to prioritize based on about how to carry out
Decision strategic goals. and finish a particular
Making project.
Aspect Project Portfolio Management Project Management

Project Management
Project Portfolio Management
allocates resources
allocates resources like money and
within a single project
people across all projects to meet
Resource to meet its specific
overall objectives.
Allocation needs.

Project Portfolio Management Project Management


handles risks across all projects, manages risks within
Risk considering how they affect the the context of one
Management whole portfolio. project.

Project Management
Project Portfolio Management keeps
monitors the
track of the overall performance and
performance and
progress of all projects in the
Performance progress of each
portfolio.
Monitoring project.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy