©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
System Analysis and Design - · PDF fileIan Sommerville, Software Engineering, 9th Edition...
Transcript of System Analysis and Design - · PDF fileIan Sommerville, Software Engineering, 9th Edition...
Designed and Presented by
Dr. Ayman Elshenawy Elsefy
Dept. of Systems & Computer Eng..
Al-Azhar University
Website: eaymanelshenawy.wordpress.com
Email : [email protected]
System Analysis and Design
Ian Sommerville,
Software Engineering, 9th Edition
Pearson Education, Addison-Wesley
Modern Systems Analysis and Design, Third Edition Jeffrey A. Hoffer, Joey F. George, Joseph S. Valacich
System
1.3
an interrelated set of business procedures used within one business unit working together for a purpose.
System: Turns data into information and includes:
Hardware and system software
Documentation and training materials
Job roles associated with the system
Controls to prevent theft, The people who use the software
Characteristics of a System
A system has nine characteristics
Components, Interrelated Components
Boundary
Purpose
Environment
Interfaces
Constraints
Input
Output
1.4
1.5
Decomposition
The process of breaking down a system into smaller components
Allows the systems analyst to:
Break a system into small, manageable and understandable subsystems
Focus on one area at a time, without interference from other areas
Concentrate on one group of users without confusing users with unnecessary details
Build different components at independent .
1.6
Important System Concepts
Important System Concepts Modularity
Process of dividing a system into modules of a relatively uniform size
Coupling
Subsystems that are dependent upon each other are coupled
Systems Integration
Developers assemble systems by choosing and implementing specific modules.
an enterprise-wide system may handle all human resources management, payroll, benefits, and retirement functions within a single, integrated system.
organizations develop systems in-house anymore.
1.8
Information Systems Analysis and Design
A method used by companies to create and maintain
SW systems that perform basic business functions
(example, to improve employee efficiency by applying
software solutions to key business tasks)
The result is the application Software that is designed to support specific organizational functions or processes
1.7
Software engineering
Software engineering is concerned with theories,
methods and tools for professional software
development.
Concerned with all aspects of software production
from the early stages of system specification through
to maintaining the system after it has gone into use
10
Importance of Software engineering
Persons and society rely on advanced SW systems.
It is usually cheaper, in the long run, to use software
engineering for software systems rather than just write
the programs as if it was a personal programming
project.
Software Engineering Process
Used to create an information system, Consists of:
Methodologies: A sequence of step-by-step approaches that help develop the SW system
Techniques: Processes that the analyst follows to ensure thorough, complete and comprehensive analysis and design
Tools: Computer programs that aid in applying techniques
1.11
Three key components of an information system Data , Data Flows , Processing Logic
1.12
Data (raw facts)
Understand the source and use of data is key to good
system design
Various techniques are used to describe data and the
relationship amongst data
Data Flows
Groups of data that move and flow through the system
Include description of sources and destination for each data
flow
Processing Logic
steps that transform data and events that trigger the steps
Databases and Application Independence
Database
Shared collection of logically related data
Organized for storage and retrieval by multiple users
Centrally managed
Designed around subjects ( Customers, Suppliers)
Application Independence
Separation of data and definition of data from applications
1.13
Organizational Responsibilities in
Systems Development
1.14
Systems Analysts work in teams includes:
• IS Manager • Programmers • Users • Other specialist
Characteristics of Successful Teams
• Diversity of backgrounds • Tolerance of diversity • Clear and complete communication • Trust • Mutual Respect • Reward structure that promotes shared
responsibility
IS Manager
Involved in allocating resources to and overseeing system development projects.
Programmers
Convert specifications into instructions that the computer understands
Write documentation and testing programs
Business Managers
Have power to fund projects and allocate resources
Set general requirements and constraints for projects.
1.16
Systems Analyst Key individuals in the systems development process
performs analysis and design based upon:
• Understand organization’s objectives, structure and processes
• Know how to exploit information technology for advantage
Skills of a Successful Systems Analyst Analytical: Understanding of organizations, Problem solving
skills and System thinking
Technical : Understanding of potential and limitations of technology
Management: Ability to manage projects, resources, risk and change
Interpersonal : Effective written and oral communication
Copyright 2006 Prentice-
Hall, Inc.
Your Role in Systems Development
1.17
Other specialist
1.18
Database Administrator: Involved in design, development and maintenance of databases
Network and telecommunications experts: Develop systems involving data and/or voice communications
Human Factors Specialists: Involved in training users and writing documentation
Internal Auditors: Ensure that required controls are built into the system
Software Cost SW cost often larger than computer system .
SW Maintenance cost is several SW development
cost.
Nearly 60% of SW costs are development costs,
40% are testing costs.
Software products
19 Chapter 1 Introduction
Generic products
Stand-alone systems that are marketed and sold to any
customer (such as PC graphics programs, project
management tools; CAD software; ).
What the software should do is owned by the developer.
The decisions on software changes made by the developer
Customized products
Software that is specified by a specific customer to meet their
own needs such as embedded control systems, air traffic
control software, traffic monitoring systems.
What the software should do is owned by the customer.
The decisions on software changes are made by the
customer
Software process activities
Software specification: customers and engineers define the
software and the constraints on its operation
Software development: the software is designed and
programmed
Software validation: The software is checked to ensure that it
is what the customer requires
Software evolution: the software is modified to reflect
changing customer and market requirements
20 Chapter 1 Introduction
Application types
Stand-alone applications: Run on a local PC, include all
necessary functions, and no need for network connection.
Interactive transaction-based applications: Applications that
execute on a remote computer and are accessed by users from
their own PCs. (web applications such as e-commerce).
Embedded control systems: Control systems that control and
manage hardware devices.
Batch processing systems: Business systems designed to
process large numbers of individual inputs.
Entertainment systems: developed for personal use
Systems for modelling and simulation: Are developed by
scientists and engineers to model physical processes.
Data collection systems: collects data from their environment
using a set of sensors and send that data to other systems for
processing.
Types of Information Systems and Systems
Development
1.22
Transaction Processing Systems (TPS): Automate handling of data about business activities (transactions)
Management Information Systems (MIS): Converts raw data from transaction processing system into meaningful form
Decision Support Systems (DSS): Designed to help decision makers
Expert Systems (ES)
Replicates decision making process
Knowledge representation describes the way an expert would approach the problem
1.23
Software engineering ethics
Software engineering involves wider responsibilities than simply
the application of technical skills
Confidentiality: Engineers should respect the confidentiality of their employers or clients
Competence : Engineers should not misrepresent their level of competence.
Intellectual property rights: Engineers should be aware of
local laws governing the use of intellectual property such as
patents, copyright, etc.
Computer misuse: Software engineers should not use their
technical skills to misuse other people’s computers
24
Issues of professional responsibility
Confidentiality
Engineers should respect the confidentiality of their employers or clients
Competence
Engineers should not misrepresent their level of competence.
Intellectual property rights
Engineers should be aware of local laws governing the use
of intellectual property such as patents, copyright, etc.
Computer misuse
Software engineers should not use their technical skills to
misuse other people’s computers. 25 Chapter 1 Introduction
Systems Development Life Cycle
A standard set of steps,, to develop and support their
information systems.
A commercial product, such as a Nike sneaker or a Honda
car, follows a life cycle:
Ex. Honda car: created, tested, and introduced to the
market. Its sales increase, peak, and decline. Finally, the
product is removed from the market and is replaced by
something else.
Every organization uses a slightly different life-cycle model
to model these steps
1.26
Copyright 2006 Prentice-
Hall, Inc.
1.27
Phases of the SDLC
Systems Planning and Selection
Main Activities
Identification of need for enhancing the current system or for new system ( written plane of IS dept.), schedule for developing new system
A feasibility study is conducted to determine the economic and organizational impact of the system.
Investigation and determination of scope
Output:
The final presentation to the organization’s management of the plan for proceeding with the subsequent project phases is usually made by the project leader and other team members.
Phases of the SDLC
Systems Analysis the analyst studies the organization’s current procedures
and information systems used to perform tasks such as general
ledger, machine scheduling, and payroll.
Determine requirements : what the users want from a
proposed system a careful study of any current systems,
manual and computerized, that might be replaced or enhanced
as part of this project.
generate alternative initial designs to match the requirements
Compare alternatives and Recommend the best alternative
Output:
A description of the alternative solution recommended by the analysis team.
Phases of the SDLC-
System Design the recommended alternative solution into logical and then physical system specifications. input and output screens to reports, databases, and computer processes. Environment Independent ( HW and SW)
Logical Design: Concentrates on business aspects of the system
Physical Design
Technical specifications and the analyst team decides which programming languages , DBMS , HW , Operating system , Network environment
Output:
the physical system specifications presented in a form, such as a diagram or written report, ready to be turned over to programmers and other system builders for construction.
SDLC – Implementation and operation
Implementation
Coding: Write Programs the make up the system
Testing : Testing the program to find errors if exist.
Installation: Application is installed on the New HW
User is introduced to the system an trained on it
Documentation
users sometimes find problems with how it works and often think of improvements.
The amount of time and effort devoted to system enhancements during operation depends a great deal on the performance of the previous phases of SDLC.
Products of the SDLC
Alternative Approaches to Development
Prototyping
Building a scaled-down working version of the system
The analyst works with users to determine the basic
requirements for the system.
The analyst then quickly builds a prototype.
the users check it and tell the analyst what they like
and do not like about it.
The analyst uses this feedback to improve the
prototype and takes the new version back to the
users.
This iterative process continues until the users are
relatively satisfied with what they have seen.
Advantages: Users are involved in design
Alternative Approaches to Development Prototyping
Approaches to Development (continued)
Computer-Assisted Software Engineering (CASE) Tools
Automated software tools used by systems analysts to develop
information systems
Can be used throughout SDLC
Product and tool integration is provided through a repository
General types of CASE tools
• Diagramming tools
• Computer display and report generators
• Analysis tools
• Repository
• Documentation generators
• Code generators
1.35
Outsourcing
Practice of another organization developing and/or running a
computer application for your organization
Many types of working arrangements
Should be considered as one possible alternative to developing
a system
1.36
Sources of Software
What is done when a problem raised ?
When developing information systems to deal with such
problems, an organization and its systems analysts have
several options:
Go to Information Technology Services Firms, HP
Packaged Software Providers on shelf SW (Buy)
Implement Wide Enterprise Solutions Software SAP
Open-Source Software
Use In-House stuff for developing solution
Out sourcing system development and operations
1.37
Selecting Off-the-Shelf Software
Cost: comparing the cost of developing the same system in-house with the cost of purchasing or licensing the software package
Functionality: the tasks that the software can perform and the mandatory, essential, and desired system features
Vendor support: whether or how much support the vendor can provide and at what cost.
Viability of vendor: can the software adapt to changes in systems software and hardware
Flexibility: how easy it is to customize the software
Documentation: is the user’s manual and technical documentation
understandable and up-to-date
Response time: how long it takes the software package to respond to the user’s requests in an interactive session
Ease of installation: a measure of the difficulty of loading the software and making it operational
compatibility with currently used application software and HW. hardware and system software
Case studies A personal insulin pump
An embedded system in an insulin pump used by
diabetics to maintain blood glucose control
A mental health case patient management system
A system used to maintain records of people receiving
care for mental health problems
A wilderness weather station
A data collection system that collects data about
weather conditions in remote areas
39
Insulin pump control system
Collects data from a blood sugar sensor and
calculates the amount of insulin required to be injected
Calculation based on the rate of change of blood
sugar levels
Sends signals to a micro-pump to deliver the correct
dose of insulin
Safety-critical system as low blood sugars can lead to
brain malfunctioning, coma and death; high-blood
sugar levels have long-term consequences such as
eye and kidney damage
40
Insulin pump hardware architecture
41 Chapter 1 Introduction
A personal insulin pump An embedded system in an insulin pump used by
diabetics to maintain blood glucose control
Activity model of the insulin pump
42 Chapter 1 Introduction
Essential high-level requirements
The system shall be available to deliver insulin
when required.
The system shall perform reliably and deliver
the correct amount of insulin to counteract the
current level of blood sugar.
The system must therefore be designed and
implemented to ensure that the system always
meets these requirements.
43
A patient information system for mental health care
A patient information system to support mental health
care is a medical information system that maintains
information about patients suffering from mental health
problems and the treatments that they have received
Most mental health patients do not require dedicated
hospital treatment but need to attend specialist clinics
regularly where they can meet a doctor who has
detailed knowledge of their problems
To make it easier for patients to attend, these clinics
are not just run in hospitals. They may also be held in
local medical practices or community centres.
44
MHC-PMS (Mental Health Care-Patient Management System)
The MHC-PMS is an information system that is
developed for use in clinics
It makes use of a centralized database of patient
information but has also been designed to run on a
PC, so that it may be accessed and used from sites
that do not have secure network connectivity
When the local systems have secure network access,
they use patient information in the database but they
can download and use local copies of patient records
when they are disconnected
45
MHC-PMS goals
To generate management information that allows health service
managers to assess performance against local and government
targets.
To provide medical staff with timely information to support the
treatment of patients.
46 Chapter 1 Introduction
MHC-PMS key features
Individual care management : Clinicians can create
records for patients, edit the information in the system, view
patient history, etc. The system supports data summaries so
that doctors can quickly learn about the key problems and
treatments that have been prescribed.
Patient monitoring: The system monitors the records of
patients that are involved in treatment and issues warnings if
possible problems are detected
Administrative reporting: The system generates monthly
management reports showing the number of patients treated at
each clinic, the number of patients who have entered and left
the care system, number of patients sectioned, the drugs
prescribed and their costs, etc.
47
MHC-PMS concerns
Privacy
It is essential that patient information is confidential and is
never disclosed to anyone apart from authorised medical
staff and the patient themselves
Safety
Some mental illnesses cause patients to become suicidal or
a danger to other people. Wherever possible, the system
should warn medical staff about potentially suicidal or
dangerous patients.
The system must be available when needed otherwise
safety may be compromised and it may be impossible to
prescribe the correct medication to patients
48
Wilderness weather station
The government of a country with large areas of
wilderness decides to deploy several hundred weather
stations in remote areas.
Weather stations collect data from a set of instruments
that measure temperature and pressure, sunshine,
rainfall, wind speed and wind direction.
The weather station includes a number of instruments
that measure weather parameters such as the wind
speed and direction, the ground and air temperatures,.
Each of these instruments is controlled by a software
system that takes parameter readings periodically and
manages the data collected from the instruments.
49
The weather station’s environment
50 Chapter 1 Introduction
The weather station system: Is responsible for collecting
weather data, carrying out some initial data processing and
transmitting it to the data management system.
The data management and archiving system: collect the
data from all of the wilderness weather stations, process,
analyse and archives the data.
The station maintenance system: communicate by satellite
with all wilderness weather stations to monitor the health of
these systems and provide reports
Additional software functionality
Monitor the instruments, power and communication
hardware and report faults to the management
system.
Manage the system power, ensuring that batteries are
charged whenever the environmental conditions
permit but also that generators are shut down in
potentially damaging weather conditions, such as high
wind.
Support dynamic reconfiguration where parts of the
software are replaced with new versions and where
backup instruments are switched into the system in
the event of system failure.
51
Questions 1. What is the information systems analysis and design?
2. What is meant by the system, list the main characteristics of the system?
3. What is meant by methodology , Tools , Techniques?
4. What is decomposition? Coupling? Cohesion?
5. In what way are organizations systems?
6. Describe the major Types of Information systems?
7. What is meant by outsourcing? And what are the main sources of software?
8. What is the main role of the analyst? And what are the skills that must be achieved in the system analysis?
9. List and explain the different phases in the systems development life cycle.
10.What is prototyping?
11.What are CASE tools? What is a CASE repository and how is it used?
52
Questions
12.How can you decide among various off-the shelf software options? What criteria should you use?
13.Explain why professional software is not just the programs that are developed for a customer.
14.What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products?
15.What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant.
16. Apart from the challenges of heterogeneity, business and social change, and trust and security, identify other problems and challenges that software engineering is likely to face in the 21st century (Hint: think about the
environment). 53