260 likes | 334 Vues
This comprehensive guide explores the software engineering lifecycle, emphasizing analysis, design, development, and maintenance phases. Learn about methodologies, tools, and expert systems crucial for high-quality software products within budget and time constraints.
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.
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
Software Development Life cycle • Amount of resources consumed over the life cycle Minor maintenance Major maintenance
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
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).
Organizations as Systems • Interrelated subsystems • Product based • Service based Output input Organization Goals System environment
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
Managerial Control • The three levels of managerial control are: • Operations management. • Middle management. • Strategic management.
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 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: • Add on to present system • Technology available to meet users’ needs • Economic Feasibility • Cost of employees’ time • Estimated cost of hardware • Cost of packaged software/software development • Operational Feasibility • Whether the system will operate when installed • Whether the system will be used
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.
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.