Ch01 Introduction

53
Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, 3 rd Edition Alan Dennis, Barbara Wixom, and David Tegarden © 2010 John Wiley & Sons, Inc. Course Website: www.elearningyuc.edu.sa/login/index.php Instructor: Mousa I. Sweidan 1

Transcript of Ch01 Introduction

Page 1: Ch01 Introduction

Systems Analysis and Design With UML 2.0

An Object-Oriented Approach, 3rd

Edition

Alan Dennis, Barbara Wixom, and David Tegarden

© 2010John Wiley & Sons, Inc.

Course Website:

www.elearningyuc.edu.sa/login/index.php

Instructor:

Mousa I. Sweidan

1

Page 2: Ch01 Introduction

Text Books• TEXTBOOK:

– Dennis A., Wixom B. H., Tegarden D., System Analysis and Design with UML Version 3.0, ISBN: 9780471348061 , 3rd Edition, John Wiley &Sons, Inc., 2010.

• Reference Book(s):– Grady Booch, James Rumbaugh, Ivar Jacobson. The unified modeling

language user guide, Addison-Wesley, 2005– Dan Pilone, UML2.0 in a Nutshell, A desktop reference guide, O’Reilly,

200– Bernd Bruegge, Allen H. Dutoit, Object-Oriented Software

Engineering – Using UML, , 2nd edition, Prentice Hall, 2004

2

Page 3: Ch01 Introduction

Course Description

• This course is about the development of computerized business system using CASE tools, 4GL and application generators, project management techniques.

• The Lab work is designed to develop and implement Real Business Systems through lab projects.

3

Page 4: Ch01 Introduction

Marks distribution

• The course grade will be evaluated as follows:– Quizzes 10% – Assignments 10%– Labs 10% – Project 10% – Major1 Exam 15% – Major2 Exam 15% – Final Exam 30%

4

Page 5: Ch01 Introduction

LAB

• Laboratory Requirement(s):

– PC with MS Windows installed– IBM Rational Rose Software V7.0– Visual paradigm for UML community– Software Ideas Modeler (

http://www.softwareideas.net/)

5

Page 6: Ch01 Introduction

ATTENDANCE

• Excellent attendance is expected.

• If you miss class, it is your responsibility to find out about any announcements or assignments you may have missed (always return to our websites).

6

Page 7: Ch01 Introduction

EXAMS

• The format for the exams is generally (but NOT always) as follows: Multiple-choice, Analysis, and Understanding the Course Concepts.

• The cell phones should be turned off during the examination.

• Grades will not be given out via e-mail.

7

Page 8: Ch01 Introduction

INTRODUCTIONChapter 1

Slide 8

Page 9: Ch01 Introduction

Key Ideas

• Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization (how the system works).

• The Reason:– Implement without plan.

Slide 9

Page 10: Ch01 Introduction

Key Ideas

• The systems analyst is a key person analyzing the business, identifying opportunities for improvement, and designing information systems to implement these ideas.

• It is important to remember that the primary objective of the systems analysis is not to create a wonderful system. The primary goal is to create value for the organization (e.g. increasing profits)

Slide 10

Page 11: Ch01 Introduction

THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)

Slide 11

Page 12: Ch01 Introduction

SDLC

• Building System Information System is similar to building a house;1. Start with basic idea.2. Idea is transformed into a simple drawing.3. A set of blueprint is designed that presents much

more detailed information about the house.4. The house is built following the blueprints.

Slide 12

Page 13: Ch01 Introduction

Slide 13

Page 14: Ch01 Introduction

SDLC Phases

1. Planning– Why build the system?

2. Analysis– Who, what, when, where will the system be?

3. Design– How will the system work?

4. Implementation– System delivery.

Slide 14

Page 15: Ch01 Introduction

1. Planning• Why an information system should be built?• It Has two steps:

1. During project initiation: • Identifying business value (e.g. How will it costs or increase

revenues)• System Request (a brief summery of a business need)• Analyze feasibility – 3 aspects

– The technical feasibility (Can we build it?)– The economic feasibility (Will it provide business value?)– The organizational feasibility (If we build it, will it be used?)

2.Once the project approved (by approval Committee)• Develop workplan.• Staff the project.• Puts techniques in place to help the project team Control and direct

project through the entire SDLC. Slide 15

Page 16: Ch01 Introduction

2. Analysis• The analysis phase answer the questions:

– Who will use the system?– What the system do?– Where and when it will be used?• During this phase project team Investigates any current system(s), identifies

improvement opportunities, and develops a concept for the new system. it has 3 steps:

1. Analysis – Analysis of the current system, identifies the problem and move From as-is system

to to-be system (i.e. the new system) 2. Information gathering (requirement gathering)

– Through interview or questionnaires– The analysis of this information lead to the development of a concept for a new

system.– System concept used as a basis to develop a set of business Analysis Models that

describes how the business will operate if the new system were developed.3. The Analysis, System Concept, and Models are combined into a document called the

System Proposal (describes what business requirement the new system should meet)– System Proposal Presented to project sponsor and the decision makers that decide

whether the project should continue to move forward.Slide 16

Page 17: Ch01 Introduction

3. Design• How the system will operate. in the terms of:

– Hardware– Software– Network infrastructure– User interface– Specific programs – databases

• It has 4 Steps:1. The design strategy

• Whether the system will be developed by the company own programmers. • Whether the system will be Outsourced to another firm.

2. Architecture design• Development the basic architecture design for the system that describes the Hardware,

software, and network infrastructure that will be used.3. Database

• Define exactly what data will be store and where they will be stored.4. Program design

• Defines The programs that need to be written and exactly what each program will do. Slide 17

Page 18: Ch01 Introduction

4. Implementation• Architecture design, database, and program design is a system specification that

handed to the programming team for implementation.• During which The system is actually build.• It has 3 steps:

1. System Construction: • the system is built and tested to ensure it performs as designed. • Testing is most critical steps in implementation, why?• Most organization spend more time and attention on testing than on writing programs

2. Installation• Is the process by which the old system is turned off and the new one is turned on• Include:• Cutover approach : new system immediately replaces the old system.• Parallel conversion approach: both system work together, until it is clear that there are not

bugs in the new system.• Phased conversion strategy: new system installed in one part of organization as an initial trial

3. Support plan• Includes Formal or informal post-implementation review• Major and minor changes needed for the systems Slide 18

Page 19: Ch01 Introduction

Processes and Deliverables

Slide 19

Process Product

Planning

Analysis

Design

Implementation

Project Plan

System Proposal

System Specification

New System and Maintenance

Plan

Page 20: Ch01 Introduction

SYSTEM DEVELOPMENT Methodologies

Slide 20

Page 21: Ch01 Introduction

What Is a Methodology?

• A formalized approach or series of steps to implementing the SDLC.

• There are many different system development methodologies, and each one is unique based on the order (i.e. Sequence) and focus (i.e. amount of time) it places on each SDLC phase.

• Writing code without a well-thought-out system request (i.e. very simple planning phase) may work for small programs, but rarely works for large ones.

Slide 21

Page 22: Ch01 Introduction

1. Structured Design

• Projects move methodically from one to the next step (phase).

• Generally, a step is finished before the next one begins.

Slide 22

Page 23: Ch01 Introduction

1.1 Waterfall Development Method

• The analysts and users proceed in sequence from one phase to the next

• Deliverables for each phase are typically very long and are presented to the project sponsor for approval as the project moves from phase to next phase.

• Once the sponsor approves the work that was conducted for a phase, the phase ends and the next one begins.

Slide 23

Page 24: Ch01 Introduction

1.1 Waterfall Development Method

Slide 24

Page 25: Ch01 Introduction

Advantages of Waterfall Method

• Identifies system requirements long before programming begins.

• Minimizes changes to the requirements as the project proceeds.

Slide 25

Page 26: Ch01 Introduction

Disadvantages of Waterfall Method

• Design must be completely specified before programming begins and that a long time elapses between the completion of the system proposal in the analysis phase and the delivery of the system (months or years).

• The waterfall model postpones testing until the end of the lifecycle.

• This creates high risk:– We don't find out that the system is failing until the bulk

of the development has been carried out.

Slide 26

Page 27: Ch01 Introduction

1.2 Parallel Development• Solve the problem of long delays between the analysis phase and the

delivery of the system in of Waterfall Method.

• Instead of doing design and implementation in sequence. • Divide the project into a series of distinct subprojects that can be

designed and implemented in parallel.• Once all subprojects are complete, the pieces (i.e. subprojects) integrated

and the system is delivered.

Slide 27

Page 28: Ch01 Introduction

Parallel Development

Slide 28

Page 29: Ch01 Introduction

Advantages and Disadvantages

• The Advantage– Reduce schedule time to deliver a system.

• Disadvantages– Sometimes the subprojects are not completely

independent; design decision made in one subproject may affect another.

Slide 29

Page 30: Ch01 Introduction

2. Rapid Application Development (RAD)

• Address the weakness of structured design methodologies by adjustment the SDLC phase to get some part of the system developed quickly and into the hand of the users.

• In this way, the users can better understand the system and suggest revisions that bring the system closer to what is need.

Slide 30

Page 31: Ch01 Introduction

Rapid Application Development

Slide 31

• Analysis use special techniques and computer tools to speed up the analysis, design, and implementation phase. such as:

• CASE tools (computer-aided software engineering)– A software that automates all or part of the development process

(used during the analysis phase to create a diagrams of the system).

• JAD (Joint Application Design) Sessions (IBM, 1970s)– Is an information gathering technique that allows the project team,

users, and management to work together to identify requirements for the system.

• Fourth generation/visualization programming languages (e.g. Visual Basic)• Code generators.

Page 32: Ch01 Introduction

Rapid Application Development Categories

Slide 32

1. Phased development– A series of Versions

2. Prototyping– System Prototyping

Page 33: Ch01 Introduction

2.1 Phased development

• Breaks the overall system into a series of versions that are developed sequentially

• Advantages– Quickly getting a useful system into the hands of the users.– While the system does not perform all the functions the users need at first, It

does begin to provide business value sooner than if the system were delivered after completion

• Drawback – Users begin to work with system that are intentionally incomplete.

• Important and useful features most included in the first version.

Slide 33

Page 34: Ch01 Introduction

Phased development

Slide 34

PlanningPlanning

AnalysisAnalysis

ImplementationImplementation

DesignDesign

AnalysisAnalysis

System Version1System Version1ImplementationImplementation

DesignDesign

AnalysisAnalysis

System Version2System Version2

ImplementationImplementation

DesignDesign

AnalysisAnalysis

System Version3System Version3

Page 35: Ch01 Introduction

2.2 Prototyping• Performs the analysis, design, and implementation phase concurrently,

and all three phase are performed repeatedly in a cycle until the system is completed.

• The basic of the analysis and design are performed, and work immediately begins on a system prototype,

• The first prototype is usually the first part of the system that the user will use. Prototype 1 shown to the users and project sponsor who provide comments, which are used to re-analyze, re-design, and re-implement a second prototype that provides a few more features.

• This process continues in a cycle until the analysts users, and sponsor agree that the prototype provides enough functionality to be installed and used in the organization.

• Final Prototype called the System.Slide 35

Page 36: Ch01 Introduction

How Prototyping Works

Slide 36

Page 37: Ch01 Introduction

Cont...

• Advantage :– Very quickly provides a system for the users to interact

with.– Reassures the users that the project team is working on

the system.

Slide 37

Page 38: Ch01 Introduction

3. Agile Development

• Streamlining the SDLC by eliminating much of the modeling and documentation overhead. And the time spent on those tasks.

• Example of agile development methodologies:– Extreme Programming (XP)– Dynamic System Development Method(DSDM).

Slide 38

Page 39: Ch01 Introduction

Extreme Programming• 3 Core Values provide a foundation on which XP developers use to create any

system:– Communication

• Developer must provide rapid feedback to the end users on continuous basis.

– Simplicity• XP requires developers to follow the KISS (Keep It Simple) principle

– Feedback• Developers must make incremental changes to grow the system.

• 3 key principles that XP Developers uses to create successful system:– Continuous Testing - develop automated test cases in advance of coding– Simple Coding performed by pairs of developer (pairs programming - code

review)– Close interaction with end users to build system very quickly

Slide 39

Page 40: Ch01 Introduction

Extreme Programming• XP should work just fine for small projects.

• If the project is not small then the success of an XP development effort is doubtful.

• XP requires a great deal of discipline, otherwise projects will become unfocused and chaotic.

• It is only recommended for small groups of developers – no more than ten developers.

• Only code documentation associated with XP.

Slide 40

Page 41: Ch01 Introduction

Selecting the Appropriate Methodology

• Clarity of User Requirements– Prototyping- based RAD methodologies are more appropriate when

user requirement are unclear because they provide prototype for users.

• Familiarity with Technology– If the system is designed without some familiarity with the best

technology, risks increase because the tools might not be capable of doing what is needed

– Phase method are good, because they create opportunities to investigate technology in some depth before the design is complete.

• System Complexity

Slide 41

Page 42: Ch01 Introduction

Cont..• System Reliability

– E.g. medical equipment, missile control system• Short Time Schedules

– Project that have short time schedules are well suited for RAD-Based methodologies.

– Prototyping and phase development-based methodologies are excellent choice when timelines are short because they best enable the project team to adjust the functionality in the system based on a specific delivery date.

• Schedule Visibility– Determining whether a project is on schedule.– RAD-Based Methodologies move many of the critical design decisions

earlier in the project to help project managers recognize and address risk factors and keep expectations in check

Slide 42

Page 43: Ch01 Introduction

Criteria for Selecting a Methodology

Slide 43

Page 44: Ch01 Introduction

SDLC Summary

Slide 44

SDLC

Page 45: Ch01 Introduction

Project Team Roles and Skills

Slide 45

Page 46: Ch01 Introduction

Project Team Skills• Project team need a variety of skills, These skills can be broken into six

major category:

1. Technical• Analysis must have the technical skills to understand the

organization’s existing technical environment.

2. Business • Business skills are required to understand how IT (information

technology) can be applied to business situations and ensure that the IT delivers real business value.

3. Analytical• Problem solver at both the project and the organizational levelSlide 46

Page 47: Ch01 Introduction

Project Team Skills4. Interpersonal

• Analysts need to communicate effectively One-On-One with users and business managers and with programmers.

5. Management• Analysis need to manage people with whom they work and they

need to manage the pressure and risks associated with unclear situations.

6. Ethical• Analysis must deal fairly, honestly, and ethically with other project

team members, managers, and system users.

Slide 47

Page 48: Ch01 Introduction

Information Systems Roles

• Business analyst• System analyst• Infrastructure analyst• Change management analyst• Project manager

Slide 48

Page 49: Ch01 Introduction

Project Team Roles1. Business Analysis (focuses on the Business issues):

– Identifying the business value that the system will create.– Developing ideas and suggestions for how the business processes can be

improved .2. System Analyst (focuses on the Information System):

– This person develops ideas and suggestions for how information technology can improve business processes, design the new business processes.

3. Infrastructure Analysis:– The role of this person is ensuring that the new information system confirms

to organizational standards4. Change Management Analysis:

– The role of this person include ensuring that the adequate documentation and support are available to users.

– Providing user training on the new system.– Developing strategies to overcome resistance to change.

Slide 49

Page 50: Ch01 Introduction

Project Team Roles cont..

5. Project Manager: – Responsible for ensuring that the project is completed on time and within

budget and the system delivers all benefits what were intended by the project sponsor.

– Manage team members.– Developing project plan. – Assigning resources.

Slide 50

Page 51: Ch01 Introduction

Summary -- Part 1

• The Systems Development Lifecycle consists of four stages: Planning, Analysis, Design, and Implementation

• The major development methodologies: – Structured design

• the waterfall method• Parallel development

– RAD development• Prototyping (regular and throwaway)

– Agile development• XP streamline SDLC

Slide 51

Page 52: Ch01 Introduction

Summary -- Part 2

• There are five major team roles: business analyst, systems analyst, infrastructure analyst, change management analyst and project manager.

Slide 52

Page 53: Ch01 Introduction

Where Is The Money Spent For Software?

Slide 53

0

10

20

30

40

50

60

70

Requirements Design Programming Testing Maintenance

The Majority The Majority Of Cost Is In Of Cost Is In MaintenanceMaintenance