Transcript Slide 1

Introduction

Expensive HW.

Custom SW.

Batch execution

• •

Structured programming Product SW.

Data orientation

Expert systems

AI

distributed systems

parallel programming

1950 1960 1970 • Complex and large SW.

• SW crises.

1980 1990 2000

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.

What is software?

• Computer programs and associated documentation (e.g. requirements, design models and user manuals) and configuration files.

• Software products may be developed for a particular customer or may be developed for a general market.

– Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word.

– Bespoke (custom) - developed for a single customer according to their specification.

What is software engineering?

• Software engineering is an engineering discipline that is concerned with all aspects of software production.

• Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.

What is the difference between software engineering and computer science?

• Computer science is concerned with theory and fundamentals • Software engineering is concerned with the practicalities of developing and delivering useful software.

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

Organization

Output

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.

• Each level has: • Different organization structure.

• Leadership style.

• Technological considerations.

• Human interaction.

– All carry implications for the analysis and design of information systems.

Virtual Organizations

• A virtual organization has parts of the organization in different physical locations.

• Computer networks and communications technology are used to work on projects.

• Advantages – Reduced costs of physical facilities.

– More rapid response to customer needs

Enterprise Resource Planning

• Enterprise Resource Planning (ERP) describes an integrated organizational information system.

• The software helps the flow of information between the functional areas within the organization.

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 • Streamlining a process • Combining processes • Reducing errors in input • Reducing redundant storage • Reducing redundant output • Improving integration of systems • Improving workers satisfaction • Improving customer or vendor interactions with the system

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