Unit 02 (A)
Unit 02 (A)
Software Engineering(CE1043)
Outlines
2 Requirement Engineering
3 Eliciting Requirements
▪ Principle 1: Be agile.
▪ For every process activity, action, and task should focus on the quality of the work
product that has been produced.
▪ Principle 3: Be ready to adapt.
▪ adapt your approach to conditions imposed by the problem, the people, and the
Core Principles : Process
▪ The methods must be established to manage the way changes are requested,
approved, and implemented.
▪ Principle 7: Assess risk.
▪ Create only those work products that provide value for other process activities,
Core Principles: Practice
▪ Principle 1: Divide and conquer.
▪ Spend the time to understand the problem before meet with others.
▪ A sketch or drawing can often provide clarity when words fail to do the job
▪ Principle 9: (a) Once you agree, move on. (b)If you cannot agree, move on. (c) If a feature or
function is unclear and cannot be clarified at the moment, move on.
▪ Principle 10: Negotiation is not a contest or a game. It works best when both parties win.
▪ If the team has collaborated well, all parties have a common goal. Still, negotiation will
Planning Principles
▪ Principle 1: Understand the scope of the project.
▪ The plan should identify how the software team intends to ensure quality.
▪ Principle 9: Describe how you intend to accommodate change.
▪ Even the best planning can be obviated by uncontrolled change. You should identify
how changes are to be accommodated as software engineering work proceeds.
Modeling Principles
Create models to gain a better understanding of the actual entity to be built. The modeling principles are:
▪ Principle 1: The primary goal of the software team is to build software, not create
models.
▪ Agility means getting software to the customer in the fastest possible time.
▪ Principle 2: Travel light –don’t create more models than you need.
▪ Every model that is created must be kept up-to-date as changes occur.
▪ Create only those models that make it easier and faster to construct the
software.
▪ Principle 3: Strive to produce the simplest model that will describe the problem of
the software.
▪ software that is easier to integrate, easier to test, and easier to maintain.
Modeling Principles(Cont..)
▪ Principle 5: Be able to state an explicit purpose for each model that is created.
▪ Every time you create a model, ask yourself why you’re doing so. If you can’t provide
solid justification for the existence of the model, don’t spend time on it.
▪ Principle 6: Adapt the models you develop to the system at hand.
▪ Principle 7: Try to build useful models, but forget about building perfect models.
▪ When building requirements and design models, that the models should be complete
and consistent .
▪ Principle 8: Don’t become dogmatic about the syntax of the model. If it communicates
content successfully, representation is secondary.
▪ Although everyone on a software team should try to use consistent notation during
modeling.
▪ Principle 9: If your instincts tell you a model isn’t right even though it seems OK on paper,
Modeling Principles(Cont..)
▪ Software architecture is the skeleton of the system to be built. It affects interfaces, data
structures, program control flow and behavior.
▪ Principle 3: Design of data is as important as design of processing.
▪ Data design is an essential element of architectural design. A well-structured data design
helps to simplify program flow, makes the design and implementation of software
components easier.
Modeling Principles: Design
▪ Principle 5: User interface design should be tuned to the needs of the end user. However, in every case,
it should stress ease of use.
▪ The user interface is the visible manifestation of the software.
▪ Coupling is achieved in many ways— via a component interface, by messaging, through global
data. As the level of coupling increases, the likelihood of error propagation also increases .
▪ Principle 8: Design representations should be easily understandable.
▪ Principle 3: Pick a programming language that meets the needs of the software to be
built and the environment in which it will operate
▪ Principle 4: Select a programming environment that provides tools that will make your
work easier
▪ Principle 5: Create a set of unit tests that will be applied once the component you code
is completed
Coding Principles: Programming
▪ Principle 4: Understand the software architecture and create interfaces consistent with it
▪ Principle 5: Keep conditional logic as simple as possible
▪ Principle 6: Create nested loops in a way that makes them easily testable
▪ In this context the Pareto principle implies that 80 percent of all errors uncovered
during testing will likely be traceable to 20 percent of all program components.
▪ Principle 4: Testing should begin “in the small” and progress toward testing “in the
large”
Deployment Principles
▪ Principle 1: Customer expectations for the software must be managed.
▪ the customer expects more than the team has promised to deliver, and disappointment occurs
immediately.
▪ Principle 2: A complete delivery package should be assembled and tested.
▪ A CD-ROM or other media (including Web-based downloads) containing all executable
software, support data files, support documents, and other relevant information should be
assembled and thoroughly beta-tested with actual users.
▪ Principle 3: A support regime must be established before the software is delivered.
▪ An end user expects responsiveness and accurate information when a question or problem
arises.
▪ Principle 4: Appropriate instructional materials must be provided to the user.
▪ The software team delivers more than the software itself. Appropriate training aids (if
required) should be developed and troubleshooting guidelines should be provided.
Requirement Engineering
It provides the appropriate mechanism for understanding
Any requirement which specifies what Any requirement which specifies how
the system Should do. the system performs a certain
function.
•Add Article: The system should allow users to add new articles or books to the library database.
•Update Article: The system should enable users to update the details of existing articles or books.
•Delete Article: The system should provide the functionality to remove articles or books from the
library database.
•Inquiry Members: The system should allow for querying or viewing information about library
members.
•Inquiry Issuance: The system should enable users to inquire about the issuance of articles, such
as which articles have been issued and to whom.
•Check out Article: The system should handle the process of checking out articles, allowing
members to borrow them.
•Check In Article: The system should facilitate the return of borrowed articles, updating their
status in the database.
•Inquiry Waiting for Approvals: The system should allow users to inquire about any pending
approvals related to article requests or other operations.
•Reserve Article: The system should enable users to reserve articles, ensuring that they can
borrow them when available.
LIBRARY MANAGEMENT SYSTEM
Non-function Requirements
•Safety Requirements: These refer to the measures that ensure the system operates safely
without causing harm to users or data. This could involve data protection and handling
errors effectively.
•Security Requirements: These involve ensuring that the system is secure from
unauthorized access or attacks, protecting sensitive information like user data and
transaction records.
•Software Constraints: These refer to any limitations or constraints related to the software,
such as compatibility with certain hardware, software performance benchmarks, or any
other limitations imposed by the software's design or environment.
Requirements Engineering Task
A list of stakeholders
“How are analysis patterns and classes recognized in the first place? “
“Who defines them, categorizes them, and readies them for use on
subsequent projects? “
The answers to these questions lie in domain analysis
The goal of domain analysis is straightforward: to find or create those
analysis classes and/or analysis patterns that are broadly applicable so that
they may be reused.
Software domain analysis is the identification, analysis, and specification of
common requirements from a specific application domain, typically for
reuse on multiple projects within that application domain
The role of the domain analyst is to discover and define analysis patterns,
analysis classes, and related information that may be used by many people
working on similar but not necessarily the same applications
INPUT OUTPUT FOR DOMAIN ANALYSIS
QUALITY FUNCTION DEPLOYMENT (QFD)
This is a technique that translates the needs of the customer into technical
requirements for software
1. Normal requirements
2. Expected requirements
3. Exciting requirements
THE REQUIREMENT ANALYSIS MODEL
Describe the system from the user's Use state diagrams to represent the
point of view state of the system,
Diagram
Diagram
Diagram Diagram Diagram
State
Flow
Data
ANALYSIS MODELING APPROACHES
Actor
Association
An actor is an entity that interacts
directly with the system but that is An actor and use case
not part of system can be associated to
indicate that the actor
Actor may be people, computer participates in that use
hardware, other systems, etc. case
•Primary Actor: The main entity that initiates the use case to achieve a specific goal.
•Secondary Actor: An entity that supports the primary actor or the system in achieving
the goal of the use case but doesn't directly initiate it.
Example: Online Shopping System
Use Case: Place Order
•Primary Actor: Customer
• Description: The customer wants to purchase products from an online store
•Secondary Actor: Payment Gateway
• Description: The payment gateway handles the transaction processing when
the customer makes a payment.
Use Case Flow:
1.Customer (Primary Actor) selects products and proceeds to checkout.
2.The system displays the order summary and requests payment.
3.Customer (Primary Actor) enters payment details.
4.Payment Gateway (Secondary Actor) processes the payment and confirms the
transaction.
5.The system confirms the order and updates the inventory.
CONT.
Generalization Extends
Include Constraint
An include relationship is a Show condition exists
relationship in which one use
case includes the functionality of between actors and activity
another use case
The include relationship supports
the reuse of functionality in a
use-case model.
EXAMPLE OF EXTENDS AND INCLUDE
Includes
Ensure that actors are focused, each actor should have a single, coherent
purpose. If a real world object contains multiple purpose, capture them with
separate actors
Library management systems help libraries keep track of the books and
their checkouts, as well as members’ subscriptions and profiles.
• Register User
• Add Article
Reserve Article Librarian
• Update Article
Set user Member
Permission
• Delete Article
Search Article
Guest
• Inquiry Members
Check Account
• Inquiry Issuance
Prepare Library
• Check out Article Database
• Check in Article
USE CASE DIAGRAM LIBRARY MANAGEMENT
Library Management System
1. Login
10. Request
registration
2. Register user
.3. Manage
member
permission Guest
4. Add Article
11. Check
account
5. Delete Article
13.Search by
title
Who is the primary actor, the secondary actor (s)? What are the actor’s goals?
Will the actor have to inform the system about changes in the external
environment?
SRS Contains
manuals properly
Standard Template for writing SRS
Reading Suggestions
✔ 2.4 Operating Environment
✔ 1.4 Project Scope
✔ 2.5 Design and Implementation Constraints
✔ 1.5 References
Standard Template for writing SRS