Introduction
•Data orientation
•Expert systems
•AI
•Structured programming
•distributed systems
• Product SW.
•Expensive HW. •parallel programming
•Custom SW.
•Batch execution
1950 1960 1970 1980 1990 2000
• Complex and large SW.
• SW crises.
Introduction
• Software Engineering is concerned with
theories, methods and tools needed to
develop high quality software products in a
cost effective way.
• Cost effective:
– limited resources.
– Time schedule.
System Development Life Cycle
System Development Life Cycle
Software Development Life Cycle
• Maintenance is an ongoing process over
the system life
• 60% of the time is spent on maintenance
and 40% on the development
– Correct errors
– Add new features (business changes)
– Adapt to environment changes
• Cost of correcting errors increase as you
move in the life cycle
Amount of resources consumed over the life cycle
Categories
Information systems fall into one of the following
eight categories:
• Transaction processing systems (TPS).
• Office automation systems (OAS).
• Knowledge work systems (KWS).
• Management information systems (MIS).
• Decision support systems (DSS).
• Expert systems (ES) and Artificial Intelligence (AI).
• Group decision support systems (GDSS) and Computer-
Supported Collaborative Work Systems.
• Executive support systems (EES).
System Analysis and Design
• A systematic approach of:
– Identifying problems and opportunities
– Analyzing the flow of information in organization
– Design computerized system to solve the
problem
System Analyst
• A problem solver that requires
communication skills, management skills
and technical skills
• An agent of change
• Either:
– An outside consultant
– A supporting expert within the organization
System Analysis and Design
Methodologies
• Systematic approaches of performing
analysis and design
• Structured:
– Based on showing the flow of data in the
organization
• Object-Oriented:
– Describes the objects interacting in the
organization
Organizations as Systems
• Interrelated subsystems
– Product based
– Service based
input Output
Organization
Goals
System environment
Organizations
• Organizations are composed of
interrelated and interdependent
subsystems.
• System and subsystem boundaries and
environments impact on information
system analysis and design.
Organizations as Systems
• Organization Environment:
– Physical
– Economical
– Political (rules and regulations)
• Feedback from environment and inside the
organization to control and plan performance
• Organization Structure and Culture:
– Culture: how people interrelate
– Open organization: flow of information within organization
– Management levels
Open and Closed Systems
Systems are described as either
– Open
• Free-flowing information.
• Output from one system becomes input to another.
– Closed with restricted access to information
• Limited by numerous rules.
• Information on a need to know basis.
Managerial Control
• The three levels of managerial control are:
– Operations management.
– Middle management.
– Strategic management.
Project Initiation
Projects are initiated for two broad
reasons:
– Problems that lend themselves to systems
solutions.
– Opportunities for improvement through
• Upgrading systems.
• Altering systems.
• Installing new systems.
Identifying Problems
• Look for situations where the goals of the
organization has not been met
• Check the output against performance
criteria (e.g. errors and slow output)
• Observe behavior of employee (e.g.
absence, turnover)
• Listen to external feedback from
customers and vendors
Opportunities for improvement
• Speed up a process
• Duplicated steps
• Combining processes
• Reducing errors in input
• Reducing redundant output
• Improving integration of systems
• Improving workers satisfaction
• Improving customer or vendor interactions with the
system
Feasibility Study
• Done by the system analyst
• Done quickly with minimum resources
• Interview high management people
• Define the objectives of the project &
organization
• Output is feasibility report
• The decision whither to take the project is
management
Feasibility Study
• Helps the organization attain overall
objectives
• Is possible to accomplish with present
organizational resources in the following
three areas:
– Technical Feasibility:
– Economic Feasibility
– Operational Feasibility
Technical Feasibility
• Technical feasibility assesses whether the
current technical resources are sufficient
for the new system.
• If they are not available, can they be
upgraded to provide the level of
technology necessary for the new system.
Economic Feasibility
• Economic feasibility determines whether
the time and money are available to
develop the system.
• Includes the purchase of:
– New equipment.
– Hardware.
– Software.
Operational Feasibility
• Operational feasibility determines if the
human resources are available to operate
the system once it has been installed.
• Users that do not want a new system may
prevent it from becoming operationally
feasible.
Feasibility Impact Grid (FIG)
• A feasibility impact grid (FIG) is used to
assess the impact of any improvements to
the existing system.
– Current or proposed systems are listed on the
left.
– Objectives are listed on the top.
– Red arrows indicate a positive impact.
– Green arrows indicate implementation.
Computer-aided software
Engineering tools
• Software packages that support the software
development process
• Advantages:
– Improves quality and productivity
– Facilitate communication among team members
and users
– Provides continuity between life cycle phases
– Facilitate maintenance
• But, they should be carefully chosen and
staff should be properly trained.
Computer-aided software
Engineering tools
• May be divided into several categories:
– Upper CASE: perform analysis and design
– Lower CASE: generate computer source code
– Integrated CASE
• Other ways of classification
– Functional
– Breadth
Project Management
• Activities:
– Selection of team members
– Assignment of tasks to people
– Estimate task time
– Schedule project plan
– Writing system proposal
– Control by monitoring plan against activities
– Motivating Team members
Project Planning
• Project is broken down into phases.
• Further project is broken down into tasks or
activities.
• Finally project is broken down into steps or even
smaller units.
• Time is estimated for each task or activity.
• Most likely, pessimistic, and optimistic estimates
for time may be used.
Scheduling tools
• Gantt chart: Shows activities over a period of
time as bars on a graph
• PERT-Program Evaluation and Review
Technique
– PERT diagrams show precedence, activities that
must be completed before the next activities may be
started.
– Once a diagram is drawn it is possible to identify the
critical path, the longest path through the activities.
– Monitoring critical path will identify shortest time to
complete the project.
Gantt Chart Example
PERT Diagram Example