Академический Документы
Профессиональный Документы
Культура Документы
Lecture Outline
Definition
of Systems Analysis & Design Revise Structured Approach Revise Object Oriented Approach Discuss Systems Development Methodologies
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)
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
Design
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
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
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
Source of Errors
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
But the growing significance of use cases in UML shifts the emphasis slightly from data to processes
Addresses the needs of emerging applications, such as workgroup computing and multimedia systems
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 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
Structured approach Model the world as a set of functions Solution based modelling
Structured approach
Can only achieve encapsulation and information hiding through discipline
Refinement
Structure Charts
outline
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
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.
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
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
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
Cons Design must be specified on paper before programming begins Long time between system proposal and delivery of new system
back
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.
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.
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.
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
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).
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
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).