260 likes | 264 Views
This article provides an introduction to software engineering, including its definition, difference from computer science, and the system development life cycle. It also covers the categories of information systems, system analysis and design methodologies, and organizations as systems.
E N D
Introduction • Data orientation • Expert systems • AI • distributed systems • parallel programming • Complex and large SW. • SW crises. • Structured programming • Product SW. • Expensive HW. • Custom SW. • Batch execution 1950 1960 1970 1980 1990 2000
Introduction • Software Engineering is concerned with theories, methods and tools needed to develop high qualitysoftware 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.
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
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 Output input 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. • 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