ISP550 Notes
ISP550 Notes
ISP550
INFORMATION SYSTEMS
ENGINEERING
1
Learning Objectives
2
Introduction
• Information systems support almost everything organizations do, whether the
systems are developed for internal use, for exchanges with business partners, or
for interactions with customers.
• Networks, especially the Internet are crucial for connecting organizations with
their partners and their customers
• Information systems form the foundation for every major organizational activity and
industry, from retail to healthcare to manufacturing to logistics.
3
Definition of Information System
4
Definition of Information System (continue)
Complex, dynamic engagements and environments require people to analyze and draw
conclusions from an abstracted representation of the world, which enables them to make
discrete decisions to achieve a desired effect in the world commensurate with their roles,
tasks and capabilities.
The abstraction is sometimes portrayed as a hierarchy
(Figure 2) known as the Data, Information, Knowledge,
and Wisdom (DIKW) paradigm.
5 Ackoff, R. L., “From Data to Wisdom,” J. Appl. Syst. Anal. 16, 3–9 (1989).
Cleveland, H., “Information as Resource,” The Futurist, 34–39 (Dec 1982).
Definition of Information System (continue)
Data Knowledge
• are the smallest symbolic units • symbols are sufficiently abstract to enable
that describe measured or people to make decisions about and interact
estimated phenomena. with their environments.
• i.e.: sensors produce large • combination of information with necessary
volumes of data, but very little is data and judgment of historical patterns
understood by humans. (experience).
Information Wisdom
• information is a more abstract • is knowledge combined with insights and
understanding of the data common sense.
derived by fusing data • It is typically achieved by humans based on
• lowest layer where the symbolic knowledge, information, and data.
units are interpretable by • hard to derive automatically from lower-level
humans. information representations.
6
TERM INFORMATION SYSTEMS ENGINEERING
8
Developing Information Systems and the
Systems Development Life Cycle
Systems development methodology
• A standard process followed in an organization to conduct all the steps
necessary to analyze, design, implement, and maintain information systems
For example, in any given SDLC phase, the project can return
to an earlier phase if necessary. Similarly, if a commercial
product does not perform well just after its introduction, it
may be temporarily removed from the market and improved
before being reintroduced
10
Figure 3: Systems Development Life Cycle
Phases of the S D L C
• Planning
• Need for a new or enhanced system is identified
• Needs are identified, analyzed, prioritized, and arranged
• Determine the scope of the proposed system
• A baseline project plan is developed
• Analysis
• System requirements are studied from user input and structured
• Requires careful study of current systems, manual and computerized, that might be
replaced or enhanced
• Output is a description of the alternate solution recommended by the analysis team
11
Phases of the S D L C
• Design
• The analyst converts the alternate solution into logical and physical
specifications
• Logical Design
• The design process part that is independent of any specific hardware or software platform
• Physical Design
• The logical specifications of the system from logical design are transformed into technology-
specific details from which all programming/system construction can be accomplished
• Choices of language, database, and platform are many times already decided by the
organization or client
12
Phases of the S D L C
• Implementation
• Occurs when the information system is coded, tested, installed, and
supported in the organization
• New systems become part of the daily activities of the organization
• Maintenance
• The phase in which an information system is systematically repaired and
improved
• Organization’s needs may change over time requiring changes to the system
based on user’s needs
13
Products of SDLC Phases
Phase Products, Outputs, or Deliverables
Planning • Priorities for system and projects; an architecture for data, networks, and selection
hardware, and information systems management are the result of associated
systems
• Detailed steps, or work plan, for project
• Specification of system scope and planning and high-level system requirements or
features
• Assignment of team members and other resources
• System justification or business case
Analysis • Description of the current system and where problems or opportunities exist, with a
general recommendation on how to fix, enhance, or replace current system
• Explanation of alternative systems and justification for chosen alternative
Design • Functional, detailed specifications of system elements (data, processes, inputs, and
outputs)
• Technical, detailed specifications of all system elements (programs, files, network,
system software, etc.)
• Acquisition plan for new technology
Implementation • Code, documentation, training procedures, and support capabilities
Maintenance • New versions or releases of software with associated updates to documentation,
14 training, and support
15
Instead of systems requirements being produced in analysis, systems specifications being created in
design and coding and testing being done at the beginning of implementation, current practice combines
these activities into a single analysis–design–code–test process. These activities are the heart of systems
development, as we suggest in Figure 1-7. This combination of activities is typical of current practices in
agile methodologies.
Predictive Approach
• Waterfall model
• Assumes the project can be planned and that the information system can be developed
according to the plan
• Requirements are well understood and/or low technical risk
18
The Agile Manifesto
The agile methodologies group (The Seventeen Anarchists) argues
that software development methodologies adapted from engineering
generally do not fit with real-world software development.
19
The Agile Manifesto
12 Agile Principle
1. The highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference for the shorter timescale.
4. Businesspeople and developers work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and
support they need and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within
a development team is face-to-face conversation.
20
The Agile Manifesto
12 Agile Principle
7. Working software is the primary measure of progress
8. Continuous attention to technical excellence and good design enhances
agility.
9. Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
10. Simplicity—the art of maximizing the amount of work not done—is
essential.
11. The best architectures, requirements, and designs emerge from self-
organizing teams.
12. At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behavior accordingly.
21
Agile Methodologies—Not for
Every Project
• Agile methodologies are not for everyone
• Fowler recommends an agile process if your project involves
• unpredictable or dynamic requirements
• responsible and motivated developers
• customers who understand the process and will get involved
22
Five Critical Factors that Distinguish Agile and 23
Criticality Untested on safety-critical products Methods evolved to handle highly critical products
Potential difficulties with simple design and lack Hard to tailor down to products that are not critical.
of documentation
Dynamism Simple design and continuous refactoring Detailed plans and Big Design Up Front, are
are excellent for highly dynamic environments excellent for a highly stable environment but a
but a source of potentially expensive rework for source of expensive rework for highly dynamic
highly stable environments environments
Personnel Requires continuous presence of a critical mass Needs a critical mass of scarce experts during
of scarce experts. Risky to use non-agile people project definition but can work with fewer later in the
project, unless the environment is highly dynamic
Culture Thrives in a culture where people feel Thrives in a culture where people feel comfortable
comfortable and empowered by having many and empowered by having their roles defined by
degrees of freedom (thriving on chaos) clear practices and procedures (thriving on order)
Agile in Practice
• Three primary factors critical for success
• Delivery strategy: Continuous delivery of working software in
short time scales
• Following agile software engineering practices
• Team capability: Agile principle of building projects around
motivated individuals
• Agile development offers managers and programmers more
choices in their efforts to produce good systems that come in on
time and under budget
24
eXtreme Programming
o Short, incremental development cycles
o Focus on automated tests written by
programmers
o Emphasis on two-person programming teams
o Customers to monitor the development
process
o Relevant parts of eXtreme Programming that
relate to design specifications are
1. How planning, analysis, design, and
construction are all fused into a single
phase of activity
2. It’s unique way of capturing and presenting
system requirements and design
25 specifications
eXtreme Programming
oCoding and testing are related parts of the same process
oAdvantages include
• Increased communications among developers
• Higher levels of productivity
• Higher quality code
• Reinforcement of other practices in eXtreme Programming
• Include code-and-test discipline
26
SCRUM
• Originated in 1995 by Sutherland and
Schwaber
• Most popular methodology for agile (58%)
• Scrum framework includes
• Scrum teams with associated roles,
events, artifacts, and rules
• Each team consists of three roles
• Product owner
• Development team
• Scrum master
27
SCRUM oScrum designed for speed and
multiple functional product
releases
oPrimary unit is the Sprint (runs two
weeks to a month)
oStarts with an eight-hour Sprint
planning meeting
oWhat needs to be delivered
by the end of the sprint
oHow will the team
accomplish that work
oDaily Standup: A 15-minute
meeting held to evaluate
progress made within the past
24 hours and what needs to be
done
28
• At the end of the sprint, two additional
SCRUM meetings
• The Sprint Review: (4 hours)
focusing on the product, what has
been accomplished, and what
needs to be done
• The Sprint Retrospective: (3 hours)
focusing on team performance
and how it can improve
• Three primary artifacts in the Scrum
process
1. Product Backlog: Listing of
potential requirements
2. Sprint Backlog: Listing of only
items to be addressed in a
particular sprint
3. Increment: Represents the sum of
all the Product Backlog items
completed during a sprint.
29
Object-Oriented Analysis and
Design (OOAD)
oBased on objects rather than data or processes
oCombines data and processes (called methods) into single entities call
objects
oObject: A structure that encapsulates attributes and methods that operate
on those attributes
oInheritance: Hierarchical arrangement of classes enabling subclasses to
inherit properties of superclasses
oObject Class: Logical grouping of objects that have the same attributes and
behaviors
30
Relational Unified Process (RUP)
31
Other Approach to System Development
In recent years, several software development methodologies have emerged beyond Agile and
Waterfall, reflecting the evolving needs of the industry.
DevOps is more of a culture or a set of practices rather than a formal methodology. It emphasizes
collaboration between development (Dev) and operations (Ops) teams to automate and streamline the
software delivery process.
Key Principles:
• Continuous Integration/Continuous Deployment (CI/CD)
• Infrastructure as Code (IaC)
• Monitoring and Logging
• Collaboration and Communication
Benefits: Faster delivery of software, improved quality, reduced time to market, and more reliable
releases.
32
33
Roles and Responsibilities of participants in SDLC
Roles Responsibilities
Project Manager • Overseeing the entire project from inception to completion.
(PM) • Managing resources, timelines, and budgets.
• Ensuring that the project meets its objectives and is delivered on time.
• Coordinating communication between the team, stakeholders, and clients.
• Managing risks and issues that arise during the development process.
36
Summary
37
Topic 2
The Origins of Software
ISP550
INFORMATION SYSTEMS
ENGINEERING
1
Learning Objectives
• Explain outsourcing
• Describe six different sources of software
• Discuss how to evaluate off-the-shelf software
• Explain reuse and its role in software development
2
Introduction
3
Outsourcing
• Outsourcing – turning over responsibilities for some or all of an
organization’s information systems applications and operations to
an outside firm
• Reasons for outsourcing:
• Freeing up internal resources
• Increasing the revenue potential of the organization
• Reducing time to markets
• Increasing process efficiencies
• Outsourcing non-core activities
4
Sources of Software
5
Information Technology Service Firms
6
Table 2-1: Leading Software Firms and Their
Development Specializations
Specialization Example Firms or Websites
IT Services Accenture
Computer Sciences Corporation (CSC)
IBM
HPE
Packaged Software Providers Intuit
Microsoft
Oracle
SAP AG
Symantec
Enterprise Software Solutions Oracle
SAP AG
Cloud Computing Amazon.com
Google
IBM
Microsoft
Salesforce.com
Open Solution SourceForge.net
Package Software Producers
package)
• Functionality (the tasks that the software can perform and the mandatory,
essential, and desired system features)
• Vendor Support (can vendor provide support and how much it can provide)
• Flexibility (the ease with which software is customized)
• Documentation (understandable and up-to-date user’s manual and technical
documentation)
17
Validating Purchased Software Information
18
Reuse
• Reuse – the use of previously written software resources, especially objects and
components, in new applications
• Reuse is commonly applied to two different development technologies:
• Object-oriented development
• Object class encapsulates data and behavior of common organizational
entities (e.g. employees)
• Component-based development
• Components can be as small as objects or as large as pieces of software
that handle single business functions
19
Reuse
20
Figure 2-4: Investments Necessary to Achieve
Reusable Components
(Source: Royce, Walker, Software Project Management: A Unified Framework, 1 st ed., ©1998. Reprinted and
Electronically reproduced by permission of Pearson Education, Inc. Upper Saddle River, New Jersey)
Three Basic Steps of Software Reuse
1. Abstraction
▹Involves design of reusable software
2. Storage
▹ Making software assets available for others to use
3. Recontextualization
▹Making the software understandable to developers
Grinter, 2001
Approaches to Reuse
23
Table 2-3: Four Approaches to Reuse
Approach Reuse Level Cost Policies and Procedures
Ad hoc None to low Low None
Facilitated Low Low Developers are encouraged to reuse but
are not required to do so
Managed Moderate Moderate Developers, sharing, and adoption of
reusable assets are mandated;
organizational policies are established for
documentation, packaging, and
certification
Designed High High Reuse is mandated; policies are put into
place so that reuse effectiveness can be
measured; code must be designed for
reuse during initial development,
regardless of the application it is originally
designed for; there may be a corporate
office for reuse
(Source: Based on Griss, 2003.)
Summary
25
Topic 3
Managing Information Systems Project
ISP550
INFORMATION SYSTEMS
ENGINEERING
1
Learning Objectives
2
Introduction
• Project Management (PM) is:
– the application of knowledge, skills, tools and techniques
to project activities to meet project requirements.
• arguably the most important aspect of an information
systems development project
• Effective PM helps to ensure that systems development
projects:
– Meet customer expectations
– Are completed on time and within budget
• Focus has changed to the implementation of packaged
software or ERP solutions
3
Why develop systems?
4
Reasons for Project Failures
5
Managing the Information Systems
Project
• Project manager – systems analyst with a diverse set of
skills—management, leadership, technical, conflict
management, and customer relationship—who is
responsible for initiating, planning, executing, and closing
down a project.
• Project – planned undertaking of related activities to reach
an objective that has a beginning and an end
• Deliverable – an end product of an SDLC phase
6
Figure 3-1: A Project Manager Juggles
Numerous Activities
7
Table 3-1: Common Activities and
Skills of a Project Manager
Activity Description Skill
Leadership Influencing the activities of others Communications; liaison between management, users, and
toward the attainment of a common developers; assigning activities; monitoring progress
goal through the use of intelligence,
personality, and abilities
Management Getting projects completed through Defining and sequencing activities; communicating
the effective utilization of resources expectations; assigning resources to activities; monitoring
outcomes
Customer Working closely with customers to Interpreting system requests and specifications; site
relations ensure that project deliverables preparation and user training; contact point for customers
meet expectations
Technical Designing and sequencing activities Interpreting system requests and specifications; defining
problem solving to attain project goals activities and their sequence; making trade-offs between
alternative solutions; designing solutions to problems
Conflict Managing conflict within a project Problem solving; smoothing out personality differences;
management team to assure that conflict is not compromising; goal setting
too high or too low
Team Managing the project team for Communication within and between teams; peer evaluations;
management effective team performance conflict resolution; team building; self-management
Risk and change Identifying, assessing, and Environmental scanning; risk and opportunity identification and
management managing the risks and day-to-day assessment; forecasting; resource redeployment
changes that occur during a project
8
Project Management
9
10
Initiating the Project
• Project initiation – first phase
of the project management
process in which activities are
performed to assess the size,
scope, and complexity of the
project and to establish
procedures to support later
project activities
11
12
14
Figure 3-3: Ten Project Planning
Activities
15
Figure 3-4: Gantt Chart Showing Project
Tasks, Duration Times for Those Tasks,
and Predecessors
16
Developing a Communication Plan
• Who are the stakeholders for this project?
• Who will collect, store, and verify the accuracy of the info?
17
Executing the Project
18
Figure 3-5: Five Project Execution
Activities
19
Figure 3.6 – The Project Life Cycle
(PLC) and the Systems Development
Life Cycle (SDLC)
20
Closing Down the Project
• Project closedown –
final phase of the
project management
process, which
focuses on bringing a
project to an end
21
Figure 3-7: Three Project Closedown
Activities
22
Using Project Management Software
https://mopinion.com/top-20-best-project-management-software-an-
overview/#:~:text=Project%20Management%20Software%20is%20software,documentation%20exchanged%
20throughout%20a%20project.
23
Figure 3-8: Establishing a Project
Starting Date in Microsoft Project
24
Figure 3-9: Entering Tasks and Assigning
Task Relationships in Microsoft Project
25
Figure 3-10: Viewing Project Information as
a Network Diagram in Microsoft Project
26
Figure 3-11: Gantt Chart Showing
Progress of Activities (Right Frame)
Versus Planned Activities (Left Frame)
27
Summary
ISP550
INFORMATION SYSTEMS
ENGINEERING
1
Learning Objectives
• Describe the project identification and selection process
• Describe the steps involved in the project initiation and planning process
• List and describe various methods for assessing project feasibility
• Describe the classes of Internet electronic commerce applications:
business-to-consumer, business-to-employee, and business-to-
business
2
Figure 3.6 – The Project Life Cycle (PLC) and
the Systems Development Life Cycle (SDLC)
Figure From
the previous
topic
3
Introduction
• Obtaining integrated, enterprise-wide computing presents
significant challenges for both corporate and information
system management
• The acquisition, development, and maintenance of
information systems consume resources for most
organizations
• This leads to the need to have a formal process for
identifying and selecting projects
4
5
6
Identifying and Selecting Projects (1 of 3)
7
8
Potential Benefits Extent to which the project is viewed as improving profits, customer
service, and so forth, and the duration of these benefits
Resource Availability Amount and type of resources the project requires and their
availability
Project Size/Duration Number of individuals and the length of time needed to complete
the project
Technical Difficulty/Risks Level of technical difficulty to successfully complete the project
within given time and resource constraints
11
(Sources: Left to right: Bram van Broekhoven/Shutterstock; Alexey Fursov/Shutterstock; Hacohob/Shutterstock; Syda
Productions/Shutterstock)
12
(Source: Based on Parker & Benson, 1988; Brynjolfsson & Yang, 1997; Keen, 2003; Cresswell, 2004)
20
22
23
Internet Basics
EC Business Models
• A broad range of business models include:
• Business-to-Business (B2B)
• Business-to-Consumer (B2C)
• Consumer-to-Consumer (C2C)
• Consumer-to-Business (C2B)
• Business-to-Government (B2G)
• Government-to-Business (G2B)
• Government-to-Citizen (G2C)
• Thing-to-Thing (T2T)
25
ISP550
INFORMATION SYSTEMS
ENGINEERING
1
Learning Objectives
• Define Requirements and Requirements Engineering
• Describe Requirements Engineering Activities
• Describe traditional and contemporary requirements elicitation
techniques
• Document workflows with activity diagram
• Describe the types of requirements
2
http://www.cvr-it.com/images/PM_Build_Swing.gif
In summary, there are many reasons for software project failures; however, poorly engineered requirements process
contributes immensely to the reason why software projects fail (Inam, 2015).
Definition of Requirements &
Requirements Engineering
Requirements:
A condition or capability needed by a user to solve a
problem or achieve an objective.
Requirements Engineering:
A systematic and disciplined approach to the
specification and management of requirements
Requirements Engineering Activities
• The activities used for Requirements Engineering vary
widely depending on the application domain, the
people involved and the organisation developing the
requirements.
• However, there are a number of generic activities
common to all processes
• Requirements elicitation;
• Requirements analysis;
• Requirements validation;
• Requirements management.
• In practice, RE is an iterative activity.
A Spiral View of the RE Process
Traditional Methods of Eliciting Requirements
Traditional Methods of Eliciting Requirements
• Individually interview people informed about the operation and
issues of the current system and future systems needs
• Interview groups of people with diverse needs to find synergies
and contrasts among system requirements
• Observe workers at selected times to see how data are handled
and what information people need to do their jobs
• Study business documents to discover reported issues, policies,
rules, and directions as well as concrete examples of the use of
data and information in the organization
• Distributing questionnaire
Contemporary Methods of Eliciting Requirements
• Functional Requirements:
• Defines functions of a software system or its
components. They may be calculations,
technical details, data manipulation and
processing and other specific functionality that
define “what a system is supposed to
accomplish?”
• They describe particular results of a system.
• Functional requirements are supported by Non-
functional requirements.
Types of Requirements (2/2)
• Non-Functional Requirements:
• They are requirements that specify criteria that can be used
to judge the operation of a system, rather than specific
behavior.
• Functional requirements define what the system is
supposed to do, whereas non-functional requirements
define how a system is supposed to be.
• Non-functional requirements can be divided into two main
categories:
• Execution qualities, such as security and usability, which
are observable at runtime.
• Evolution qualities, such as testability, maintainability
and scalability.
FURPS+ Requirements Acronym
Functional requirements
Usability requirements
Reliability requirements
Performance requirements
Security requirements
+ even more categories…
FURPS+ Requirements Acronym
Summary
29
Topic 6
Requirements Analysis & Modelling (I)
ISP550
INFORMATION SYSTEMS
ENGINEERING
Learning Objectives
• Explain why identifying use cases is the key to defining functional
requirements
• Describe the two techniques for identifying use cases
• Apply the user goal technique to identify use cases
• Apply the CRUD technique to validate and refine the list of use cases
• Describe the notation and purpose for the use case diagram
• Draw use case diagrams by actor and by subsystem
• Write fully developed use case descriptions
• Develop activity diagrams to model flow of activities
2
Overview
3
Overview
• A use case might have different flow of activities, depending
on the actor invoking the use case
• These flow of activities are called scenarios or use case
instances
• A use case description is a textual model that list and
describes the processing details for a use case
• Brief description
• Fully developed description
4
Use Cases
• Use case — an activity that the system performs,
usually in response to a request by a user
• It shows how a user uses the system
• Use cases define functional requirements
• Analysts decompose the system into a set of use
cases (functional decomposition)
• Two techniques for Identifying use cases
• User goal technique
• Event decomposition technique (not emphasised in this
class)
• Name each use case using Verb-Noun
5
User Goal Technique
• This technique is the most common in industry
• Simple and effective
• Identify all the potential categories of users of the
system
• Interview and ask them to describe the tasks the
computer can help them with
• Probe further to refine the tasks into specific user
goals, “I need to Ship items, Track a shipment, Create
a return”
6
User Goal Technique:
Specific Steps
1. Identify all the potential users for the new system
2. Classify the potential users in terms of their
functional role (e.g., shipping, marketing, sales)
3. Further classify potential users by organizational level
(e.g., operational, management, executive)
4. For each type of user, interview them to find a list of
specific goals they will have when using the new
system (current goals and innovative functions to add
value)
7
User Goal Technique
Specific Steps (continued)
5. Create a list of preliminary use cases organized by
type of user
6. Look for duplicates with similar use case names and
resolve inconsistencies
7. Identify where different types of users need the
same use cases
8. Review the completed list with each type of user
and then with interested stakeholders
8
Use Cases and CRUD Technique
• CRUD is Create, Read/Report, Update, and Delete
(archive)
• Often introduced in database context
• Technique to validate, refine or cross-check use
cases
• NOT for primarily identifying use cases
9
Use Cases and CRUD Technique
• For Customer domain class, verify that there are use
cases that create, read/report, update, and delete
(archive) the domain class
10
CRUD Technique Steps
1. Identify all the data entities or domain classes involved
in the new system.
2. For each type of data (data entity or domain class),
verify that a use case has been identified that creates a
new instance, updates existing instances, reads or
reports values of instances, and deletes (archives) an
instance.
3. If a needed use case has been overlooked, add a new
use case and then identify the stakeholders.
4. With integrated applications, make sure it is clear
which application is responsible for adding and
maintaining the data and which system merely uses
the data.
11
Use Cases and
Brief Use Case Descriptions
⚫ Brief use case description is often a one
sentence description showing the main steps in a
use case
⚫ Actor (who) + Verb + Noun
12
Use Case Diagrams
⚫ Use case diagram— a Unified Modeling Language
(UML) model used to graphically show uses cases and
their relationships to actors
⚫ Recall UML is Unified Modeling Language, the
standard for diagrams and terminology for developing
information systems
⚫ Actor is the UML name for a end user
⚫ Automation boundary— the boundary between the
computerized portion of the application and the users
who operate the application
13
Use Case Diagrams Symbols
14
Use Case
Diagrams
Draw for each
subsystem
15
Use Case
Diagrams
Draw for actor,
such as customer
16
Use Case Diagram
17
Use Case Diagrams
The <<Includes>> relationship
⚫ A relationship between use cases where one use case is
stereotypically included within the other use case— like a
called subroutine. Arrow points to subroutine
18
Use Case Diagrams: Steps
1. Identify all the stakeholders and users who would
benefit by seeing a use case diagram
2. Determine what each stakeholder or user needs to
review in a use case diagram: each subsystem, for
each type of user, for use cases that are of interest
3. For each potential communication need, select the use
cases and actors to show and draw the use case
diagram. There are many software packages that can
be used to draw use case diagrams
4. Carefully name each use case diagram and then note
how and when the diagram should be used to review
use cases with stakeholders and users
19
The Software Requirements Document
• The software requirements document is the official
statement of what is required of the system developers.
• Should include both a definition of user requirements and a
specification of the system requirements.
• It is NOT a design document. As far as possible, it should set
of WHAT the system should do rather than HOW it should do
it.
• Information in requirements document depends on type of
system and the approach to development used.
• Systems developed incrementally will, typically, have less
detail in the requirements document.
• Requirements documents standards have been designed e.g.
IEEE standard. These are mostly applicable to the
requirements for large systems engineering projects.
20
Requirements Specifications
• A Software Requirements Specification (SRS) – a
requirements specification for a software system –
is a complete description of the behavior of a
system to be developed.
• It includes a set of use cases that describe all the
interactions the users will have with the software.
• In addition to use cases, the SRS also contains non-
functional requirements (such as performance
requirements, quality standards, or design
constraints)
21
Requirements Specifications
• A Software Requirements Specification (SRS)
• The software requirement specification document enlists all necessary
requirements for project development. To derive the requirements, we
need to have clear and thorough understanding of the products to be
developed.
• A general organization of an SRS is as follows:
• Introduction
• Purpose, Scope, Definitions, System Overview, References
• Overall Description
• Product Perspective, Product functions, User characteristics, constraints,
assumptions and dependencies.
• Specific Requirements
• External Interface requirements, functional requirements, performance
requirements, design constraints, logical database requirement, software system
attributes.
22
Users of a Requirements Document
http://cnx.org/content/m14621/latest/graphics4.jpg
23
Use Case Descriptions
• Provide information about each use case, including actors,
stakeholders, preconditions, post conditions, the flow of activities
and exceptions conditions
• Activity diagrams can also be used to show the flow of activities for a
use case
• Brief description of use cases are shown below:
24
Use Case Descriptions
• Typical use case description templates include:
• Use case name
• Scenario (if needed)
• Triggering event
• Brief description
• Actors
• Related use cases (<<includes>>)
• Stakeholders
• Preconditions
• Post conditions
• Flow of activities
• Exception conditions
25
Fully Developed
Use Case
Description
Use case:
Create customer account
26
Fully Developed Use Case Description:
Precondition
• Preconditions
• What must be true before the use case begins
• What objects must exist, information must be available, condition of actor
27
Fully Developed Use Case Description: Post-
condition
• Post conditions
• What must be true after the use case
is completed
• What objects are created, updated;
how objects are associated
• Purpose:
• Use for planning test case expected
results
• Indicated what objects are important
during design
28
Fully Developed Use Case
Description: Flow of Activities
29
Fully Developed Use Case Description
Exception/Alternative Conditions
30
Use Case UML Activity Diagram
Create
Customer
Account
Note: this
shows flow of
activities only
Another way to
document a
use case
description 31
Use Case UML Activity Diagram
32
Summary
In this chapter, you learned to:
• Explain why identifying use cases is the key to defining
functional requirements
• Describe the two techniques for identifying use cases
• Apply the user goal technique to identify use cases
• Apply the CRUD technique to validate and refine the list of use
cases
• Describe the notation and purpose for the use case diagram
• Draw use case diagrams by actor and by subsystem
• Write fully developed use case descriptions
• Develop activity diagrams to model flow of activities
33
Topic 6
Requirements Analysis & Modelling (II)
ISP550
INFORMATION SYSTEMS
ENGINEERING
Learning Objectives
2
Things in the Problem Domain
• Problem domain—the specific area (or domain) of
the users’ business need that is within the scope of
the new system.
• “Things” are those items users work with when
accomplishing tasks that need to be remembered
• Examples of “Things” are products, sales,
shippers, customers, invoices, payments, etc.
• These “Things” are modeled as domain classes or
data entities
7
Partial List of
Nouns
With notes on
whether to include
as domain class
The Noun Technique: Steps
1.Using the use cases, actors, and other
information about the system— including inputs
and outputs—identify all nouns.
3.As this list of nouns builds, refine it. Ask these questions about each
noun to help you decide whether you should include it:
1. Is it a unique thing the system needs to know about?
2. Is it inside the scope of the system I am working on?
3. Does the system need to remember more than one of these items?
Ask these questions to decide to exclude it:
1. Is it really a synonym for some other thing I have identified?
2. Is it really just an output of the system produced from other information
I have identified?
3. Is it really just an input that results in recording some other information
I have identified?
Ask these questions to research it:
1. Is it likely to be a specific piece of information (attribute) about some
other thing I have identified?
2. Is it something I might need if assumptions change?
The Noun Technique: Steps
(continued)
⚫ Class Diagram
⚫ A UML diagram that shows classes with attributes
and associations (plus methods if it models software
classes)
⚫ Domain Model Class Diagram
⚫ A class diagram that only includes classes from the
problem domain, no methods
Domain Class Notation
⚫ Domain class has no methods
⚫ Class name is always capitalized
⚫ Attribute names are not capitalized and use camelback
notation (words run together and second word is
capitalized)
A Simple Domain Model Class Diagram
⚫ Each student has many grades and each grade is association with a section
Refined Course Enrollment Model
with an Association Class CourseEnrollment
⚫ Association class— an association that is treated as a class in a
many to many association because it has attributes that need to
be remembered, such as grade
23
More Complex Issues about Classes:
Generalization/Specialization Relationships
⚫ Generalization/Specialization
⚫ A hierarchical relationship where subordinate classes are
special types of the superior classes. Often called an
Inheritance Hierarchy
⚫ Superclass
⚫ the superior or more general class in a
generalization/specialization hierarchy
⚫ Subclass
⚫ the subordinate or more specialized class in a
generalization/specialization hierarchy
⚫ Inheritance
⚫ the concept that subclasses classes inherit characteristics of
the more general superclass
Generalization/Specialization
Inheritance
25
Generalization/Specialization
Inheritance for Three Types of Sales
⚫ A SavingsAccount
has 4 attributes
⚫ A CheckingAccount
Has 5 attributes
⚫ Note: the subclasses
inherit the
associations, too
System Sequence Diagram (SSD)
• An SSD is usually used together with use case
description/activity diagram
• Use case description/activity diagram identify the flow
of activities within a use case
• However, they do not explicitly identify inputs or
outputs
• This is provided by SSD
• Use case diagram shows how actor uses the system
• System sequence diagram shows how actor interacts
with system
• Enters input data
• Receive output data
28
System Sequence Diagram (SSD)
Shows interactions
between objects
Shows the
sequence of
messages
between an
external actor and
the system
29
SSD Notation
• Actor
• :System
• Lifeline
• Message
• Note
30
SSD Notation
Loop Frame
31
SSD Notation
Loop Alternate
32
SSD Notation
Opt Frame
33
SSD Notation
Alt Frame
34
Creating an SSD
35
Recall Use
Case
Description
Create
Customer
Account
36
Recall Activity
Diagram
Create
Customer
Account
37
Steps for Developing SSD
1. Identify input message
2. Describe the message from the external actor to the system
using the message notation
3. Identify any special conditions on input messages
4. Identify and add output return values
• On message itself: aValue:= getValue(valueID)
• As explicit return on separate dashed line
38
Identify Input Message 1
39
Describe the message 2
• Verb-noun: what the
system is asked to do
• createNewCustomer()
• enterAddress()
• enterCreditCard()
• Consider parameters
the system will need
• Name, phone, emails
• Address
• Credit card information
40
Identify Special Condition 3
• Iteration/loop frame
• Opt or Alt frame
41
Identify and Add 4
Output Return Values
• On message itself: aValue:= getValue(valueID)
42
43
Integrating requirements model
44
Integrating Requirements Models
45
Summary
In this chapter, you learned to:
•Explain how the concept of “things” in the problem domain also
defines requirements
•Identify and analyze data entities and domain classes needed in the
system
•Read, interpret, and create a domain model class diagram
•Develop system sequence diagrams
46
Summary
ISP550
INFORMATION SYSTEMS
ENGINEERING
Learning Objectives
2
Overview
• Analysis says “what” is required and design tells us
“how” the system will be configured and
constructed
• This topic introduces system design and the design
activities involved in systems development
• Design bridges the gap between requirements to
actual implementation
• Objective of design is to define, organize, and
structure the components of the final solution to
serve as a blue-print for construction
Two Levels of Design
• Architectural Design
• Broad design of the overall system structure
• Also called General Design and Conceptual Design
• Detailed Design
• Low level design that includes the design of the specific
program details
• Design of each use case
• Design of the database
• Design of user and system interfaces
• Design of controls and security
Figure 7.1: Analysis versus Design
Objectives
5
Figure 7.2: Analysis vs. Design Models
Figure 7.3: Design Activities
Design Activities and Key Question
Table 7.1: Key Questions of Design Activities
Design Activities:
Design the environment
• The environment is all of the
technology required to support the
software application
• Servers, Desktop computers
• Mobile devices, Operating systems
• Communication capabilities, Input and output
capabilities
Design the Environment
The design activity now in more detail
1. Design for Internal Deployment
a. Stand alone software systems
► Run on one device without networking
► Major issue: need to be deployed on various devices /
platforms
b. Internal network-based systems
► Local area network, client-server architecture
► Desktop applications and browser-based applications
c. Three-layer client server architecture
► View layer, domain layer, and data layer
► Desktop and browser-based applications
Design the Environment
(continued)
2. Design for External Deployment: related issues
A. Configuration for Internet deployment
► Advantages: accessibility, low-cost, widely-implemented
standards
► Risks: security, throughput, changing standards
B. Hosting Alternatives for Internet deployment
(http://www.exabytes.my)
► Colocation
► Managed services
► Virtual Servers
► Cloud computing (refer to Topic 2, slide#7)
C. Diversity of Client Devices with Internet deployment
► Full size, tablets and notebooks, smart phones
Hosting Alternatives for Internet Deployment
► Hosting:
► Running and maintaining a computer system on
someone’s behalf where the application software
and the database reside
► The process of providing physical servers at a secure
location and selling those services to other
businesses that wish to deploy Web sites
► Issues when considering hosting alternatives
► Reliability,security, physical facilities, staff,
potential for growth
Hosting Alternatives for Internet Deployment
(continued)
► Colocation
►a hosting service with a secure location but in which the
computers are usually owned by the client businesses
► Managed Services
► a client owns software but may want to purchase
additional services, such as installing and managing the
operating system, the Internet servers, database servers,
and load balancing software
► Virtual servers
► the client company leases a virtual server that is
configured as a real server, with a certain amount of CPU
capacity, internal memory, hard drive memory, and
bandwidth to the Internet
Hosting Alternatives for Internet Deployment
(continued)
► Cloud Computing
► an extension of virtual servers in which the resources
available include computing, storage, and Internet
access and they appear to have unlimited availability
► a client should be able to buy computing capacity much
like one purchases such a utility as water or electricity
► the client shouldn’t have to be concerned with such
environmental issues as how or where this computing
capacity is provided, just as an individual doesn’t have
to worry about how electricity is generated
► Service Level Agreement
► For all alternatives, part of the contract between a
business and a hosting company that guarantees a
specific level of system availability
Design Activities:
Design the application architecture and software
► Defining
the manner in which humans and
computers exchange inform
► Dialog design begins with requirements
► Use case flow of activities
► System sequence diagram
► Design adds in screen layout, look and feel,
navigation, user experience
► Now we require interface design for many
different environment and devices
► Smart phone
► Notebooks, tablets, iPads
Figure 7.5: Specification Outline for the
Design of Interfaces and Dialogues
Methods of Interacting
► Form
► Object-based
► Natural language
Command Language Interaction
► Command language interaction – human-computer
interaction method whereby users enter explicit
statements into a system to invoke operations
► Example from Linux command prompt:
$ cp file.doc newfile.doc
►Makes a copy of file.doc and names it newfile.doc
►The dollar sign is the command prompt from Linux, not
part of the command itself
Menu Interaction
► Menu interaction – human–computer interaction method
in which a list of system options is provided and a
specific command is invoked by user selection of a menu
option
► Menus can differ significantly in design and
complexity
► Larger systems might use menu hierarchies providing
navigation
► Variationin menu arrangement can greatly influence
system usability
Figure 7.6: Single-Level Menu for Selecting
Settings in the Chrome Web Browser
► Pop-up
menu – menu-positioning method that places a
menu near the current cursor position
► Also called a dialogue box
► Users don’t have to move their position or eyes to view
system options
► Drop-down menu – menu-positioning method that places
the access point of the menu near the top line of the
display; when accessed, menus open by dropping down
onto the display
Table 7.3: Guidelines for Menu Design
Wording • Each menu should have a meaningful title.
• Command verbs should clearly and specifically describe operations.
• Menu items should be displayed in mixed uppercase and lowercase letters
and have a clear, unambiguous interpretation.
Organization • A consistent organizing principle should be used that relates to the tasks the
intended users perform; for example, related options should be grouped
together, and the same option should have the same wording and codes
each time it appears.
Length • The number of menu choices should not exceed the length of the screen.
• Submenus should be used to break up exceedingly long menus.
Selection • Selection and entry methods should be consistent and reflect the size of the
application and sophistication of the users.
• How the user is to select each option and the consequences of each option
should be clear (e.g., whether another menu will appear).
Highlighting • Highlighting should be minimized and used only to convey selected options
(e.g., a check mark) or unavailable options (e.g., dimmed text).
Figure 7.8:Contrasting Menu Designs (a) Poor
Menu Design (b) Improved Menu Design
(a)
(b)
Form Interaction
► Form interaction – highly intuitive human-computer
interaction method whereby data fields are formatted in
a manner similar to paper-based forms
► Allows users to fill in the blanks when working with a
system
Figure 7.9: Example of Form Interaction from
the Google Advanced Search Engine
(a)
(b)
Designing Dialogues
ISP550
INFORMATION SYSTEMS
ENGINEERING
Learning Objectives
Provide an overview of the system implementation process
Describe how software applications are tested
Apply four installation strategies: direct, parallel, single-location, and
phased installation
List the deliverables for documenting the system and for training and
supporting users
Explain why system implementation sometimes fails
Describe the threats to system security and remedies that can be
applied
Show how traditional implementation issues apply to electronic
commerce applications
• Purpose:
– To convert final physical system specifications into
working and reliable software
– To document work that has been done
– To provide help for current and future users
1. Introduction
a. Description of system to be tested
b. Objectives of the test plan
c. Method of testing
d. Supporting documents
2. Overall Plan
a. Milestones, schedules, and locations
b. Test materials
i. Test plans
ii. Test cases
iii. Test scenarios
iv. Test log
3. Testing Requirements
a. Hardware
b. Software
c. Personnel
4. Procedure Control
a. Test initiation
b. Test execution
c. Test failure
d. Access/change control
e. Document control
(Source: From Lucas, H. C. (1997). Information technology for management. New York: McGraw-Hill. Reprinted by
permission.)
• Alpha Testing:
– PVF employees who actively participated received a t-
shirt and $100 to shop
– Development team conducted extensive recovery,
security, stress, and performance testing
• Beta Testing
– PVF recruited several of their established customers to
help in beta testing
ISP550
INFORMATION SYSTEMS
ENGINEERING
Learning Objectives
• Explain and contrast four types of maintenance
• Describe several factors that influence the cost of
maintaining an information system and apply these factors
to the design of maintainable systems; and
• Describe maintenance management issues, including
alternative organizational structures, quality measurement,
processes for handling change requests, and configuration
management