Вы находитесь на странице: 1из 59

STID 3023

SYSTEMS ANALYSIS AND DESIGN

Systems Development Overview Week 1

Lecture Outline
Definition

of Systems Analysis & Design Revise Structured Approach Revise Object Oriented Approach Discuss Systems Development Methodologies

What Is the major goal of Systems Analysis and Design (SAD)?


to

improve organizational systems, typically by developing application software/system that can help employees accomplish key business tasks easily and efficiently

What is a system?

An integrated set of interoperable elements, each with explicitly specified and bounded capabilities, working synergistically to perform value-added processing to enable a user to satisfy missionoriented operational needs in a prescribed operating environment with a specified outcome and probability of success. The term system originates from the Greek term syst ema, which means to place together. System is designed to support a specific organizational function or process (inventory management, payroll, etc)

What is System Analysis and Design?

System development can generally be thought of having two major components: systems analysis and systems design. Analysis specifies what the system should do. Design states how to accomplish the objective.

Definition: Analysis
Meaning (Greek word) to break down into component

parts. It is the process of coming to understand fully the problem that is trying to solve. Analysis activity is characterized as asking: What happens in current system? What is required in the new system? It is a process of seeking to: Understand the organization Investigating its requirement, and Modeling them. Result : A specification of what the proposed system will do based on requirements (requirement specification).

Definition: Design

Design activity is concerned with specifying: How the new system will meet the requirements? It is a process of : Producing a solution that meets the requirements that have been analyzed. Jacobson et. al (1992) regards: design as a part of construction process (together with implementation)

Analysis and design can be viewed as follows:


Description of the Problem Description of the Solution

Analysis

Design

Role of Systems Analyst

Role of Systems Analyst

Definition: Systems Analysis

Process of defining a problem gathering the requirements developing an analysis model representing those requirements Describing the problem the system is meant to solve Goal: To state accurately the users requirements for a new information processing system

Definition: Systems Design


Process by which the analysis model is transformed into a model which is capable of being implemented Describing the solution to the problem Goals: Satisfaction of requirements Provide effective function Performance Specify the acceptable level of performance Constructability Feasible to construct the new system/artifact Efficient design process Maximizing the efficiency of the process

The Purpose of Analysis and Design


Add formality Improve communication between participants Get the requirements right! Reduce errors The cost of fixing analysis and design errors as one moves from the analysis phase to the maintenance phase can increase by a factor of 100 Generate documentation and get approval from end-user.
outline

Cost of Analysis/Design Errors

Source of Errors

Source: Pressman Specification/requirements/design Back

Structured approach

Popularized in 1980s Based on: DFD (data flow diagrams) for process modeling ERD (entity relationship diagrams) for data modeling Process-centric Brakes system down to manageable units in the activity called functional decomposition Not well aligned with modern software engineering outline

DFD (example)

Back

ERD (example)

Back

Object-oriented approach

Popular since 1990s

Data-centric it evolves around class models

But the growing significance of use cases in UML shifts the emphasis slightly from data to processes

Matches the event-driven programming demanded by interactive GUI-based applications

Addresses the needs of emerging applications, such as workgroup computing and multimedia systems

Object-oriented approach cont.

Good at fighting application backlogs using object wrapping and similar techniques Aligns with the iterative and incremental process Views information systems as collections of interacting objects that work together to accomplish tasks Objects - a thing in the computer system that can respond to messages

Object-Oriented Analysis & Design

Object-oriented analysis Defines all types of objects that do the work of the system Shows how objects interact Object-oriented design Defines all additional object types needed to communicate with people and devices in the system Refines each type of object for implementation in a specific language and environment

What Is Object-Orientation?

The main concepts are: Objects, Classes and Instances Object State Generalization and Specialization Message-passing and Encapsulation Inheritance and Polymorphism

Advantages of O-O

Can save effort Reuse of generalized components cuts work, cost and time Can improve software quality Encapsulation increases modularity Sub-systems less coupled to each other Better translations between analysis and design models and working code

The Difference in Philosophy


THE WAY WE THINK ABOUT PROBLEMS

OO approach Model the world as it is Simulation based modelling

Structured approach Model the world as a set of functions Solution based modelling

The Difference in Philosophy


THE WAY WE SUB-DIVIDE THE PROBLEM

OO approach based on: - encapsulation - information hiding - abstraction

Structured approach
Can only achieve encapsulation and information hiding through discipline

The Difference in Philosophy


THE RELATIONSHIP BETWEEN ANALYSIS AND DESIGN

OO approach Phases are related by refinement Classes has-a is-a

Refinement

Classes has-a is-a

The Difference in Philosophy


THE RELATIONSHIP BETWEEN ANALYSIS AND DESIGN

Structured approach Phases are related by transformation Transformation DFDs

Structure Charts

The Difference in Application


OO Approach
identify Use-cases identify classes, attributes, operations and relationships identify behaviour refine analysis model to a design model by: - identification of abstract classes - consideration of detailed user requirements - consideration of the user interface - identification of data managers

The Difference in Application


Structured Approach
identify an overall process identify external entities
build a hierarchy of DFDs transform DFDs to structure charts

outline

System Development Methodology

Framework that is used to structure, plan, and control the process of developing an information system. The framework of a system development methodology consists of: A software development philosophy, with the approach or approaches of the software development process Multiple tools, models, techniques and methods, to assist in the software development process. The methodology is often documented in some next kind of formal documentation.

Model

is a representation of some important aspect of the real world. Graphical models : drawn representations that uses agreed-upon symbols and conventions Consists of diagrams or charts Example : Use case diagram, class diagram, DFD, ERD etc.

back

Techniques

is a collection of guidelines that help an analyst complete a system development activity. Includes step-by-step instructions for creating a model or might include more general advice for collecting information from users. Provides support for wide range of task. Example : UML, Data modeling techniques, software-testing techniques, user-interviewing techniques etc.

back

Tools

is software support that helps create models or other components required in the project. Might include a database application that stores information about the project. That make it easy to use specific technique. Example : Computer-aided system engineering (CASE) tool, Rational Rose 2000 etc.

back

Why use a methodology?

Help to produce better quality product documentation standards, acceptability to the user, maintainability and consistency of software Help to ensure that user requirements are met completely Help project manager by giving better control of the project execution and a reduction in overall debt costs Promote communication between stakeholders encourage understanding of the system throughout organization through standardization of process and documentation.

System Development Methodology


Structured programming since 1969 Jackson Structured Programming since 1975 80s Structured Systems Analysis and Design Methodology (SSADM) from 1980 onwards Structured Analysis and Design Technique (SADT) from 1980 onward Information Engineering (IE/IEM) since 1981 Object-oriented programming (OOP) has been developed since the early 1960s, and developed as the dominant programming methodology during the mid-1990s. Rapid application development (RAD) since 1991. Virtual finite state machine (VFSM) since 1990s Dynamic Systems Development Method developed in the UK since 1995. Scrum (development), since the late 1990s

System Development Methodology cont.


New millennium Extreme Programming since 1999 Enterprise Unified Process (EUP) an RUP extension since 2002 Rational Unified Process (RUP) since 2003. Constructionist design methodology (CDM) since 2004 Agile Unified Process (AUP) since 2005

Systems Development Approaches

Every software development methodology has more or less it's own approach to software development. There is a set of more general approaches, which are developed into several specific methodologies. These approaches are: Waterfall: linear framework type Prototyping: iterative framework type Incremental : combination of linear and iterative framework type Spiral : combination linear and iterative framework type Rapid Application Development (RAD) : Iterative Framework Type

Systems Development Approaches

Other approaches: Object oriented development methodologies, such as Grady Booch's Object-oriented design (ODD), also known as object-oriented analysis and design (OOAD). The Booch model includes six diagrams: class, object, state transition, interaction, module, and process. Top-down programming: evolved in the 1970s by IBM researcher Harlan Mills (and Niklaus Wirth) in developed structured programming. Unified Process (UP) is an iterative software development methodology approach, based on UML. One of the more popular versions of UP is the Rational Unified Process (RUP).

outline

Waterfall Development Methodology

The original structured design methodology

Waterfall Development Methodology

Pros Identifies systems requirements long before programming begins

Cons Design must be specified on paper before programming begins Long time between system proposal and delivery of new system

back

Rapid Application Development (RAD)


Emerged in 1990s Adjusting SDLC phases to get some part of the system developed quickly and into the hands of user Improve speed and quality of system development Combination of the changed SDLC phases and the use of special tools and techniques.

Rapid Application Development (RAD)

RAD is a process that speeds the delivery of functionality to end-users by segmenting software into pieces for delivery rather than delivering all of the software functionality in one large implementation. It is an iterative process utilizing a spiral model The goal of the iterative approach is to reduce the time between requests and delivery of software.

Rapid Application Development (RAD)

Use special techniques and computer tools CASE (Computer-Aided Software Engineering) tools JAD (Joint Application Design) sessions : JAD is used as a technique for gathering business software requirements. Purpose of JAD is to bring together the technical/creative team and the business community in a structured workshop setting to extract consensus based software requirements. Fourth generation/visualization programming languages (e.g.,Visual Basic) Code generators automatically produce programs from design specification
back

Prototyping

is the process of building a working replica of a system by performing analysis, design and implementation phases concurrently & repeatedly. Perform analysis, design and implementation phases concurrently and repeatedly until the system is completed. When to use Prototyping? May be used with the waterfall; it can be useful to demonstrate technical feasibility when the technical risk is high. It can also be used to better understand and extract user requirements. the goal is to limit cost by understanding the problem before committing more resources.

How Prototyping Works

Prototyping

Advantage: Very quickly provides a system for the users to interact with Helps to more quickly refine real requirements rather than attempting to understand a system specification on paper. Problem Significant changes make design decision become poor ones.

Throwaway Prototyping

Similar to prototyping-based methodology, but it was done at different point in SDLC. performs analysis, design and build a design prototype (not a working system) repeatedly until define correct design. Produces more stable and reliable system

Throwaway Prototyping

Prototyping
Strengths of Prototyping : Early functionality. Provides a process to perfect the requirements definition. Provides risk control. Documentation focuses on the end product not the evolution of the product. Provides a formal specification embodied in an operating replica.

Prototyping
Weaknesses of Prototyping : Less applicable to existing systems than to new, original development. Bad reputation among conservatives as a "quick and dirty" method. Suffers from bad documentation. Sometimes produces a system with poor performance. Tendency for difficult problems to be pushed to the future so that the initial promise of the prototype is not met by subsequent products.
back

Rational Unified Process (RUP)

An object-oriented program development methodology. is a two-dimensional systems development process described by a set of phases and workflows (tasks /activities the developer performs to evolve an IS over time) RUP is a product produced by Rational Software. RUP is a framework that can be used to describe the specific development process. It explains all artifacts, activity, roles, rules and template for the artifacts that involve in software development. It is designed and documented using the Unified Modeling Language (UML).

Rational Unified Process (RUP)

RUP establishes 4 phases of development: Inception: developers define the scope of the project and its business case; Elaboration: developers analyze the projects needs in greater detail; Construction: developers create the application design and source code; Transition: developers deliver the system to users. The phases of RUP support an analyst in developing IS in an iterative and incremental manner. The phases describe how IS evolves through time.

Inception

Similar to the planning phase in SDLC Defining the scope, determining the feasibility, understanding user requirements, preparing a software development plan Performs work related primarily to business modeling, requirements and analysis workflows. Relatively short, low resource requirements Focus on planning and analysis Deliverable: A vision document and the adoption of necessary environment to develop the system

Elaboration

Detailed user requirements and baseline architecture is established Fairly long, but not high in resource demand Focus on analysis and design workflow. Deliverable : UML structure and behavior diagrams, and an executable of a baseline version of the evolving IS

Construction

Coding, testing, and documenting code Longest and most resource-intensive Focus is on implementation tasks

Transition

System is deployed and users are trained and supported Short-term, but resource-intensive Focus is on installation, training, and support

Rational Unified Process (RUP)


RUP is a method of managing OO Software Development.
The RUP Captures Software Development Best Practices Develop software iteratively. Manage requirements. Use component-based architectures. Visually model software. Continuously verify software quality. Control changes to software.

Lecture Outline
Definition

of Systems Analysis & Design Revise Structured Approach Revise Object Oriented Approach Discuss Systems Development Methodologies

Q&A

Give TWO (2) purposes of analysis and design. Give TWO (2) advantages of object oriented approach. Explain TWO (2) purposes of using methodology in an information system development. Describe briefly FOUR (4) phases of development in Rational Unified Process (RUP).

Вам также может понравиться