Documente Academic
Documente Profesional
Documente Cultură
SOFTWARE
1. Communication:
The software development starts with the
communication between customer and developer
to gather requirements.
2. Planning:
It consists of complete estimation, scheduling for
project development and tracking.
1. Communication
In this phase, developer and customer meet and
discuss the overall objectives of the software.
2. Quick design:
Quick design is implemented when requirements are
known.
It includes only the important aspects like input and
output format of the software.
It focuses on those aspects which are visible to the
user rather than the detailed plan.
It helps to construct a prototype.
3. Modeling quick design:
This phase gives the clear idea about the development of
software because the software is now built.
It allows the developer to better understand the
exact requirements.
4. Construction of prototype:
The prototype is evaluated by the customer itself.
5. Deployment, delivery, feedback:
If the user is not satisfied with current prototype then it
refines according to the requirements of the user.
The process of refining the prototype is repeated until
all the requirements of users are met.
When the users are satisfied with the developed
prototype then the system is developed on the basis of
final prototype.
Advantages of Prototyping Model
Prototype model need not know the detailed input, output,
processes, adaptability of operating system and full machine
interaction.
In the development process of this model users are actively
involved.
The development process is the best platform to understand
the system by the user.
Errors are detected much earlier.
Gives quick user feedback for better solutions.
Disadvantages of Prototyping Model:
The client involvement is more and it is not always
considered by the developer.
It is a slow process because it takes more time for
development.
Many changes can disturb the rhythm of the development
team.
It is a thrown away prototype when the users are confused
with it.
THE SPIRAL MODEL
Improved efficiency
Minimized expenditures
THE UNIFIED PROCESS PHASES
The Unified Process is not simply a process, but rather an
extensible framework which should be customized
for specific organizations or projects.
Unified Process characteristics
Iterative and incremental: Each iteration results in
an increment, which is a release of the system that contains
added or improved functionality compared with the
previous release.
Architecture-centric: The Unified Process insists that
architecture sit at the heart of the project team's efforts to
shape the system.
Risk-focused: The Unified Process requires the project team
to focus on addressing the most critical risks early in the
project life cycle.
Project lifecycle (Phases of Unified Process)
Analysis
Capturing of Stories in Parking lot
Prioritize stories in Parking lot
Scrubbing of stories for estimation
Define Iteration SPAN(Time)
Resource planning for both Development and QA teams
Design
Break down of tasks
Test Scenario preparation for each task
Regression Automation Framework
Execution
Coding
Unit Testing
Execution of Manual test scenarios
Defect Report generation
Conversion of Manual to Automation regression test cases
Mid Iteration review
End of Iteration review
Wrapping
Small Releases
Regression Testing
Demos and reviews
Develop new stories based on the need
Process Improvements based on end of iteration review comments
Closure
Pilot Launch
Training
Production Launch
SLA Guarantee assurance
Review SOA strategy
Production Support
There are two storyboards available to track the work on
a daily basis:
Story Cardboard
This is a traditional way of collecting all the stories in a
board in the form of stick notes to track daily XP activities.
As this manual activity involves more effort and time, it is
better to switch to an online form.
Online Storyboard
Online tool Storyboard can be used to store the
stories. Several teams can use it for different purposes.
Agile Model Traditional/Waterfall Model
•Agile method proposes incremental •Development of the software flows
and iterative approach to software sequentially from start point to end
design point.
•The agile process is broken into •The design process is not broken
individual models that designers into an individual models
work on
•The customer has early and •The customer can only see the
frequent opportunities to look at product at the end of the project
the product and make decision and
changes to the project
•Agile model is considered •Waterfall model are more secure
unstructured compared to the because they are so plan oriented
waterfall model
•Small projects can be •d can be estimated and completed.
implemented very quickly. For
large projects, it is difficult to
estimate the development time.
SOFTWARE REQUIREMENTS & CATEGORIES
The software requirements are description of
features and functionalities of the target system.
A software requirement can be of 3 types:
Functional requirements
Non-functional requirements
Domain requirements
Functional Requirements
Requirements, which are related to functional aspect of
software fall into this category. They define functions and
functionality within and from the software system.
These are represented or stated in the form of input to be
given to the system, the operation performed and the
output expected.
They are basically the requirements stated by the user
which one can see directly in the final product, unlike the
non-functional requirements.
EXAMPLES -
Search option given to user to search from various invoices.
User should be able to mail any report to management.
Users can be divided into groups and groups can be given
separate rights.
Should comply business rules and administrative
functions.
Software is developed keeping downward compatibility
intact.
Non-Functional Requirements
Requirements, which are not related to functional aspect of
software, fall into this category.
They are implicit or expected characteristics of software,
which users make assumption of.
These are basically the quality constraints that the system
must satisfy according to the project contract.
The priority or extent to which these factors are implemented
varies from one project to other.
They are also called non-behavioral requirements.
Non-functional requirements include -
Security
Logging
Storage etc
Reliability
Scalability
Performance
Reusability
Flexibility
Product requirements – Requirements which specify
that the delivered product must behave in a
particular way.
Efficiency requirements: Describe the extent to which the
software makes optimal use of resources
Reliability requirements: Describe the acceptable failure
rate of the software
Portability requirements: Describe the ease with which the
software can be transferred from one platform to another.
Usability requirements: Describe the ease with which users
are able to operate the software
Organizational requirements – Requirements which
are a consequence of organizational policies.
Delivery requirements: Specify when the software and its
documentation are to be delivered to the user.
Implementation requirements: Describe requirements
such as programming language and design method.
Standards requirements: Describe the process
standards to be used during software development
External requirements – Requirements which arise
from factors which are external to the system and
its development process.
Interoperability requirements: Define the way in which
different computer based systems will interact with each
other in one or more organizations.
Ethical requirements: Specify the rules and regulations
of the software so that they are acceptable to users.
Legislative requirements: Ensure that the software
operates within the legal jurisdiction.
Domain requirements:
Domain requirements are the requirements which are
characteristic of a particular category or domain of
projects.
The basic functions that a system of a specific domain
must necessarily exhibit come under this category.
For instance, in an academic software that maintains
records of a school or college, the functionality of being able
to access the list of faculty and list of students of each grade
is a domain requirement.
These requirements are therefore identified from that
domain model and are not user specific
REQUIREMENTS ENGINEERING
Requirements convey the expectations of users from
the software product.
The requirements can be obvious or hidden, known or
unknown, expected or unexpected from client’s point
of view.
Requirement Engineering is the process of
defining, documenting and maintaining the
requirements.
It is a process of gathering and defining service
provided by the system.
Requirements Engineering Process consists of the
following main activities:
Feasibility study
Requirements elicitation
Requirements specification
Requirements verification and validation
Requirements management
Feasibility study
analysts does a detailed study about whether the
desired system and its functionality are feasible to
develop.(Economical, Technical etc)
Requirements Elicitation/Gathering:
It is related to the various ways used to gain knowledge
about the project domain and requirements.
The various sources of domain knowledge include
customers, business manuals, the existing software
of same type, standards and other stakeholders of the
project.
The techniques used for requirements elicitation
include interviews, brainstorming, task analysis,
Delphi technique, prototyping, etc.
Elicitation does not produce formal models of the
requirements understood.
Instead, it widens the knowledge domain of the
analyst and thus helps in providing input to the next
stage.
Requirement Elicitation/Gathering Process
Written interviews
Adaptive to changes.
Prioritize requirements.
Use case
Actor
Association
System boundary
Use Case
A Use Case represents a discrete unit of interaction
between a user (human or machine) and the system.
This interaction is a single unit of meaningful work, such
as Create Account or View Account Details.
Each Use Case describes the functionality to be built in
the proposed system, which can include another Use
Case's functionality or extend another Use Case with its
own behavior.
Depicted using ellipse.
A Use Case description will generally includes:
General comments and notes describing the use case.
Requirements - functional requirements to be provided to the end
user, such as <ability to update order>.
Constraints - The formal rules and limitations a Use Case operates
under, defining what can and cannot be done. These include: Pre/Post
conditions
Scenarios – Formal, sequential descriptions of the steps taken to
carry out the use case, or the flow of events that occur during a Use
Case instance.
Additional attributes, such as implementation phase, version
number, complexity rating, stereotype and status.
Actor
Use Cases are typically related to 'actors', which are
human or machine entities that use or interact with
the system to perform a piece of meaningful work
that helps them to achieve a goal.
The set of Use Cases an actor has access to defines
their overall role in the system and the scope of their
action.
An actor is shown as a stick figure in a use case diagram
depicted "outside" the system boundary
Association
It is an interaction between the actor and the use
case.
It is depicted as a solid line.
System Boundary
RELATIONSHIPS IN USE CASES
A relationship between two use cases is basically a
dependency between the two use cases.
Defining a relationship between two use cases is
the decision of the modeler of the use case diagram.
This reuse of an existing use case using different
types of relationships reduces the overall effort
required in defining use cases in a system.
Use case relationships can be one of the following:
Include
Exclude
Generalization
Include:
When a use case is depicted as using the
functionality of another use case as a part of its
business process flow, this relationship between the
use cases is named as an include relationship.
An include relationship is depicted with a directed
arrow having a dotted shaft.
The tip of the arrowhead points to the child use case
and the parent use case is connected at the base of
the arrow.
The stereotype "<<include>>" identifies the
relationship as an include relationship.
Extend
In an extend relationship between two use cases, the
child use case adds to the existing functionality and
characteristics of the parent use case.
An extend relationship is depicted with a directed
arrow having a dotted shaft, similar to the include
relationship.
The tip of the arrowhead points to the parent use
case and the child use case is connected at the base
of the arrow.
The stereotype "<<extend>>" identifies the relationship
as an extend relationship
Generalizations
A generalization relationship is also a parent-child
relationship between use cases.
The child use case in the generalization relationship has
the underlying business process meaning, but is an
enhancement of the parent use case.
In a use case diagram, generalization is shown as a
directed arrow with a triangle arrowhead.
The child use case is connected at the base of the
arrow.
The tip of the arrow is connected to the parent use
case.
HOW TO CREATE USE CASE DIAGRAM
Step 1 - Identify the actors
Step 2 - Identify the use case
Relationship
CLASSES
Essential elements of class :
Class Name
Attributes
Operations
Though there are two stereotypes users can use their own
stereotype to represent the type of dependency between
two packages.
<<import>> - one package imports the functionality
of other package
<<access>> - one package requires help from
functions of other package
HOW TO CREATE PACKAGE DIAGRAM
Step 1 - Identify the packages present in the
system
Step 2 - Identify the dependencies
OBJECT DIAGRAM
Object diagrams are derived from class
diagrams so object diagrams are dependent
upon class diagrams.
Object diagrams also represent the static view
of a system but this static view is a snapshot of
the system at a particular moment.
Object diagrams are used to render a set of
objects and their relationships as an
instance.
PURPOSE OF OBJECT DIAGRAMS
Asynchronous Message
Asynchronous messages don't need a reply for interaction
to continue. Like synchronous messages, they are drawn
with an arrow connecting two lifelines; however, the
arrowhead is usually open and there's no return message
depicted.
Reply or Return Message
A reply message is drawn with a dotted line and an open
arrowhead pointing back to the original lifeline.
Self Message
A message an object sends to itself, usually shown as a U
shaped arrow pointing back to itself.
Create Message
This is a message that creates a new object. Similar
to a return message, it's depicted with a dashed line
and an open arrowhead that points to the rectangle
representing the object created.
Delete Message
This is a message that destroys an object. It can be shown
by an arrow with an x at the end.
Found Message
A message sent from an unknown recipient, shown by an
arrow from an endpoint to a lifeline.
Lost Message
A message sent to an unknown recipient. It's shown by an
arrow going from a lifeline to an endpoint, a filled circle or
an x.
Duration Message: A message defines a particular
communication between Lifelines of an Interaction.
Duration message shows the distance between two
time instants for a message invocation.
Note:
A note (comment) gives the ability to attach various
remarks to elements. A comment carries no semantic
force, but may contain information that is useful to a
modeler.
Sequence Fragments
A sequence fragment is represented as a box, called a
combined fragment, which encloses a portion of the
interactions within a sequence diagram
The fragment operator (in the top left cornet)
indicates the type of fragment
Fragment types: ref, assert, loop, break, alt, opt, neg
Operator Fragment Type
Alternative multiple fragments: only the one whose condition
alt
is true will execute.
Loop: the fragment may execute multiple times, and the guard
loop
indicates the basis of iteration.
Object Flow
Object flow refers to the creation and modification of
objects by activities. An object flow arrow from an
action to an object means that the action creates or
influences the object.
Decisions and Branching
A diamond represents a decision with alternate paths.
When an activity requires a decision prior to moving
on to the next activity, add a diamond between the two
activities. The outgoing alternates should be labeled
with a condition or guard expression. You can also
label one of the paths "else.“
Guards
State
Transition – We use a solid arrow to represent the
transition or change of control from one state to another.
The arrow is labelled with the event which causes
the change in state.
Disadvantages:
The software developer needs to be expert in their work
to develop software under this methodology.
The development process in this methodology is very
complex and not exactly organized.
Integration throughout the process of software development
adds the confusion that causes more issues during the
stages of testing.
This process is too complex therefore it is very hard to
understand.
THE 6 RUP BEST PRACTICES
1.0 Develop Iteratively: The (SRS) keeps on evolving throughout the
development process and loops are created to add them without
affecting the cost of development.
2.0 Manage Requirements: The business requirements
documentation and project management requirements need to be
gathered properly from the user in order to reach the targeted goal.
3.0 Use Components: The components of large project which are
already tested and are in use can be conveniently used in other
projects.
4.0 Model Visually: Use of Unified modeling language (UML)
facilitates the analysis and design of various components.
Diagrams and models are used to represent various components and their
interactions.
5.0 Verify Quality: Testing and implementing effective project quality
management should be a major part of each and every phase of the
project from initiation to delivery (aka the project management life
cycle).
6.0 Control Changes: Synchronization of various parts of the
system becomes all the more challenging when the parts are being
developed by various teams working from different geographic
locations on different development platforms. Hence special care
should be taken in this direction so that the changes can be
controlled.
THE RUP PHASES
The four phases are:
Inception - The idea for the project is stated. The
development team determines if the project is worth
pursuing and what resources will be needed.
Elaboration - The project's architecture and
required resources are further evaluated. Developers
consider possible applications of the software and costs
associated with the development.
Construction - The project is developed and
completed. The software is designed, written, and tested.
Transition - The software is released to the public.
Final adjustments or updates are made based on
feedback from end users.
THE RUP 9 PRINCIPLES OR DISCIPLINES
The Business Modeling Discipline: The goal is to
understand the business of the organization, usually
confined to the scope of the business that is relevant to
the system being developed.
Process •The data object that is declared in the data modeling phase
Modeling is transformed to achieve the information flow necessary to
implement a business function
•It is useful when you have to reduce the •Not all application is compatible with RAD
overall project risk
•It is adaptable and flexible to changes •When technical risk is high, it is not
suitable
•It is easier to transfer deliverables as •If developers are not committed to
scripts, high-level abstractions and delivering software on time, RAD projects
intermediate codes are used can fail
•Due to code generators and code reuse, •Reduced features due to time boxing,
there is a reduction of manual coding where features are pushed to a later
version to finish a release in short period
•Each phase in RAD delivers highest •Progress and problems accustomed are
priority functionality to client hard to track as such there is no
documentation to demonstrate what has
been done
•With less people, productivity can be •Requires highly skilled designers or
increased in short time developers
TEST DRIVEN/FIRST DEVELOPMENT
It is a software development process that relies on the
repetition of a very short development cycle: first
the developer writes an (initially failing) automated
test case that defines a desired improvement or new
function, then produces the minimum amount of
code to pass that test, and finally refactors the new
code to acceptable standards.
The following sequence of steps is generally followed:
Add a test
Run all tests and see if the new one fails
Write some code
Run tests
Refactor code
Repeat
QUALITY FUNCTION DEPLOYMENT
Quality function deployment (QFD) is the
translation of user requirements and requests
into product designs.
The goal of QFD is to build a product that does
exactly what the customer wants instead of
delivering a product that emphasizes expertise
the builder already has.
QFD identifies three types of requirements:
Normal requirements: These requirements reflect
objectives and goals stated for a product or system
during meetings with the customer.
Expected requirements: These requirements are
implicit to the product or system and may be so
fundamental that the customer does not explicitly state
them.
Exciting requirements: These requirements reflect
features that go beyond the customer’s expectations
and prove to be very satisfying when present.
Benefits of QFD
TYPES OF STAKEHOLDERS
Stakeholders are individuals or groups of persons
who have some interest or stake in the business
and generally work for the success of the organization or
business.
Owners:
The owners of any business are the first set of
stakeholders. They contribute capital or equity and
have a say in the running of the business.
Employees:
The next group of stakeholders in any business is its
employees. These employees may be of any cadre and
may carry out managerial, supervisory or other
functions.
Customers:
Business exists for the sake of its customers. It is the
customers who keep the business going. Customers
obtain their products and services from the
business establishments.
Community:
The community within which a business operates
can be considered as another set of stakeholders. Good
organizations and sound businesses are considered an
asset to any community.
Government:
Every business, in some way or the other, comes within
the ambit of government agencies. These government
agencies may be national or central, provincial or
state, or even local in nature.
Trade Organizations:
Every business generally has certain affiliations or
memberships with a trade organization or an association.
It may be functional or geographical in nature.
Competitors:
There may be various players who operate in the market.
There are often occasions for them to communicate
with each other.
Conduct
Actually conduct
List out issues, errors, unanswered questions
Follow up
Review the notes
Identify the areas of further clarification