Glossary of terms (Done by Dingyi)

advertisement
Glossary of terms
Table of Contents
ACTIVITY DIAGRAM #WORKFLOW ................................................................................................................ 2
ACTORS .................................................................................................................................................. 2
ADAPTIVE SDLC ....................................................................................................................................... 3
ARCHITECTURE #CENTRALIZED# #COMPUTERNETWORK#MULTI-TIER#EXTRANET PG272........................................ 4
BEHAVIORAL ANALYSIS #SDLCDISCOVERY#SYSUSECASE#STATECHART .............................................................. 4
BLACK BOX TESTING .................................................................................................................................. 4
BUSINESS USE CASE .................................................................................................................................. 5
BUSINESS REQUIREMENTS DOCUMENT (BRD) ............................................................................................... 5
DESIGN PATTERNS #IMPLEMENTATION ......................................................................................................... 5
DESIGN PRINCIPLES #ENCAPSULATE#INFOHIDE#NAVIGATE#COUPLING#COHESION .............................................. 8
DISCIPLINE .............................................................................................................................................. 9
DISCIPLINE (DESIGN) #HI-LOWDESIGN #SOFTWAREARCHITECT#COORDINATEDESIGN........................................... 9
DISCIPLINE (REQUIREMENT) #DOMAINCLASS#EVENTDECOMPOSITION#FUNCTION/NON-FUNCTION ....................... 10
DOMAIN CLASS DIAGRAM #SYSREQUIREMENT ............................................................................................. 10
EVENT DECOMPOSITION #OCCURRENCE&EVENT ........................................................................................... 10
IMPLEMENTATION PLAN #BRD ................................................................................................................. 11
ITERATIVE & INCREMENTAL DEVELOPMENT #SDLCMETHOD#ADAPTIVE #UNIFIEDPROCESS ................................. 12
MODELING ............................................................................................................................................ 13
PACKAGE#ACTOR #USECASE ..................................................................................................................... 13
PREDICTIVE SDLC ................................................................................................................................... 14
THE WATERFALL METHOD ....................................................................................................................... 14
SDLC PHASES ........................................................................................................................................ 14
SDLC INITIATION PHASE #BRD#ROLEMAP#SYSUSECASEDIAG#INITIALCLASSDIAG#BASELINE ............................. 14
SDLC DISCOVERY PHASE #REQUIREMENTS#TESTING#BRD#BEHAVIORAL#STRUCTURAL#BASELINE ....................... 15
SDLC CONSTRUCTION PHASE#DESIGN#IMPLEMENT#TEST............................................................................. 15
SDLC FINAL VERIFICATION & VALIDATION PHASE ......................................................................................... 16
SDLC CLOSEOUT PHASE #DEPLOYMENT#INSTALLING#TRAININGUSERS#INITIALIZEDB ........................................ 16
SPIRAL .................................................................................................................................................. 18
STRUCTURAL ANALYSIS ............................................................................................................................ 19
SYSTEM REQUIREMENT SPECIFICATION ....................................................................................................... 19
SYSTEM SEQUENCE DIAGRAM #INTERACTIONDIAG #REQUIREMENTS #LIFELINE................................................... 19
SYSTEM USE CASE .................................................................................................................................. 19
SYSTEM USE CASE DIAGRAM #EVENTTABLE ................................................................................................. 20
TESTING (DISCOVERY PHASE) #TESTINGINPHASES ......................................................................................... 20
TESTING (FINAL VERIFICATION PHASE)
#DRIVER#STUB#USABILITYTEST#UNITTEST#INTEGRATIONTEST#USERACCEPTANCE ............................................ 21
UNIFIED PROCESS LIFE CYCLE #INCEPT#ELABORATE#CONSTRUCT#TRANSIT#DISCIPLINES#ADAPTIVE#ARCHITECT ....... 23
UNIFIED MODELING LANGUAGE (UML)...................................................................................................... 24
USE CASE REALIZATION #DESIGNCLASSDIAG#SEQUENCEDIAG#MULTILAYER#OBJECTRESPONSIBILITY#CONTROLLE .. 25
USER REQUIREMENT CAPTURE .................................................................................................................. 26
USER REQUIREMENT DOCUMENT ............................................................................................................... 27
WHITE BOX TESTING ................................................................................................................................ 27
1
Activity Diagram #workFlow
Documents the current business workflow i.e. how the business works now (not workflow of the
system you are going to design)
Workflow is the sequence of processing steps that completely handles one business transaction or
customer request.
Activity diagram is simply a workflow diagram that describes the various user activities, the person
who does each activity, and the sequential flow of these activities.
Actors
Used in system use case
Stereotype = Extension of a UML feature
Can invent their own stereotypes to create extended meanings to UML model elements
E.g. <<Actor>>, <<Interface>>, etc
After identifying the actors
Generalize them
•
i.e. find relations amongst these different types – e.g. A manager is a more specific kind
of clerk – Think object-oriented!
Note that actors can also be systems
Role Map:
A diagram used to standardize the treatment of users and external systems
Unlike use-case diagram, only shows actors and how actors are related
The arrow allows user to model actors with overlapping roles
Think of the generalization relationship arrow as “a kind of”
• Example: Clerk, Manager, Accountant are different kind of Employer, Senior
Manager is a kind of Manager
Actors with Partially Overlapping Roles
Can model the manager actor as an abstract actor
• More specifically abstract generalized actor
The term abstract means that the invented actor is not real (i.e. the abstract actor is never
instantiated)
The actor is not a true role but an abstract concept meant to represent the shared aspects of other
roles
2
Adaptive SDLC
When Objectives are Unknown: Agile Methodologies
Agile methodologies prioritize flexibility over a commitment to a predetermined outcome. Whereas
the waterfall method casts its directives in permanent ink, agile planning would typify the use of a
chalkboard and eraser. Agile methodologies emphasize the importance of incremental feedback in
the project development process. Projects are completed in stages, with a series of deliverables
rather than a single final product. As a result, the direction of the project is easily modified according
to the evolving needs of the organization. Indeed, the project resists finality and may be recast,
revised, or restructured indefinitely at the discretion of the organization. Agile methodologies tend to
be well received by participants, as most feel that such techniques lead to improved quality and
productivity.
The steps in agile techniques can vary somewhat based on the exact method employed. However,
agile steps generally include:
 A project brainstorming session
 Production of a functioning component of the project
 Delivery of component for feedback from multiple sources
 Implementation of feedback into project design and goals
 Production of another project component under the redefined project parameters and goals
Agile methodologies may appeal to an organization if:
 The parameters of the project are evolving or undetermined
 The organization easily adapts to change
 The team and/or project is somewhat small
 The timeline is flexible
 The organization represents an industry that is rapidly changing
 There is an experienced project manager
Although agile methodologies are more appropriate for small teams, they can be employed when a
large team is broken into sub-groups. If this is not possible, establish alternative communication
channels to enable broad input into a project from a variety of sources.
Modeling in Agile method
Does not dictate which model to build or how formal to make these models but instead helps
developer to stay on track with their models.
Principles:
Develop software as your primary goal
Enable the next effort as your secondary goal
Minimize your modeling activity
Embrace change, and change incrementally
Model with a purpose
Build multiple models
Build high quality models and get feedback rapidly
Focus on content rather than representation
Learn from each other with open communication
Know your models and how to use them
Adapt to specific project needs
3
Architecture #centralized# #computerNetwork#multi-tier#Extranet pg272
Centralized: describes deployment of all computer systems in a single location. Generally used for
large-scale processing applications, including both batch and real-time applications.
Distributed: modern information system is typically distributed across many computer systems and
geographical locations. Distributed architecture relies on communication networks to connect
geographically dispersed hardware components.
Multi-tier: employs multiple computer systems in a cooperative effort to meet informationprocessing needs.
 Clustered: employs a group of computers with similar hardware and software. Located near
one another, act as a single super computer. Processing load is balanced across all machines.
 Multicomputer: Computers are not as similar as clustered. A suite of application or system
programs and data resources is exclusively assigned to each computer system. Each system
is optimized to the role that it will play in the combined system, such as a database.
Computer network: is a set of transmission lines, specialized hardware and communication protocols
that enables communication among different users and computer systems.
 LAN: less than one km long and connects computers within a single building or floor
 WAN: wide area network can describe any network over 1km, but usually spans cities,
countries or entire globe.
 Internet: global collection of networks that are interconnected using common low-level
networking standrads
 World Wide Web: a collection of resources that can be accessed over the Internet by a
number of standard protocols. The resources of the Web are delivered to users over the
Internet.
 Intranet: private network that uses Internet protocols but is accessible only to limited set of
internal users
 Extranet: is an intranet that has been expanded to include directly related business partners.
One widelyused method for implementing an extranet is the VPN (virtual private network)
Behavioral Analysis #SDLCDiscovery#SysUseCase#StateChart
This is a step in the SDLC discovery phase.
Business analysis analyzes and documents:
1. Details of system use case
(use-case description)
2. State behavior
(state-machine diagram)
Black Box Testing
Black-box testing is a method of software testing that examines the functionality of an application
(e.g. what the software does) without peering into its internal structures or workings.
This method of test can be applied to virtually every level of software testing: unit, integration,
system and acceptance. It typically comprises most if not all higher level testing, but can also
dominate unit testing as well.
Test cases are built around specifications and requirements, i.e. what the application is supposed to
do.
Test cases are derived from external description of the software, including specifications,
requirements and design parameters.
Advantages in discovering errors:
Missing functions
Functions that don’t correspond to spec
Weaknesses in the spec
Interface errors between modules
Initialization errors
Termination errors
4
Business Use Case
A business use-case diagram provides an overview of business processes and the entities involved in
the processes
Business Requirements Document (BRD)
Created during initiation process of general SDLC
Describe business requirements
Acts as a contract between the business and the developer, so it’s important that all the requirements
are documents completely and correctly
If a requirement is not found in the BRD => it’s not part of the contract
The BRD will be revised as the project progresses
Key components of the BRD produced during the Initiation phase include:
• Business use-case descriptions include business use-case diagrams
• Role map
• System use-case diagram
• Initial class diagram describing key business classes
• Activity Diagram
• Milestone/Implementation Plan
Design Patterns #implementation
Used during Implementation phase.
A pattern is essentially a template.
Design patterns range from the abstract to the concrete.
Abstract: the multilayer design pattern: separate system functions into 3 layers of class: graphic layer,
domain layer and data access layer.
Concrete: class definition that is written in code to be used by developers.
4 elements of a pattern:
1. Name
2. Problem
3. Solution
4. Constraints
These design patterns are best practices that consider various factors. Some of them are natural
solution to a problem.
1. Structural Patterns:
Model/View/Controller (MVC)
Model: Domain object (updates the view)
View: Presentation
Controller: receives commands from user and invoke the
model’s methods (direct traffic)
Commonly used for web application
5
Façade
Provides a unified interface to a set of interfaces in a subsystem
Idea is to wrap a complex subsystem with a simplified interface
Adaptor (Wrapper)
An adaptor allows classes to work together that normally
could not due to incompatible interfaces
Idea is to convert the interface of a class into another
interface that the client expects (Wrapper)
Why we need it
For two connected classes, one of them might be
replaced. Tax calculator connected to the system. When
we update from an old tax calculator to new tax
calculator. The new class might have its predefined set of
method signatures that are different from the method
signatures of the old calculator. This is where adapter comes in.
2. Creational Patterns:
Singleton
Restrict the instantiation of the class to ONE object
Purpose: A single controller to control everything. Controller can be instantiated from many places,
thus we must make sure that these instatiations only refer to a single controller.
E.g. only one audio clip to be played at one time, thus manager has to
make sure that it is the only manager (multiple mangers will play one
audio clip each)
However, manager is called from many applications.
Thus, every time they call for the manager, only one manager should be
instantiated and the reference to it is returned to the caller.
Factory
Make use of a Factory class to create
objects
Abstract Factory: A more general
version of Factory design pattern (can
have multiple Factory)
Uses a concrete implementation of the
abstract factory to create concrete
objects
6
Object Pool
Idea: want to reuse and share objects that are expensive to create
Behavorial Patterns:
Strategy
Lets you use different algorithms
(strategy) depending on the
context
Observer
Allow objects to notify other objects about events occurring
Problem: One class has attributes that change that other classes need to know about. However, the
original class does not know which other classes are interested in its internal activity. We want to
allow classes to observe this behavior without coupling them.
E.g. Order view window sends a message to domain order object, but order object should not be able
to send back to order window. (domain class should not be able to navigate to view layer, to prevent
coupling)
Scenario: When customer’s total order for the year exceeds a certain amount, there will be discounts
for the customer. Every time a customer orders, an Order object is updated. Order wants to remind
customer to buy more to take advantage of the discount, but domain class has no access to the view
layer to convey to customer this information. That is where observer comes in.
Solution: The original class has methods to
allow other classes to dynamically register
themselves for particular events
happening in the original class. E.g. when
order amount exceeds the amount for
discount. When this happens, the observer
class will notify all classes that have
registered for the event.
Example:
These two objects interact to play albums and to charge end-users each time an album is played.
The Design Patterns approach uses an abstract Subject class and an Observer interface to break the
dependency between the Subject object (Album) and the Observer (BillingService) objects. It also
allows for multiple Observers for a single Subject. In the example, the Album class inherits from
the Subject class, assuming the role of the concrete subject described in the Observer pattern.
The BillingService class takes the place of the concrete observer by implementing
the Observer interface, because the BillingService is waiting to be told when the Play method is
called.
Notice that there is no more arrow from Album to BillingService. This reduces the coupling.
7
Design Principles #Encapsulate#InfoHide#Navigate#Coupling#Cohesion
Encapsulation
Design concept that each object is a self-contained unit containing both data and program logic
Each object provides a set of services that are invoked by calling the object’s methods
Hides the details of component
Benefit:
Software developer can design the system in a building-block fashion
Object reuse: standard set of objects that are used over and over again throughout the system.
Information-Hiding
Data associated with an object is not visible to the outside world i.e. Object attributes are private
(encapsulation achieves information hiding)
Navigation Visibility
Refers to the ability of an object to view/interact with another object
Interactions between objects can only be accomplished with navigation visibility. One of the
responsibilities of a design is to specify which classes have navigation visibility to other classes
Coupling
Measure of how closely classes are linked to each other / Degree of mutual interdependence
Measured by number of navigation visibility arrows between classes: a qualitative term (cannot be
quantified)
Size: number of connections
Intimacy: Directness of connections
Visibility: Prominence of connections
Flexibility: Ease of changing connections
Highly coupled e.g. can directly access elements of another module without an interface.
Problems with tight coupling:
1. Change in one module forces a ripple effect of change in other modules
2. Assembly of modules require more effort/time due to increased inter-module dependency.
3. A particular module might be harder to reuse/test because dependent modules might be
included
Cohesion
Degree to which elements of a module belong in that module
E.g. Student class has methods that do student-related functions
Cohesion describes how focused a software is. All procedures in a given module work together
towards some end goal.
High cohesion = high readability and high maintainability and high reusability.
 Readability: functions are straightforward
 Maintainability: Not overly-sensitive to change in the system
 Reusability: Can be reused in other contexts.
Separation of responsibilities: A better design is to separate disparate tasks into direct classes.
Cohesion is how focused the software is, coupling is how reliant given piece of software is on other
modules.
8
Discipline
Discipline
Business
modeling
Purpose
Understand and communicate the nature of the
business environment in which the system will be
deployed
Requirements
Understand and document business needs and
processing requirements
Design
Develop the architecture and details of hardware,
networks, software and the database
Models
Organization chart
Location Diagram
Activity Diagram
Business Use Case
Activity Diagram
System use case
Domain model class
diagram
System sequence diagram
Design class diagram
Network diagram
Database schema
Interaction diagram
Package diagram
Discipline (Design) #Hi-LowDesign #SoftwareArchitect#CoordinateDesign
In requirement discipline, analysts build models to understand key business processes and data.
Design discipline refines and creates new models from requirement discipline. However, purpose is
different from requirement discipline.
Design model is interested in the how question:
 How will key processes be performed?
 How will key data be collected and organized?
 How will the new system achieve business objectives?
Design on two levels:
High-level – Architectural design: affects entire system
Low-level – Detail design: encompasses small part of the system with minimal impact on other parts
of the system, such as software design for a single use case
High-level (Usually in early iterations in the elaboration phase)
Design Support Services architecture and deployment environment
Modern info system operate within complex collection of computer hardwares, networks and system
software, which is collectively called the support services architecture and deployment environment.
Thus,
 Must determine whether that architecture can support the new system
 Must adapt the new system and existing architecture to one another, while ensuring that
existing systems continue to function.
 Must address technical issues: reliability, security, throughput, synchronization
Design the Software Architecture
Software architecture refers to the big picture structural aspects of an info system.
Division of software into classes and the distribution of those classes across processing locations and
specific computers.
Heavily constrained by the Support Service Architecture, e.g. software architecture within UNIX
environment is different from that based on Windows.
Design class diagram for the system is created here.
Design use case realization
Previous architectural design defined a framework within which use cases are realized.
Realization design focus on the interactions among the classes that is required to support a use case,
as well as the interactions among software, users and external systems.
Design the database
Design the system and user interfaces
Design the system security and controls
Low-level is part of all the high-level. (Low-level design is spread more evenly throughout the
project)
9
Coordinating the design
Each subsystem has unique design requirements
Project teams are divided into smaller teams to focus on the various subsystems and design issues,
with multiple iterations proceeding in parallel.
Technical issues can be related to all subsystem or only some subsystems.
People may be working at different locations.
Discipline (Requirement) #domainClass#eventDecomposition#function/nonfunction
System requirements are all of the capabilities must have and constraints that the new system must
meet.
Requirement is interested in the “what” question:
 What are the business objectives of the system?
 What info must be collected and processed?
 What are the key processes for collecting and using that info?
Functional requirements are the activities that the system must perform – that is, the business uses
to which the system will be applied. They are based on the procedures and rules that the organization
uses to run its business. E.g. All new employees must fill in the payroll form.
Non-functional requirements are characteristics of the system other than activities it must perform
or support. Below are non-functional requirements
Technical
Performance
Usability
Reliability
Security
Requirements
Requirements
Requirements - UI Requirements
Requirements
operational
Operational
Operational
Dependability of a Describes which
characteristics
characteristics
characteristics
system:
user can perform
related to the
related to
related to user:
How it detects
which system
environment,
measures of
UI
and recovers
function under
hardware and
workload:
Related work
from problems
what condition
software of the
Response time
procedures
organization.
Throughput
Documentation
Requirements can be defined via: Problem Domain class and event decomposition
Domain Class Diagram #SysRequirement
A key concept used to define system requirements
A diagram to note down the information a system needs to store. In OOP, these things become
objects that interact in the system.
Procedure to define things in the system:
1. Use event table and information about each event, identify all of the nouns.
2. Use information from existing systems, current procedures, current reports or forms, add items or
categories of info needed.
3. Refine the list and record assumptions or issues to explore
 Is it a unique thing the system needs to know about?
 Is it inside the scope of the system I am working on?
 Does the system need to remember more than one of these items?
Event Decomposition #occurrence&event
An event:
Occurs at specific time and place
Can be described
Should be remembered by the system
Event Decomposition
A technique that first focuses on the events a system needs to respond to and then looks at how a
system must respond – the system’s use cases.
10
In event decomposition, attention is on the external environment, and the system is viewed as a
black box – this initial view helps keep analyst’s focus on a high-level view of the system (looking at
the scope) rather than inner workings.
Describing a system in terms of events keeps the focus of the system on the business requirements
and the elementary business processes.
3 Types of Events:
External Events
• Occur outside the system
• Usually caused by external agent e.g. customer
Temporal Events
• Occurs when system reaches a point (deadline) in time
State Events
• Events that occur when something happen inside the system that trigger the need for
processing
Perfect technology assumption:
• Unlimited processing and storage capacity
• Equipment does not malfunction
• Users have ideal skill sets
All events might not trigger from something, therefore not all have a source
An event might not have response.
Whether an occurrence is an event or part of the interaction following the event is determined by
whether there is any long pauses or intervals. Can the system transaction be completed without
interruption or is the system at rest waiting for the next transaction? E.g. buying a shirt with cash and
credit card. System does not halt all process waiting for answer.
Implementation Plan #BRD
Included in the Business Requirement Document.
The BRD must include an implementation plan so that steps required when releasing the system
can be planned for in advance
The issues addressed typically include:
• Training
• Conversion
• Rollout
• End-user procedures
Post-implementation follow-up:
• Follow up after implementation to ensure that the project is running successfully
and to verify that the project is achieving high-level goals
11
Iterative & Incremental development #SDLCMethod#Adaptive
#UnifiedProcess
Idea: Develop a system through repeated cycles (iterative) and in smaller portions at a time
(incremental), allowing software developers to take advantage of what was learned during
development of earlier parts or versions of the system.
Learning comes from both the development and use of the system, where possible key steps in the
process start with a simple implementation of a subset of the software requirements and iteratively
enhance the evolving versions until the full system is implemented. At each iteration, design
modifications are made and new functional capabilities are added.
The procedure itself consists of the initialization step, the iteration step, and the Project Control List.
The initialization step creates a base version of the system. The goal for this initial implementation is
to create a product to which the user can react. It should offer a sampling of the key aspects of the
problem and provide a solution that is simple enough to understand and implement easily.
To guide the iteration process, a project control list is created that contains a record of all tasks that
need to be performed. It includes such items as new features to be implemented and areas of
redesign of the existing solution. The control list is constantly being revised as a result of the analysis
phase.
The iteration involves the redesign and implementation of iteration is to be simple, straightforward,
and modular, supporting redesign at that stage or as a task added to the project control list. The level
of design detail is not dictated by the iterative approach. In a light-weight iterative project the code
may represent the major source of documentation of the system; however, in a critical iterative
project a formal Software Design Document may be used. The analysis of an iteration is based upon
user feedback, and the program analysis facilities available. It involves analysis of the structure,
modularity, usability, reliability, efficiency, & achievement of goals. The project control list is
modified in light of the analysis results.
PHASES
Incremental development slices the system functionality into increments (portions). In each
increment, a slice of functionality is delivered through cross-discipline work, from the
requirements to the deployment. The unified process groups increments/iterations into 4 phases.
1. Inception identifies project scope, requirements (functional and non-functional) and risks at a high
level but in enough detail that work can be estimated.
2. Elaboration delivers a working architecture that mitigates the top risks and fulfills the nonfunctional requirements.
3. Construction incrementally fills-in the architecture with production-ready code produced from
analysis, design, implementation, and testing of the functional requirements.
4. Transition delivers the system into the production operating environment.
Each of the phases may be divided into 1 or more iterations, which are usually time-boxed rather
than feature-boxed. Architects and analysts work one iteration ahead of developers and testers to
keep their work-product backlog full.
12
Modeling
Purpose
 Process of creating a model helps analyst clarify and refine requirements and design details.
Analyst learns as he completes and studies the model.
 Information systems are complex and some parts are intangible. Models help simplify the
analyst’s efforts and focus them on a few aspects of the system at a time.
 Models help the analyst explain his work to others.
 Different models relate to different aspects of the system.
 There are even models to model the relationship between models.
Package#actor #useCase
When to use Package?
Common approaches used to group system use cases into packages:
•
Group system use cases by the main actor who uses them e.g. group together into one
package all the system use cases used by the general administration
Create a system use-case package for each business use case
E.g. for an insurance system - “Make a Claim” use case:
•
To the customer, it represents one business goal
•
However, to achieve it, the company’s workers (actor) require a number of discrete interactions
with the computer system such as Record Claim, Validate Policy, Adjust Claim, Pay
Claim
•
Each of these interactions qualifies as a system use case
•
Bundle them all in the use-case package Make a Claim
13
Predictive SDLC
Known projects can usually rely upon a predictive method of planning. Predictive planning provides a
linear, specific development plan structured around producing a pre-determined end result within a
specific timeframe.
When Objectives are Known:
The Waterfall Method
SDLC methodology – predictive - Does not allow
backlogging
The waterfall approach to project management is a
useful approach when the variables and outcomes
of a project are known. In the waterfall method, a
single episode of directive discussion is followed by
a lengthy production or development period,
ending in the delivery of the resulting project.
The steps of the waterfall method:
SDLC Phases
Most general form of software development. All other e.g.
Generalized into 5 different phases:
1. Initiation
2. Discovery
3. Construction
4. Final Verification and Validation
5. Closeout
SDLC Initiation Phase
#BRD#RoleMap#SysUseCaseDiag#InitialClassDiag#Baseline
Objective:
a. To develop the business case for the project
b. To establish project and product scope
c. To explore solutions, including the preliminary architecture
Deliverables:
A single document, the Business Requirements Document (BRD) is produced to describe the business
requirements. This document includes the business use-case descriptions, role map, system use-case
diagram, and initial class diagram.
Steps:
1. Model business use case
• Identify business use cases (business use-case diagram)
• Scope business use cases (activity diagram)
2. Model system use case from business use case
• How?
• Identify actors (role-map diagram)
• Create event tables from business use case (event tables are list of system use cases
triggered by business events)
• Create system use case diagram from actors and events.
3. Set baseline for discovery
• Baselining allows you to see what the requirements looked like at various checkpoints
14
SDLC Discovery Phase
#requirements#testing#BRD#Behavioral#Structural#Baseline
Objective: take project into analysis
Analyze and document requirements of project
Can include some testing activities (validate idea)
Includes Requirements and Testing discipline
Result of Analysis is the Business Requirement Document (BRD)
Steps:
1. Perform Behavioral Analysis
• Describe the system use case
(use-case description)
• Describe state behavior
(state-machine diagram)
2. Perform Structural Analysis
• (domain model class diagram)
3. Specify test plan
4. Specify implementation plan
5. Set baseline for development
Once the BRD is complete, freeze all analysis documentation
Save this “frozen copy” so that team members will be able to refer back to it later
This copy becomes the “baseline” – or beginning point – for the next step: the actual development of
the software.
SDLC Construction Phase#Design#Implement#Test
This is the phase when the business model is turned into a design specification.
Includes Design, Implementation and Testing discipline.
Business analysis activity during this phase depends on the lifecycle approach being used:
• Waterfall projects (predictive)
• Iterative projects (adaptive)
IF Waterfall
 IT BA’s job now is to support quality assurance and validate technical design meets the
requirements
 No requirements analysis in this phase.
IF Iterative
 Requirements analysis and solution development take place over a number of iterations
 The steps described for the Discovery phase are carried out during each iteration of the
Construction phase
Design (UI) and Coding take place
This also means the start of technical work (actual implementation of system)
Discipline
Purpose
Business Modeling Understand and communicate the nature of the business environment in
which the system will be deployed
Requirements
Understand and document business needs and processing requirements
 Focuses on what the system should do
Design
(Used in
construction
phase)
Develop the architecture and details of hardware, networks, software, and
the database
 Oriented towards how the system will be built
 Structural components
 Dynamic interactions
System Design
Discipline of describing, organizing, structuring components of a system
Commonly known as Architectural Design, General Design, or Conceptual Design
See Architecture Design
15
Design System Security and Controls
Ensure system restricts the access rights to different users
User-Interface control
Record transactions, prevent unauthorized access to DB
Ensure network communication is secure
Next: Use-case realization (designing software that implements each use case)
SDLC Final Verification & Validation phase
The IT Business Analyst supports final testing before the completed solution is deployed, reviewing
test plans and results and ensuring that all requirements are tested.
GO TO: Testing(Final Verification)
SDLC Closeout Phase #Deployment#Installing#TrainingUsers#InitializeDB
The IT Business Analyst supports the deployment process, reviewing transition plans and participating
in a post-implementation review to evaluate the success of the change.
Deployment
Activities to make a new system operational
Involve many conflicting constraints
• Costs
• Need to main positive customer relations
• Need to support employees
• Logistical complexity
• Overall risk to the organization
Considerations when planning deployment
• Incurring costs of operating both systems in parallel
• Detecting and correcting errors in the new system
• Potentially disrupting the company and its IS operations
• Training personnel and familiarizing customers with new procedures
Each deployment approach has strengths and weaknesses
1. Direct deployment (or immediate cutover):
Installs a new system, quickly makes it
operational, and immediately turns off
any overlapping systems
Advantages: Simplicity
Disadvantages: Risk of system
unavailability (no backup)
Used when:
A new system is not replacing an old
system and/or downtime can be
tolerated
2: Parallel Deployment
Operates both old and new systems for an
extended time period
Advantages: Relatively low risk of system
failure, Used for mission-critical applications
Disadvantage: Cost to operate both systems
(hiring temps, assign extra space for computer
equipment
Problems with full Parallel: Inputs to old
system might not fit new system
Usually use partial parallel deployment:
Process only a subset of input data in one of the two systems. However, entails the risk that
significant errors or problems will go undetected.
16
3. Phased Deployment
Installs a new system and makes it
operational in a series of steps or phases
Advantage: Reduced risk – failure of
single phase is less problematic than
failure of system
Disadvantages: Increased complexity –
more activities and milestones, however,
each phase contains a smaller and more
manageable set of activities.
Useful when a system is large, complex,
and composed of relatively independent
subsystems. However, difficult to
implement if the subsystems are not
substantially independent.
Closeout Phase: Acquiring hardware and
system software
Application software must have a supporting infrastructure (which may already be in place)
Acquisition of an entirely new infrastructure includes
• Planning
• Developing a request for proposal
• Evaluating results
• Choosing one or more vendors
• Installation and configuration
Packaging and Installing Components
Components must be:
• Installed on a host server
• Added to a component registry
• Assigned one or more network addresses
May include XML files to store registration and access information
Developers can package and install components using development tools and utilities
Training Users
End users and system operators need training
End user training
• Hands-on training and tutorials
• Group tutorials
System operator training
• Less formal
• Self-study
Training materials are developed as soon as the interfaces are reasonably stable
Converting and Initializing Data
Data needed at system startup can be obtained from:
• Files or databases of a system being replaced
• Manual records
• Files or databases of other systems in the organizations
• User feedback during normal system operation
Existing databases are commonly modified for reuse in new or upgraded systems
Reloading Databases
Complex changes to a database may require reloading the data after the change
2 approaches:
• Initialize a new database and copy the contents of the old database to it
• Use a program or DBMS utility to extract and delete data from an existing database and store
it in a temporary data store
17
Spiral
The
spiral
model
the incremental
is
model,
similar
with
to
more
emphasis placed on risk analysis.
4
phases:
Planning,
Risk
Analysis,
Engineering and Evaluation.
A software project repeatedly passes
through these phases in iterations (called
Spirals in this model).
Phases in spiral
1.
The baseline spiral, starting in the
planning phase, requirements are
gathered and risk is assessed. Each
subsequent spiral builds on the baseline spiral.
2.
Requirements are gathered during the planning phase.
3.
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A
prototype is produced at the end of the risk analysis phase.
4.
Software is produced in the engineering phase, along with testing at the end of the phase.
5.
The evaluation phase allows the customer to evaluate the output of the project to date before
the project continues to the next spiral.
Advantages of Spiral model:

High amount of risk analysis hence, avoidance of Risk is enhanced.

Good for large and mission-critical projects.

Strong approval and documentation control.

Additional Functionality can be added at a later date.

Software is produced early in the software life cycle.
Disadvantages of Spiral model:

Can be a costly model to use.

Risk analysis requires highly specific expertise.

Project’s success is highly dependent on the risk analysis phase.

Doesn’t work well for smaller projects.
When to use Spiral model:

When costs and risk evaluation is important

For medium to high-risk projects

Long-term project commitment unwise because of potential changes to economic priorities

Users are unsure of their needs

Requirements are complex

New product line

Significant changes are expected (research and exploration)
18
Structural Analysis
Look at Class Diagram
System Requirement Specification
A singular documented physical and functional need that a particular design, product or process must be
able to perform.
Purpose: Identifies a necessary attribute, capability, characteristic, or quality of a system for it to have
value and utility to a customer, organization, internal user, or other stakeholder.
Sets of requirements are used as inputs into the design stages of product development.
For Waterfall model:
Requirements show what elements and functions are necessary for the particular project.
For Iterative model:
System requirements are incrementally developed in parallel with design and implementation.
System Sequence Diagram #interactionDiag #requirements #lifeline
Part of defining requirement for a system
Used to describe the flow of information into and out of the automated system.
Used in conjunction with use case description to help document the details of a single use case.
Can be developed from detailed description of the use case, either in fully developed form or as
activity diagram.
It is a type of interaction diagram.
In interaction diagrams, use object notation, not class notation. I.e. the box refers to an individual
object and not to the class of all similar objects. Messages are sent and received by individual objects,
not by a class.
Steps for developing SSD from activity diagram:
1. ID input messages (the arrows in activity diag)
2. Describe the message from external actor to the system
3. ID and add any special conditions on the input messages, including iteration and true/false
conditions
4. ID and add the output return messages.
 Either a return value on the message itself or
 A separate return message with a dashed-line arrow
System Use Case
An activity a system carries out, usually in response to a request by a user.
In the inception phase, analysts identify many of the key use cases. By the end of the elaboration
phase, they should have identified all use cases and described them in details.
Ways to identify use cases:
1. List all users and think through what they need from the system to do for their jobs.
2. Start with the current system and list all system functions that are currently included, and add any
new functionality requested by users.
The appropriate level of analysis for identifying use cases is one that focuses on elementary business
processes (EBPs). An EBP is a task performed by one person in one place, which adds measurable
business value and leaves the system and its data in a consistent state.
Each EBP (and so each use case) occurs in response to a business event. Events drive or trigger all
processing that a system does, so listing events and analyzing events make sense when you need to
define system requirements by identifying use cases. Thus, we use event decomposition to determine
what the use cases for a system are.
19
System Use Case Diagram #eventTable
After doing the event table, the analysts better understands the business processes. However,
although business events are used to identify use cases, analysts need to make adjustments to
identify the right use cases:
Adjustments from event table:
1. Combine business events into single use case.
E.g. event for adding new customer and event for changing customer information comes under the
use case: Maintain customer information.
2. Split business events into multiple use cases. Additional use cases are identified either
 When they contain the <<include>> relationship and two use cases can be developed from
one large use case
 When another use case is defined from recognizing a common subroutine.
Procedure to import from event table:
1. ID actors for each use case. ID their role as well.
2. Extract info from business events that describe the system response to the business event
Things to note:
 Assume perfect technology
 Use cases are not based on technical activities such as logging onto a system
Testing (Discovery Phase) #testingInPhases
Used to validate idea
Discovery phase includes Requirements and Testing discipline
Testing is any activity aimed at proving that the software system does not do what it is supposed
to.
 The term quality assurance is sometimes used because it suggests that more than the
physical testing of the software may be required
• e.g. verifying a draft of a system use-case description with stakeholders is a testing activity
Discovery testing produces test cases:
• By specifying tests up front, you can add measurable quality requirements to your contract
with the developers
Non-computer-based testing
Structured walkthrough throughout the project
Performed before software is written
Walk through some aspects of the system with a group of participants
Peer-review process for testing
20
Different Testing occur at various of project development:
• Structured walkthroughs are performed throughout the project
• During the Discovery phase, the test cases are designed (test cases are inputs to
determine if system runs correctly)
• During the Construction phase, unit testing (tests of the individual software
components) is carried out.
• As system use-case scenarios are implemented during the Construction phase,
requirements-based (black-box) tests are performed to verify compliance with the
requirements
• Before acceptance of the product, the developers or technical testers perform
system tests
• During the Closeout phase, the user performs and supervises user acceptance
testing (UAT)
Testing (Final Verification Phase)
#driver#stub#usabilityTest#UnitTest#IntegrationTest#UserAcceptance
Testing is a process of identifying defects
Testing activities must be distributed throughout the project:
•
Unit and integration testing occur whenever software is developed, acquired, or combined with
other software
•
Usability testing occurs whenever requirements or design decisions need to be evaluated
•
User acceptance tests are conducted as a final validation of the requirements, design, and
implementation activities
Develop test cases and test data
• A test case is a formal description of
• A starting state
• One or more events to which the software must respond
• The expected response or ending state
• Test data is a set of starting states and events used to test a module, group of
modules, or entire system
Unit Testing
The process of testing individual methods, classes, or components before they are integrated with
other software
Two methods for isolated testing of units
Driver
• Simulates the behavior of a method that sends a message to the method being tested
Stub
• Simulates the behavior of a method that has not yet been written
21
Integration Testing
Evaluates the behavior of a group of methods or classes. Purpose is to identify errors that could not
be detected by unit testing. Such errors can result from:
Interface incompatibility: e.g. one method passes a parameter of wrong data type to another method
Parameter value: A method is passed or returns a value that as unexpected, such as –ve price
Run-time exceptions: A method generates an error such as “out of memory” due to conflicting
resource needs.
Unexpected state interactions: The states of two or more objects interact to cause complex failures.
Integration testing can get very complex. Because an OO program consists of a set of interacting
objects that can be created or destroyed during execution, there is no clear hierarchical structure.
System test (a kind of integration test): test the behavior of an entire system or independent
subsystem. Ensures the system fulfills the developer’s understanding of user requirements.
Usability Testing
Determines whether a method, class, subsystem, or system meets user requirements. Can test on
functional and non-functional requirements. Most commonly evaluates functional requirements and
the quality of a user interface.
Performance test (A type of integration + usability testing)
• Determines if a system or subsystem can meet time-based performance criteria such as:
• Response time specifies the desired or maximum allowable time limit for software
responses to queries and updates
• Throughput specifies the desired or minimum number of queries and transactions that
must be processed per minute or hour
• Complex because they involve multiple programs, subsystems, computer systems and
network infrastructure. Also require large suite of test data to simulate system
operation under maximum load.
User Acceptance Testing
Determines whether the entire system fulfills user requirements
• Involves the end users
Acceptance testing is a very formal activity in most development projects
22
Unified Process Life Cycle
#incept#elaborate#construct#transit#disciplines#adaptive#architect
A popular iterative and incremental software development process framework.
It is a form of adaptive SDLC.
Iterative and Incremental:
UP is iterative & incremental development
process.
The Elaboration, Construction and
Transition phases are divided into a series
of timeboxed iterations.
Each iteration results in an increment,
which is a release of the system that
contains added or improved functionality
compared with the previous release.
Use case driven:
Use cases are used to capture the functional requirements and to define the content of the iterations.
Each iteration takes a set of use cases or scenarios from requirements all the way through to
deployment.
Architecture Centric:
The Unified Process insists that architecture sit at the heart of the project team's efforts to shape the
system. Since no single model is sufficient to cover all aspects of a system, the Unified Process
supports multiple architectural models and views.
Risk Focused:
The Unified Process requires the project team to focus on addressing the most critical risks early in
the project life cycle. The deliverables of each iteration, especially in the Elaboration phase, must be
selected in order to ensure that the greatest risks are addressed first.
Phases in UP:
Inception
Develop approximate vision for the project, define scope, and product rough
estimates for cost and schedule
Elaboration
Refine vision, identify and describe all requirements, finalize the scope, design and
implement core architecture and functions, resolve high risks, and produce realistic
estimates for cost schedule
Construction Iteratively implement remaining lower-risk, predictable, and easier elements and
prepare for deployment
Transition
Complete beta testing and deployment so users have a working system and are ready
to benefit as expected
When to involve users:
- Business Modeling discipline: they should participate in defining the problem the system
must solve, the system objectives, and benefits
- Requirements discipline: they should help define the problem domain, the requirements and
their priorities, develop the user interface dialogs, and evaluate requirements.
- Testing discipline: they will probably be most involved in usability and user acceptance
testing
- Deployment discipline: they may be involved in training other users
23
Unified Modeling Language (UML)
Unified Modeling Language (UML) combines techniques from data modeling (entity relationship
diagrams), business modeling (work flows), object modeling, and component modeling. It can be used
with all processes, throughout the software development life cycle, and across different
implementation technologies.



UML can describe structure of the source code
UML can describe the run-time behavior
UML is not (normally) executable
UML offers a standard way to visualize a system's architectural blueprints, including elements such as:

Activities / Actors

Business processes / (Logical) components / Database schemas

Programming language statements / Reusable software components
UML is extensible, with two mechanisms for customization: profiles and stereotypes.
UML diagrams
Structural UML diagrams
Emphasize the things that must be present in the system being modeled. Since structure diagrams
represent the structure, they are used extensively in documenting the software architecture of software
systems.

Class diagram: describes the structure of a system by showing the system's classes, their
attributes, and the relationships among the classes.

Component diagram: describes how a software system is split up into components and shows
the dependencies among these components.

Composite structure diagram: describes the internal structure of a class and the collaborations
that this structure makes possible.

Deployment diagram: describes the hardware used in system implementations and the
execution environments and artifacts deployed on the hardware.

Object diagram: shows a complete or partial view of the structure of an example modeled
system at a specific time.

Package diagram: describes how a system is split up into logical groupings by showing the
dependencies among these groupings.

Profile diagram: operates at the metamodel level to show stereotypes as classes with the
<<stereotype>> stereotype, and profiles as packages with the <<profile>> stereotype. The
extension relation (solid line with closed, filled arrowhead) indicates what metamodel element
a given stereotype is extending.
Behavioral UML diagrams
Behavior diagrams emphasize what must happen in the system being modeled. Since behavior diagrams
illustrate behavior of a system, they are used to describe the functionality of software systems.
24

Activity diagram: describes the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control. Can support
any level of use case description. (level means 1.1, 1.1.1, 1.1.1a etc)

UML state machine diagram: describes the states and state transitions of the system.

Use Case Diagram: describes the functionality provided by a system in terms of actors, their
goals represented as use cases, and any dependencies among those use cases.
Interaction diagrams
Subset of behavior diagrams, emphasize the flow of control and data among the things in the system
being modeled:

Communication diagram: shows interactions between objects or parts in terms of sequenced
messages. They represent a combination of information taken from Class, Sequence, and Use
Case Diagrams describing both the static structure and dynamic behavior of a system.

Interaction overview diagram: provides an overview in which the nodes represent
communication diagrams.

Sequence diagram: shows how objects communicate with each other in terms of a sequence of
messages. Also indicates the lifespans of objects relative to those messages.

Timing diagrams: a specific type of interaction diagram where the focus is on timing
constraints.
Use Case Realization
#DesignClassDiag#SequenceDiag#multiLayer#ObjectResponsibility#Controlle
Continued from SDLC Construction Phase (Design discipline)
This is the design of software that implements each use case.
Realization is the specification of the detailed processing that the system must do to carry out the use
case i.e. making a set of software blueprints.
Steps:
1.
2.
3.
4.
Produce a preliminary version of design class diagrams.
Develop interaction diagrams – resulting in one sequence diagram for each use case or
scenario
• Developing an interaction diagram is a multi-step process of determining which
objects work together and how they work together
Develop method names based on information developed during the design of the
interaction diagrams
Partition the design class diagram into related functions using package diagrams
• There are several ways that a system might be partitioned
1. By Subsystem
2. By Layers: a basic multilayer design consisting of the view layer (userinterface classes), the domain layer (problem domain classes from the
domain model class diagram), and the data layer (database access classes)
• Package diagrams provide an architectural, high-level view of the final system
The design class diagrams and the detailed interaction diagrams use each other as inputs for design
and are developed at the same time.
Design Class Diagram
• The first iteration is done based on the domain model and on engineering design principles
• The preliminary design class diagram is then used to help develop interaction diagrams
• As design decisions are made during development of the interaction diagrams, the results are
used to refine the design class diagram
25
The design class diagram is an extension of the domain model class diagram (More detailed)
Domain model class diagram shows a set of problem domain classes and their association
relationships
•
During specification of requirements, since it is a discovery process, analysts generally do not
worry too much about the details of the class attributes or the methods
During design, it is important to encode the details of the classes
• Private/public attributes etc.
• Parameters that are passed to the methods
• Return values from methods
• Type of the attributes, return value etc.
We complete it by integrating information from interaction diagrams and other models like
requirements.
Objective of requirements was to understand the business need, the focus was only on specifying the
classes that defined the problem domain
To build a complete object-oriented system, we must identify and specify many other design classes.
• e.g. Input window objects and Database objects are additional classes that must be defined
Sequence Diagram
Object responsibility: design principle that indicates which objects are responsible for carrying out
the system processing.
Knowing: what is an object expected to know
Doing: what is an object expected to do or initiate.
Design focus shifts from the big picture structural issues to dynamic interactions required to perform
specific task
Messages define the system behavior - This information is not explicitly shown using class diagrams.
This is where Sequence Diagram comes in.
Use case controller
Collection point for incoming messages, act as in intermediary between outside world and the
internal system.
Reduces coupling between input system and internal system by handling all inputs.
Is an artifact: created for a specific purpose just because it is needed.Analyst needs to focus on the
interactions between the classes
User Requirement Capture


Research undertaken early in a project life-cycle to establish and qualify the scope of the project.
Aim: understand the service from a user’s perspective, and to establish users’ common needs and
expectations.
 Useful for projects that have a lack of focus or to validate the existing project scope.
 Provides an independent user perspective when a project has been created purely to fulfil a
business need.
 The requirements capture findings are then used to balance the business goals with the user
needs to ensure the project is a success.
Advantage:
 Save time and money by validating the scope of a project against its users’ needs and expectations
before any work begins
 Mitigates the risk of the project launching and failing to meet its objectives
 Uncover critical information to improve the end result by answering questions such as, is the
current target audience realistic?
 Gain a deep insight into users and their needs at the very beginning, allowing them to remain
focused on serving users throughout the duration of the project.
Disadvantage:
 Increase time of planning phase
 May highlight conflicts in different user’s needs and expectations
26
User requirement document
The user requirement(s) document (URD) or user requirement(s) specification is a document usually
used in software engineering that specifies the requirements the user expects from software to be
constructed in a software project.
Used to determining what the customer actually wants it to do.
The responsibility of completely understanding what the customer wants falls on the providers of the
product because customer may not really know what they want.
User requirements must be documented as specifically and unambiguously as possible.
Once the required information is completely gathered it is documented in a URD, which is meant to
spell out exactly what the software must do and becomes part of the contractual agreement.
A customer cannot demand features not in the URD without renegotiating and a developer cannot
claim the product is ready if it does not meet an item of the URD.
The URD can be used as a guide to planning cost, timetables, milestones, testing, etc. The explicit
nature of the URD allows customers to show it to various stakeholders to make sure all necessary
features are described.
Formulating a URD requires negotiation to determine what is technically and economically feasible.
Preparing a URD is one of those skills that lies between a science and an art, requiring both software
technical skills and interpersonal skills.
Often a URD includes priority ranking for each requirement. A typical system might be as follows:

M Mandatory requirement. This feature must be built into the final system.

D Desirable requirement. This feature should be built into the final system unless the cost is too
high.

O Optional requirement.

E Possible future enhancement.
White box testing
White-box testing is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality.
In white-box testing an internal perspective of the system, as well as programming skills, are used to
design test cases. The tester chooses inputs to exercise paths through the code and determine the
appropriate outputs. This is analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT).
It is usually done at the unit level. It can test paths within a unit, paths between units during
integration, and between subsystems during a system–level test.
This method of test design can uncover many errors but might not detect unimplemented parts of
the specification or missing requirements.
Clearly better than bb testing on individual small modules because it gets into a level of detail
Discovers extra non-specified functions e.g. non-documented illegal options supplied by malicious
programmer
27
Download