System Analysis and Development and Models Class
System Analysis and Development and Models Class
Module 4
What is Software?
Instructions (computer programs) that when executed provide desired function and performance Data structures enable the programs to adequately manipulate information Documents that describe the operation and use of the program
Software engineering : A Practitioner's Approach
Whos Who
CUSTOMER
$$$, needs USER Uses system Contractual obligation Needs Software system
DEVELOPER
Builds system
Hardware, software, data, people, and procedures that work together to produce quality information
Phase 1. Planning
Review project requests Prioritize project requests Allocate resources Identify project development team
Conduct preliminary investigation Perform detailed analysis activities: Study current system Determine user requirements Recommend solution
Phase 3. Design
Phase 5. Support
Phase 4. Implementation
Conduct post-implementation system review Identify errors and enhancements Monitor system performance
Develop programs, if necessary Install and test new system Train users Convert to new system
Arrange tasks into phases Involve users (anyone for whom system is being built)
Responsible for designing and developing information system Liaison between users and IT professionals
Technical feasibility
Function of committee:
Review and approve project requests
Form project development team for each approved project
Allocate resources
3. Recommend solution
Surf Web
Vendor selects product(s) that meet(s) your requirements and then quotes price(s)
Less formal method that uses standard form to request information about product or service
References from vendor Talk to current users of product Product demonstrations Trial version of software Benchmark test measures performance
Working model of proposed system Beginning a prototype too early may lead to problems
Purpose is to construct, or build, new or modified system and then deliver it to users
Convert to new system Train users
Develop programs
Systems test
Verifies all programs in application work together
Integration Test
Verifies application works with other applications
Showing users exactly how they will use new hardware and software in system
Identify errors
Identify enhancements
36
2. Object-Oriented Approach
Structured Programming
Improves computer program quality Allows other programmers to easily read and modify the code Each program module has one beginning and one ending Three programming constructs
Top-Down Programming
Divides complex programs into hierarchy of modules Module at top controls execution by calling lower level modules Modular programming
Similar to top-down programming One program calls others to work as single system
Structured Design
Developed to provide guidelines
What the set of programs should be What each program should accomplish How programs should be organized into a hierarchy Structure Chart
Structure Chart
Structured Analysis
Helps developer define what the system needs to do (processing requirements)
Data to store and use Inputs and outputs How functions work together
ADE Tools
Application development environments (ADEs) are:
integrated software development tools provide all the facilities necessary to develop new application software maximise speed and quality
Project Managers
A project manager is an automated tool to:
help plan system development activities (preferably using the approved methodology) estimate and assign resources (including people and costs) schedule activities and resources monitor progress against schedule and budget control modify schedule and resources report project progress
CASE repository
is a system developers or project database it is a place where developers can store system models, detailed descriptions and specifications, and other products of system development synonyms include dictionary and encyclopedia
CASE Tool
Process Analysis
Data
Process
Basic Constructs:
Processes
Data
flows
Files
External
the Static Components the Main Processes and Refine the Diagram the Diagram
Identify
Expand
Review
Purpose:
to
Data
Process Specifications
Process Specifications
Processing and control information omitted from a DFD belongs in a process specification Each functional primitive has one process specification
Process Specifications can be represented in a variety of languages, the most popular are:
Structured English Decision Tables and Decision Trees
Decision Tables
A tabular of conditions and actions and an indication under which conditions, which actions must be performed Consists of four quadrants Condition Stub
a list of all possible conditions that can arise within the process
Rules
contains selectors which identify different combinations of the possible conditions
Action Stub
a list of all possible actions that occur within the process
Action Entries
indicators which select the actions to be performed
Contains only the binary selectors Y & N and the catch all selector in the rules quadrant. In the action entries, it contains only the action selector symbol X. 1 2 3 4
Credit Satisfactory Prompt Payer Special Clearance Accept Order Return Order
Y X
N Y X
N N Y X
N N N
Contains only the binary selectors Y & N and the catch all selector in the rules quadrant. In the action entries quadrant, indicators other than X appear. 1 2 3
N Y
N N
Y -
Pay
Selectors in the rules quadrant are no longer simply binary (y or N) but may take on specific values or ranges of values. 1 2 3 4
Approved Credit Quantity Ordered Discount (%) Release Order Reject Order
N -
Y 0-24 0 X
Y 25-55 5 X
Y 56-99 10 X
Cause & effect relationship is shown, thus permitting easier user validation Possible to check that all combinations of conditions have been considered
SDLC Model
A framework that describes the activities performed at each stage of a software development project.
Waterfall Model
Requirements defines needed information, function, behavior, performance and interfaces. Design data structures, software architecture, interface representations, algorithmic details. Implementation source code, database, user documentation, testing.
Waterfall Strengths
Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule
Waterfall Deficiencies
All requirements must be known upfront Deliverables created for each phase are considered frozen inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)
The designer demonstrates the prototype, the user evaluates for problems and suggests improvements. This loop continues until the user is satisfied
RAD Strengths
Reduced cycle time and improved productivity with fewer people means lower costs Time-box approach mitigates cost and schedule risk Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs Focus moves from documentation to code (WYSIWYG). Uses modeling concepts to capture information about business, data, and processes.
RAD Weaknesses
Accelerated development process must give quick responses to the user Risk of never achieving closure Hard to use with legacy systems Requires a system that can be modularized Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.
Objectives: functionality, performance, hardware/software interface, critical success factors, etc. Alternatives: build, reuse, buy, sub-contract, etc. Constraints: cost, schedule, interface, etc.