SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
 
2009 
MET CS682 
Version 1.0 
Christian Reina, CISSP 
Mark Pelletier 
 
This document may be used only for informational, educational,  and noncommercial purposes. You are free to copy, distribute, publish and alter this document under the conditions that you give credit to the original 
authors. 2009 – Christian Reina, CISSP, Mark Pelletier. 
Module 1 – Introduction & Process Possible values and benefits of information systems:
 Increased business profit
 Reduced Business Cards
 Costs and Benefits of the System
 Increased Market Share
 Improved Customer Relations
 Increased Efficiency
 Improved Decision Making
 Better Compliance with Regulations
 Fewer Mistakes
 Improved Security
 Greater Capacity
Role of a System Analyst
 Initiate change within an organization
 “Problem solver”
Skills of a System Analyst
 Working knowledge of information technologies
 Computer programming experience and expertise
 General knowledge of business processes and terminology
 General problem-solving skills
 Good interpersonal communication skills
 Good interpersonal relations skills
 Flexibility and adaptability
 Character and ethics
Technology Drivers for an Information System
 Networks and the Internet
o xHTML and XML
o Scripting
o Java, Cold Fusion
o Intranets
o Extranets
o Portals
o Web Services
 Mobile and Wireless Technologies
o HP iPaq
o Blackberry
o Cell Phone
o Bluetooth
 Object Technologies
o C++
o Java
o Smalltalk
o Visual Basic .NET
 Collaborative Technologies
 Enterprise Applications
Business Drivers for an Information System
 Globalization of the economy
 Electronic commerce and business
 Security and privacy
 Collaboration and partnership
 Knowledge asset management
 Continuous improvement
 Total quality management
 Business process redesign
System Development Process
 Identify the problem
 Analyze and understand the problem
 Identify the solution
 Identify alternative solutions and choose the best course of
action
 Design the chosen solution
 Implement the chosen solution
 Evaluate the results
Classes of Information System Applications
 Transaction Processing Systems (TPS)
 Management Information System (MIS)
 Decision Support System (DSS)
 Executive Information System (EIS)
 Expert System
 Communication and Collaboration System
 Office Automation System
Classes of Information System Applications
 System owners and System users focus on three common
goals
 Improve business knowledge
 Improve business processes
 Improve business communications
 System designers and builders focus on three common goals
 Database technologies that support business accumulation
and use of knowledge
 Software technologies that automate and support business
processes and services
Interface technologies that support business communications and
collaboration
Communication Improvements in Information Systems are
directed toward 2 goals
 Information systems must provide effective and efficient
communication interfaces to the system’s users. These
interfaces should promote teamwork and coordination of
activities
 Information systems must interface effectively and efficiently
with other information systems – both with those within the
business and increasingly with other business’s information
systems
Vocabulary
Agile Development: A systems development strategy wherein the
system developers are given the flexibility to select from a variety
of appropriate tools and techniques to best accomplish the tasks
at hand. Strike an optimal balance between productivity and
quality for systems development
B2B: Business to business electronic commerce is the real future.
This is the most complex form of electronic commerce and could
ultimately evolve into electronic business, the complete,
paperless, and digital processing of all business transactions that
occur within and between businesses
B2C: Business to consumer electronic commerce attempts to offer
new, web-based channels of distribution for traditional products
and services. Example amazon.com
Business Process: Tasks that respond to business events.
Business processes are the work, procedures, and rules required
to complete the business tasks independent of any information
technology used to automate or support them
Business Process Redesign: The study, analysis, and redesign of
fundamental business processes to reduce costs and improve
value added to the business
Continuous Process Improvement (CPI): The continuous
monitoring of business processes to effect small but measurable
improvements in cost reduction and value added
Customer Relationship Management (CRM): A software
application that provides customers with access to a business's
processes from initial inquiry through post sale service support
Data: Raw facts about people, places, events, and things that are
of importance in an organization. Each fact is, by itself relatively
meaningless
Module 1 – Introduction & Process Electronic Business: The user of the internet to conduct and
support day to day business activities
Electronic Commerce: The buying and selling of goods and
services by using the internet
Enterprise Application Integration (EAI): The process and
technologies used to link applications to support the flow of data
and information between those applications. EAI solutions are
based on middleware
Enterprise Resource Planning (ERP): A software application that
fully integrates information systems that span most or all of the
basic, core business functions(including transaction processing
and management information for those business functions)
Information: Data that has been processed or reorganized into a
more meaningful form for someone. Information is formed from
combinations of data that hopefully have meaning to the recipient
Information System: An arrangement of people, data, processes,
and information technology that interact to collect, process, store,
and provide as output the information needed to support an
organization
Information System - Communications and Collaboration System:
An information system that enables more effective communication
between workers, partners, customers, and suppliers to enhance
their ability to collaborate
Information System - Decision Support System: An information
system that either helps to identify decision making opportunities
or provides information to help make decisions
Information System - Execute Information System: An information
system that support the planning and assessment needs of
executive managers
Information System - Expert System: An information system that
captures the expertise of workers and then simulates that
expertise to the benefit of non-experts
Information System - Management Information System: An
information system that provides for management-oriented
reporting based on transaction processing and operations of the
organization
Information System - Office Automation System: An information
system that supports the wide range of business office activities
that provide for improved work flow between workers
Information System - Transaction Processing System: An
Information system that captures and processes data about
business transactions
Information Worker: Any person whose job involves creating,
collecting, processing, distributing, and using information
Knowledge: Data and information that are further refined based
on the facts, truths, beliefs, judgments, experiences, and expertise
of the recipient. Ideally information leads to wisdom.
Middleware: Software (usually purchased) used to translate and
route data between different applications
Mobile User: A user whose location is constantly changing but
who requires access to information systems from any location
Object Technology: A software technology that defines a system
in terms of objects that consolidate data and behavior. Objects
become reusable and extensible components for the software
developers
Object-Orientated Analysis and Design: A collection of tools and
techniques for systems development that will utilize object
technologies to construct a system and its software
Process Management: The ongoing activity that defines,
improves, and coordinates the use of an organizations chosen
methodology and standards for all system development projects
Project Management: The activity of defining, planning, directing,
monitoring, and controlling a project to develop an acceptable
system within the allotted time and budget
Remote Users: A user who is not physically located on the
premises but who still requires access to information systems
Stakeholders: Any person who has an interest in existing or
proposed information system. Stakeholders may include both
technical and non-technical workers as well as internal and
external workers
Stakeholders - External Service Providers A systems analyst,
system designer, or system builder who sells his or her expertise
and experience to other businesses to help those businesses
purchase, develop, or integrate their information systems
solutions; may be affiliated with a consulting or services
organization
Stakeholders - Project Manager An experienced professional who
accepts responsibility for planning, monitoring, and controlling
projects with respect to schedule, budget, deliverables, customer
satisfaction, technical standards, and system quality
Stakeholders - Systems Analyst A specialist who studies the
problems and needs of an organization to determine how people,
data, processes, and information technology can best accomplish
improvements for the business
Stakeholders - Systems Builders - Applications Programmers
Specialists who convert business requirements and statements of
problems and procedures into computer languages. They
develop and test computer programs to capture and store data
and to locate and retrieve data for computer applications
Stakeholders - Systems Builders - Database Programmers
Specialists in database languages and technology who build,
modify, and test database structures and the programs that use
and maintain them
Stakeholders - Systems Builders - Network Administrators
Specialists who design, install, troubleshoot, and optimize
computer networks
Stakeholders - Systems Builders - Security Administrators
Specialists who design, implement, troubleshoot, and manage
security and privacy controls in a network
Stakeholders - Systems Builders - Software Integrators
Specialists who integrate software packages with hardware,
networks, and other software packages
Stakeholders - Systems Builders - Systems Programmers
Specialists who develop, test, and implement operating systems
level software, utilities, and services. Increasingly, they also
develop reusable software components for use by applications
programmers
Stakeholders - Systems Builders - Webmasters Specialists who
code and maintain web servers
Module 1 – Introduction & Process Stakeholders - Systems Design - Technology Specialists Experts
in the application of specific technologies that will be used in a
system (e.g. a special commercial software package or specific
type of hardware)
Stakeholders - Systems Designer A technical specialist who
translates system users' business requirements and constraints
into technical solutions. She or he designs the computer
databases, inputs, outputs, screens, networks, and software that
will meet the system users' requirements
Stakeholders - Systems Designer Database Administrators,
Network Architects, Web Architects, Graphic Artists, Security
Experts, Technology Specialists
Stakeholders - Systems Designer - Database Administrator
Specialists in database technologies who design and coordinate
changes to corporate database
Stakeholders - Systems Designer - Graphic Artists Relatively new
in today’s IT worker mix, specialists in graphics technology and
methods used to design and construct compelling and easy-to-
use interfaces to systems, including interfaces to PCs, the Web,
handhelds, and smart phones
Stakeholders - Systems Designer - Network Architects Specialists
in networking and telecommunications technologies who design,
install, configure, optimize, and support local and wide area
networks, including connection to the internet and other external
networks
Stakeholders - Systems Designer - Security Experts Specialists in
the technology and methods used to ensure data and network
security and privacy
Stakeholders - Systems Designer - Web Architects Specialists
who design complex Web Sites for organizations, including public
Web sites for the Internet, internal Web sites, for organizations
and private B2B Web sites (extranet)
Stakeholders - Systems Owners An information system's sponsor
and executive advocate, usually responsible for funding the
project of developing, operating, and maintaining the information
system
Stakeholders - Systems Users A "customer" who will use or is
affected by an information system on a regular basis - capturing,
validating, entering, responding to, storing, and exchanging data
and information
Stakeholders - Systems Users Internal Systems Users - Clerical
and service workers, Technical and Professional staff,
Supervisors, middle managers, and executive managers
Stakeholders - Systems Users External Systems Users -
Customers, Suppliers, Partners, Employees "Remote Users"
Supply Chain Management (SCM): A software application that
optimizes business processes for raw material procurement
through finished product distribution by directly integrating the
logistical information systems of organizations with those of their
suppliers and distributors
System: A group of interrelated components that function
together to achieve a desired result
System Analysis: The study of a business problem domain to
recommend improvements and specify the business requirements
and priorities for the solution
System Design: The specification or construction of a technical
computer based solution for the business requirements indentified
in a system analysis
System Development: Process A set of activities, methods, best
practices, deliverables and automated tools that stakeholders use
to develop and maintain information systems and software
System Implementation: The construction, installation, testing,
and delivery of a system into production
System Initiation: The initial planning for a project to define initial
business scope, goals, schedule and budget
Systems Integration: The process of building a unified information
system out of diverse components of purchase software, custom-
built software, hardware, and networking
Total Quality Management (TQM): A comprehensive approach to
facilitating quality improvements and management within a
business
Front-Office Information System: An information system that
supports business functions that extend out to the organizations
customers
Back-Office Information System: An information system that
supports internal business operations of an organization, as well
as reaches out to suppliers
Information Systems Architecture: A unifying framework into which
various stakeholders with different perspectives can organize and
view the fundamental building blocks of information systems
Data Requirement A representation of users' data in terms of
entities, attributes, relationships, and rules.
Business Function: A group of related processes that support the
business. Functions can be decomposed into other sub functions
and eventually into processes that do specific tasks
Cross Functional Information System: A system that supports
relevant business processes from several business functions
without regard to traditional organizational boundaries such as
divisions, departments, centers, and offices
Process Requirements: A user's expectation of the processing
requirements for a business process and its information system
Policy: A set of rules that govern a business process
Procedure: step by step set of instructions and logic for
accomplishing a business process
Work Flow: The flow of transactions through business processes
to ensure appropriate checks and approvals are implemented
Software Specifications: The technical design of business
processes to be automated or supported by computer programs to
be written by system builders
Application: Program A language-based, machine-readable
representation of what a software process is supposed to do or
how a software process is supposed to accomplish its task
Prototyping: A technique for quickly building a functioning but
incomplete model of the information system using rapid
application development tools
Interface Specifications: Technical designs that document how
system users are to interact with a system and how a system
interacts with other systems
User Dialogue: A specification of how the user moves from
window to window or page to page, interacting with the application
programs to perform useful work
Module 2 – System Development Processes 
“Consistent adherence to moderately rigorous methodology
guidelines can provide 70 percent of system development
organizations with a productivity improvement of at least 30%
within 2 years.”
CMM Framework
1.Initial: Inconsistent methods
2.Repeatable: Consistent project management
3.Defined: Consistent process used
4.Managed: Process managed and measured
5.Optimized: Continuous process improvement
A systems development methodology is the standard process to
build and maintain that system and all other information systems
through their life cycle and is consistent with the CMM by ensuring
the following:
• Consistency
• Risk reduction
• Documentation
• Resource allocation (stakeholders)
• Job rotation and proper flow
Principles for Systems Development
1.Get the System User Involved.
2.Use a problem solving approach
a. Study and understand (context / impact)
b. Define the requirements
c. Identify candidate solutions and select
d. Design/implement
e. Observe/evaluate
3.Establish Phases and Activities
4.Document: Value of documentation and the effort to produce it.
5.Establish standards:
a. Database technology
b. Software technology
c. Interface technology
6.Manage the process and projects
7.Justify information systems as capital investments
8.Don’t be afraid to cancel or revise scope: At each checkpoint,
the analyst should consider:
a. Cancel the project
b. Reevaluate and adjust
c. Reduce the scope
9.Divide and conquer: divide system into subsystems
10.Design systems for growth and change.
Framework for Classifying Problems
P – Performance
I – Information (and data)
E – Economics, controls costs, increase profits
C – Control or security
E – Efficiency
S – Service
FAST Methodology
1.Scope definition: Problem statement, constraints, baseline,
statement of work
2.Problem analysis:
3.Requirements analysis: prioritize; identify needs and priorities;
Does not specify any technical possibilities or solutions
4.Logical design: data flow diagram, “technology independent”,
RUP, IE, Structured analysis and design. Prevent analysis
paralysis.
5.Decision analysis: Transition from analysis to design. System
proposal is a key deliverable and it may produce an application
architecture. Candidate solutions have been identified and
evaluated by the following criteria:
a. Technical feasibility: practical?
b. Operational feasibility: fulfill user’s
requirements?
c. Economic feasibility: cost-effective?
d. Schedule feasibility: Acceptable time period?
e. Risk feasibility: probability for success?
6.Physical design and integration: Represents a specific technical
solution.
a. Design by specification
b. Design by prototyping
7.Construction and testing: build, test, and implement the
interfaces between the new system and existing systems.
8.installation and delivery:
System Operation and Maintenance: provide system support for
the remainder of its useful, productive life time.
Classic Phase
1.Project initiation: Scope / Problem analysis
2.System Analysis: Problem analysis/Requirements/Logical
design
3.System Design: Physical design and integration/Construction
and testing
4.System implementation: Construction and testing/Installation
and delivery
Cross life-cycle activities
Multiple phases that overlap the system development process.
• Fact-finding
• Documentation and presentation
• Feasibility analysis
• Process and project management
Alternative Strategies
Sequential vs. Iterative development: Incremental development
until all iterations are completed or a waterfall approach.
Model-driven development: Software development using pictures
• Process modeling
• Data modeling
• Object modeling
Advantages: better documentations and requirements,
easier to validate using pictures, systems can be
constructed more correctly the first time.
Disadvantages: time-consuming, models only as good
as the user’s understanding, Users become passive
participants, Rigidity is impractical and inflexible
Product-driven development: software development by writing
code.
• Prototyping
o Rapid Application Development (RAD)
Advantages: encourages active user and
management participation, higher visibility due
to user participation, errors detected in
advance, testing and training becomes a
natural process
Disadvantages: Increase costs to maintain
and repair, problem analysis tends to be
ignored, discourages other technical
alternatives, impact on quality
• Writing code (extreme programming)
Module 2 – System Development Processes 
Commercial Application Package Implementation Strategy: This
methodology is not intended for ERP projects. This is a software
application that could be customized to meet business needs.
Commercial Off-the-shelf System (COTS)
1.Determine need in the problem analysis phase
2.Technology market research
3.Request of Proposal/Request for Quotation
4.Proposals/Quotations
5.Contract and order
6.Baseline Commercial Application software and documentation
7.Features and capabilities: Redesigned business process
8.Add-on software requirements: Gap analysis to determine
what’s missing
9.Customized commercial application: implementation
10.add-ons are constructed to meet requirements
Advantages: No extensive programming required, in-
house development is costly, vendors can improve
products, vendor assumes responsibility
Disadvantages: Depends to how successful the vendor
is, purchased solution does not reflect the ideal solution,
resistance to change process for new purchased
product
System Maintenance
1. Feedback
2. System Change Request
3. Software bugs
4. Design flaw
5. Technical requirement
6. Business requirement
7. Business problem
8. Updated or improved system
Automated Tools and Technology
1. Computer Assisted Systems Engineering (CASE):
a. CA’s Erwin
b. Oracle’s Designer 2000
c. Popkin’s System Architect
d. Rational ROSE
e. Visible Systems’ Visible Analyst
2. Application Development Environments (ADEs):
Programming languages or interpreters with powerful debugging,
interface construction tools, middleware, testing tools, version
control, help authoring tools, repository links
a. IBM’s Websphere (java)
b. Borland’s J Builder (java)
c. Cold Fusion
d. .NET
e. Oracle’s Developer
f. Sybase’s Powerbuilder
3. Process and Project Managers:
a. MS project
b. Niku’s Open Workbench and Project
Manager.
Project Management
Success
• Acceptable to the customer
• On time
• Within budget
• Minimal impact on operations
Failure:
• No management support
• No commitment to systems development methodology
• Taking shortcuts
• Scope creep, feature creep
• Premature commitment to a fixed budget
• Poor estimating techniques
• Over-optimism
• Mythical man-month: adding more personnel when it’s
not going to work.
• Inadequate management skills
• Failure to adapt to business change
• Insufficient resources
• Failure to manage the plan
Project Management Body of Knowledge
PMI was created as a professional society to guide the
development and certification of professional project managers.
 Project manager competencies:
o Business achievement competencies
 Business awareness
 Business partner orientation
 Commitment to quality
o Problem-Solving Competencies
 Initiative
 Information gathering
 Analytical thinking
 Conceptual thinking
o Influence competencies
 Interpersonal awareness
 Organizational awareness
 Anticipation of impact
 Resourceful use of influence
o People Management competencies
 Motivating others
 Communication skills
 Developing others
 Monitoring and controlling
o Self-management competencies
 Self-confidence
 Stress-management
 Concern for credibility
 Flexibility
 Project Management Functions
o Scoping
o Planning
o Estimating
o Scheduling
o Organizing
o Directing
o Controlling
o Closing
 Project Management Tools and Techniques (PERT and
Gantt
o PERT chart: Project Evaluation and Review
Technique is a graphical network model used to
depict the interdependencies between a project’s
tasks:
o Gantt chart: A simple horizontal bar chart that
depicts projects tasks against a calendar. Offer the
advantage of clearly showing overlapping tasks.
 Project Management Software:
o Niku’s project manager
o Artemis International Solutions Corporation’s 9000
o CA’s AllFusion Process Management Suite
o Microsoft Project
o Primavera’s Project Planner and Project Manager
o C/S Solutions’ Risk+
Project Management Life Cycle
1. Activity 1: Negotiate Scope: Most important
prerequisite. Product, Quality, Time, Cost, Resources.
a. The deliverable is an agreed-on statement of
work
2. Activity 2: Identify Tasks:
a. Work Breakdown Structure (WBS) is like
breaking the project into phases. Special
tasks are called milestones.
3. Activity 3: Estimate Task Durations:
a. OD, PD, ED, D
i. Decomposition: decomposed into
manageable pieces
ii. COCOMO: Parameters from
previous projects help determine
new project estimations
iii. Function points: Measured based
on the complexity of input, output,
files, and queries.
4. Activity 4: Specify Intertask Dependencies
a. Finish to Start (FS): Finish one to start the
next one
b. Start to Start (SS): Start of one triggers the
start of another
c. Finish to Finish (FF): Two tasks must finish at
the same time
d. Start to Finish (SF): Start of one means
another finished
5. Activity 5: Assign Resources:
a. People
b. Services
c. Facilities and equipment
d. Supplies and materials
e. Money
6. Activity 6: Direct the team effort:
7. Activity 7: Monitor and Control Progress
a. Progress Reporting: Verbal or written, but
honest and accurate
b. Change management: Collection of
procedures for documenting a change
request and defines the necessary steps.
Managing the expectations of the
stakeholders
Module 2 – System Development Processes 
c. Expectations management: Understanding
the dynamics and impact of changing the
parameters of a project.
d. Critical Path Analysis: Emphasis should be
placed on the critical path tasks, and if
necessary, resources might be temporarily
diverted from tasks with slack time to help get
critical tasks back on schedule.
8. Activity 8: Assess project results and experiences:
Contribute improvements to specific project milestones,
processes, or tasks.
Vocabulary
Systems Development Process: Activities, methods, best
practices, and automated tools that stakeholders use to develop
and improve information systems and software.
Capability Maturity Model (CMM): Framework for assessing the
maturity level of an organization’s information systems
development and management processes and products.
System development methodology: formalized approach to the
systems development process; a standardized process that
includes the activities, methods, best practices, deliverables, and
automated tools to be used for information systems development.
 RAD: Architected Rapid Application Development
 DSDM: Dynamic Systems Development Methodology
 JAD: Joint Application Development
 IE: Information Engineering
 RAD: Rapid Application Development
 RUP: Rational Unified Process
 Structured Analysis and Design
 XP: eXtreme Programming
System life cycle: build it, use it, and maintain it. Then cycle it
back to redevelopment.
Conversion: System cycles from development to operation and
maintenance
Obsolescence: System cycles from operation and maintenance to
redevelopment
FAST: Framework for the Application of Systems Thinking.
Hypothetical methodology.
Process management: Document, oversee, improve chosen
process (Methodology)
Project management: Process of scoping, planning, staffing,
directing and controlling a project to develop an information
system.
Cost-effectiveness: Balance between developing, maintaining,
and operating and the benefits
Strategic information systems plan: Building and improving an
information technology infrastructure
Strategic enterprise plan: Defines mission, vision, goals,
strategies, benchmarks, and measure of progress and
achievement.
Creeping Commitment: Feasibility and risks are continuously
reevaluated throughout a project.
Entropy: natural and inevitable decay of all systems over time.
PIECES: Framework developed by James Wetherbe
Steering Committee: Prioritizes and approves candidate system
development projects
Backlog: lower priority projects
Problem statement: Preliminary study and feasibility assessment.
Problems, opportunities, directives; may include constraints and
initial vision
Constraint: limitation
Scope creep: Expectations and requirements increase w/o regard
to cost and deadlines
Statement of work: defines vision, scope, constraint, high level
requirements, schedule, and budgets. Protect charter, plan, and
service level agreement.
System model: Words into pictures. Data flow diagrams
Analysis paralysis: excessive system modeling
Application architecture: a decision analysis step that proposes a
high level blueprint for the approved solution.
RFP: Request For System Proposal. Recommendation to
purchase the solution rather than building it.
Fact-finding: Techniques to collect information about system
problems, requirements and preferences. Information gathering
Feasibility analysis: how feasibility is assessed.
Prescriptive methodology: touch all bases; follow all the rules
Adaptive methodology: change as needed within some guidelines
Process modeling: Data flow diagrams, structure charts,
flowcharts
Data modeling: Diagrams to capture business data requirements
and translate to database design.
Object modeling: Merge data and process concerns into objects
RFQ: Request for Quotation. Formal document stating technical
and support requirements for a single vendor.
CASE: Tools that provide prototyping and code generation
CASE repository: database to store system models and other
products of system development. Data dictionary
Forward engineering: Generate code from system models
Reverse engineering: Initial system models from software or
database code.
Project: temporary sequence of unique, complex, and connected
activities that have one goal or purpose and that must be
completed by a specific time, within budget, and according to
specification.
Scope creep: unexpected growth of requirements
Feature creep: uncontrolled addition of technical features to a
system
JPP: Joint Project Planning Technique is a strategy where
stakeholders attend an intensive workshop aimed at reaching
consensus on project decisions.
Primitive task: does not consist of other tasks. Part of the work
breakdown structure (WBS)
Summary task: consist of other tasks (phases and activities)
OD: Optimistic Duration estimates the minimum amount of time to
complete a task
PD: Pessimistic duration estimates that maximum amount of time
to complete a task
ED: Expected Duration estimates amount of time to complete a
task
D: Most likely Duration estimates amount of time to complete a
task based on averages of OD, PD, and ED.
Forward Scheduling: Start date and then follow from that date
Reverse Scheduling: Establish deadline to figure out the schedule
Resource Leveling: Correcting resource overallocations
Critical path: sequences of dependent tasks w/o any slack time
which combined determine completion date
Slack time: time to delay a project between start and completion
time.
Module 3 –System & Requirements Analysis  Requirements Discovery
Requirements discovery and management correctly identify the
knowledge, process, and communication requirements for the
users of a new system. They must meet the following criteria:
 Consistent
 Complete
 Feasible
 Required
 Accurate
 Traceable
 Verifiable
Requirement Discovery Process
1. Problem discovery and analysis: Ishikawa diagram is a
graphical tool that helps identify 3 to 6 main categories
that encompass all possible areas of causes for a
particular problem.
2. Requirements discovery: Information gathering, data
collection, fact-finding
3. Documenting and analyzing requirements: Provide
direction for the modeling techniques the systems
analyst will use to analyze the requirements and
determine the correct requirements for the project.
a. Documenting the draft requirements:
i. Uses cases
ii. Decision tables
iii. Requirements tables
b. Analyzing requirements: Fact-finding and
requirements analysis activities are very
closely associated with each other and in fact
are often interwoven.
c. Formalizing requirements: Using
requirements definition document to formally
communicate the requirements of a proposed
system.
i. Introduction
1. Purpose
2. Background
3. Scope
4. Definitions, acronyms,
abbreviations
5. References
ii. General project description
1. Functional requirements
iii. Requirements and constraints
1. Functional requirements
2. Non functional
requirements
iv. Conclusion
1. Outstanding issues
4. Requirements management
Fact-finding Techniques
Analysts must take great care to protect the security and privacy
of any facts or data with which they have been entrusted.
1. Sampling of Existing Documentation, Forms, and Files
a. Describe a problem: suggestion box, minutes,
complaints, accounting records, IS project
requests
b. Describe a business function: Mission
statement, formal objectives, policy manuals,
manual and computerized screens and
reports
2. Research and site visits: Perform site visits with
companies that had similar problems, computer trade
journals, reference books, internet.
3. Observation of the work environment: Sometimes
analyst performs the role of the user for a short period
of time, called “living the system”.
a. Advantages:
i. Reliable
ii. Complex tasks are easier to
understand
iii. Inexpensive
iv. Work measurements
b. Disadvantages:
i. Performance may vary when being
observed
ii. Level of difficulty or volume may
vary
iii. Scheduling inconvenience
iv. Interruptions
v. False sense of proper step by step
procedures since people will
change their behavior when being
observed.
4. Questionnaires:
a. Advantages:
i. Time
ii. Inexpensive
iii. Anonymity
iv. Quick analysis
b. Disadvantages
i. Low number or respondents
ii. No guarantee about the content of
a response
iii. Inflexible
iv. No opportunity for clarification
v. Difficult to prepare
5. Interviews:
a. Advantages
i. Opportunity to allow for open
responses
ii. Allow for more feedback
iii. Adapt and reword questions
iv. Analyze non-verbal communication
b. Disadvantages:
i. Time consuming
ii. Success varies depending on skill
iii. Impractical due to location
c. How to Conduct an Interview
i. Select Interviewees
ii. Prepare interview
iii. Conduct interview
iv. Follow up on the interview
v. Listening
vi. Body language and proxemics
6. Discovery prototyping:
a. Advantages
i. Allow for experimentation
ii. Aids in determining feasibility
iii. Training mechanism
iv. Helps to build test plans
v. May minimize fact-finding
b. Disadvantages
i. Developers need training
ii. Users may develop unrealistic
expectations
iii. Increase cost and schedule
7. Joint Requirements Planning (JRP):
a. Participants: Sponsor, Facilitator,
Users/Managers, Scribe(s), IT Staff
b. Benefits:
i. Users/Managers take ownership of
the project
ii. Reduce time to develop system
iii. Prototyping benefits from JRP
Fact-finding Strategy
1. Learn from existing documents, forms, reports, and files
2. If appropriate, observe the system in action
3. Distribute questionnaires
4. Conduct interviews
5. (optional) build discovery prototypes
6. Follow up using appropriate fact-finding techniques.
Module 3 –System & Requirements Analysis  Use-Case Modeling
Use-Case modeling has proved to be a valuable aid in meeting
the challenges of determining what a system is required to do
from a user and stakeholder perspective.
System Concepts for Use-Case Modeling
1. Use Cases: Describe the system functions from the
perspective of external users and in a manner and
terminology they understand.
2. Actors: Anything that interacts with the system
a. Primary business actor: stakeholder that
benefits from the execution of the use case.
b. Primary system actor: stakeholder that
directly interacts with the system
c. External server actor: stakeholder that
responds to a request from the use case
d. External receiver actor: stakeholder that is not
the primary actor receives something from the
use case.
3. Relationships
a. Associations: Bidirectional or unidirectional
relationships between actor and a use case
b. Extends: Relationship between extension use
case and a use case.
c. Uses (or includes): Relationship between
abstract use case and a use case.
d. Depends on: Relationship between Use-
Cases determining their sequence.
e. Inheritance: Relationships between actors. It
is best to use a common behavior and assign
it to a “abstract actor”
The Process of Requirements Use-Case
Modeling
Analyze enough requirements information to prepare a model that
communicates what is required from a user perspective but is free
of specific details about how the system will be built and
implemented.
Steps:
1. Identify Business Actors
2. Identify Business Requirements Use Cases: Captures
the interactions with the user in a manner that is free of
technology and implementation details.
3. Construct Use-Case Model Diagram
4. Document Business Requirements Use-Case
Narratives: First document at a high level and then
expand it to a fully documented business requirement
narrative.
a. Documenting the Use-Case Course of
Events: step by step description.
Use Cases and Project Management
1. Ranking and Evaluating Use Cases: Based on the
following six criteria (scale 1-5)
1) Significant impact on the architectural design
2) Easy to implement but contains significant
functionality
3) Includes risky, time-critical, or complex
functions
4) Involves significant research or new or risky
technology
5) Includes primary business functions
6) Will increase revenue or decrease costs.
2. Identifying Use-Case Dependencies: Use-case
dependency diagram is a graphical depiction of the
dependencies among use cases.
Vocabulary
System requirement: property or function of the information
system.
Functional requirement: something the information system must
do.
Nonfunctional requirement: property of quality the system must
have.
Performance: response time
Information: content, timeliness, accuracy, and format
Economy: costs
Control (and security): privacy requirements
Efficiency: Reduce waste
Service: reliable, flexible, and expandable
Ishikawa diagram: case-and-effect diagram, fishbone diagram
Requirements definition document: Formal document that
communicates the requirements of a proposed system to the
stakeholders.
Requirements management: Managing change to the
requirements.
Sampling: Collecting a representative sample of documents,
forms, and records.
Randomization: No predetermined pattern
Stratification: Spread out sampling by using a formula
Observation: A fact-finding technique.
Free-format questionnaire: Offers greater latitude in the answer.
Fixed-format questionnaire: Selecting an answer from predefined
available responses. (multiple choice, rating, ranking)
Interview: a fact-finding technique through face to face interaction
Unstructured interview: Few questions. Relies on interviewee to
drive the conversation.
Structured interview: Specific set of questions
Open-ended question: Response varies
Closed-ended question: Restricts answers to specific choices.
User-centered development: Understanding the needs of the
stakeholders and the reasons why the system should be
developed.
Use-Case diagram: Depicts the interactions between the system
and external systems and users.
Functional decomposition: Act of breaking a system into
subcomponents.
Temporal Event: a system event that is triggered by time.
Extension use case: Steps extracted from a more complex use
case in order to simplify things.
Abstract use case: Combining common steps between two use
cases.
Module 3 –System & Requirements Analysis  Requirements
The process of understanding what's wanted or needed in an
application. Requirements begin as a generalized description of a
customer need as a customer vision or a mission or context
statement. Requirements begin to define the “what” in a bit more
detail. This detail is usually focused on the business aspects of
the system operations and in many organizations is identified as
“Business Requirements.” As analysts gather more and more
information about customer wants and needs and develop the
next iteration of requirements, these requirements then begin to
get more detailed in explaining the function of the “what” the
customer wants or needs in more detail. These types of details
are usually called functional requirements.
C & D Requirements
For this reason we often divide requirements documents into two
versions: C-requirements and D-requirements. In some
organization, this division is roughly equivalent to the division
between business requirements and functional requirements. The
first part of a requirements document is an overview that is
especially suited to customers. These are sometimes called the
C-requirements (“C” stands for “customer”).The second part of a
requirements document (or a separate document when the
system being described is a large one) consists of the details of
system operations. These details are especially useful for
developers who need to know precisely what the application must
do. These are sometimes called the D-requirements (“D” stands
for “detailed” or for “developer”).
Document Maintenance and Traceability
Linking artifacts is a good way to attain traceability. Key links are
the associations between each requirement and (a) the design
element that accommodates it, (b) the code that implements it, (c)
the inspection that verifies it, and (d) the test that validates it. The
following shows relationships between the artifacts, based on a
single requirement.
Functional vs. Non-Functional Requirements
A functional requirement specifies something that the application
allows the user to accomplish. All other requirements are non-
functional. Some non-functional requirements are performance
requirements.
Customer-Oriented Requirements
The main purpose of customer-oriented C-requirements is to
provide you with a good idea of the application by omitting details.
C-requirements are usually divided into sections including
"Overview," "Main Functions" and "GUI concepts." The overview
is intended to allow readers to quickly understand the main
purpose of the intended application. Following an overview
section, C-requirements usually list the major functions such as
"enter new video," "rent video," etc. Since users usually utilize
applications through a relatively small number of common back-
and-forth interactions, this can be a good way to summarize
functionality. These interactions are termed "use cases."
Applications typically involve multiple GUIs. The C-requirements
describe the required mouse actions that take the user from one
GUI to another.
Detailed Requirements
The purpose of detailed requirements (“D-requirements”) is to
specify all of the details required of the application. There is
nowhere else for the team to state exactly what is required. The
purpose of detailed requirements (“D-requirements”) is to specify
all of the details required of the application. There is nowhere else
for the team to state exactly what is required.
Functional Requirements
The functional requirements are the heart of the requirements
because they describe what the application is intended to do.
They can be organized by Function, Use Case, GUI, or Class.
Domain Classes (Business Objects)
Classes derived from the business requirements are known as
domain classes or business objects.
A common first step in identifying domain classes is to gather the
nouns or their equivalent used in the C-requirements.
The second step is to eliminate duplicates as well as
questionable or vague entries.
The third step is to ensure that both individuals and aggregates
appear.
The last step is to inspect the list to ensure that the set of
paragraphs describing these entities adequately covers the
functional requirements.
Non-Functional Requirements
Any requirement that does not specify functionality (behavior)
provided by the application is non-functional. Major non-functional
categories are: external interfaces (hardware, software, and
communication), error conditions, system attributes (reliability,
availability, security, maintainability, performance in terms of
speed and storage for different loads and other quality attributes.
 Constraints: A constraint on an application is a
requirement that limits it. Some examples of constraints
are shown below.
 Standards and Regulatory Compliance
 External Interface Requirements:Applications are
frequently required to interface with other systems.
 Error Condition Requirements
Steps for Developing User Interfaces
Step 1 - Know Your User
Step 2 - Understand the Business Function
Step 3 - Understand the Principles of Good Screen Design
Step 4 - Select the Appropriate Kind of Windows
Step 5 - Develop System Menus
Step 6 - Select the Appropriate Device-Based Controls
Step 7 - Select the Appropriate Screen-Based Controls
Step 8 - Organize and Lay Out Windows
Step 9 - Choose Appropriate Colors
Data Flow Diagrams for Customer
Communication
Some requirements are naturally described as the flow of data
among processing elements. These processing elements
transform data from one form to another as the result of
computations performed by these processing elements.
State Transition Diagrams for Customer
Communication
State Transition Diagrams for Customer Communication
States are sometimes called "phases" or "stages." The idea is to
divide the behavior of the application into states so that the
application is always in one of these states.
Module 4 – Modeling with UML System Concepts for Process Modeling
 External Agents: external to the system being analyzed.
Represented by a square (external entity). Singular
nouns.
 Data Stores: There should be one data store for each
data entity on an entity relationship diagram.
Represented by the open ended box. (file, database,
data at rest). Plural of the entity name: CUSTOMER >
customers (data store)
 Process: work performed by a system in response to
incoming data flows or conditions (transform).
Represented by a rounded rectangle.
o Process decomposition: break down of a
process into activities and tasks
o Logical process: work or action that must be
performed. Can be implemented as one or
more physical processes. Perform
computations, Make decisions, Sort, Filter,
Organize data, Trigger other processes, Use
stored data.
 Function: ongoing activities. Nouns
 Event: must be completed as a
whole. (transactions) General
names.
 Elementary processes:
detailed activities
(primitive process).
Strong action verb.
 Data Flows: input/output. Data in motion. Data should
travel together like a packet. Represented by an arrow.
Control flow is a condition or nondata event that triggers
a process and it is represented by a dotted arrow.
Singular descriptive nouns and use adjectives or
adverbs to help describe (APPROVED ORDER).
o Data structures: sequence, selection,
repetition
o Domains: Two properties required for each
attribute. Data type is what class of data can
be stored and domain is the legitimate value
for an attribute.
o Divergent and Convergent flows: Splits into
multiple data flows or merges into a single
data flow.
Process of Logical Process Modeling
 Strategic systems planning: Business areas and
functions are mapped to an enterprise process model.
 Process modeling for business process redesign (BPR):
A cross between data flow diagrams and flow charts.
Diagrams tend to be very physical.
 Process modeling during Systems Analysis: modern
structured analysis focus on the logical model of the
target system.
o Event partitioning: structured analysis where
a system is divided into subsystems:
 Context data flow diagram
 Functional decomposition diagram
 Even-response/use-case list
 Event handler
 Event diagram
 System diagrams
 Primitive diagrams
 Structured English and/or
decision table
 Data structure
 Fact-finding and information gathering for process
modeling
 CASE for process modeling:
Constructing process models
 Context data flow diagram: Document scope of a
system (environmental model)
 The functional decomposition diagram
 Event-response or Use-case list:
o External events: Initiated by external agents
o Temporal events: when these happen, an
input control flow occurs.
o State events: Illustrated as control flow.
 Event decomposition diagrams: one process per use
case
 Event diagrams: context diagram for a single event.
Most contain a single process.
 System diagram: The system diagram shows either all
the events for the system on a single diagram or all the
events for a single subsystem on a single diagram.
 Primitive diagrams: Event processes requiring more
details.
Structured English
Structured English is not pseudo code. It is natural English and
the syntax of structured programming.
 A sequence of simple, declarative sentences
 A conditional or decision structure.
 An iteration or repetition
Restrictions:
 Only strong, imperative verbs
 Only names that have been defined in the project
dictionary.
 Clear formulas
 No undefined adjectives or adverbs
 Readability over programmer preferences.
Decision Table
Set of conditions and actions represented in a tabular format.
 Condition stubs: Actions/conditions that will affect the
decision/policy
 Action stubs: possible policy actions/decisions
 Rules: Specific combination of conditions define an
action
Synchronizing of System Models
 Data and Process model synchronization: data to
process CRUD matrix: Create Read Update Delete
 Process distribution: Process to location association
matrix.
Object Oriented Analysis (OOA) & UML
An approach used to study existing objects to see if they can be
reused or adapted for new uses and define new or modified
objects that will be combined with existing objects into a useful
business computing application.
Unified Modeling Language (UML) is a set of modeling
conventions that is used to specify or describe a software system
in terms of objects.
System Concepts for Object Modeling
 Object, attributes, methods, and encapsulation
 Classes, Generalization, and specialization: gen/spec is
a technique of grouping common attributes/methods of
object classes into one unique object class called
supertype)
 Object class relationships
 Messages and Message sending: Object invokes
another object’s behavior for some action. CUSTOMER
requests order status  ORDER details display.
 Polymorphism: Objects respond to the same message
in different ways.
UML Diagrams
 Use case: Depicts interactions between the system and
external systems and users. In other words it
graphically describes who will use the system and in
what ways the user expects to interact with the system.
The use-case narrative is used in addition to textually
describe the sequence of steps of each interaction.
 Activity: Depicts sequential flow of activities of a use
case or business process. It can also be used to model
logic with the system.
 Class: Depicts the system's object structure. It shows
object classes that the system is composed of as well
as the relationships between those object classes.
 Object: Similar to a class diagram, but instead of
depicting object classes, it models actual object
instances with current attribute values. The object
diagram provides the developer with a "snapshot" of the
system's object at one point in time.
 State machine: Models how events can change the
state of an object over its lifetime, showing both the
various states that an object can assume and the
transitions between those states.
 Composite Structure: Decomposes internal structure of
class, component, or use case.
 Sequence: Graphically depicts how objects interact with
each other via messages in the execution of a use case
or operation. It illustrates how messages are sent and
received between objects and in what sequence.
Module 4 – Modeling with UML
 Communication: (Collaboration diagram in UML 1.X)
Depicts interaction of objects via messages. While a
sequence diagram focuses on the timing or sequence of
messages, a communication diagram focuses on the
structural organization of objects in a network format.
 Interaction Overview: Combines features of sequence
and activity diagrams to show how objects interact
within each activity of a use case.
 Timing: Another interaction diagram that focuses on
timing constraints in the changing state of a single
object or group of objects. Especially useful when
designing embedded software for devices.
 Component: Depicts the organization of programming
code divided into components and how the components
interact.
 Deployment: Depicts the configuration of software
components within the physical architecture of the
system's hardware "nodes."
 Package: Depicts how classes or other UML constructs
are organized into packages (corresponding to Java
packages or C++ and .NET namespaces) and the
dependencies of those packages.
Process of Object Modeling
 Modeling the functional description of a system
o Constructing the Analysis use-case model
 Identify, define, and document new
actors
 Identify, define, and document new
use cases
 Identify any reuse possibility
 Refine the use case model diagram
(optional)
 Document system analysis use
case narratives
o Modeling the use case activities: an activity
diagram can be used to graphically depict the
flow of a business process, the steps of a use
case, or the logic of an object behavior
o Guidelines for constructing activity diagrams
 Start w one initial node
 Add partitions
 Add an action for each major step
 Add flows from each action to
another action, decision point, or
end point
 Add decisions where flows diverge
and connect them back.
 Add forks and join where activities
are performed in parallel
 End with a single notation for
activity final
o System sequence diagram: depicts the
interaction between an actor and the system
for a use case.
o Guidelines for constructing system sequence
diagrams:
 Identify which scenario
 Draw a rectangle representing the
system
 Identify each actor
 Examine the use case narratives
 Add frames to indicate optional
messages with conditions
 Confirm the sequence
 Finding and identifying objects
o Find the potential objects
o Select the proposed objects
 Organizing objects and identifying relationships
o Identify associations and multiplicity
o Identify gen/spec
o Identify aggregation/composition
o Prepare class diagram
Classes in UML
Classes in UML diagrams are represented by rectangles
containing from one to three segments depending on the desired
level of detail.
Attributes describe data components that belong to objects of this
class.
Operations describe the behavior of objects of a class – actions
that an object can perform on behalf of the code that uses that
object.
Class relationships in UML
 Packages: UML packages can contain any materials
associated with an application, including source code,
designs, documentation, etc. The example below shows
the UML notation for packages and sub-packages. The
package myPackage has three components; the
package mySubPackage and two classes, MyFirstClass
and MySecondClass. The package mySubPackage has
only one component, MyClass.
 Inheritance: Inheritance is a relationship between
classes that we use to stress the fact that the two
classes have common attributes and/or operations.
The added benefit of the design with inheritance is that
subclass objects may be used anywhere where
superclass objects could be expected. This allows the
programmers to write so called polymorphic algorithms
that could be applied to objects of any subclass in the
inheritance hierarchy. In UML inheritance is indicated
with an open triangle.
 Aggregation: Aggregation indicates the structural
inclusion of objects of one class by an object of another
class. On UML diagrams, this relationship is denoted
with a hollow diamond. It is usually implemented by
means of a containing class (the aggregate) having an
attribute whose type is the included (aggregated) class.
Unlike inheritance, this is a relationship among objects,
not among classes. Composition is a stronger form of
aggregation in which the aggregated object exists only
during the lifetime (and for the benefit of) the composing
object: No other object may reference it.
 Dependency: Dependency, denoted with a dotted line
arrow, means that an object of one class depends upon
an object of another class in the sense that if the object
at arrow's end were to change its state or the values of
its data attributes, then this would affect the behavior of
the dependent object.
 Association: Association, denoted with a solid line
between two classes, commonly means that objects of
each class is somehow associated with objects of the
other class in a structural manner. One-way
associations are aggregations and compositions, which
we have already covered. Two-way associations are
problematical because we need to be sure that both
ends of the implied information are kept consistent.
Vocabulary
Logical model: nontechnical pictorial representation that depicts
what a system is or does
Physical model: what the system is or does and how the system
is implemented.
Process modeling: technique to organize and document a
system's processes
Control flow: a condition or nondata event that triggers a
process.
Data conservation: ensuring data flow contains only data needed
by the receiving process.
Data attribute: the smallest piece of data that has a meaning to
the users and the business
Balancing: a concept that requires that data flow diagrams at
different levels of detail reflect consistency and completeness
Object: something that is or is capable of being seen.
Attribute: characteristics of an object
Behavior: what the object can do. (method, operation, or service)
Object class: set of objects that share attributes and behaviors
(class)
Inheritance: methods/attributes inhereted from class to class
Supertype: parent class, abstract
Subtype: child class or concrete class if at the lowest level
Multiplicity: min/max occurrences of one object calss for a single
occurrence of the related object class
Aggregation: Computer contains CPU, memory, etc.
Composition: If you cancel the order, all items are removed from
the ORDER.
Override: child class uses its own attribute rather than the
inherited one.
Class diagram: depiction of a system's static object structure
showing classes and relationships
Persistent class: Describes object that outlives the execution of
the program
Transient object class: describes object that is created
temporarily by the program and lives only during the program's
execution.
Module 5 – System Architectures 
Systems Design
The specification of a detailed computer-based solution. Also
called, “physical design” because it focuses on the technical or
implementation concerns of the system.
Design Approaches
 Model-Driven Approaches: A system design approach that
emphasizes drawing system models to document technical
and implementation aspects of a system.
o Modern Structured Design: A system design
technique that decomposes the system’s
processes into manageable components. It is
considered a process-oriented technique also
known as, “top-down program design and
structured programming”. It must be highly
cohesive and loosely coupled. Structured design is
performed during systems design. The software
model derived from structured design is called a
structure chart.
o Information Engineering (IE): Model-driven and
data-centered, but process-sensitive, technique for
planning, analyzing, and designing information
systems.
o Prototyping: An interactive process involving a
close working relationship between the designer
and the users.
 Pros: End user participation, Iteration
and change, active, errors can detected
earlier, accelerates several phases of
the life cycle
 Cons: “Code, implement, repair”, it is
only a complement, issues can be
forgotten, out of control, slower
performance than their 3rd
generation
language counterparts
o Object-oriented design: an attempt to eliminate the
separation of concerns about DATA and
PROCESS.
 Rapid Application Development (RAD): a merger of various
structured techniques with prototyping techniques and join
application development techniques to accelerate systems
development.
 FAST Systems design strategies: integrates all the popular
approaches introduced in the book.
“Build” Solution
 Task 5.1 – Design the Application Architecture: This first
design task is to specify application architecture. This task is
accomplished by analyzing the data models that were initially
created during requirements analysis using a physical data
flow diagram (PDFD). The analyst may involve a number of
system designers and system users. (DBAs, network
admins, engineers, and application admins.) Inputs are facts,
recommendations, and opinions. Principal deliverable is the
application architecture and distribution analysis.
 Task 5.2 – Design the System Database(s): Prepare
technical design specifications for a database that will be
adaptable to future requirements and expansion. Analyze
how programs will access the data in order to improve
performance. Record size and storage volume. Proper
security and DR techniques. (DBAs, System Builders). Input
is the previous task. Deliverable is the database schemas.
 Task 5.3 – Design the System Interface: Work closely with
system users to develop input, output, and dialog
specifications. Internal controls. Format and layout of the
outputs. Editing controls. Various screen designs.
 Task 5.4 – Package Design Specifications: Final design
phase that depends on responsibilities of a designer and
programmer, and whether the methodology and solution
calls for the design of the overall program structure. Systems
analyst w/ some aid from the system designer usually
completes this task. Audit staff is involved. Inputs of this task
are the various database, input and output specifications.
 Task 5.5 – Update the Project Plan: The system analysts
and system owners are the key individuals in this phase.
Reevaluate project feasibility and update the project plan.
“Buy” Solution
The most notable differences between the buy and the in-house
development projects is the inclusion of a new procurement phase
and a special decision analysis phase. They do the following:
1. Identify and research specific products
2. Solicit, evaluate, and rank vendor proposals
3. Select and recommend
4. Contract with vendor to obtain product
 Task 4.1 – Research Technical Criteria and Options: This
task is facilitated by the project manager. System Designers
are responsible for the completion of this task.
 Task 4.2 – Solicit Proposals or Quotes from Vendors: This
task is facilitated by the project manager. The systems
designer is also responsible for completing this activity.
Request for Quotations (RFQs) or Request for Proposals
(RFPs).
 Task 5A.1 – Validate Vendor Claims and Performances:
System Designers are responsible for the completion of this
activity. The key outputs of this task are those vendor
proposals that proved to be validated proposal or claims and
other whose claims were not validated.
 Task 5A.2 – Evaluate and Rank Vendor Proposals: System
Designers are responsible for the completion of this activity.
The ability to perform a feasibility assessment is an
extremely important skill requirement for completing this
task. This approach awards the contract.
 Task 5A.3 – Award Contract and Debrief Vendors: Negotiate
contact and inform losing vendors. System Designer must
make and defend the recommendation.
Application Architecture
Specifies the technologies to be used to implement one or more
information systems. Communicates the following design
decisions:
 Degree to which the information system will be
centralized or distributed.
 The distribution of stored data across a network
 Programming language and tools
 Integration of any COTS
 Technology for interface
Physical Data Flow Diagrams
Model the technical and human design decisions to be
implemented as part of an information system.
 Physical Processes
o Logical processes are frequently assigned to
specific physical processors (PCs, servers,
mainframes, people, or other devices)
o Each logical process must be implemented as one
or more physical processes
o If a logical process is to be implemented partially
by people and software, it must be split into
separate processes and appropriate data flow
must be added between the physical processes.
o Number of physical processes on a physical DFD
will almost always be greater than the number of
logical processes of the logical DFD to reflect data
collection, filtering, forwarding, preparation, or
quality checks.
 Physical Data Flows:
o The planned implementation of an input to or
output from a physical process
o A database command or actions such as create,
read, update, delete
o The import of data from or the export of data to
another information system across a network
o The flow of data between two modules or
subroutines within the same program.
 Physical External Agents: Unchanged from the logical DFD
 Physical Data Stores:
o Database
o Table in a database
o A computer file
o Tape or media backup
o Temporary file
o Any type of non-computerized file
Information Technology Architecture
 Distributed Systems: a system in which components are
distributed across multiple location sand computer networks.
o Layers
 Presentation layer: the actual user
interfaces
 Presentation logic layer: processing that
must be done to generate the
presentation. (editing input data and
formatting output data)
Module 5 – System Architectures 
 
 Application Logic layer: All logic and
processing to support the business
application. (Data analysis, calculations)
 Data Manipulation layer: all commands
and logic required to store and retrieve
data in a database
 Data layer: Stored data in a database
o Architectures
 File server architecture: Practical for
small database with small number of
users. Disadvantages are large amounts
of data move between client/server,
client PC must be robust, database
integrity.
 Client / Server architecture: client/server
computing or client/server system is a
distributed solution in which the
presentation, presentation logic,
application logic, data manipulation, and
data layers are distributed between a
client PC and one or more servers. They
can use thin or fat clients. (database
servers, transaction servers, application
servers, messaging/groupware, web
servers
 Client/Server distributed
presentation: system in which
presentation and presentation
logic are shifted from the
server to reside on the client.
 Client/Server distributed data:
a two-tiered client/server
computing is a system in
which the data and data
manipulation layers are placed
on servers and other layers
are placed on clients.
Database server is
fundamental to this
architecture. (Oracle, MS
SQL)
 Client/Server distributed Data
and Application: Data and
data manipulation layers are
placed on their own servers,
application logic is placed on
its own server, presentation
logic and presentation are
placed on the client. Also
called, three-tiered, n-tiered,
client/server computing.
Drawbacks are complexity
and design partitioning.
 Internet-Based computing architecture: a
network computing system is a multi-
tiered solution where presentation and
presentation logic run on browsers using
downloaded content.
 Data Architectures – Distributed Relational Databases: A
relational database stores data in a tabular form. Related
records between two tables are duplicated. A distributed
relational database distributes or duplicates tables to multiple
database servers. Sometimes called a client/server database
management system. (SQL, Oracle, DB2, Sybase)
o Data partitioning: Different columns on different
databases (vertical). Rows on different database
servers (horizontal)
o Data replication: duplicates on more than one
database server.
 Interface Architectures – Inputs, Outputs, and Middleware
(pg 496-500):
o Batch inputs or outputs: For inputs, the logical
name is singular, but the batch name is plural. The
batch goes in to a temporary data store which is
read by a process triggered by a date. For outputs,
a plural name for batch processing.
o Online inputs or outputs: Output can be in HTML
format or MAPI E-mail.
o Remote batch
o Keyless data entry (and Automatic Identification):
Bar code technology, OCR, OMR (Optical Mark
Reading)
o Pen input: Palm OS, Windows Mobile
o Electronic Messaging: Exchange, Lotus notes
o Electronic data interchange (EDI): Standardized
electronic flow of business transactions or data
between businesses.
o Imaging and Document Interchange
o Middleware: Utility software that enables
communication between different processors in a
system.
 Presentation: HTTP allows
communication to a web browser
through API.
 Application: Remote Procedure Calls
(RPC), message queues, ORBs
 Database: ODBC, JDBC
 Process Architectures – The software development
environment (SDE): Software languages and tools that will
be used to develop the business logic and application
programs for the process.
o SDEs for Centralized Computing and Distributed
Presentation: COBOL to write programs, CICS to
manage any online transactions and terminal
screens, VSAM or DB2 to manage stored data
o SDEs for two-tier client/server: Sybase
PowerBuilder, Visual Studio, Borland’s Delphi
 RAD for developing GUIs
 Automatic generation fo the template
code for the GUI
 Programming language compiled for
replication and execution on client
 Sophisticated code testing and
debugging
o SDEs for Multi-tier Client/Server: (Dynasty’s
Dynasty, IBM’s VisualAge) Additional capabilities
like:
 Strong emphasis on reusability
 Tools to help analysts and programmers
partition application components
between the client and servers
 Ability to automatically scale the
application to larger and different
platforms
 Sophisticated software version control
o SDEs for Internet and Intranet Client/Server:
HTML, XML, CGI, Java
Application Architecture Strategies for System
Design
 Enterprise Application Architecture Strategy
o Approved network, data, interface, and processing
technologies and development tools
o Strategy for integrating legacy and technologies
o Ongoing process for continuously reviewing the
application
o Ongoing process for researching emerging
technologies and making recommendations
o Process for analyzing requests for variances from
approved application architecture.
 Tactical Application Architecture Strategy: Each project must
define its own architecture for the information system being
developed
o Technical feasibility: Technology maturity,
suitability to the application being designed, or
ability to work with other technologies.
o Operational feasibility: How comfortable
management, users, technology managers, and
support is with the technology
o Economic feasibility: cost-effectiveness.
Modeling the Application Architecture of an
Information System
 Drawing Physical Data Flow Diagram:
o A physical DFD should be developed for the
network architecture: each class of clients is
represented by a single processor
o Each processor requires a physical DFD to show
the event processes
o Design unit is a self-contained collection of
processes, data stores, and data flows that share
similar design attributes.
 Prerequisites: Logical data model (entity relationship
diagram), logical process models (DFD). Some constraints
are:
o Architectural standards, project objectives, and
feasibility.
Module 5 – System Architectures 
 The Network Architecture: the first physical DFD that
allocates processors (client/servers) and devices (machines,
robots) to a network and establishes the connectivity and
where users will interact with the processors (usually only the
clients).
 Data Distribution and Technology Assignments: Required
logical data stores from logical DFDs or as entities on the
logical ERDs.
o Store all data on a single server
o Store specific tables on different servers
o Store subsets of specific tables on different
servers
o Replicate (duplicate) specific tables or subsets on
different servers
 Process Distribution and Technology Assignments:
o For two-tiered client/server systems, all the logical
event diagrams are assigned to the client
o For three-tiered client/server and network
computing systems, you need to partition. Each
physical DFD for a partition corresponds to a
design unit for a given business event.
 The Person/Machine Boundaries: Separate manual and
computerized processes.
Goals of System Architectures and Designs
 Sufficiency: Handles the requirements: Design sufficiency is
closely related to correctness, modularity, understandability
and readability.
Cohesion within a module is the degree to which the
module's components belong together. Coupling describes
the degree to which modules communicate with other
modules. To modularize effectively, we maximize cohesion
and minimize coupling.
 Robustness: Can deal with a wide variety of correct and
incorrect input. A design or implementation is robust if it is
able to handle unusual conditions.
 Reusability: Can use parts of the design and implementation
in other applications. An application has high usability if
users find it easy to use. Usability is attained through human
interface design, discussed previously in this course.
 Reliability: Acceptable failure rate. An application is reliable if
it is relatively defect-free. Metrics make this quantifiable,
such as the average time between failures.
 Efficiency: Executes within acceptable limits of time, space,
and any other applicable resources. Efficiency refers to the
use of available machine cycles, memory, communication
bandwidth, storage, and other resources.
 Flexibility: Can be readily modified to handle changes in
requirements. We design so that parts of our own
applications can be reused by others and ourselves in similar
or even in different projects.
o Object code (or equivalent)
 Example: sharing DLLs between word
processor and spreadsheet
o Classes - in source code form
 Example: Customer class extended and
used by several applications
o Assemblies of Related Classes
 Example: the java.awt package contains
classes for implementing GUI with
standard GUI controls (butons, text
fields, etc.)
o Design Patterns of Class Assemblies
 Example: the Strategy Pattern, the
Façade Pattern, etc. can be used in a
variety of applications
Integrating Design Models
 Use Case Model
o The business use cases
o regular use cases
o Sequence diagrams
o Scenarios
 Class Models: Classes are the building blocks—more
precisely, the types of building blocks -- of designs.
 Data Flow Models: shows specific processes and the types
of data flowing between them.
 State Models: State models reflect reactions to events.
Events include mouse actions and changes in variable
values. Events are not described in class models or
component models, but they do occur in use case models.
Frameworks
A framework, sometimes called a library, is a collection of
software artifacts usable by several different applications. These
artifacts are typically classes, together with additional software
required to utilize them.
A framework is a kind of common denominator for a family of
applications. Alternatively, as we will see below, a framework may
feel like a generic application that we customize by inserting our
own parts.
The main benefit of using frameworks is to provide reusability of
components common to the family of applications, such that other
developers designing another application of the same family do
not have to re-create the same types of components.
System Architectures
 Create Domain Classes from requirements analysis: The
classes in the architecture are arrived at by evaluating your
system as a whole and identifying the supporting classes
required in addition to your domain classes. The rest of the
classes are added to complete the design
 Architectural Trade-off Analysis Method (ATAM): The ATAM
methodology focuses on how a system architecture and
design will meet the quality attributes and non-functional
requirements defined by the stakeholders of the system.
ATAM is a risk analysis identification methodology and a
means of detecting potential risk within a software system.
o (a) identify quality attribute that might affect the
choice of architecture
o (b) identify applicable architectures
o (c) evaluate whether each architecture satisfies the
quality requirements.
 QFD or Quality Function Deployment: QFD is focused on the
transformation of stakeholder requirements into ensuring that
quality is engrained within the creation of the components or
sub-systems being created.
Architecture Types
 Data Flow Architectures
o Pipe and Flow Architectures: In these
architectures, data processing elements (referred
to as “filters”) accept streams as inputs at any time
and produce output streams. The name “filter”
implies that the output stream is derived from the
input stream through a process similar to filtering.
o Batch Sequential Data Flow: One can think of the
operations as occurring only once per batch of
data and the next operation starts only when the
previous one is complete.
 Independent Components
o Tiered and Client/Server Architecture:
Client/server architectures have subsequently
become more sophisticated and more varied.
Some are now designed as three-tier architectures
instead of the original two tiers (client and server).
The middle tier lies between the client and the
database, providing a useful level of indirection.
o The Parallel Communicating Processors
Architecture: This architecture is characterized by
several processes executing at the same time.
o Event Systems Architectures and the State Design
Pattern: If a system has complex responses that
depend on what has happened before, especially if
it also has a limited set of inputs, consider
designing it as an Event System using a State
design pattern.
 Virtual Machines: we design an interpreter which accepts
user's command in this scripting language. This interpreter
serves as an intermediate layer between the operating
system and the application.
 Repository Architectures: The word "repository" is often used
in industry to denote an application that provides a unified
view of a collection of databases. Blackboard architectures,
developed for artificial intelligence applications, are
repositories which behave in accordance with posting rules.
 Layered Architectures: Building applications layer by layer
can greatly simplify the process. Some layers, such as
frameworks, can serve several applications. This design
improves productivity, decreases development time, and
improves software quality. Layered architectures are
common in operating systems and network communications.
 Service-Oriented Architectures: Service-Oriented
Architectures (SOAs) are combinations of services:
components that provide functionality according to an
interface specification.
Module 6 – Object­Oriented Designs The Design of an Object Oriented System
The application works by having classes send and receive
messages from other classes. The goal of Object-Oriented Design
(OOD) is to specify the objects and messages of the system.
OOD is an approach used to specify the software solution in terms
of collaborating objects, their attributes, and their methods.
 Entity Classes: an object class that contains business-related
information and implements the analysis classes
 Interface Classes: an object class that provides the means
by which an actor can interface with the system. Sometimes
classed boundary class.
 Control Classes: an object class that contains application
logic. They coordinate messages between interface classes
and entity classes in which the messages occur.
 Persistence Classes: an object class that provides
functionality to read and write persistent attributes in a
database.
 System Classes: An object class that handles operating
system-specific functionality.
 Design Relationships:
o Dependency relationships: association between
two classes in two instances
 To indicate that when a change occurs
in one class, it may affect the other class
 To indicate the association between a
persistent class and a transient class
(Interface window and handler class)
o Navigability: Limit messages between classes from
bidirectional to only one direction
 Attribute and Method Visibility: The level of access an
external object has to an attribute or method
o Public (+)
o Protected (#)
o Private (-)
 Object Responsibilities: In design, we focus on identifying the
behaviors a system must support and, in turn, designing the
object methods for performing those behaviors. Along with
behaviors, we determine the object’s responsibilities. A class
responsibility is implemented by the creation of one or more
methods that may have to collaborate with other classes and
methods.
The Process of Object-Oriented Design
1. Refining the Use-Case Model
a. STEP 1- Transforming the “analysis” use cases to
“design” use cases:
i. Use-case type: System Design
ii. Window Controls: icons, links, buttons
iii. Window Names
iv. Navigation instructions: How the user
navigates the user interface should be
specified
b. STEP 2- Updating the use-case model diagram
and other documentation to reflect any new use
case: Update to reflect new information.
2. Modeling Class Interactions, Behaviors, and States that
support the Use-Case Scenario.
a. STEP 1 – Indentify and Classify Use-Case Design
Classes:
i. Interface Classes: This column contains
a list of classes mentioned in the use
case. There should be at least one
interface class
ii. Controller Classes: This column
contains that encapsulate application
logic or business rules.
iii. Entity Classes: This column contains a
list of classes that correspond to the
business domain classes whose
attributes were referenced in the use
case
b. STEP 2 – Identify Class Attributes:
c. STEP 3 – Identify Class Behaviors and
Responsibilities
i. Analyze the use cases to identify
required system behaviors
ii. Associate behaviors and responsibilities
with classes
iii. Model classes that have complex
behavior
iv. Examine the class diagram for additional
behaviors
v. Verify classifications
d. STEP 4 – Model Object States: Object state is a
condition of the object at one point in its lifetime. A
state is triggered by a state transition even which
is an occurrence through the updating of one or
more of the object’s attributes values.
i. State machine diagram: A UML diagram
that depicts the combination of states
that an object can assume during its
lifetime, the events that trigger
transitions between states, and the rules
governing the objects transition. Also
called statechart or state transition
diagram.
3. Updating the Object Model to Reflect the Implementation
Environment: A design class diagram depicts classes that
correspond to software components that are used to build
the software application. The steps to convert a class
diagram from OOA to OOD are the following:
a. Add design objects to diagram: entity, interface,
control objects
b. Add attributes and attribute-type information to
design objects
c. Add attribute visibility: public, protected, private
d. Add methods to design objects: referred to as
“setters” and “getters”.
e. Add method visibility
f. Add association navigability between classes
g. Add dependency relationships
Object Reusability
 Cohesion: the degree to which the attributes and
behaviors of a single class are related to each other
 Coupling: the degree to which one class is connected to
or relies upon other classes
Design Patterns
A common solution to a given problem in a given context, which
supports reuse of proven approaches and techniques.
Advantages are:
a. They allow use to design information system with
the experiences of those who came before us
rather than having to reinvent the wheel.
b. They provide designers a short-hand notation for
discussing design issues.
 The Strategy Pattern: Behavioral category. Define each
algorithm in a separate class with a common interface.
 The Adapter Pattern: Structural category. Add a class that
acts as an adapter to convert the interface of a class into
another interface that the client classes expect.
Object framework: a set of related, interacting objects that provide
a well-defined set of services for accomplishing a task.
Component: A group of objects packaged together into one unit.
Example: dynamic link library (DLL) or executable file
Additional UML Design and Implementation Diagrams
 Communication diagram: models the interaction of objects
via messages, focusing on the structural organization of
objects in a network format. Called Collaboration diagram
 Component diagram: depicts the organization of
programming code divided into components and how the
components interact.
 Deployment diagram: depicts the configuration of software
components within the physical architecture of the system’s
hardware “nodes”.
Relating Use Cases, Architecture, and Detailed Design
1. In step 1, use cases are specified as part of the
requirements
2. In step 2, these, together with other sources, are
used to identify the business objects (domain
classes).
3. In step 3, we develop the system architecture,
4. In step 4, verify that the architecture and detailed
design support the required use cases
We verify that the classes and their methods specified by the
detailed design include all necessary algorithms and supporting
data fields and hence are capable of executing the required use
cases.
Module 6 – Object­Oriented Designs
A Typical Road Map for the “Detailed Design” Process
Detailed design starts with the results of the architecture phase
and ends with a complete blueprint for the programming phase.
The blueprint would include details about the classes, their
relationships, data fields, and methods. It is advisable to start the
detailed design process with those aspects of the design that
present the most risk.
1. Step 1: Begin with architectural models for platforms,
software, and communication:
a. class model: domain and architectural
classes
b. Overall state model
c. Overall data flow model, including platforms
d. Use-case model
2. Step 2: Introduce classes and design patterns which
connect the architecture classes with the domain
classes
3. Step 3: Refine models, make consistent, ensure
complete
4. Step 4: Specify class invariants
5. Step 5: Specify methods with pre and post conditions,
activity diagrams, and pseudo code.
6. Step6: sketch unit test plans
7. Step 7 Inspect test plans and design
8. Step 8: Release for integration and implementation
Design in the Unified Development Process
Analysis:
 Conceptual and abstract
 Less formal
 Less expensive to develop
 Outlines the design
 Relatively unconstrained
 Less focus on sequence diagrams
 Few layers
Design:
 Concrete: implementation blueprint
 More formal
 More expensive to develop (+/- 5x)
 Manifests the design
 Constrained by the analysis and architecture
 More focus on sequence diagrams
 Many layers
The Unified process encourages three kinds (“stereotypes”) of
classes: entity, boundary, and control classes.
1. Entity classes roughly correspond to what we
call business entities, business classes, or
domain classes
2. Boundary classes handle user
communication with entity objects, and their
design depends on the details of the use
cases
3. Control classes contain methods that pertain
to the entity objects, but are typically special
to the application in which the entity class is
being used
Designing Against Interfaces
 "Interface" means a set of methods that a class
provides to other classes in the application.
 The method signature includes the data types of
method parameters, preconditions and post conditions
Reusing Components
Frameworks are packages of components designed for reuse. We
developed frameworks to support application architectures, and
so they are effectively reusable.
Sequence and Data Flow Diagrams for Detailed Design
 Sequence Diagrams
o Begin with the sequence diagrams
constructed for detailed requirements and/or
architecture (if any) corresponding to the use
cases
o Introduce additional use cases, if necessary,
to describe how parts of the design typically
interact with the rest of the application
o Provide sequence diagrams with complete
details
 Be sure that the exact objects and
their classes are specified
 Select specific function names in
place of natural language
o (calls of one object to another to perform an
operation which the first object needs)
 Data FlowDiagrams
o Gather data flow diagrams (DFDs)
constructed for detailed requirements and/or
architecture (if any)
o Introduce additional DFDs, if necessary, to
explain data and processing flows
o Indicate what part(s) of the other models the
DFDs correspond to.
 e.g., "the following DFD is for each
Account object"
o Provide all details on the DFDs
 Indicate clearly the nature of the
processing at each node
 Indicate clearly the kind of data
transmitted
 Expand processing nodes into
DFDs if the processing description
requires more detail
Specifying Platforms, Classes, Functions and Algorithms
 Platforms: A design must specify in complete detail the
platforms on which the system is intended to run. This
includes client platforms and software, server platforms
and software, communications platforms, and software,
and database platforms and software.
 Classes:
o Gather the attributes listed in the SRS
 This can be done more easily if the
SRS is organized by class
o Add additional attributes required for the
design
o Name a method corresponding to each of the
requirements for this class:
 Again, this is easy if the SRS is
organized by class
o Name additional methods required for the
design
o Show the attributes and methods on the
object model
o State class invariants and method
preconditions and postconditions (see next
section)
Advantages of Pseudo code and Flowcharts
o Provide documentation that helps clarify complex
algorithms
o Impose increased discipline on the process of
documenting detailed design
o Provide additional level at which inspection can be
performed
o Help to trap defects before they become code
o Increase product reliability
o May decrease overall costs
Disadvantages of Pseudo code and Flowcharts
o When design and/or code changes, they have to be
maintained to be consistent
o Introduce error possibilities in translating to code
o May require a tool to extract pseudo code and facilitate
drawing flowcharts

Más contenido relacionado

La actualidad más candente

System analysis and_design
System analysis and_designSystem analysis and_design
System analysis and_design
Tushar Rajput
 
analysis and design of information system
analysis and design of information systemanalysis and design of information system
analysis and design of information system
Renu Sharma
 
SAD ASSIGN :)
SAD ASSIGN :)SAD ASSIGN :)
SAD ASSIGN :)
Roy Reyes
 
System Proposal(Personal Information & Leave Management System)
System Proposal(Personal Information & Leave Management System)System Proposal(Personal Information & Leave Management System)
System Proposal(Personal Information & Leave Management System)
Akila Jayarathna
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system design
Rahul Hedau
 

La actualidad más candente (20)

System analysis and_design
System analysis and_designSystem analysis and_design
System analysis and_design
 
analysis and design of information system
analysis and design of information systemanalysis and design of information system
analysis and design of information system
 
System design
System designSystem design
System design
 
Introduction to System analysis part1
Introduction to System analysis part1Introduction to System analysis part1
Introduction to System analysis part1
 
SYSTEM DESIGN by Neeraj Bhandari (Surkhet Nepal)
SYSTEM DESIGN by Neeraj Bhandari (Surkhet Nepal)SYSTEM DESIGN by Neeraj Bhandari (Surkhet Nepal)
SYSTEM DESIGN by Neeraj Bhandari (Surkhet Nepal)
 
Hsc project management 2015
Hsc project management 2015Hsc project management 2015
Hsc project management 2015
 
Success or failure of information system implementation
Success or failure of information system implementationSuccess or failure of information system implementation
Success or failure of information system implementation
 
SAD ASSIGN :)
SAD ASSIGN :)SAD ASSIGN :)
SAD ASSIGN :)
 
System Proposal(Personal Information & Leave Management System)
System Proposal(Personal Information & Leave Management System)System Proposal(Personal Information & Leave Management System)
System Proposal(Personal Information & Leave Management System)
 
Lesson 1 System Analysis and Design
Lesson 1 System Analysis and DesignLesson 1 System Analysis and Design
Lesson 1 System Analysis and Design
 
Libary management system
Libary management system Libary management system
Libary management system
 
System Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU EthiopiaSystem Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU Ethiopia
 
Management information system
Management information systemManagement information system
Management information system
 
System Analysis and Design Proposal presentation
System Analysis and Design Proposal presentationSystem Analysis and Design Proposal presentation
System Analysis and Design Proposal presentation
 
Pm02 system design
Pm02   system designPm02   system design
Pm02 system design
 
System design
System designSystem design
System design
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system design
 
System and Design-MIS-Seminar,Presentation
 System and Design-MIS-Seminar,Presentation System and Design-MIS-Seminar,Presentation
System and Design-MIS-Seminar,Presentation
 
SAD Chapter1
SAD  Chapter1SAD  Chapter1
SAD Chapter1
 

Destacado

System analysis and design
System analysis and design System analysis and design
System analysis and design
Razan Al Ryalat
 
Focusing-on-Cost-Management
Focusing-on-Cost-ManagementFocusing-on-Cost-Management
Focusing-on-Cost-Management
Christian Reina
 
Business-Models-Competitive-Strategies
Business-Models-Competitive-StrategiesBusiness-Models-Competitive-Strategies
Business-Models-Competitive-Strategies
Christian Reina
 
Business Data Communications and Networks
Business Data Communications and NetworksBusiness Data Communications and Networks
Business Data Communications and Networks
Christian Reina
 
Erakartzeko marketing aurkezpena
Erakartzeko marketing aurkezpenaErakartzeko marketing aurkezpena
Erakartzeko marketing aurkezpena
ioritzrz
 
Risk taking and emotions
Risk taking and emotionsRisk taking and emotions
Risk taking and emotions
Nitesh Singh
 

Destacado (20)

Software requirements specification of Library Management System
Software requirements specification of Library Management SystemSoftware requirements specification of Library Management System
Software requirements specification of Library Management System
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 
Chap01
Chap01Chap01
Chap01
 
Generation of computers
Generation of computersGeneration of computers
Generation of computers
 
Chap02
Chap02Chap02
Chap02
 
Chap03
Chap03Chap03
Chap03
 
e-commerce and e-bussines
e-commerce and e-bussinese-commerce and e-bussines
e-commerce and e-bussines
 
System analysis and design
System analysis and design System analysis and design
System analysis and design
 
System requirements analysis
System requirements analysisSystem requirements analysis
System requirements analysis
 
Focusing-on-Cost-Management
Focusing-on-Cost-ManagementFocusing-on-Cost-Management
Focusing-on-Cost-Management
 
Business-Models-Competitive-Strategies
Business-Models-Competitive-StrategiesBusiness-Models-Competitive-Strategies
Business-Models-Competitive-Strategies
 
Business Data Communications and Networks
Business Data Communications and NetworksBusiness Data Communications and Networks
Business Data Communications and Networks
 
Chap15
Chap15Chap15
Chap15
 
Erakartzeko marketing aurkezpena
Erakartzeko marketing aurkezpenaErakartzeko marketing aurkezpena
Erakartzeko marketing aurkezpena
 
Chap14
Chap14Chap14
Chap14
 
PMP-Processes
PMP-ProcessesPMP-Processes
PMP-Processes
 
Roadmap methodology
Roadmap methodologyRoadmap methodology
Roadmap methodology
 
Risk taking and emotions
Risk taking and emotionsRisk taking and emotions
Risk taking and emotions
 
Chap04
Chap04Chap04
Chap04
 
Chap05
Chap05Chap05
Chap05
 

Similar a Information Systems Analysis and Design

Intro to Information Systems
Intro to Information SystemsIntro to Information Systems
Intro to Information Systems
tclanton4
 
Lectures 2-and-3-questions.qwerty
Lectures 2-and-3-questions.qwertyLectures 2-and-3-questions.qwerty
Lectures 2-and-3-questions.qwerty
Ceazar Nell Ambulo
 
Chap12 Developing Business It Solutions[1]
Chap12 Developing Business It Solutions[1]Chap12 Developing Business It Solutions[1]
Chap12 Developing Business It Solutions[1]
sihamy
 
Mis jaiswal-chapter-09
Mis jaiswal-chapter-09Mis jaiswal-chapter-09
Mis jaiswal-chapter-09
Amit Fogla
 
Building Information System
Building Information SystemBuilding Information System
Building Information System
Rabia Jabeen
 
Chap001
Chap001Chap001
Chap001
rpvgb
 

Similar a Information Systems Analysis and Design (20)

4. Fundamental MIS Information Systems Presentation
4. Fundamental MIS  Information Systems Presentation4. Fundamental MIS  Information Systems Presentation
4. Fundamental MIS Information Systems Presentation
 
Lesson 5: Information Systems Presentation
Lesson 5: Information Systems PresentationLesson 5: Information Systems Presentation
Lesson 5: Information Systems Presentation
 
Rakesh Roshan MIS Slides
Rakesh Roshan MIS SlidesRakesh Roshan MIS Slides
Rakesh Roshan MIS Slides
 
Intro to Information Systems
Intro to Information SystemsIntro to Information Systems
Intro to Information Systems
 
Lectures 2-and-3-questions.qwerty
Lectures 2-and-3-questions.qwertyLectures 2-and-3-questions.qwerty
Lectures 2-and-3-questions.qwerty
 
Chap12 Developing Business It Solutions[1]
Chap12 Developing Business It Solutions[1]Chap12 Developing Business It Solutions[1]
Chap12 Developing Business It Solutions[1]
 
Systems concept
Systems conceptSystems concept
Systems concept
 
Mis jaiswal-chapter-09
Mis jaiswal-chapter-09Mis jaiswal-chapter-09
Mis jaiswal-chapter-09
 
Advance it (group5)
Advance it (group5)Advance it (group5)
Advance it (group5)
 
Building Information System
Building Information SystemBuilding Information System
Building Information System
 
PIS Lecture notes principal of information systems
PIS Lecture notes principal of information systemsPIS Lecture notes principal of information systems
PIS Lecture notes principal of information systems
 
SA Chapter 2
SA Chapter 2SA Chapter 2
SA Chapter 2
 
information system and computers
information system and computersinformation system and computers
information system and computers
 
TRU Snacks Webinar Series- Restructuring a Financially Distressed Company
TRU Snacks Webinar Series- Restructuring a Financially Distressed CompanyTRU Snacks Webinar Series- Restructuring a Financially Distressed Company
TRU Snacks Webinar Series- Restructuring a Financially Distressed Company
 
Foundations Of Information Systems In Business(97 2003)
Foundations Of Information Systems In Business(97 2003)Foundations Of Information Systems In Business(97 2003)
Foundations Of Information Systems In Business(97 2003)
 
Enterprise resource planning unit 2 ERP solutions and functional modules
Enterprise resource planning unit 2 ERP solutions and functional modulesEnterprise resource planning unit 2 ERP solutions and functional modules
Enterprise resource planning unit 2 ERP solutions and functional modules
 
Information Systems in Global Business Today.pptx
Information Systems in Global Business Today.pptxInformation Systems in Global Business Today.pptx
Information Systems in Global Business Today.pptx
 
Chap001
Chap001Chap001
Chap001
 
Lo3=p4, p5, m2, d2
Lo3=p4, p5, m2, d2Lo3=p4, p5, m2, d2
Lo3=p4, p5, m2, d2
 
The organization structure, managers and activities
The organization structure, managers and activities The organization structure, managers and activities
The organization structure, managers and activities
 

Information Systems Analysis and Design

  • 2. Module 1 – Introduction & Process Possible values and benefits of information systems:  Increased business profit  Reduced Business Cards  Costs and Benefits of the System  Increased Market Share  Improved Customer Relations  Increased Efficiency  Improved Decision Making  Better Compliance with Regulations  Fewer Mistakes  Improved Security  Greater Capacity Role of a System Analyst  Initiate change within an organization  “Problem solver” Skills of a System Analyst  Working knowledge of information technologies  Computer programming experience and expertise  General knowledge of business processes and terminology  General problem-solving skills  Good interpersonal communication skills  Good interpersonal relations skills  Flexibility and adaptability  Character and ethics Technology Drivers for an Information System  Networks and the Internet o xHTML and XML o Scripting o Java, Cold Fusion o Intranets o Extranets o Portals o Web Services  Mobile and Wireless Technologies o HP iPaq o Blackberry o Cell Phone o Bluetooth  Object Technologies o C++ o Java o Smalltalk o Visual Basic .NET  Collaborative Technologies  Enterprise Applications Business Drivers for an Information System  Globalization of the economy  Electronic commerce and business  Security and privacy  Collaboration and partnership  Knowledge asset management  Continuous improvement  Total quality management  Business process redesign System Development Process  Identify the problem  Analyze and understand the problem  Identify the solution  Identify alternative solutions and choose the best course of action  Design the chosen solution  Implement the chosen solution  Evaluate the results Classes of Information System Applications  Transaction Processing Systems (TPS)  Management Information System (MIS)  Decision Support System (DSS)  Executive Information System (EIS)  Expert System  Communication and Collaboration System  Office Automation System Classes of Information System Applications  System owners and System users focus on three common goals  Improve business knowledge  Improve business processes  Improve business communications  System designers and builders focus on three common goals  Database technologies that support business accumulation and use of knowledge  Software technologies that automate and support business processes and services Interface technologies that support business communications and collaboration Communication Improvements in Information Systems are directed toward 2 goals  Information systems must provide effective and efficient communication interfaces to the system’s users. These interfaces should promote teamwork and coordination of activities  Information systems must interface effectively and efficiently with other information systems – both with those within the business and increasingly with other business’s information systems Vocabulary Agile Development: A systems development strategy wherein the system developers are given the flexibility to select from a variety of appropriate tools and techniques to best accomplish the tasks at hand. Strike an optimal balance between productivity and quality for systems development B2B: Business to business electronic commerce is the real future. This is the most complex form of electronic commerce and could ultimately evolve into electronic business, the complete, paperless, and digital processing of all business transactions that occur within and between businesses B2C: Business to consumer electronic commerce attempts to offer new, web-based channels of distribution for traditional products and services. Example amazon.com Business Process: Tasks that respond to business events. Business processes are the work, procedures, and rules required to complete the business tasks independent of any information technology used to automate or support them Business Process Redesign: The study, analysis, and redesign of fundamental business processes to reduce costs and improve value added to the business Continuous Process Improvement (CPI): The continuous monitoring of business processes to effect small but measurable improvements in cost reduction and value added Customer Relationship Management (CRM): A software application that provides customers with access to a business's processes from initial inquiry through post sale service support Data: Raw facts about people, places, events, and things that are of importance in an organization. Each fact is, by itself relatively meaningless
  • 3. Module 1 – Introduction & Process Electronic Business: The user of the internet to conduct and support day to day business activities Electronic Commerce: The buying and selling of goods and services by using the internet Enterprise Application Integration (EAI): The process and technologies used to link applications to support the flow of data and information between those applications. EAI solutions are based on middleware Enterprise Resource Planning (ERP): A software application that fully integrates information systems that span most or all of the basic, core business functions(including transaction processing and management information for those business functions) Information: Data that has been processed or reorganized into a more meaningful form for someone. Information is formed from combinations of data that hopefully have meaning to the recipient Information System: An arrangement of people, data, processes, and information technology that interact to collect, process, store, and provide as output the information needed to support an organization Information System - Communications and Collaboration System: An information system that enables more effective communication between workers, partners, customers, and suppliers to enhance their ability to collaborate Information System - Decision Support System: An information system that either helps to identify decision making opportunities or provides information to help make decisions Information System - Execute Information System: An information system that support the planning and assessment needs of executive managers Information System - Expert System: An information system that captures the expertise of workers and then simulates that expertise to the benefit of non-experts Information System - Management Information System: An information system that provides for management-oriented reporting based on transaction processing and operations of the organization Information System - Office Automation System: An information system that supports the wide range of business office activities that provide for improved work flow between workers Information System - Transaction Processing System: An Information system that captures and processes data about business transactions Information Worker: Any person whose job involves creating, collecting, processing, distributing, and using information Knowledge: Data and information that are further refined based on the facts, truths, beliefs, judgments, experiences, and expertise of the recipient. Ideally information leads to wisdom. Middleware: Software (usually purchased) used to translate and route data between different applications Mobile User: A user whose location is constantly changing but who requires access to information systems from any location Object Technology: A software technology that defines a system in terms of objects that consolidate data and behavior. Objects become reusable and extensible components for the software developers Object-Orientated Analysis and Design: A collection of tools and techniques for systems development that will utilize object technologies to construct a system and its software Process Management: The ongoing activity that defines, improves, and coordinates the use of an organizations chosen methodology and standards for all system development projects Project Management: The activity of defining, planning, directing, monitoring, and controlling a project to develop an acceptable system within the allotted time and budget Remote Users: A user who is not physically located on the premises but who still requires access to information systems Stakeholders: Any person who has an interest in existing or proposed information system. Stakeholders may include both technical and non-technical workers as well as internal and external workers Stakeholders - External Service Providers A systems analyst, system designer, or system builder who sells his or her expertise and experience to other businesses to help those businesses purchase, develop, or integrate their information systems solutions; may be affiliated with a consulting or services organization Stakeholders - Project Manager An experienced professional who accepts responsibility for planning, monitoring, and controlling projects with respect to schedule, budget, deliverables, customer satisfaction, technical standards, and system quality Stakeholders - Systems Analyst A specialist who studies the problems and needs of an organization to determine how people, data, processes, and information technology can best accomplish improvements for the business Stakeholders - Systems Builders - Applications Programmers Specialists who convert business requirements and statements of problems and procedures into computer languages. They develop and test computer programs to capture and store data and to locate and retrieve data for computer applications Stakeholders - Systems Builders - Database Programmers Specialists in database languages and technology who build, modify, and test database structures and the programs that use and maintain them Stakeholders - Systems Builders - Network Administrators Specialists who design, install, troubleshoot, and optimize computer networks Stakeholders - Systems Builders - Security Administrators Specialists who design, implement, troubleshoot, and manage security and privacy controls in a network Stakeholders - Systems Builders - Software Integrators Specialists who integrate software packages with hardware, networks, and other software packages Stakeholders - Systems Builders - Systems Programmers Specialists who develop, test, and implement operating systems level software, utilities, and services. Increasingly, they also develop reusable software components for use by applications programmers Stakeholders - Systems Builders - Webmasters Specialists who code and maintain web servers
  • 4. Module 1 – Introduction & Process Stakeholders - Systems Design - Technology Specialists Experts in the application of specific technologies that will be used in a system (e.g. a special commercial software package or specific type of hardware) Stakeholders - Systems Designer A technical specialist who translates system users' business requirements and constraints into technical solutions. She or he designs the computer databases, inputs, outputs, screens, networks, and software that will meet the system users' requirements Stakeholders - Systems Designer Database Administrators, Network Architects, Web Architects, Graphic Artists, Security Experts, Technology Specialists Stakeholders - Systems Designer - Database Administrator Specialists in database technologies who design and coordinate changes to corporate database Stakeholders - Systems Designer - Graphic Artists Relatively new in today’s IT worker mix, specialists in graphics technology and methods used to design and construct compelling and easy-to- use interfaces to systems, including interfaces to PCs, the Web, handhelds, and smart phones Stakeholders - Systems Designer - Network Architects Specialists in networking and telecommunications technologies who design, install, configure, optimize, and support local and wide area networks, including connection to the internet and other external networks Stakeholders - Systems Designer - Security Experts Specialists in the technology and methods used to ensure data and network security and privacy Stakeholders - Systems Designer - Web Architects Specialists who design complex Web Sites for organizations, including public Web sites for the Internet, internal Web sites, for organizations and private B2B Web sites (extranet) Stakeholders - Systems Owners An information system's sponsor and executive advocate, usually responsible for funding the project of developing, operating, and maintaining the information system Stakeholders - Systems Users A "customer" who will use or is affected by an information system on a regular basis - capturing, validating, entering, responding to, storing, and exchanging data and information Stakeholders - Systems Users Internal Systems Users - Clerical and service workers, Technical and Professional staff, Supervisors, middle managers, and executive managers Stakeholders - Systems Users External Systems Users - Customers, Suppliers, Partners, Employees "Remote Users" Supply Chain Management (SCM): A software application that optimizes business processes for raw material procurement through finished product distribution by directly integrating the logistical information systems of organizations with those of their suppliers and distributors System: A group of interrelated components that function together to achieve a desired result System Analysis: The study of a business problem domain to recommend improvements and specify the business requirements and priorities for the solution System Design: The specification or construction of a technical computer based solution for the business requirements indentified in a system analysis System Development: Process A set of activities, methods, best practices, deliverables and automated tools that stakeholders use to develop and maintain information systems and software System Implementation: The construction, installation, testing, and delivery of a system into production System Initiation: The initial planning for a project to define initial business scope, goals, schedule and budget Systems Integration: The process of building a unified information system out of diverse components of purchase software, custom- built software, hardware, and networking Total Quality Management (TQM): A comprehensive approach to facilitating quality improvements and management within a business Front-Office Information System: An information system that supports business functions that extend out to the organizations customers Back-Office Information System: An information system that supports internal business operations of an organization, as well as reaches out to suppliers Information Systems Architecture: A unifying framework into which various stakeholders with different perspectives can organize and view the fundamental building blocks of information systems Data Requirement A representation of users' data in terms of entities, attributes, relationships, and rules. Business Function: A group of related processes that support the business. Functions can be decomposed into other sub functions and eventually into processes that do specific tasks Cross Functional Information System: A system that supports relevant business processes from several business functions without regard to traditional organizational boundaries such as divisions, departments, centers, and offices Process Requirements: A user's expectation of the processing requirements for a business process and its information system Policy: A set of rules that govern a business process Procedure: step by step set of instructions and logic for accomplishing a business process Work Flow: The flow of transactions through business processes to ensure appropriate checks and approvals are implemented Software Specifications: The technical design of business processes to be automated or supported by computer programs to be written by system builders Application: Program A language-based, machine-readable representation of what a software process is supposed to do or how a software process is supposed to accomplish its task Prototyping: A technique for quickly building a functioning but incomplete model of the information system using rapid application development tools Interface Specifications: Technical designs that document how system users are to interact with a system and how a system interacts with other systems User Dialogue: A specification of how the user moves from window to window or page to page, interacting with the application programs to perform useful work
  • 5. Module 2 – System Development Processes  “Consistent adherence to moderately rigorous methodology guidelines can provide 70 percent of system development organizations with a productivity improvement of at least 30% within 2 years.” CMM Framework 1.Initial: Inconsistent methods 2.Repeatable: Consistent project management 3.Defined: Consistent process used 4.Managed: Process managed and measured 5.Optimized: Continuous process improvement A systems development methodology is the standard process to build and maintain that system and all other information systems through their life cycle and is consistent with the CMM by ensuring the following: • Consistency • Risk reduction • Documentation • Resource allocation (stakeholders) • Job rotation and proper flow Principles for Systems Development 1.Get the System User Involved. 2.Use a problem solving approach a. Study and understand (context / impact) b. Define the requirements c. Identify candidate solutions and select d. Design/implement e. Observe/evaluate 3.Establish Phases and Activities 4.Document: Value of documentation and the effort to produce it. 5.Establish standards: a. Database technology b. Software technology c. Interface technology 6.Manage the process and projects 7.Justify information systems as capital investments 8.Don’t be afraid to cancel or revise scope: At each checkpoint, the analyst should consider: a. Cancel the project b. Reevaluate and adjust c. Reduce the scope 9.Divide and conquer: divide system into subsystems 10.Design systems for growth and change. Framework for Classifying Problems P – Performance I – Information (and data) E – Economics, controls costs, increase profits C – Control or security E – Efficiency S – Service FAST Methodology 1.Scope definition: Problem statement, constraints, baseline, statement of work 2.Problem analysis: 3.Requirements analysis: prioritize; identify needs and priorities; Does not specify any technical possibilities or solutions 4.Logical design: data flow diagram, “technology independent”, RUP, IE, Structured analysis and design. Prevent analysis paralysis. 5.Decision analysis: Transition from analysis to design. System proposal is a key deliverable and it may produce an application architecture. Candidate solutions have been identified and evaluated by the following criteria: a. Technical feasibility: practical? b. Operational feasibility: fulfill user’s requirements? c. Economic feasibility: cost-effective? d. Schedule feasibility: Acceptable time period? e. Risk feasibility: probability for success? 6.Physical design and integration: Represents a specific technical solution. a. Design by specification b. Design by prototyping 7.Construction and testing: build, test, and implement the interfaces between the new system and existing systems. 8.installation and delivery: System Operation and Maintenance: provide system support for the remainder of its useful, productive life time. Classic Phase 1.Project initiation: Scope / Problem analysis 2.System Analysis: Problem analysis/Requirements/Logical design 3.System Design: Physical design and integration/Construction and testing 4.System implementation: Construction and testing/Installation and delivery Cross life-cycle activities Multiple phases that overlap the system development process. • Fact-finding • Documentation and presentation • Feasibility analysis • Process and project management Alternative Strategies Sequential vs. Iterative development: Incremental development until all iterations are completed or a waterfall approach. Model-driven development: Software development using pictures • Process modeling • Data modeling • Object modeling Advantages: better documentations and requirements, easier to validate using pictures, systems can be constructed more correctly the first time. Disadvantages: time-consuming, models only as good as the user’s understanding, Users become passive participants, Rigidity is impractical and inflexible Product-driven development: software development by writing code. • Prototyping o Rapid Application Development (RAD) Advantages: encourages active user and management participation, higher visibility due to user participation, errors detected in advance, testing and training becomes a natural process Disadvantages: Increase costs to maintain and repair, problem analysis tends to be ignored, discourages other technical alternatives, impact on quality • Writing code (extreme programming)
  • 6. Module 2 – System Development Processes  Commercial Application Package Implementation Strategy: This methodology is not intended for ERP projects. This is a software application that could be customized to meet business needs. Commercial Off-the-shelf System (COTS) 1.Determine need in the problem analysis phase 2.Technology market research 3.Request of Proposal/Request for Quotation 4.Proposals/Quotations 5.Contract and order 6.Baseline Commercial Application software and documentation 7.Features and capabilities: Redesigned business process 8.Add-on software requirements: Gap analysis to determine what’s missing 9.Customized commercial application: implementation 10.add-ons are constructed to meet requirements Advantages: No extensive programming required, in- house development is costly, vendors can improve products, vendor assumes responsibility Disadvantages: Depends to how successful the vendor is, purchased solution does not reflect the ideal solution, resistance to change process for new purchased product System Maintenance 1. Feedback 2. System Change Request 3. Software bugs 4. Design flaw 5. Technical requirement 6. Business requirement 7. Business problem 8. Updated or improved system Automated Tools and Technology 1. Computer Assisted Systems Engineering (CASE): a. CA’s Erwin b. Oracle’s Designer 2000 c. Popkin’s System Architect d. Rational ROSE e. Visible Systems’ Visible Analyst 2. Application Development Environments (ADEs): Programming languages or interpreters with powerful debugging, interface construction tools, middleware, testing tools, version control, help authoring tools, repository links a. IBM’s Websphere (java) b. Borland’s J Builder (java) c. Cold Fusion d. .NET e. Oracle’s Developer f. Sybase’s Powerbuilder 3. Process and Project Managers: a. MS project b. Niku’s Open Workbench and Project Manager. Project Management Success • Acceptable to the customer • On time • Within budget • Minimal impact on operations Failure: • No management support • No commitment to systems development methodology • Taking shortcuts • Scope creep, feature creep • Premature commitment to a fixed budget • Poor estimating techniques • Over-optimism • Mythical man-month: adding more personnel when it’s not going to work. • Inadequate management skills • Failure to adapt to business change • Insufficient resources • Failure to manage the plan Project Management Body of Knowledge PMI was created as a professional society to guide the development and certification of professional project managers.  Project manager competencies: o Business achievement competencies  Business awareness  Business partner orientation  Commitment to quality o Problem-Solving Competencies  Initiative  Information gathering  Analytical thinking  Conceptual thinking o Influence competencies  Interpersonal awareness  Organizational awareness  Anticipation of impact  Resourceful use of influence o People Management competencies  Motivating others  Communication skills  Developing others  Monitoring and controlling o Self-management competencies  Self-confidence  Stress-management  Concern for credibility  Flexibility  Project Management Functions o Scoping o Planning o Estimating o Scheduling o Organizing o Directing o Controlling o Closing  Project Management Tools and Techniques (PERT and Gantt o PERT chart: Project Evaluation and Review Technique is a graphical network model used to depict the interdependencies between a project’s tasks: o Gantt chart: A simple horizontal bar chart that depicts projects tasks against a calendar. Offer the advantage of clearly showing overlapping tasks.  Project Management Software: o Niku’s project manager o Artemis International Solutions Corporation’s 9000 o CA’s AllFusion Process Management Suite o Microsoft Project o Primavera’s Project Planner and Project Manager o C/S Solutions’ Risk+ Project Management Life Cycle 1. Activity 1: Negotiate Scope: Most important prerequisite. Product, Quality, Time, Cost, Resources. a. The deliverable is an agreed-on statement of work 2. Activity 2: Identify Tasks: a. Work Breakdown Structure (WBS) is like breaking the project into phases. Special tasks are called milestones. 3. Activity 3: Estimate Task Durations: a. OD, PD, ED, D i. Decomposition: decomposed into manageable pieces ii. COCOMO: Parameters from previous projects help determine new project estimations iii. Function points: Measured based on the complexity of input, output, files, and queries. 4. Activity 4: Specify Intertask Dependencies a. Finish to Start (FS): Finish one to start the next one b. Start to Start (SS): Start of one triggers the start of another c. Finish to Finish (FF): Two tasks must finish at the same time d. Start to Finish (SF): Start of one means another finished 5. Activity 5: Assign Resources: a. People b. Services c. Facilities and equipment d. Supplies and materials e. Money 6. Activity 6: Direct the team effort: 7. Activity 7: Monitor and Control Progress a. Progress Reporting: Verbal or written, but honest and accurate b. Change management: Collection of procedures for documenting a change request and defines the necessary steps. Managing the expectations of the stakeholders
  • 7. Module 2 – System Development Processes  c. Expectations management: Understanding the dynamics and impact of changing the parameters of a project. d. Critical Path Analysis: Emphasis should be placed on the critical path tasks, and if necessary, resources might be temporarily diverted from tasks with slack time to help get critical tasks back on schedule. 8. Activity 8: Assess project results and experiences: Contribute improvements to specific project milestones, processes, or tasks. Vocabulary Systems Development Process: Activities, methods, best practices, and automated tools that stakeholders use to develop and improve information systems and software. Capability Maturity Model (CMM): Framework for assessing the maturity level of an organization’s information systems development and management processes and products. System development methodology: formalized approach to the systems development process; a standardized process that includes the activities, methods, best practices, deliverables, and automated tools to be used for information systems development.  RAD: Architected Rapid Application Development  DSDM: Dynamic Systems Development Methodology  JAD: Joint Application Development  IE: Information Engineering  RAD: Rapid Application Development  RUP: Rational Unified Process  Structured Analysis and Design  XP: eXtreme Programming System life cycle: build it, use it, and maintain it. Then cycle it back to redevelopment. Conversion: System cycles from development to operation and maintenance Obsolescence: System cycles from operation and maintenance to redevelopment FAST: Framework for the Application of Systems Thinking. Hypothetical methodology. Process management: Document, oversee, improve chosen process (Methodology) Project management: Process of scoping, planning, staffing, directing and controlling a project to develop an information system. Cost-effectiveness: Balance between developing, maintaining, and operating and the benefits Strategic information systems plan: Building and improving an information technology infrastructure Strategic enterprise plan: Defines mission, vision, goals, strategies, benchmarks, and measure of progress and achievement. Creeping Commitment: Feasibility and risks are continuously reevaluated throughout a project. Entropy: natural and inevitable decay of all systems over time. PIECES: Framework developed by James Wetherbe Steering Committee: Prioritizes and approves candidate system development projects Backlog: lower priority projects Problem statement: Preliminary study and feasibility assessment. Problems, opportunities, directives; may include constraints and initial vision Constraint: limitation Scope creep: Expectations and requirements increase w/o regard to cost and deadlines Statement of work: defines vision, scope, constraint, high level requirements, schedule, and budgets. Protect charter, plan, and service level agreement. System model: Words into pictures. Data flow diagrams Analysis paralysis: excessive system modeling Application architecture: a decision analysis step that proposes a high level blueprint for the approved solution. RFP: Request For System Proposal. Recommendation to purchase the solution rather than building it. Fact-finding: Techniques to collect information about system problems, requirements and preferences. Information gathering Feasibility analysis: how feasibility is assessed. Prescriptive methodology: touch all bases; follow all the rules Adaptive methodology: change as needed within some guidelines Process modeling: Data flow diagrams, structure charts, flowcharts Data modeling: Diagrams to capture business data requirements and translate to database design. Object modeling: Merge data and process concerns into objects RFQ: Request for Quotation. Formal document stating technical and support requirements for a single vendor. CASE: Tools that provide prototyping and code generation CASE repository: database to store system models and other products of system development. Data dictionary Forward engineering: Generate code from system models Reverse engineering: Initial system models from software or database code. Project: temporary sequence of unique, complex, and connected activities that have one goal or purpose and that must be completed by a specific time, within budget, and according to specification. Scope creep: unexpected growth of requirements Feature creep: uncontrolled addition of technical features to a system JPP: Joint Project Planning Technique is a strategy where stakeholders attend an intensive workshop aimed at reaching consensus on project decisions. Primitive task: does not consist of other tasks. Part of the work breakdown structure (WBS) Summary task: consist of other tasks (phases and activities) OD: Optimistic Duration estimates the minimum amount of time to complete a task PD: Pessimistic duration estimates that maximum amount of time to complete a task ED: Expected Duration estimates amount of time to complete a task D: Most likely Duration estimates amount of time to complete a task based on averages of OD, PD, and ED. Forward Scheduling: Start date and then follow from that date Reverse Scheduling: Establish deadline to figure out the schedule Resource Leveling: Correcting resource overallocations Critical path: sequences of dependent tasks w/o any slack time which combined determine completion date Slack time: time to delay a project between start and completion time.
  • 8. Module 3 –System & Requirements Analysis  Requirements Discovery Requirements discovery and management correctly identify the knowledge, process, and communication requirements for the users of a new system. They must meet the following criteria:  Consistent  Complete  Feasible  Required  Accurate  Traceable  Verifiable Requirement Discovery Process 1. Problem discovery and analysis: Ishikawa diagram is a graphical tool that helps identify 3 to 6 main categories that encompass all possible areas of causes for a particular problem. 2. Requirements discovery: Information gathering, data collection, fact-finding 3. Documenting and analyzing requirements: Provide direction for the modeling techniques the systems analyst will use to analyze the requirements and determine the correct requirements for the project. a. Documenting the draft requirements: i. Uses cases ii. Decision tables iii. Requirements tables b. Analyzing requirements: Fact-finding and requirements analysis activities are very closely associated with each other and in fact are often interwoven. c. Formalizing requirements: Using requirements definition document to formally communicate the requirements of a proposed system. i. Introduction 1. Purpose 2. Background 3. Scope 4. Definitions, acronyms, abbreviations 5. References ii. General project description 1. Functional requirements iii. Requirements and constraints 1. Functional requirements 2. Non functional requirements iv. Conclusion 1. Outstanding issues 4. Requirements management Fact-finding Techniques Analysts must take great care to protect the security and privacy of any facts or data with which they have been entrusted. 1. Sampling of Existing Documentation, Forms, and Files a. Describe a problem: suggestion box, minutes, complaints, accounting records, IS project requests b. Describe a business function: Mission statement, formal objectives, policy manuals, manual and computerized screens and reports 2. Research and site visits: Perform site visits with companies that had similar problems, computer trade journals, reference books, internet. 3. Observation of the work environment: Sometimes analyst performs the role of the user for a short period of time, called “living the system”. a. Advantages: i. Reliable ii. Complex tasks are easier to understand iii. Inexpensive iv. Work measurements b. Disadvantages: i. Performance may vary when being observed ii. Level of difficulty or volume may vary iii. Scheduling inconvenience iv. Interruptions v. False sense of proper step by step procedures since people will change their behavior when being observed. 4. Questionnaires: a. Advantages: i. Time ii. Inexpensive iii. Anonymity iv. Quick analysis b. Disadvantages i. Low number or respondents ii. No guarantee about the content of a response iii. Inflexible iv. No opportunity for clarification v. Difficult to prepare 5. Interviews: a. Advantages i. Opportunity to allow for open responses ii. Allow for more feedback iii. Adapt and reword questions iv. Analyze non-verbal communication b. Disadvantages: i. Time consuming ii. Success varies depending on skill iii. Impractical due to location c. How to Conduct an Interview i. Select Interviewees ii. Prepare interview iii. Conduct interview iv. Follow up on the interview v. Listening vi. Body language and proxemics 6. Discovery prototyping: a. Advantages i. Allow for experimentation ii. Aids in determining feasibility iii. Training mechanism iv. Helps to build test plans v. May minimize fact-finding b. Disadvantages i. Developers need training ii. Users may develop unrealistic expectations iii. Increase cost and schedule 7. Joint Requirements Planning (JRP): a. Participants: Sponsor, Facilitator, Users/Managers, Scribe(s), IT Staff b. Benefits: i. Users/Managers take ownership of the project ii. Reduce time to develop system iii. Prototyping benefits from JRP Fact-finding Strategy 1. Learn from existing documents, forms, reports, and files 2. If appropriate, observe the system in action 3. Distribute questionnaires 4. Conduct interviews 5. (optional) build discovery prototypes 6. Follow up using appropriate fact-finding techniques.
  • 9. Module 3 –System & Requirements Analysis  Use-Case Modeling Use-Case modeling has proved to be a valuable aid in meeting the challenges of determining what a system is required to do from a user and stakeholder perspective. System Concepts for Use-Case Modeling 1. Use Cases: Describe the system functions from the perspective of external users and in a manner and terminology they understand. 2. Actors: Anything that interacts with the system a. Primary business actor: stakeholder that benefits from the execution of the use case. b. Primary system actor: stakeholder that directly interacts with the system c. External server actor: stakeholder that responds to a request from the use case d. External receiver actor: stakeholder that is not the primary actor receives something from the use case. 3. Relationships a. Associations: Bidirectional or unidirectional relationships between actor and a use case b. Extends: Relationship between extension use case and a use case. c. Uses (or includes): Relationship between abstract use case and a use case. d. Depends on: Relationship between Use- Cases determining their sequence. e. Inheritance: Relationships between actors. It is best to use a common behavior and assign it to a “abstract actor” The Process of Requirements Use-Case Modeling Analyze enough requirements information to prepare a model that communicates what is required from a user perspective but is free of specific details about how the system will be built and implemented. Steps: 1. Identify Business Actors 2. Identify Business Requirements Use Cases: Captures the interactions with the user in a manner that is free of technology and implementation details. 3. Construct Use-Case Model Diagram 4. Document Business Requirements Use-Case Narratives: First document at a high level and then expand it to a fully documented business requirement narrative. a. Documenting the Use-Case Course of Events: step by step description. Use Cases and Project Management 1. Ranking and Evaluating Use Cases: Based on the following six criteria (scale 1-5) 1) Significant impact on the architectural design 2) Easy to implement but contains significant functionality 3) Includes risky, time-critical, or complex functions 4) Involves significant research or new or risky technology 5) Includes primary business functions 6) Will increase revenue or decrease costs. 2. Identifying Use-Case Dependencies: Use-case dependency diagram is a graphical depiction of the dependencies among use cases. Vocabulary System requirement: property or function of the information system. Functional requirement: something the information system must do. Nonfunctional requirement: property of quality the system must have. Performance: response time Information: content, timeliness, accuracy, and format Economy: costs Control (and security): privacy requirements Efficiency: Reduce waste Service: reliable, flexible, and expandable Ishikawa diagram: case-and-effect diagram, fishbone diagram Requirements definition document: Formal document that communicates the requirements of a proposed system to the stakeholders. Requirements management: Managing change to the requirements. Sampling: Collecting a representative sample of documents, forms, and records. Randomization: No predetermined pattern Stratification: Spread out sampling by using a formula Observation: A fact-finding technique. Free-format questionnaire: Offers greater latitude in the answer. Fixed-format questionnaire: Selecting an answer from predefined available responses. (multiple choice, rating, ranking) Interview: a fact-finding technique through face to face interaction Unstructured interview: Few questions. Relies on interviewee to drive the conversation. Structured interview: Specific set of questions Open-ended question: Response varies Closed-ended question: Restricts answers to specific choices. User-centered development: Understanding the needs of the stakeholders and the reasons why the system should be developed. Use-Case diagram: Depicts the interactions between the system and external systems and users. Functional decomposition: Act of breaking a system into subcomponents. Temporal Event: a system event that is triggered by time. Extension use case: Steps extracted from a more complex use case in order to simplify things. Abstract use case: Combining common steps between two use cases.
  • 10. Module 3 –System & Requirements Analysis  Requirements The process of understanding what's wanted or needed in an application. Requirements begin as a generalized description of a customer need as a customer vision or a mission or context statement. Requirements begin to define the “what” in a bit more detail. This detail is usually focused on the business aspects of the system operations and in many organizations is identified as “Business Requirements.” As analysts gather more and more information about customer wants and needs and develop the next iteration of requirements, these requirements then begin to get more detailed in explaining the function of the “what” the customer wants or needs in more detail. These types of details are usually called functional requirements. C & D Requirements For this reason we often divide requirements documents into two versions: C-requirements and D-requirements. In some organization, this division is roughly equivalent to the division between business requirements and functional requirements. The first part of a requirements document is an overview that is especially suited to customers. These are sometimes called the C-requirements (“C” stands for “customer”).The second part of a requirements document (or a separate document when the system being described is a large one) consists of the details of system operations. These details are especially useful for developers who need to know precisely what the application must do. These are sometimes called the D-requirements (“D” stands for “detailed” or for “developer”). Document Maintenance and Traceability Linking artifacts is a good way to attain traceability. Key links are the associations between each requirement and (a) the design element that accommodates it, (b) the code that implements it, (c) the inspection that verifies it, and (d) the test that validates it. The following shows relationships between the artifacts, based on a single requirement. Functional vs. Non-Functional Requirements A functional requirement specifies something that the application allows the user to accomplish. All other requirements are non- functional. Some non-functional requirements are performance requirements. Customer-Oriented Requirements The main purpose of customer-oriented C-requirements is to provide you with a good idea of the application by omitting details. C-requirements are usually divided into sections including "Overview," "Main Functions" and "GUI concepts." The overview is intended to allow readers to quickly understand the main purpose of the intended application. Following an overview section, C-requirements usually list the major functions such as "enter new video," "rent video," etc. Since users usually utilize applications through a relatively small number of common back- and-forth interactions, this can be a good way to summarize functionality. These interactions are termed "use cases." Applications typically involve multiple GUIs. The C-requirements describe the required mouse actions that take the user from one GUI to another. Detailed Requirements The purpose of detailed requirements (“D-requirements”) is to specify all of the details required of the application. There is nowhere else for the team to state exactly what is required. The purpose of detailed requirements (“D-requirements”) is to specify all of the details required of the application. There is nowhere else for the team to state exactly what is required. Functional Requirements The functional requirements are the heart of the requirements because they describe what the application is intended to do. They can be organized by Function, Use Case, GUI, or Class. Domain Classes (Business Objects) Classes derived from the business requirements are known as domain classes or business objects. A common first step in identifying domain classes is to gather the nouns or their equivalent used in the C-requirements. The second step is to eliminate duplicates as well as questionable or vague entries. The third step is to ensure that both individuals and aggregates appear. The last step is to inspect the list to ensure that the set of paragraphs describing these entities adequately covers the functional requirements. Non-Functional Requirements Any requirement that does not specify functionality (behavior) provided by the application is non-functional. Major non-functional categories are: external interfaces (hardware, software, and communication), error conditions, system attributes (reliability, availability, security, maintainability, performance in terms of speed and storage for different loads and other quality attributes.  Constraints: A constraint on an application is a requirement that limits it. Some examples of constraints are shown below.  Standards and Regulatory Compliance  External Interface Requirements:Applications are frequently required to interface with other systems.  Error Condition Requirements Steps for Developing User Interfaces Step 1 - Know Your User Step 2 - Understand the Business Function Step 3 - Understand the Principles of Good Screen Design Step 4 - Select the Appropriate Kind of Windows Step 5 - Develop System Menus Step 6 - Select the Appropriate Device-Based Controls Step 7 - Select the Appropriate Screen-Based Controls Step 8 - Organize and Lay Out Windows Step 9 - Choose Appropriate Colors Data Flow Diagrams for Customer Communication Some requirements are naturally described as the flow of data among processing elements. These processing elements transform data from one form to another as the result of computations performed by these processing elements. State Transition Diagrams for Customer Communication State Transition Diagrams for Customer Communication States are sometimes called "phases" or "stages." The idea is to divide the behavior of the application into states so that the application is always in one of these states.
  • 11. Module 4 – Modeling with UML System Concepts for Process Modeling  External Agents: external to the system being analyzed. Represented by a square (external entity). Singular nouns.  Data Stores: There should be one data store for each data entity on an entity relationship diagram. Represented by the open ended box. (file, database, data at rest). Plural of the entity name: CUSTOMER > customers (data store)  Process: work performed by a system in response to incoming data flows or conditions (transform). Represented by a rounded rectangle. o Process decomposition: break down of a process into activities and tasks o Logical process: work or action that must be performed. Can be implemented as one or more physical processes. Perform computations, Make decisions, Sort, Filter, Organize data, Trigger other processes, Use stored data.  Function: ongoing activities. Nouns  Event: must be completed as a whole. (transactions) General names.  Elementary processes: detailed activities (primitive process). Strong action verb.  Data Flows: input/output. Data in motion. Data should travel together like a packet. Represented by an arrow. Control flow is a condition or nondata event that triggers a process and it is represented by a dotted arrow. Singular descriptive nouns and use adjectives or adverbs to help describe (APPROVED ORDER). o Data structures: sequence, selection, repetition o Domains: Two properties required for each attribute. Data type is what class of data can be stored and domain is the legitimate value for an attribute. o Divergent and Convergent flows: Splits into multiple data flows or merges into a single data flow. Process of Logical Process Modeling  Strategic systems planning: Business areas and functions are mapped to an enterprise process model.  Process modeling for business process redesign (BPR): A cross between data flow diagrams and flow charts. Diagrams tend to be very physical.  Process modeling during Systems Analysis: modern structured analysis focus on the logical model of the target system. o Event partitioning: structured analysis where a system is divided into subsystems:  Context data flow diagram  Functional decomposition diagram  Even-response/use-case list  Event handler  Event diagram  System diagrams  Primitive diagrams  Structured English and/or decision table  Data structure  Fact-finding and information gathering for process modeling  CASE for process modeling: Constructing process models  Context data flow diagram: Document scope of a system (environmental model)  The functional decomposition diagram  Event-response or Use-case list: o External events: Initiated by external agents o Temporal events: when these happen, an input control flow occurs. o State events: Illustrated as control flow.  Event decomposition diagrams: one process per use case  Event diagrams: context diagram for a single event. Most contain a single process.  System diagram: The system diagram shows either all the events for the system on a single diagram or all the events for a single subsystem on a single diagram.  Primitive diagrams: Event processes requiring more details. Structured English Structured English is not pseudo code. It is natural English and the syntax of structured programming.  A sequence of simple, declarative sentences  A conditional or decision structure.  An iteration or repetition Restrictions:  Only strong, imperative verbs  Only names that have been defined in the project dictionary.  Clear formulas  No undefined adjectives or adverbs  Readability over programmer preferences. Decision Table Set of conditions and actions represented in a tabular format.  Condition stubs: Actions/conditions that will affect the decision/policy  Action stubs: possible policy actions/decisions  Rules: Specific combination of conditions define an action Synchronizing of System Models  Data and Process model synchronization: data to process CRUD matrix: Create Read Update Delete  Process distribution: Process to location association matrix. Object Oriented Analysis (OOA) & UML An approach used to study existing objects to see if they can be reused or adapted for new uses and define new or modified objects that will be combined with existing objects into a useful business computing application. Unified Modeling Language (UML) is a set of modeling conventions that is used to specify or describe a software system in terms of objects. System Concepts for Object Modeling  Object, attributes, methods, and encapsulation  Classes, Generalization, and specialization: gen/spec is a technique of grouping common attributes/methods of object classes into one unique object class called supertype)  Object class relationships  Messages and Message sending: Object invokes another object’s behavior for some action. CUSTOMER requests order status  ORDER details display.  Polymorphism: Objects respond to the same message in different ways. UML Diagrams  Use case: Depicts interactions between the system and external systems and users. In other words it graphically describes who will use the system and in what ways the user expects to interact with the system. The use-case narrative is used in addition to textually describe the sequence of steps of each interaction.  Activity: Depicts sequential flow of activities of a use case or business process. It can also be used to model logic with the system.  Class: Depicts the system's object structure. It shows object classes that the system is composed of as well as the relationships between those object classes.  Object: Similar to a class diagram, but instead of depicting object classes, it models actual object instances with current attribute values. The object diagram provides the developer with a "snapshot" of the system's object at one point in time.  State machine: Models how events can change the state of an object over its lifetime, showing both the various states that an object can assume and the transitions between those states.  Composite Structure: Decomposes internal structure of class, component, or use case.  Sequence: Graphically depicts how objects interact with each other via messages in the execution of a use case or operation. It illustrates how messages are sent and received between objects and in what sequence.
  • 12. Module 4 – Modeling with UML  Communication: (Collaboration diagram in UML 1.X) Depicts interaction of objects via messages. While a sequence diagram focuses on the timing or sequence of messages, a communication diagram focuses on the structural organization of objects in a network format.  Interaction Overview: Combines features of sequence and activity diagrams to show how objects interact within each activity of a use case.  Timing: Another interaction diagram that focuses on timing constraints in the changing state of a single object or group of objects. Especially useful when designing embedded software for devices.  Component: Depicts the organization of programming code divided into components and how the components interact.  Deployment: Depicts the configuration of software components within the physical architecture of the system's hardware "nodes."  Package: Depicts how classes or other UML constructs are organized into packages (corresponding to Java packages or C++ and .NET namespaces) and the dependencies of those packages. Process of Object Modeling  Modeling the functional description of a system o Constructing the Analysis use-case model  Identify, define, and document new actors  Identify, define, and document new use cases  Identify any reuse possibility  Refine the use case model diagram (optional)  Document system analysis use case narratives o Modeling the use case activities: an activity diagram can be used to graphically depict the flow of a business process, the steps of a use case, or the logic of an object behavior o Guidelines for constructing activity diagrams  Start w one initial node  Add partitions  Add an action for each major step  Add flows from each action to another action, decision point, or end point  Add decisions where flows diverge and connect them back.  Add forks and join where activities are performed in parallel  End with a single notation for activity final o System sequence diagram: depicts the interaction between an actor and the system for a use case. o Guidelines for constructing system sequence diagrams:  Identify which scenario  Draw a rectangle representing the system  Identify each actor  Examine the use case narratives  Add frames to indicate optional messages with conditions  Confirm the sequence  Finding and identifying objects o Find the potential objects o Select the proposed objects  Organizing objects and identifying relationships o Identify associations and multiplicity o Identify gen/spec o Identify aggregation/composition o Prepare class diagram Classes in UML Classes in UML diagrams are represented by rectangles containing from one to three segments depending on the desired level of detail. Attributes describe data components that belong to objects of this class. Operations describe the behavior of objects of a class – actions that an object can perform on behalf of the code that uses that object. Class relationships in UML  Packages: UML packages can contain any materials associated with an application, including source code, designs, documentation, etc. The example below shows the UML notation for packages and sub-packages. The package myPackage has three components; the package mySubPackage and two classes, MyFirstClass and MySecondClass. The package mySubPackage has only one component, MyClass.  Inheritance: Inheritance is a relationship between classes that we use to stress the fact that the two classes have common attributes and/or operations. The added benefit of the design with inheritance is that subclass objects may be used anywhere where superclass objects could be expected. This allows the programmers to write so called polymorphic algorithms that could be applied to objects of any subclass in the inheritance hierarchy. In UML inheritance is indicated with an open triangle.  Aggregation: Aggregation indicates the structural inclusion of objects of one class by an object of another class. On UML diagrams, this relationship is denoted with a hollow diamond. It is usually implemented by means of a containing class (the aggregate) having an attribute whose type is the included (aggregated) class. Unlike inheritance, this is a relationship among objects, not among classes. Composition is a stronger form of aggregation in which the aggregated object exists only during the lifetime (and for the benefit of) the composing object: No other object may reference it.  Dependency: Dependency, denoted with a dotted line arrow, means that an object of one class depends upon an object of another class in the sense that if the object at arrow's end were to change its state or the values of its data attributes, then this would affect the behavior of the dependent object.  Association: Association, denoted with a solid line between two classes, commonly means that objects of each class is somehow associated with objects of the other class in a structural manner. One-way associations are aggregations and compositions, which we have already covered. Two-way associations are problematical because we need to be sure that both ends of the implied information are kept consistent. Vocabulary Logical model: nontechnical pictorial representation that depicts what a system is or does Physical model: what the system is or does and how the system is implemented. Process modeling: technique to organize and document a system's processes Control flow: a condition or nondata event that triggers a process. Data conservation: ensuring data flow contains only data needed by the receiving process. Data attribute: the smallest piece of data that has a meaning to the users and the business Balancing: a concept that requires that data flow diagrams at different levels of detail reflect consistency and completeness Object: something that is or is capable of being seen. Attribute: characteristics of an object Behavior: what the object can do. (method, operation, or service) Object class: set of objects that share attributes and behaviors (class) Inheritance: methods/attributes inhereted from class to class Supertype: parent class, abstract Subtype: child class or concrete class if at the lowest level Multiplicity: min/max occurrences of one object calss for a single occurrence of the related object class Aggregation: Computer contains CPU, memory, etc. Composition: If you cancel the order, all items are removed from the ORDER. Override: child class uses its own attribute rather than the inherited one. Class diagram: depiction of a system's static object structure showing classes and relationships Persistent class: Describes object that outlives the execution of the program Transient object class: describes object that is created temporarily by the program and lives only during the program's execution.
  • 13. Module 5 – System Architectures  Systems Design The specification of a detailed computer-based solution. Also called, “physical design” because it focuses on the technical or implementation concerns of the system. Design Approaches  Model-Driven Approaches: A system design approach that emphasizes drawing system models to document technical and implementation aspects of a system. o Modern Structured Design: A system design technique that decomposes the system’s processes into manageable components. It is considered a process-oriented technique also known as, “top-down program design and structured programming”. It must be highly cohesive and loosely coupled. Structured design is performed during systems design. The software model derived from structured design is called a structure chart. o Information Engineering (IE): Model-driven and data-centered, but process-sensitive, technique for planning, analyzing, and designing information systems. o Prototyping: An interactive process involving a close working relationship between the designer and the users.  Pros: End user participation, Iteration and change, active, errors can detected earlier, accelerates several phases of the life cycle  Cons: “Code, implement, repair”, it is only a complement, issues can be forgotten, out of control, slower performance than their 3rd generation language counterparts o Object-oriented design: an attempt to eliminate the separation of concerns about DATA and PROCESS.  Rapid Application Development (RAD): a merger of various structured techniques with prototyping techniques and join application development techniques to accelerate systems development.  FAST Systems design strategies: integrates all the popular approaches introduced in the book. “Build” Solution  Task 5.1 – Design the Application Architecture: This first design task is to specify application architecture. This task is accomplished by analyzing the data models that were initially created during requirements analysis using a physical data flow diagram (PDFD). The analyst may involve a number of system designers and system users. (DBAs, network admins, engineers, and application admins.) Inputs are facts, recommendations, and opinions. Principal deliverable is the application architecture and distribution analysis.  Task 5.2 – Design the System Database(s): Prepare technical design specifications for a database that will be adaptable to future requirements and expansion. Analyze how programs will access the data in order to improve performance. Record size and storage volume. Proper security and DR techniques. (DBAs, System Builders). Input is the previous task. Deliverable is the database schemas.  Task 5.3 – Design the System Interface: Work closely with system users to develop input, output, and dialog specifications. Internal controls. Format and layout of the outputs. Editing controls. Various screen designs.  Task 5.4 – Package Design Specifications: Final design phase that depends on responsibilities of a designer and programmer, and whether the methodology and solution calls for the design of the overall program structure. Systems analyst w/ some aid from the system designer usually completes this task. Audit staff is involved. Inputs of this task are the various database, input and output specifications.  Task 5.5 – Update the Project Plan: The system analysts and system owners are the key individuals in this phase. Reevaluate project feasibility and update the project plan. “Buy” Solution The most notable differences between the buy and the in-house development projects is the inclusion of a new procurement phase and a special decision analysis phase. They do the following: 1. Identify and research specific products 2. Solicit, evaluate, and rank vendor proposals 3. Select and recommend 4. Contract with vendor to obtain product  Task 4.1 – Research Technical Criteria and Options: This task is facilitated by the project manager. System Designers are responsible for the completion of this task.  Task 4.2 – Solicit Proposals or Quotes from Vendors: This task is facilitated by the project manager. The systems designer is also responsible for completing this activity. Request for Quotations (RFQs) or Request for Proposals (RFPs).  Task 5A.1 – Validate Vendor Claims and Performances: System Designers are responsible for the completion of this activity. The key outputs of this task are those vendor proposals that proved to be validated proposal or claims and other whose claims were not validated.  Task 5A.2 – Evaluate and Rank Vendor Proposals: System Designers are responsible for the completion of this activity. The ability to perform a feasibility assessment is an extremely important skill requirement for completing this task. This approach awards the contract.  Task 5A.3 – Award Contract and Debrief Vendors: Negotiate contact and inform losing vendors. System Designer must make and defend the recommendation. Application Architecture Specifies the technologies to be used to implement one or more information systems. Communicates the following design decisions:  Degree to which the information system will be centralized or distributed.  The distribution of stored data across a network  Programming language and tools  Integration of any COTS  Technology for interface Physical Data Flow Diagrams Model the technical and human design decisions to be implemented as part of an information system.  Physical Processes o Logical processes are frequently assigned to specific physical processors (PCs, servers, mainframes, people, or other devices) o Each logical process must be implemented as one or more physical processes o If a logical process is to be implemented partially by people and software, it must be split into separate processes and appropriate data flow must be added between the physical processes. o Number of physical processes on a physical DFD will almost always be greater than the number of logical processes of the logical DFD to reflect data collection, filtering, forwarding, preparation, or quality checks.  Physical Data Flows: o The planned implementation of an input to or output from a physical process o A database command or actions such as create, read, update, delete o The import of data from or the export of data to another information system across a network o The flow of data between two modules or subroutines within the same program.  Physical External Agents: Unchanged from the logical DFD  Physical Data Stores: o Database o Table in a database o A computer file o Tape or media backup o Temporary file o Any type of non-computerized file Information Technology Architecture  Distributed Systems: a system in which components are distributed across multiple location sand computer networks. o Layers  Presentation layer: the actual user interfaces  Presentation logic layer: processing that must be done to generate the presentation. (editing input data and formatting output data)
  • 14. Module 5 – System Architectures     Application Logic layer: All logic and processing to support the business application. (Data analysis, calculations)  Data Manipulation layer: all commands and logic required to store and retrieve data in a database  Data layer: Stored data in a database o Architectures  File server architecture: Practical for small database with small number of users. Disadvantages are large amounts of data move between client/server, client PC must be robust, database integrity.  Client / Server architecture: client/server computing or client/server system is a distributed solution in which the presentation, presentation logic, application logic, data manipulation, and data layers are distributed between a client PC and one or more servers. They can use thin or fat clients. (database servers, transaction servers, application servers, messaging/groupware, web servers  Client/Server distributed presentation: system in which presentation and presentation logic are shifted from the server to reside on the client.  Client/Server distributed data: a two-tiered client/server computing is a system in which the data and data manipulation layers are placed on servers and other layers are placed on clients. Database server is fundamental to this architecture. (Oracle, MS SQL)  Client/Server distributed Data and Application: Data and data manipulation layers are placed on their own servers, application logic is placed on its own server, presentation logic and presentation are placed on the client. Also called, three-tiered, n-tiered, client/server computing. Drawbacks are complexity and design partitioning.  Internet-Based computing architecture: a network computing system is a multi- tiered solution where presentation and presentation logic run on browsers using downloaded content.  Data Architectures – Distributed Relational Databases: A relational database stores data in a tabular form. Related records between two tables are duplicated. A distributed relational database distributes or duplicates tables to multiple database servers. Sometimes called a client/server database management system. (SQL, Oracle, DB2, Sybase) o Data partitioning: Different columns on different databases (vertical). Rows on different database servers (horizontal) o Data replication: duplicates on more than one database server.  Interface Architectures – Inputs, Outputs, and Middleware (pg 496-500): o Batch inputs or outputs: For inputs, the logical name is singular, but the batch name is plural. The batch goes in to a temporary data store which is read by a process triggered by a date. For outputs, a plural name for batch processing. o Online inputs or outputs: Output can be in HTML format or MAPI E-mail. o Remote batch o Keyless data entry (and Automatic Identification): Bar code technology, OCR, OMR (Optical Mark Reading) o Pen input: Palm OS, Windows Mobile o Electronic Messaging: Exchange, Lotus notes o Electronic data interchange (EDI): Standardized electronic flow of business transactions or data between businesses. o Imaging and Document Interchange o Middleware: Utility software that enables communication between different processors in a system.  Presentation: HTTP allows communication to a web browser through API.  Application: Remote Procedure Calls (RPC), message queues, ORBs  Database: ODBC, JDBC  Process Architectures – The software development environment (SDE): Software languages and tools that will be used to develop the business logic and application programs for the process. o SDEs for Centralized Computing and Distributed Presentation: COBOL to write programs, CICS to manage any online transactions and terminal screens, VSAM or DB2 to manage stored data o SDEs for two-tier client/server: Sybase PowerBuilder, Visual Studio, Borland’s Delphi  RAD for developing GUIs  Automatic generation fo the template code for the GUI  Programming language compiled for replication and execution on client  Sophisticated code testing and debugging o SDEs for Multi-tier Client/Server: (Dynasty’s Dynasty, IBM’s VisualAge) Additional capabilities like:  Strong emphasis on reusability  Tools to help analysts and programmers partition application components between the client and servers  Ability to automatically scale the application to larger and different platforms  Sophisticated software version control o SDEs for Internet and Intranet Client/Server: HTML, XML, CGI, Java Application Architecture Strategies for System Design  Enterprise Application Architecture Strategy o Approved network, data, interface, and processing technologies and development tools o Strategy for integrating legacy and technologies o Ongoing process for continuously reviewing the application o Ongoing process for researching emerging technologies and making recommendations o Process for analyzing requests for variances from approved application architecture.  Tactical Application Architecture Strategy: Each project must define its own architecture for the information system being developed o Technical feasibility: Technology maturity, suitability to the application being designed, or ability to work with other technologies. o Operational feasibility: How comfortable management, users, technology managers, and support is with the technology o Economic feasibility: cost-effectiveness. Modeling the Application Architecture of an Information System  Drawing Physical Data Flow Diagram: o A physical DFD should be developed for the network architecture: each class of clients is represented by a single processor o Each processor requires a physical DFD to show the event processes o Design unit is a self-contained collection of processes, data stores, and data flows that share similar design attributes.  Prerequisites: Logical data model (entity relationship diagram), logical process models (DFD). Some constraints are: o Architectural standards, project objectives, and feasibility.
  • 15. Module 5 – System Architectures   The Network Architecture: the first physical DFD that allocates processors (client/servers) and devices (machines, robots) to a network and establishes the connectivity and where users will interact with the processors (usually only the clients).  Data Distribution and Technology Assignments: Required logical data stores from logical DFDs or as entities on the logical ERDs. o Store all data on a single server o Store specific tables on different servers o Store subsets of specific tables on different servers o Replicate (duplicate) specific tables or subsets on different servers  Process Distribution and Technology Assignments: o For two-tiered client/server systems, all the logical event diagrams are assigned to the client o For three-tiered client/server and network computing systems, you need to partition. Each physical DFD for a partition corresponds to a design unit for a given business event.  The Person/Machine Boundaries: Separate manual and computerized processes. Goals of System Architectures and Designs  Sufficiency: Handles the requirements: Design sufficiency is closely related to correctness, modularity, understandability and readability. Cohesion within a module is the degree to which the module's components belong together. Coupling describes the degree to which modules communicate with other modules. To modularize effectively, we maximize cohesion and minimize coupling.  Robustness: Can deal with a wide variety of correct and incorrect input. A design or implementation is robust if it is able to handle unusual conditions.  Reusability: Can use parts of the design and implementation in other applications. An application has high usability if users find it easy to use. Usability is attained through human interface design, discussed previously in this course.  Reliability: Acceptable failure rate. An application is reliable if it is relatively defect-free. Metrics make this quantifiable, such as the average time between failures.  Efficiency: Executes within acceptable limits of time, space, and any other applicable resources. Efficiency refers to the use of available machine cycles, memory, communication bandwidth, storage, and other resources.  Flexibility: Can be readily modified to handle changes in requirements. We design so that parts of our own applications can be reused by others and ourselves in similar or even in different projects. o Object code (or equivalent)  Example: sharing DLLs between word processor and spreadsheet o Classes - in source code form  Example: Customer class extended and used by several applications o Assemblies of Related Classes  Example: the java.awt package contains classes for implementing GUI with standard GUI controls (butons, text fields, etc.) o Design Patterns of Class Assemblies  Example: the Strategy Pattern, the Façade Pattern, etc. can be used in a variety of applications Integrating Design Models  Use Case Model o The business use cases o regular use cases o Sequence diagrams o Scenarios  Class Models: Classes are the building blocks—more precisely, the types of building blocks -- of designs.  Data Flow Models: shows specific processes and the types of data flowing between them.  State Models: State models reflect reactions to events. Events include mouse actions and changes in variable values. Events are not described in class models or component models, but they do occur in use case models. Frameworks A framework, sometimes called a library, is a collection of software artifacts usable by several different applications. These artifacts are typically classes, together with additional software required to utilize them. A framework is a kind of common denominator for a family of applications. Alternatively, as we will see below, a framework may feel like a generic application that we customize by inserting our own parts. The main benefit of using frameworks is to provide reusability of components common to the family of applications, such that other developers designing another application of the same family do not have to re-create the same types of components. System Architectures  Create Domain Classes from requirements analysis: The classes in the architecture are arrived at by evaluating your system as a whole and identifying the supporting classes required in addition to your domain classes. The rest of the classes are added to complete the design  Architectural Trade-off Analysis Method (ATAM): The ATAM methodology focuses on how a system architecture and design will meet the quality attributes and non-functional requirements defined by the stakeholders of the system. ATAM is a risk analysis identification methodology and a means of detecting potential risk within a software system. o (a) identify quality attribute that might affect the choice of architecture o (b) identify applicable architectures o (c) evaluate whether each architecture satisfies the quality requirements.  QFD or Quality Function Deployment: QFD is focused on the transformation of stakeholder requirements into ensuring that quality is engrained within the creation of the components or sub-systems being created. Architecture Types  Data Flow Architectures o Pipe and Flow Architectures: In these architectures, data processing elements (referred to as “filters”) accept streams as inputs at any time and produce output streams. The name “filter” implies that the output stream is derived from the input stream through a process similar to filtering. o Batch Sequential Data Flow: One can think of the operations as occurring only once per batch of data and the next operation starts only when the previous one is complete.  Independent Components o Tiered and Client/Server Architecture: Client/server architectures have subsequently become more sophisticated and more varied. Some are now designed as three-tier architectures instead of the original two tiers (client and server). The middle tier lies between the client and the database, providing a useful level of indirection. o The Parallel Communicating Processors Architecture: This architecture is characterized by several processes executing at the same time. o Event Systems Architectures and the State Design Pattern: If a system has complex responses that depend on what has happened before, especially if it also has a limited set of inputs, consider designing it as an Event System using a State design pattern.  Virtual Machines: we design an interpreter which accepts user's command in this scripting language. This interpreter serves as an intermediate layer between the operating system and the application.  Repository Architectures: The word "repository" is often used in industry to denote an application that provides a unified view of a collection of databases. Blackboard architectures, developed for artificial intelligence applications, are repositories which behave in accordance with posting rules.  Layered Architectures: Building applications layer by layer can greatly simplify the process. Some layers, such as frameworks, can serve several applications. This design improves productivity, decreases development time, and improves software quality. Layered architectures are common in operating systems and network communications.  Service-Oriented Architectures: Service-Oriented Architectures (SOAs) are combinations of services: components that provide functionality according to an interface specification.
  • 16. Module 6 – Object­Oriented Designs The Design of an Object Oriented System The application works by having classes send and receive messages from other classes. The goal of Object-Oriented Design (OOD) is to specify the objects and messages of the system. OOD is an approach used to specify the software solution in terms of collaborating objects, their attributes, and their methods.  Entity Classes: an object class that contains business-related information and implements the analysis classes  Interface Classes: an object class that provides the means by which an actor can interface with the system. Sometimes classed boundary class.  Control Classes: an object class that contains application logic. They coordinate messages between interface classes and entity classes in which the messages occur.  Persistence Classes: an object class that provides functionality to read and write persistent attributes in a database.  System Classes: An object class that handles operating system-specific functionality.  Design Relationships: o Dependency relationships: association between two classes in two instances  To indicate that when a change occurs in one class, it may affect the other class  To indicate the association between a persistent class and a transient class (Interface window and handler class) o Navigability: Limit messages between classes from bidirectional to only one direction  Attribute and Method Visibility: The level of access an external object has to an attribute or method o Public (+) o Protected (#) o Private (-)  Object Responsibilities: In design, we focus on identifying the behaviors a system must support and, in turn, designing the object methods for performing those behaviors. Along with behaviors, we determine the object’s responsibilities. A class responsibility is implemented by the creation of one or more methods that may have to collaborate with other classes and methods. The Process of Object-Oriented Design 1. Refining the Use-Case Model a. STEP 1- Transforming the “analysis” use cases to “design” use cases: i. Use-case type: System Design ii. Window Controls: icons, links, buttons iii. Window Names iv. Navigation instructions: How the user navigates the user interface should be specified b. STEP 2- Updating the use-case model diagram and other documentation to reflect any new use case: Update to reflect new information. 2. Modeling Class Interactions, Behaviors, and States that support the Use-Case Scenario. a. STEP 1 – Indentify and Classify Use-Case Design Classes: i. Interface Classes: This column contains a list of classes mentioned in the use case. There should be at least one interface class ii. Controller Classes: This column contains that encapsulate application logic or business rules. iii. Entity Classes: This column contains a list of classes that correspond to the business domain classes whose attributes were referenced in the use case b. STEP 2 – Identify Class Attributes: c. STEP 3 – Identify Class Behaviors and Responsibilities i. Analyze the use cases to identify required system behaviors ii. Associate behaviors and responsibilities with classes iii. Model classes that have complex behavior iv. Examine the class diagram for additional behaviors v. Verify classifications d. STEP 4 – Model Object States: Object state is a condition of the object at one point in its lifetime. A state is triggered by a state transition even which is an occurrence through the updating of one or more of the object’s attributes values. i. State machine diagram: A UML diagram that depicts the combination of states that an object can assume during its lifetime, the events that trigger transitions between states, and the rules governing the objects transition. Also called statechart or state transition diagram. 3. Updating the Object Model to Reflect the Implementation Environment: A design class diagram depicts classes that correspond to software components that are used to build the software application. The steps to convert a class diagram from OOA to OOD are the following: a. Add design objects to diagram: entity, interface, control objects b. Add attributes and attribute-type information to design objects c. Add attribute visibility: public, protected, private d. Add methods to design objects: referred to as “setters” and “getters”. e. Add method visibility f. Add association navigability between classes g. Add dependency relationships Object Reusability  Cohesion: the degree to which the attributes and behaviors of a single class are related to each other  Coupling: the degree to which one class is connected to or relies upon other classes Design Patterns A common solution to a given problem in a given context, which supports reuse of proven approaches and techniques. Advantages are: a. They allow use to design information system with the experiences of those who came before us rather than having to reinvent the wheel. b. They provide designers a short-hand notation for discussing design issues.  The Strategy Pattern: Behavioral category. Define each algorithm in a separate class with a common interface.  The Adapter Pattern: Structural category. Add a class that acts as an adapter to convert the interface of a class into another interface that the client classes expect. Object framework: a set of related, interacting objects that provide a well-defined set of services for accomplishing a task. Component: A group of objects packaged together into one unit. Example: dynamic link library (DLL) or executable file Additional UML Design and Implementation Diagrams  Communication diagram: models the interaction of objects via messages, focusing on the structural organization of objects in a network format. Called Collaboration diagram  Component diagram: depicts the organization of programming code divided into components and how the components interact.  Deployment diagram: depicts the configuration of software components within the physical architecture of the system’s hardware “nodes”. Relating Use Cases, Architecture, and Detailed Design 1. In step 1, use cases are specified as part of the requirements 2. In step 2, these, together with other sources, are used to identify the business objects (domain classes). 3. In step 3, we develop the system architecture, 4. In step 4, verify that the architecture and detailed design support the required use cases We verify that the classes and their methods specified by the detailed design include all necessary algorithms and supporting data fields and hence are capable of executing the required use cases.
  • 17. Module 6 – Object­Oriented Designs A Typical Road Map for the “Detailed Design” Process Detailed design starts with the results of the architecture phase and ends with a complete blueprint for the programming phase. The blueprint would include details about the classes, their relationships, data fields, and methods. It is advisable to start the detailed design process with those aspects of the design that present the most risk. 1. Step 1: Begin with architectural models for platforms, software, and communication: a. class model: domain and architectural classes b. Overall state model c. Overall data flow model, including platforms d. Use-case model 2. Step 2: Introduce classes and design patterns which connect the architecture classes with the domain classes 3. Step 3: Refine models, make consistent, ensure complete 4. Step 4: Specify class invariants 5. Step 5: Specify methods with pre and post conditions, activity diagrams, and pseudo code. 6. Step6: sketch unit test plans 7. Step 7 Inspect test plans and design 8. Step 8: Release for integration and implementation Design in the Unified Development Process Analysis:  Conceptual and abstract  Less formal  Less expensive to develop  Outlines the design  Relatively unconstrained  Less focus on sequence diagrams  Few layers Design:  Concrete: implementation blueprint  More formal  More expensive to develop (+/- 5x)  Manifests the design  Constrained by the analysis and architecture  More focus on sequence diagrams  Many layers The Unified process encourages three kinds (“stereotypes”) of classes: entity, boundary, and control classes. 1. Entity classes roughly correspond to what we call business entities, business classes, or domain classes 2. Boundary classes handle user communication with entity objects, and their design depends on the details of the use cases 3. Control classes contain methods that pertain to the entity objects, but are typically special to the application in which the entity class is being used Designing Against Interfaces  "Interface" means a set of methods that a class provides to other classes in the application.  The method signature includes the data types of method parameters, preconditions and post conditions Reusing Components Frameworks are packages of components designed for reuse. We developed frameworks to support application architectures, and so they are effectively reusable. Sequence and Data Flow Diagrams for Detailed Design  Sequence Diagrams o Begin with the sequence diagrams constructed for detailed requirements and/or architecture (if any) corresponding to the use cases o Introduce additional use cases, if necessary, to describe how parts of the design typically interact with the rest of the application o Provide sequence diagrams with complete details  Be sure that the exact objects and their classes are specified  Select specific function names in place of natural language o (calls of one object to another to perform an operation which the first object needs)  Data FlowDiagrams o Gather data flow diagrams (DFDs) constructed for detailed requirements and/or architecture (if any) o Introduce additional DFDs, if necessary, to explain data and processing flows o Indicate what part(s) of the other models the DFDs correspond to.  e.g., "the following DFD is for each Account object" o Provide all details on the DFDs  Indicate clearly the nature of the processing at each node  Indicate clearly the kind of data transmitted  Expand processing nodes into DFDs if the processing description requires more detail Specifying Platforms, Classes, Functions and Algorithms  Platforms: A design must specify in complete detail the platforms on which the system is intended to run. This includes client platforms and software, server platforms and software, communications platforms, and software, and database platforms and software.  Classes: o Gather the attributes listed in the SRS  This can be done more easily if the SRS is organized by class o Add additional attributes required for the design o Name a method corresponding to each of the requirements for this class:  Again, this is easy if the SRS is organized by class o Name additional methods required for the design o Show the attributes and methods on the object model o State class invariants and method preconditions and postconditions (see next section) Advantages of Pseudo code and Flowcharts o Provide documentation that helps clarify complex algorithms o Impose increased discipline on the process of documenting detailed design o Provide additional level at which inspection can be performed o Help to trap defects before they become code o Increase product reliability o May decrease overall costs Disadvantages of Pseudo code and Flowcharts o When design and/or code changes, they have to be maintained to be consistent o Introduce error possibilities in translating to code o May require a tool to extract pseudo code and facilitate drawing flowcharts